Comment préparer une game jam Godot : setup, addons et astuces pour gagner du temps
Des templates de projet aux addons indispensables, en passant par les patterns GDScript et l'export vers itch.io, voici comment configurer Godot 4 pour votre prochaine game jam.
La Godot Wild Jam #91 commence le 13 mars. Vous avez trois jours pour vous préparer. Que ce soit votre première jam Godot ou votre dixième, la différence entre un weekend fluide et une spirale de panique se joue dans la préparation.
Ce guide est spécifique à Godot. Nous avons déjà un guide de survie général pour les game jams et un kit d’outils et d’assets gratuits. Celui-ci se concentre sur le moteur : configuration du projet, addons qui font gagner des heures, patterns GDScript réutilisables et workflow complet d’export vers itch.io.
Tout ici cible Godot 4.6, la dernière version stable.
Étape 1 : Utilisez un template de game jam
Ne partez pas d’un projet vide. Un template vous donne un menu principal, un menu pause, un écran de paramètres et des transitions de scènes prêts à l’emploi. Ce sont deux à quatre heures de jam que vous venez d’économiser.
Templates recommandés :
- Maaack’s Godot Game Template : Le plus complet. Menu principal, options avec onglets audio/vidéo/touches, menu pause, crédits, chargeur de scènes et scène d’exemple. Compatible Godot 4.6.
- bitbrain’s godot-gamejam : Plus léger. Navigation de menu basique et menu pause. Bien si vous voulez moins de structure.
- Godot Asset Library: Game Jam Template : Installable directement depuis l’éditeur. Inclut un système de dialogue, paramètres, sauvegarde/chargement, contrôleurs 2D (platformer, top-down, point-and-click), écran titre, crédits et objets interactifs.
Comment l’utiliser : Clonez le template avant la jam. Ouvrez-le dans Godot. Supprimez les scènes d’exemple inutiles. Vérifiez que tout tourne. Quand le thème tombe, vous construisez du gameplay immédiatement au lieu de câbler des menus.
Étape 2 : Installez ces addons avant la jam
La bibliothèque d’assets Godot contient des centaines d’addons, mais pendant une jam vous voulez des outils éprouvés qui fonctionnent et sont récemment mis à jour.
Pour tout type de jeu
- LimboAI : Arbres de comportement et machines à états dans un seul package. Si votre jeu a des ennemis avec même une IA basique, cela vous évite d’écrire une machine à états de zéro.
- Phantom Camera : Caméra fluide avec suivi, zoom et tremblement. Fonctionne en 2D et 3D. Le “camera feel” est l’un des moyens les plus rapides de rendre un jeu de jam plus poli.
- Dialogic 2 : Éditeur de dialogues visuel. Si votre jeu nécessite la moindre interaction textuelle, construire un système de dialogue from scratch pendant une jam est un piège.
Pour l’audio
- GodotSfxr : Générez des effets sonores rétro directement dans l’éditeur. Un clic, un son de saut. Un autre clic, un laser. Parfait pour l’audio placeholder qui finit souvent dans le build final.
Pour le “juice”
- Godot Juice Plugin : Screen shake, hit freeze, flash et knockback en quelques lignes de code. Le “game feel” est ce qui sépare les jeux de jam oubliables de ceux qui sont bien notés.
Important : Testez chaque addon dans votre template avant la jam. Les conflits d’addons et les incompatibilités de version sont la dernière chose que vous voulez déboguer à 2h du matin.
Étape 3 : Patterns GDScript réutilisables
Chaque jeu de jam a besoin de ces patterns. Écrivez-les une fois, comprenez-les, et copiez-les.
Machine à états simple (basée sur enum)
La machine à états la plus simple fonctionne très bien pour une jam. Pas besoin d’architectures basées sur des nodes quand vous avez 48 heures.
enum State { IDLE, RUN, JUMP, ATTACK }
var current_state: State = State.IDLE
func _physics_process(delta: float) -> void:
match current_state:
State.IDLE:
_handle_idle(delta)
State.RUN:
_handle_run(delta)
State.JUMP:
_handle_jump(delta)
State.ATTACK:
_handle_attack(delta)
func change_state(new_state: State) -> void:
current_state = new_state
Transition de scène avec fondu
# Autoload sous le nom "SceneManager"
extends CanvasLayer
@onready var animation_player: AnimationPlayer = $AnimationPlayer
@onready var color_rect: ColorRect = $ColorRect
func change_scene(path: String) -> void:
animation_player.play("fade_out")
await animation_player.animation_finished
get_tree().change_scene_to_file(path)
animation_player.play("fade_in")
Tremblement d’écran
# Attacher à votre Camera2D
var shake_amount: float = 0.0
var shake_decay: float = 5.0
func _process(delta: float) -> void:
if shake_amount > 0:
offset = Vector2(
randf_range(-shake_amount, shake_amount),
randf_range(-shake_amount, shake_amount)
)
shake_amount = lerp(shake_amount, 0.0, shake_decay * delta)
func shake(amount: float = 10.0) -> void:
shake_amount = amount
Timer one-shot helper
# Appeler depuis n'importe où : await Util.wait(0.5)
# Autoload sous le nom "Util"
extends Node
func wait(seconds: float) -> void:
await get_tree().create_timer(seconds).timeout
Ces quatre patterns couvrent les états de mouvement, le flux de scènes, le juice et le timing. Ensemble, ils gèrent 80% de ce dont un jeu de jam typique a besoin au niveau du code.
Étape 4 : Organisez votre structure de dossiers
Des dossiers en désordre vous ralentissent quand le projet grossit. Configurez ceci dans votre template avant la jam :
res://
├── scenes/ # fichiers .tscn
│ ├── levels/
│ ├── ui/
│ └── entities/
├── scripts/ # fichiers .gd (miroir de scenes/)
├── assets/
│ ├── sprites/
│ ├── audio/
│ └── fonts/
├── addons/ # Addons installés
└── autoloads/ # Scripts globaux (SceneManager, Util, etc.)
Enregistrez vos autoloads dans Project > Project Settings > Autoload avant la jam. Scene manager, audio manager et scripts utilitaires doivent être prêts.
Étape 5 : Testez le workflow d’export complet maintenant
C’est l’étape que la plupart des gens sautent. Puis ils perdent la dernière heure de la jam à se battre avec des bugs d’export. Faites-le maintenant, avant que le thème ne tombe.
Export HTML5 (web)
Les builds web obtiennent le plus de parties pendant le vote. Les jurés peuvent cliquer et jouer sans rien télécharger. Voici le workflow complet :
- Installez les templates d’export. Éditeur > Manage Export Templates > Download and Install. Faites-le avant la jam.
- Ajoutez un preset d’export Web. Project > Export > Add > Web.
- Exportez le projet. Cliquez Export All. Nommez le fichier HTML
index.html. - Zippez correctement. Tous les fichiers doivent être à la racine du zip. Pas dans un sous-dossier. Le zip doit contenir
index.html,.js,.wasmet.pckdirectement. - Uploadez sur itch.io. Créez un nouveau projet, uploadez le zip, et cochez “This file will be played in the browser.”
- Activez SharedArrayBuffer. Dans les paramètres de la page itch.io, activez l’option SharedArrayBuffer. Sans ça, vous aurez une erreur Cross Origin Isolation dans certains navigateurs.
- Testez dans le navigateur. Ouvrez la page itch.io et jouez. Testez sur Chrome et Firefox. Vérifiez que l’audio et les inputs fonctionnent.
Limitations connues de l’export web
- Les GDExtensions (C++) ne fonctionnent pas en web. Restez en GDScript pour les cibles web.
- Les performances varient selon le navigateur. Firefox sur Linux et Safari sur macOS/iOS peuvent poser des problèmes. Chrome est le plus fiable.
- La taille du fichier compte. Gardez l’export sous 50 Mo. Compressez l’audio en OGG Vorbis, pas en WAV.
Backup desktop
Exportez toujours un build desktop aussi. Si votre build web casse à la dernière minute, vous pouvez uploader une version téléchargeable. Ajoutez les presets Windows et Linux dans vos paramètres d’export.
Étape 6 : Spécificités de la Godot Wild Jam #91
Si vous participez à la Godot Wild Jam #91 qui commence le 13 mars :
- Durée : 9 jours (13 au 22 mars 2026)
- Révélation du thème : Au lancement, 16h EST le 13 mars. La communauté vote sur les idées de thème via Discord.
- Wildcards : Défis bonus optionnels annoncés avec le thème. Pas d’impact sur la note, mais une contrainte créative amusante.
- Taille d’équipe : Solo ou équipes jusqu’à 5.
- Politique IA : Le contenu généré par IA n’est pas autorisé. Tout le code, l’art et l’audio doivent être créés par des humains. Les assets préexistants avec des licences appropriées sont acceptés.
- Catégories de notation : Thème, Fun, Contrôles, Graphismes, Audio, Accessibilité, Originalité. Notez que l’accessibilité est une catégorie notée. Ajouter des options basiques comme des contrôles remappables, des modes daltonien ou un support lecteur d’écran peut démarquer votre participation.
- Clôture des soumissions : 22 mars à 20h EST, avec une fenêtre de correction d’une heure après la deadline.
Checklist rapide
À utiliser dans les jours avant la jam :
- Télécharger Godot 4.6.1 stable
- Cloner et configurer un template de game jam
- Installer et tester les addons (Phantom Camera, Dialogic, GodotSfxr)
- Configurer les autoloads (SceneManager, Util)
- Organiser la structure de dossiers
- Installer les templates d’export web et desktop
- Faire un export test complet en HTML5
- Créer une page projet sur itch.io (en brouillon)
- Uploader un build test et vérifier qu’il tourne dans le navigateur
- Rejoindre le Discord Godot Wild Jam pour voter sur le thème
Le thème tombe dans trois jours. Quand ce sera le cas, vous voudrez passer votre temps à designer et construire du gameplay. Pas à configurer des menus, combattre des erreurs d’export ou déboguer des conflits d’addons. Faites le travail ennuyeux maintenant.
Pour plus de préparation, consultez notre guide de survie pour débutants et nos 24 outils et bibliothèques d’assets gratuits. Si vous comparez les moteurs avant de vous engager, nous avons une comparaison complète Godot vs Unity vs Unreal. Et si vous cherchez de l’inspiration, parcourez les meilleurs jeux indés faits avec Godot en 2025.
Écrit par
Florian HuetDev iOS le jour, dev de jeux indé la nuit. J'essaie de donner vie à GameDō Studio.
Je fais des jeux et je parle de ceux auxquels je n'arrive pas à décrocher.