Dengan wrapper ini, Anda dapat mengakses YouTube Playables SDK di Godot
dengan .gd
yang disediakan. Wrapper memiliki konektor SDK .js dan file .gd
untuk
membantu mempercepat pengembangan Anda. Ada juga project contoh yang tersedia yang
menunjukkan cara menggunakan skrip ini dalam project Anda.
Paket zip Godot dapat didownload dari repositori contoh Playables kami.
Penggunaan
- Ekstrak
GoogleYTGameWrapper-godot.zip
di folder project tempat Anda ingin menempatkan skrip ini. File ZIP ini berisi dua file:YTGameWrapper.gd
: digunakan sebagai jembatan ke YT Playables Javascript SDK yang memungkinkan jalur untuk memanggil SDK dari dalam game.YTGameSDK.js
: digunakan untuk terhubung ke YT Playables SDK. Untuk contoh ini, kita akan menempatkan file ini di root project Anda. Anda dapat mengubahnya, tetapi Anda harus memperbarui lokasi Head Include.- Ada juga versi contoh project lengkap yang tersedia untuk didownload dari
repositori contoh Playables kami. Untuk versi ini, gunakan file zip bernama
GoogleYTGameWrapper-godot-with-sample.zip
.
- Tambahkan Autoload Global baru untuk skrip
YTGameWrapper.gd
yang diekstrak. Hal ini dapat ditetapkan di bagianProject
->Project Settings...
->Globals
. Pilih fileYTGameWrapper.gd
di kotak inputPath
dan tambahkanYTGameWrapper
untuk kotak inputNode Name
. Terakhir, pilih+ Add
.- Tindakan ini akan membuat skrip tersedia secara global dalam kode Anda, sehingga Anda dapat
memanggil
YTGameWrapper
sesuai kebutuhan.
- Tindakan ini akan membuat skrip tersedia secara global dalam kode Anda, sehingga Anda dapat
memanggil
- Pastikan Platform project Godot Anda disetel untuk diekspor ke
Web
. Setelan ini terdapat di tab Ekspor, pilihProject
, laluExport...
. - Di panel Ekspor, tambahkan Preset baru dengan memilih
Add...
, lalu pilihWeb
. Setelah dibuat, tambahkan kode ini ke kotak setelanHead Include
.
<script src="https://www.youtube.com/game_api/v1">// Load YT Game API code</script>
<script src="YTGameSDK.js"></script>
- Ekspor project web Anda di panel
Export
dengan memilihExport Project...
dan memilih lokasi build. - Setelah project Anda di-build, buka folder build dan salin
file
YTGameSDK.js
ke folder ini dan pastikan untuk menyertakannya saat mengirimkan build. - Pastikan Anda mengikuti persyaratan teknis untuk project dan pastikan untuk menggunakan suite pengujian Playables.
Contoh
Bagian ini memiliki beberapa contoh cara menggunakan wrapper .gd
, bukan
daftar lengkap API yang tersedia. Untuk daftar lengkap API yang tersedia, lihat
YouTube Playables SDK. Hal ini juga mengasumsikan bahwa project Anda disiapkan
seperti yang dijelaskan di bagian Penggunaan.
sendScore
Contoh ini menunjukkan implementasi sendScore(int points)
di .gd
:
var current_game_score: int = 0
...
func add_score(scoreAdded: int):
current_game_score += scoreAdded
YTGameWrapper.send_score(current_game_score)
onPause
Berikut adalah contoh cara game memproses peristiwa Pause
yang berasal dari YT
Playables, untuk menjeda mesinnya jika diperlukan:
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
Berikut adalah contoh cara menggunakan saveData
, yang mengirimkannya ke YT Playables SDK:
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
Berikut adalah contoh cara menggunakan loadData
, yang mengirimkannya ke YT Playables SDK:
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
Ini adalah contoh cara menggunakan requestInterstitialAd
, yang menunjukkan bahwa ini adalah
waktu yang tepat untuk menampilkan Iklan interstisial, jika tersedia. Untuk hasil terbaik, lakukan
panggilan ini selama jeda dalam gameplay, misalnya, di akhir level.
func set_game_over(didWin: bool):
YTGameWrapper.request_interstitial_ad()
# logic for game over
Cara membagi aset dalam project Godot Anda (Pemuatan Lambat)
Salah satu masalah utama yang disoroti developer saat menggunakan Godot adalah tetap berada di bawah persyaratan ukuran file individual dan persyaratan ukuran paket total.
Pemuatan lambat aset adalah pengoptimalan yang bagus yang dapat Anda lakukan untuk project karena Anda dapat memuat aset, level, dan data sesuai kebutuhan. Tim sertifikasi kami dapat menghapus batasan ukuran file secara keseluruhan jika hal ini dilakukan dengan benar, karena game lengkap Anda tidak akan dimuat di awal, tetapi saat pengguna menjelajahi produk Anda.
Untuk membantu pemuatan yang tepat, Godot menawarkan Ekspor paket, patch, dan mod
(link bahasa Inggris). Sebaiknya buat file .pck
yang dimuat
sesuai kebutuhan.
Lihat referensi YT Playables API selengkapnya.