Con questo wrapper puoi accedere all'SDK YouTube Playables in Godot
con il .gd
fornito. Il wrapper ha un connettore SDK .js e un file .gd
per contribuire ad accelerare lo sviluppo. È inoltre disponibile un progetto di esempio che mostra come utilizzare questi script nel progetto.
I pacchetti ZIP di Godot possono essere scaricati dal nostro repository di esempi di Sala giochi.
Utilizzo
- Estrai
GoogleYTGameWrapper-godot.zip
nella cartella del progetto in cui vuoi che vengano memorizzati questi script. Questo file ZIP contiene due file:YTGameWrapper.gd
: utilizzato come ponte per l'SDK JavaScript di YT Playables che consente di chiamare l'SDK in-game.YTGameSDK.js
: utilizzato per connettersi all'SDK YT Playables. Per questo esempio, lo inseriremo nella directory principale del progetto. Puoi modificarlo, ma devi aggiornare la posizione dell'inclusione principale.- È inoltre disponibile una versione di esempio completa del progetto scaricabile dal nostro repository di esempi di Playables. Per questa versione, utilizza il file ZIP denominato
GoogleYTGameWrapper-godot-with-sample.zip
.
- Aggiungi un nuovo parametro globale di caricamento automatico per lo script
YTGameWrapper.gd
decompresso. Questa opzione può essere impostata inProject
->Project Settings...
->Globals
. Seleziona il fileYTGameWrapper.gd
nella casella di immissionePath
e aggiungiYTGameWrapper
nella casella di immissioneNode Name
. Infine, seleziona+ Add
.- In questo modo, lo script sarà disponibile a livello globale nel codice, consentendoti di chiamare
YTGameWrapper
in base alle esigenze.
- In questo modo, lo script sarà disponibile a livello globale nel codice, consentendoti di chiamare
- Verifica che la piattaforma del progetto Godot sia impostata per l'esportazione per
Web
. Questa impostazione si trova nella scheda Esporta, selezionaProject
e poiExport...
. - Nel riquadro Esporta, aggiungi un nuovo preset selezionando
Add...
e poiWeb
. Una volta creato, aggiungi questo codice nella casella delle impostazioni diHead Include
.
<script src="https://www.youtube.com/game_api/v1">// Load YT Game API code</script>
<script src="YTGameSDK.js"></script>
- Esporta il progetto web nel riquadro
Export
selezionandoExport Project...
e la posizione di compilazione. - Una volta compilato il progetto, vai alla cartella di compilazione e copia il file
YTGameSDK.js
in questa cartella, assicurandoti di includerlo quando invii la compilazione. - Verifica di rispettare i requisiti tecnici per il tuo progetto e assicurati di utilizzare la suite di test Playables.
Esempi
Questa sezione contiene alcuni esempi di come utilizzare il wrapper .gd
, ma non è l'elenco completo delle API disponibili. Per l'elenco completo delle API disponibili, consulta
YouTube Playables SDK. Inoltre, si presume che il progetto sia configurato come descritto nella sezione Utilizzo.
sendScore
Questo esempio mostra un'implementazione di sendScore(int points)
in .gd
:
var current_game_score: int = 0
...
func add_score(scoreAdded: int):
current_game_score += scoreAdded
YTGameWrapper.send_score(current_game_score)
onPause
Questo è un esempio di come un gioco può ascoltare gli eventi Pause
provenienti da YT
Playables per mettere in pausa il motore in caso di necessità:
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
Questo è un esempio di come utilizzare saveData
, inviandolo all'SDK YT Playables:
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
Questo è un esempio di come utilizzare loadData
, inviandolo all'SDK YT Playables:
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
Questo è un esempio di come utilizzare requestInterstitialAd
, che indica che è un buon momento per mostrare un annuncio interstitial, se disponibile. Per risultati ottimali, effettua questa chiamata durante una pausa nel gameplay, ad esempio alla fine di un livello.
func set_game_over(didWin: bool):
YTGameWrapper.request_interstitial_ad()
# logic for game over
Come suddividere gli asset nel progetto Godot (caricamento lento)
Uno dei problemi principali che gli sviluppatori hanno evidenziato durante l'utilizzo di Godot è rispettare i requisiti relativi alle singole dimensioni dei file e alle dimensioni totali del bundle.
Il caricamento lento delle risorse è un'ottima ottimizzazione che puoi apportare al tuo progetto, in quanto consente di caricare risorse, livelli e dati in base alle esigenze. Il nostro team di certificazione potrebbe rinunciare alle limitazioni generali relative alle dimensioni dei file se tutto viene eseguito correttamente, poiché il gioco completo non verrà caricato in anteprima, ma man mano che l'utente naviga nel tuo prodotto.
Per facilitare il caricamento corretto, Godot offre l'esportazione di pacchetti, patch e mod
(link in inglese). Ti consigliamo di generare file .pck
che vengono caricati
in base alle esigenze.
Consulta la documentazione di riferimento completa dell'API YT Playables.