Bu sarmalayıcıyla, sağlanan .gd
ile Godot'ta YouTube Playables SDK'sına erişebilirsiniz. Sarmalayıcıda, geliştirme sürecinizi hızlandırmaya yardımcı olacak bir .js SDK bağlayıcısı ve bir .gd
dosyası bulunur. Ayrıca, bu komut dosyalarını projenizde nasıl kullanabileceğinizi gösteren bir örnek proje de mevcuttur.
Godot zip paketleri, Hazır Oyunlar örnek havuzumuzdan indirilebilir.
Kullanım
GoogleYTGameWrapper-godot.zip
dosyasını, bu komut dosyalarının bulunduğu proje klasörünüze çıkarın. Bu zip dosyası iki dosya içerir:YTGameWrapper.gd
: YT Playables JavaScript SDK'sına köprü olarak kullanılır ve SDK'nın oyun içinden çağrılmasına olanak tanır.YTGameSDK.js
: YT Playables SDK'sına bağlanmak için kullanılır. Bu örnekte, dosyayı projenizin kök dizinine yerleştireceğiz. Bunu değiştirebilirsiniz ancak Baş Dahil Et konumunuzu güncellemeniz gerekir.- Hazır Oyunlar örnek havuzumuzdan indirebileceğiniz tam proje örneği de mevcuttur. Bu sürüm için
GoogleYTGameWrapper-godot-with-sample.zip
adlı zip dosyasını kullanın.
- Sıkıştırılmış
YTGameWrapper.gd
komut dosyası için yeni bir Otomatik Yükleme Global ekleyin. Bu ayarıProject
->Project Settings...
->Globals
bölümünden yapabilirsiniz.Path
giriş kutusundaYTGameWrapper.gd
dosyasını seçin veNode Name
giriş kutusunaYTGameWrapper
ekleyin. Son olarak+ Add
simgesini seçin.- Bu işlem, komut dosyasını kodunuzda dünya genelinde kullanılabilir hale getirir ve gerektiğinde
YTGameWrapper
işlevini çağırmanıza olanak tanır.
- Bu işlem, komut dosyasını kodunuzda dünya genelinde kullanılabilir hale getirir ve gerektiğinde
- Godot projenizin Platform'unun
Web
için dışa aktarma işlemine ayarlandığını doğrulayın. Bu ayar, Dışa Aktarma sekmesinde bulunur.Project
'yi, ardındanExport...
'yi seçin. - Dışa aktarma panelinde
Add...
'yi ve ardındanWeb
'yi seçerek yeni bir hazır ayar ekleyin. Oluşturduğunuz bu koduHead Include
ayar kutusuna ekleyin.
<script src="https://www.youtube.com/game_api/v1">// Load YT Game API code</script>
<script src="YTGameSDK.js"></script>
Export
panelindeExport Project...
'u ve derleme konumunu seçerek web projenizi dışa aktarın.- Projeniz oluşturulduktan sonra derleme klasörüne gidin ve
YTGameSDK.js
dosyasını bu klasöre kopyalayın. Derlemenizi gönderirken bu dosyayı eklediğinizden emin olun. - Projeniz için teknik şartlara uyduğunuzu doğrulayın ve Playables test paketini kullandığınızdan emin olun.
Örnekler
Bu bölümde, .gd
sarmalayıcısının nasıl kullanılacağına dair bazı örnekler verilmiştir. Mevcut API'lerin tam listesi bu bölümde yer almamaktadır. Kullanılabilir API'lerin tam listesi için YouTube Playables SDK'sına bakın. Ayrıca, projenizin Kullanım bölümünde açıklandığı şekilde ayarlandığı varsayılır.
sendScore
Bu örnekte, .gd
içinde sendScore(int points)
'ün uygulanması gösterilmektedir:
var current_game_score: int = 0
...
func add_score(scoreAdded: int):
current_game_score += scoreAdded
YTGameWrapper.send_score(current_game_score)
onPause
Aşağıda, bir oyunun gerektiğinde motorunu duraklatmak için YT Playables'den gelen Pause
etkinliklerini nasıl dinleyebileceğine dair bir örnek verilmiştir:
func _ready() -> void:
# hook up on game paused
YTGameWrapper.game_paused.connect(self._on_game_paused)
# hook up on game resumed and game save data received events
YTGameWrapper.game_resumed.connect(self._on_game_resumed)
func _on_game_paused():
# Pause your game logic, audio, etc.
get_tree().paused = true
func _on_game_resumed():
# Resume your game logic, audio, etc.
get_tree().paused = false
saveData
Aşağıda, saveData
'ün YT Playables SDK'sına gönderilerek nasıl kullanılacağına dair bir örnek verilmiştir:
var current_game_score: int = 0
var time_elapsed: float = 0.0
...
func save_game_data():
YTGameWrapper.save_data('{"BestScore": "' + str(current_game_score) + '","BestTime": "' +str(time_elapsed)+ '"}')
loadData
Aşağıda, loadData
'ün YT Playables SDK'sına gönderilerek nasıl kullanılacağına dair bir örnek verilmiştir:
func _ready() -> void:
# hook up game load data received event
YTGameWrapper.load_data_received.connect(self._on_load_data)
# Request to load data when the game starts
YTGameWrapper.load_data()
func _on_load_data(save_data_string: String):
if not save_data_string.is_empty():
# Add logic to parse the save_data_string and restore game state
print("Loaded data: ", save_data_string)
requestInterstitialAd
Bu, requestInterstitialAd
değerinin nasıl kullanılacağını gösteren bir örnektir. Mevcutsa geçiş reklamı göstermenin iyi bir zaman olduğunu belirtir. En iyi sonuçlar için bu aramayı oyunda ara verdiğiniz sırada (ör. bir seviyenin sonunda) yapın.
func set_game_over(didWin: bool):
YTGameWrapper.request_interstitial_ad()
# logic for game over
Godot projenizdeki öğeleri bölme (Geçici Yükleme)
Geliştiricilerin Godot'u kullanırken vurguladıkları en önemli sorunlardan biri, tek tek dosya boyutu ve toplam paket boyutu koşullarına uymaktır.
Öğeleri, seviyeleri ve verileri gerektiğinde yükleyebildiğiniz için öğelerin gecikmeli yüklenmesi, projeniz için yapabileceğiniz mükemmel bir optimizasyondur. Oyununuzun tamamı önceden yüklenmediğinden, kullanıcı ürününüzde gezinirken yükleneceğinden, bu işlem doğru şekilde yapılırsa sertifika ekibimiz genel dosya boyutu kısıtlamalarını kaldırabilir.
Godot, paketleri, yamaları ve modları dışa aktarma (İngilizce bağlantı) özelliğiyle doğru yüklemeye yardımcı olur. Gerektiğinde yüklenen .pck
dosyaları oluşturmanızı öneririz.
YT Playables API referansının tamamına bakın.