Huawei Game Service’e Temel Bakış

Mustafa CAN
Huawei Developers - Türkiye
6 min readJun 24, 2020

Aklınızda mükemmel bir mobil oyun fikri var diyelim. Ancak oyunu yapsanız dahi arka plandaki birçok işi yapmak size korkutucu geliyor olabilir. Mesela Oyun kayıtlarını tutmak, Çoklu oynamayı desteklemek ve bunun gibi oyunun kendisini yapmanın dışında kalan özellikler. Bu durumda HMS’in bize sunduğu Game Service imdadımıza yetişiyor.

https://developer.huawei.com/consumer/en/hms/huawei-game

1. Game Service Nedir?

Game Service başarıları (achievements) ve skorları (leaderboards) gibi basit oyun fonksiyonlarını geliştirmemizde yardımcı olan bir kittir. Yayınlamada, yönetmede ve testte oyunlarımızın verimliliğini arttırır.

2. Game Service Özellikleri Nedir?

  • Huawei ID ile kayıt olmak(Sign-in)
  • Başarı tabloları oluşturmak (Achievements)
  • Etknilikler oluşturmak (Events)
  • Skor tabloları oluşturmak (Leaderboards)
  • Oyun kayıtları tutmak (Saved Games)
  • Oyuncu istatiklerini tutmak (Player Statics)
  • Sistem kaynaklarını almak (Game Kit)

Huawei ID ile kayıt

Oyun içerisinde kullanıcıları birbirlerinden ayırt etmek ve gerçek kullanıcı olduklarını anlamanın yanı sıra onlara özel olaylar sergilememize dahi yarayan bir işlemdir ve kullanıcının oyun zevkini minimum düzeyde etkiler.

https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/game-login-v4

Başarı tabloları

Başarı tabloları yani Achievementsler ile kullanıcıları uygulamamıza daha uzun süre heyecanlı olmalarını sağlayabilir, böylece oyunu oynama zamanlarını arttırabiliriz, başarıları, kullanıcılar onları başarmadan önce gizleyebilir ve kazandıkları başarıları bir tabloda onlara gösterebiliriz.

https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/game-achievement

Etkinlikler

Etkinlikler yani Eventler, bize oyuncular tarafından üretilen spesifik verileri toplamamızda yardımcı olurlar. Toplanan bu verilere AppGallery Connect üzerinden erişebilir, böylece oyun analizlerini güçlendirerek kullanıcılara daha iyi bir deneyim sağlayabiliriz..

https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/game-events

Skor Tabloları

Skor tabloları yani Leaderboardlar, kullanıcılar arasındaki rekabeti arttırarak onları, sıralamada daha üst sıralara çıkmaları için heveslendirir. AppGallery Connect içinde 70 taneye kadar Leaderboard yaratabilir ve belirlediğimiz durumlar için puan sistemini değiştirebiliriz. Her bir Leaderboard 5000 taneye kadar veri gösterebilir. Huawei oyun serverleri leaderboardların günlük, haftalık ve tüm zamanlık versiyonlarını çıkartabilir, böylece rekabetide şekillendirebiliriz.

https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/game-leaderboards-development

Oyun kayıtları

Oyun kayıtları yani Saved Games, kullanıcıların oyundaki ilerlemelerini Huawei Mobil Bulutunda (Cloud) kaydetmemize ve geri getirebilmemize yarar. Böylece kullanıcılar kaldıkları yerden oyunlarına devam edebilir duruma gelirler. Daha öncesinden yapmaları gereken tek şey Huawei ID ile oyuna girmek. Böylece cihazları kırılsa, değişse veya kaybolsa bile başka cihazlardan kaldıkları yerden devam edebilir duruma gelirler.

https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/game-archive-development

Oyuncu istatikleri

Oyuncu istatikleri yani Player Statics, bize kullanıcıların istatistiklerini Huawei oyun serverlerinden almamıza yarar. Böylece kullanıcıların oynama alışkanlıkları, ilerlemeleri, ödeme kapasiteleri gibi bilgileri alarak farklı kullanıcılara farklı deneyimler yaşatabiliriz. Örneğin oyuna uzun zamandır girmemiş oyunculara yeniden onlara cesaret vericek ödüller sağlayabiliriz.

https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/game-playerinfo-development

Sistem kaynakları

Sistem kaynaklarını yönetmek istiyorsak kullanmamız gereken özelliğin adı Game Kit. Game Kit, bize kısıtlı sistem kaynaklarını yönetmemize yarar ve oyunumuz ile sistem kaynakları (CPU GPU RAM Network…) arasında köprü olur.

https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/GameKit-introduction

3. Huawei HMS Core Entegrasyonu

1- AppGallery Connect’e giriş yap

