Cœur des Règles de Jeu
Règles agnostiques en termes de genre dont chaque jeu a besoin. Les particularités des genres viennent s'ajouter par-dessus, jamais les remplacer.
Workflow
- Identifier la dimension (2D/3D), le genre, la caméra et le schéma d'entrée.
- Définir l'ensemble des règles AVANT le code : entités, états, règles, victoire/défaite, cas limites.
- Implémenter en utilisant les patrons ci-dessous.
- Lire
references/collision.mdpour les spécificités de collision/physique. - Produire un fichier
RULES.mddans le projet listant chaque règle spécifique au jeu afin qu'elle puisse être testée plus tard.
Structure universelle
- Boucle de jeu : entrée -> mise à jour (dt fixe) -> collision -> résolution d'état -> rendu. Utiliser un pas de temps fixe pour la physique, variable pour le rendu.
- États de jeu :
Boot -> Menu -> Playing <-> Paused -> GameOver/Win -> Menu. Toute transition doit être explicite ; pas de changement d'état silencieux. - Entités : chaque entité a une position, une taille/collisionneur, une vélocité, un état, et est propriétaire de ses propres règles.
- Table de règles : pour chaque règle, écrire
Déclencheur -> Condition -> Effet -> Cas limite.
Règles que tout jeu doit définir
- Condition de victoire, condition de défaite, et ce qui se passe au redémarrage (ce qui se réinitialise, ce qui persiste).
- Score/progression : comment il augmente, ses limites maximales, et comment il est sauvegardé.
- Santé/vies du joueur : source de dégâts, fenêtre d'invulnérabilité, gestion de la mort.
- Apparition/disparition : où, quand, limites, et nettoyage (pas de fuites mémoire).
- Courbe de difficulté : ce qui évolue et à quelle vitesse.
- Entrées : entrées simultanées, mise en tampon, remappage, comportement en pause.
Extensions par genre (sélectionner ce qui s'applique)
- Plateforme : gravité, hauteur de saut/saut variable, coyote time (~100 ms), tampon de saut (~100 ms), plateformes unidirectionnelles, transport par plateforme mobile, plan de mort par chute.
- Runner/Infini : accélération de vitesse, espacement de spawn procédural garanti praticable, graine pour reproductibilité.
- Tireur : cadence de tir, durée de vie des projectiles, validation des touches, munitions/rechargement.
- Puzzle : état déterministe, annulation, vérification de solvabilité.
- Course/3D : points de contrôle, validation des tours, règles anti-racourci, collision de caméra.
Règles strictes
- Ne jamais lier la logique de gameplay au taux de rafraîchissement.
- Ne jamais laisser une entité quitter les limites jouables sans un résultat défini.
- Chaque règle doit avoir un numéro (pas de "rapide", utiliser des unités/sec).
- L'aléatoire doit pouvoir être ensemencé.