Bu kılavuzda Google Play Games Hizmetleri v2 Yerel SDK'sını Oturum açma hizmeti. Oturum açma entegrasyonu gerekiyor Diğer Play Games Hizmetleri özelliklerini entegre edin entegre etmek için Play Games Hizmetleri'ni arka uç oyun sunucusu için geçerlidir.
Desteklenen özellikler
Play Games Hizmetleri v2 Yerel SDK'sı beta sürümündedir ve yalnızca şunları destekler: oturum açma hizmetini kullanarak. Diğer Play Games Hizmetleri henüz desteklenmiyor özellikler hakkında daha fazla bilgi edinin.
API referans belgeleri
SDK'nın başlık dosyaları, API'lerle ilgili referans dokümanları içerir. İlgili içeriği oluşturmak için kullanılan
başlık dosyaları, SDK dosyalarındaki include
klasöründe bulunur ve
projeniz SDK deposuyla senkronize edildikten sonra kullanılabilir.
Gereksinimler
Birincil programlama dili olarak yerel C veya C++'ın kullanıldığı bir oyun projesi.
Oyun projeniz ve geliştirme ortamınızda Gradle kurulumu için bir model oluşturabilirsiniz.
Başlamadan önce
Play Oyun Hizmetleri'ni şurada ayarlamanız gerekir: Google Play Console
Oyun projenizi oluşturun
Oyun projenizi oluşturmak için aşağıdaki adımları tamamlayın.
CMakeLists.txt güncelleme
CMakeLists.txt
dosyanıza aşağıdaki kodu ekleyin:
find_package(com.google.android.gms.games.v2.c REQUIRED CONFIG)
// link games_static for -DANDROID_STL=c++_static or default
// link games_shared for -DANDROID_STL=c++_shared
target_link_libraries(
app PUBLIC com.google.android.gms.games.v2.c::games_static)
build.gradle dosyasını güncelleyin
Uygulama düzeyindeki build.gradle
dosyanızda şunları yapın:
Prefab derleme özelliğinin etkinleştirildiğinden emin olun.
Play Games Hizmetleri v2 Yerel SDK'sı için bağımlılığı ekleyin:
com.google.android.gms:play-services-games-v2-native-c:17.0.0-beta1
Aşağıda bununla ilgili bir örnek verilmiştir:
android {
...
buildFeatures {
prefab true
}
...
}
dependencies {
...
implementation "com.google.android.gms:play-services-games-v2-native-c:17.0.0-beta1"
}
AndroidManifest.xml'yi güncelle
AndroidManifest.xml
dosyanızda Play Games Hizmetleri projenizi tanımlayın Kimlik. Aşağıdaki iki satırı dosyaya ekleyerek bunu yapabilirsiniz:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>
Dize kaynağı oluşturma girin. Bu, oyununuzun derleme sırasında kimliğe erişmesine izin verir. Kaynağı oluşturmak için dosyayı oluşturun.
project_root/app/src/main/res/values/games-ids.xml
, ve aşağıdakileri ekleyin:<?xml version="1.0" encoding="utf-8"?> <resources> <string name="game_services_project_id" translatable="false">add your Project ID here</string> </resources>
Oyununuzu geliştirip test edin. Başarılı olursa, oyununuzu kullanıma sunduğunuzda bir oturum açma istemi veya başarılı bir oturum açma banner'ı görüntüler.
Oynatıcı kimliğini alma
Oyununuz, oturum açmış bir oyuncunun oyuncu bilgilerine erişebilir. Bunun için
diğeri. GetPlayerID
öğesini çağırarak oynatıcı kimliğini alabilirsiniz
fonksiyonuna ilişkin bir komut dosyası oluşturun.
#include <assert.h>
#include "gni/gni.h"
#include "gni/gni_task.h"
#include "pgs/pgs_play_games.h"
#include "pgs/pgs_players_client.h"
// A callback for a GniTask returned from PgsPlayersClient_getCurrentPlayerId.
void OnGetCurrentPlayerIdCompleteCallback(GniTask *task, void *user_data) {
if (!GniTask_isSuccessful(task)) {
const char *error_message = nullptr;
GniTask_getErrorMessage(task, &error_message);
// Log error message here.
GniString_destroy(error_message);
GniTask_destroy(task);
return;
}
const char *result = nullptr;
PgsPlayersClient_getCurrentPlayerId_getResult(task, &result);
// Log player id here.
GniString_destroy(result);
GniTask_destroy(task);
}
// Gets the player ID.
void GetPlayerId(jobject main_activity) {
static const PgsPlayersClient *players_client =
PgsPlayGames_getPlayersClient(main_activity);
GniTask *get_current_player_id_task =
PgsPlayersClient_getCurrentPlayerId(players_client);
assert(get_current_player_id_task != nullptr);
GniTask_addOnCompleteCallback(get_current_player_id_task,
OnGetCurrentPlayerIdCompleteCallback,
nullptr);
}
// Entry point for our test app
void TestPGSNative(JNIEnv *env, jobject main_activity) {
JavaVM *java_vm;
env->GetJavaVM(&java_vm);
GniCore_init(java_vm, main_activity);
GetPlayerId(main_activity);
}
Oturum açma istemini yeniden başlat
Bir oyuncu ilk Play Games Hizmetleri oturum açma istemini reddederse
her oyun kullanıma sunulduğunda fikrini
değiştirebilir,
bağlantı kurmalısınız. Şu numarayı arayarak oturum açma istemini yeniden başlatabilirsiniz:
Hiçbir oyuncu oturum açmadığı sürece PgsGamesSignInClient_signIn
.
Oyun sunucusu yetkilendirmesi
Bir oyuncu Play Oyun Hizmetleri'nde başarıyla oturum açtığında oyun istemciniz
arka uç oyun sunucunuzun aşağıdaki işlemler için kullanabileceği bir sunucu yetkilendirme kodu isteyebilir:
Play Games Hizmetleri ile güvenli bir şekilde iletişim kurma. Oyun sunucunuz şu işlemleri yapabilir:
oturum açmış oynatıcıya ait verileri alma, güncelleme ve depolama. Bu sayfada
yöntemini çağırarak sunucu yetkilendirme kodunu
PgsGamesSignInClient_requestServerSideAccess
işlevi.
Daha fazla bilgi için sunucu erişim rehberini inceleyin.