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.zipdosyası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.zipadlı zip dosyasını kullanın.
- Sıkıştırılmış
YTGameWrapper.gdkomut dosyası için yeni bir Otomatik Yükleme Global ekleyin. Bu ayarıProject->Project Settings...->Globalsbölümünden yapabilirsiniz.Pathgiriş kutusundaYTGameWrapper.gddosyasını seçin veNode Namegiriş kutusunaYTGameWrapperekleyin. Son olarak+ Addsimgesini seçin.- Bu işlem, komut dosyasını kodunuzda dünya genelinde kullanılabilir hale getirir ve gerektiğinde
YTGameWrapperiş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
Webiç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 Includeayar kutusuna ekleyin.
<script src="https://www.youtube.com/game_api/v1">// Load YT Game API code</script>
<script src="YTGameSDK.js"></script>
ExportpanelindeExport Project...'u ve derleme konumunu seçerek web projenizi dışa aktarın.- Projeniz oluşturulduktan sonra derleme klasörüne gidin ve
YTGameSDK.jsdosyası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.