https://developer.huawei.com/consumer/en/ sitesine gidelim ve sağ üstteli ‘Console’ butonuna tıklayarak giriş sayfasına gidelim ve giriş yapalım. Ardından Distribution and promotion seviyesindeki ‘HUAWEI AppGallery’ butonuna tıklayalım.

2- Uygulamayı Yarat

AppGallery Connect e giriş yaptıktan sonra ‘My apps’ sekmesine tıklayalım ve sağ üstteki ‘New app’ butonuna tıklayalım.

App name kısmını ayarlayıp gersini alttaki resim gibi yapabiliriz.

Ardından OK ‘e tıklayalım.

Sol üstteki ‘Develop’ sekmesine tıklayalım.

Ardından bize oluşturduğumuz oyun için bir package name (paket adı) isteyecek. Burada istersek oyunun apk dosyasını vererek yada direkt olarak package name ini yazarak devam edebiliriz. Daha kolay olduğu için

‘Manually enter the package name’ seçeneğini seçelim.

Daha projemizi oluşturmadığımız için bu adıma devam etmeden önce projemizi oluşturalım. Android Studio içerisinde File->New->New Project… sırasında gidelim.

Empty Activity’ yi seçtikten sonra Name ve Package name değerlerini verelim. Unutmayın package name unique (eşsiz) bir bilgidir ve eğer zaten aynı paket adıyla başka proje var ise AppGallery Connect tarafından hata alırız. Değerleri girdikten sonra package name değerini kopyalayıp ‘Finish‘ butonuna basabiliriz.

AppGallery Connect üzerinde kaldığımız yerden devam edelim. Package name kısmını girip ‘Save’ butonuna tıklayalım

3- Signed Apk/Bundle oluşturmak

Android Studioya dönerek Build->Generate Signed Bundle / APK… sırasında gidelim

APK seçeneğine tıklayalım ve Next diyelim.

Ardından Key Store dosyamız olmadığı için Create new… butonuna basarak yeni bir Key Store oluşturalım. Path sorulan yerde sağdaki klasör simgesinden projemizin app dosyasına gidelim. Proje dosyasına yukarıdaki yeşil android simgesi götürüyor. ‘app’ klasörü seçili iken key store dosyamızın adını verelim ve OK diyelim.

Ardından diğer bilgileride doldurduktan sonra New Key Store sekmesinde de OK butonuna basıp kapatabiliriz.

Ardından herşeyin tamam olduğuna eminseniz Next butonuna tıklayalım

CTRL + Click ile debug ve release’i, ve V1 ile V2 signature versiyonlarını seçip Finish butonuna tıklayalım.

4- signinReport’ dan Sha-256’ yı almak

Android Studio içerisinde Sağ üstte Gradle sekmesi içerisinde Tasks->android->signinReport seçeneğine çift tıklayarak çalıştıralım. Run penceresinde Sha-256 değerini kopyalayalım.

AppGallery Connect içerisindeki App information bölümünde SHA-256 certificate fingerprint bölümüne yapıştıralım.

Ardından yine App information bölümündeki agconnect-services.json butonuna tıklayarak dosyayı indirelim ve Android Studio projemizin app klasörü içerisine yapıştıralım.

5- API’ları aktif etme

son olarak Develop -> Manage APIs yoluna gidelim ve Game Service ve Huawei Account togglelarını açık duruma getirelim

Artık projemizi AGC ile ilişkilendirmiş olduk. Sadece Gradle dosyalarını güncellemek ve projeyi Sync etmek kaldı.

6- build.gradle (proje seviyesi) düzenlemesi

build.gradle dosyamızın içine aşağıdaki komutları ekleyelim.

allprojects {
repositories {
google()
jcenter()
maven {url 'http://developer.huawei.com/repo/'}
}
}

buildscript {
repositories {
google()
jcenter()

maven {url 'http://developer.huawei.com/repo/'}
}
}
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
classpath 'com.huawei.agconnect:agcp:1.2.0.300'
}
}

7- build.gradle (app seviyesi) düzenlemesi

App seviyesindeki build.gradle dosyamıza da bunları ekleyelim ve version kısmına güncel versiyonlarını yazalım. Şuandaki güncel halleri

hwid -> 4.0.1.300

game -> 4.0.3.301

apply plugin: 'com.huawei.agconnect'

dependencies {
implementation 'com.huawei.hms:hwid:{version}'
implementation 'com.huawei.hms:game:{version}'
}

Ardından Sync linkine tıklayarak projemizi senkron hale getirelim.

Sonuç

Artık elimizde başlamaya hazır bir oyun projesi var. Bir sonraki yazımda buradan devam edip sizinle Game Service özellikleri bulunan bir oyun programlayacağız.

Sonraki Yazı

--

--