Avec ce wrapper, vous pouvez accéder au SDK YouTube Playables dans Godot avec le .gd
fourni. Le wrapper dispose d'un connecteur de SDK .js et d'un fichier .gd
pour accélérer le développement. Un exemple de projet est également disponible pour vous montrer comment utiliser ces scripts dans votre projet.
Les packages ZIP Godot peuvent être téléchargés à partir de notre dépôt d'exemples pour les jeux intégrés.
Utilisation
- Extrayez
GoogleYTGameWrapper-godot.zip
dans le dossier de votre projet, où vous souhaitez que ces scripts résident. Ce fichier ZIP contient deux fichiers :YTGameWrapper.gd
: utilisé comme passerelle vers le SDK JavaScript YT Playables, ce qui permet d'appeler le SDK depuis le jeu.YTGameSDK.js
: permet de se connecter au SDK YT Playables. Pour cet exemple, nous allons placer ce fichier dans la racine de votre projet. Vous pouvez modifier cela, mais vous devez mettre à jour l'emplacement de l'inclusion de tête.- Vous pouvez également télécharger une version complète de l'exemple de projet à partir de notre dépôt d'exemples pour les jeux intégrés. Pour cette version, utilisez le fichier ZIP nommé
GoogleYTGameWrapper-godot-with-sample.zip
.
- Ajout d'un paramètre global d'importation automatique pour le script
YTGameWrapper.gd
décompressé. Vous pouvez le définir sousProject
->Project Settings...
->Globals
. Sélectionnez le fichierYTGameWrapper.gd
dans la zone de saisiePath
et ajoutezYTGameWrapper
dans la zone de saisieNode Name
. Enfin, sélectionnez+ Add
.- Le script sera ainsi disponible globalement dans votre code, ce qui vous permettra d'appeler
YTGameWrapper
si nécessaire.
- Le script sera ainsi disponible globalement dans votre code, ce qui vous permettra d'appeler
- Vérifiez que la plate-forme de votre projet Godot est définie pour l'exportation vers
Web
. Ce paramètre se trouve dans l'onglet "Export" (Exporter). SélectionnezProject
, puisExport...
. - Dans le panneau "Exporter", ajoutez un préréglage en sélectionnant
Add...
, puisWeb
. Une fois le code créé, ajoutez-le dans la zone de paramètresHead Include
.
<script src="https://www.youtube.com/game_api/v1">// Load YT Game API code</script>
<script src="YTGameSDK.js"></script>
- Exportez votre projet Web dans le panneau
Export
en sélectionnantExport Project...
, puis en sélectionnant l'emplacement de compilation. - Une fois votre projet compilé, accédez au dossier de compilation et copiez-y le fichier
YTGameSDK.js
. Veillez à l'inclure lorsque vous envoyez votre build. - Vérifiez que vous respectez les exigences techniques pour votre projet et veillez à utiliser la suite de tests des jeux intégrés.
Exemples
Cette section présente quelques exemples d'utilisation du wrapper .gd
. Il ne s'agit pas de la liste complète des API disponibles. Pour obtenir la liste complète des API disponibles, consultez le SDK YouTube Playables. Nous partons également du principe que votre projet est configuré comme décrit dans la section "Utilisation".
sendScore
Cet exemple montre une implémentation de sendScore(int points)
dans .gd
:
var current_game_score: int = 0
...
func add_score(scoreAdded: int):
current_game_score += scoreAdded
YTGameWrapper.send_score(current_game_score)
onPause
Voici un exemple de la façon dont un jeu peut écouter les événements Pause
provenant de YT Playables pour suspendre son moteur si nécessaire :
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
Voici un exemple d'utilisation de saveData
, en l'envoyant au 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
Voici un exemple d'utilisation de loadData
, en l'envoyant au 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
Voici un exemple d'utilisation de requestInterstitialAd
, qui indique qu'il est temps de diffuser une annonce interstitielle, le cas échéant. Pour de meilleurs résultats, effectuez cet appel pendant une pause de jeu, par exemple à la fin d'un niveau.
func set_game_over(didWin: bool):
YTGameWrapper.request_interstitial_ad()
# logic for game over
Diviser les composants dans votre projet Godot (chargement paresseux)
L'un des principaux problèmes que les développeurs ont soulignés lors de l'utilisation de Godot est de respecter les exigences de taille de fichier individuelle et de taille de bundle totale.
Le chargement paresseux des éléments est une excellente optimisation que vous pouvez effectuer pour votre projet, car vous pouvez charger des éléments, des niveaux et des données au fur et à mesure de vos besoins. Notre équipe de certification peut renoncer aux restrictions de taille de fichier globale si cela est correctement effectué, car votre jeu complet ne sera pas chargé au préalable, mais lorsque l'utilisateur parcourra votre produit.
Pour faciliter le chargement, Godot propose l'exportation de packs, de correctifs et de mods (lien en anglais). Nous vous suggérons de générer des fichiers .pck
qui sont chargés selon les besoins.
Consultez la documentation de référence complète de l'API YT Playables.