Jeu de Plateforme 2D
Presentation
Objectif principal : Un platformer a la Mario/Celeste en JavaScript. Le personnage court, saute, peut faire un double saut, et doit atteindre la fin du niveau en evitant les pieges.
Technologies utilisees : JavaScript et Canvas. J'ai fait un petit moteur physique maison avec gravite, friction et collisions. Les niveaux sont charges depuis des fichiers JSON.
Fonctionnalites cles : Physique de saut avec coyote time (tu peux encore sauter quelques frames apres avoir quitte une plateforme), wall jump, plateformes mobiles, checkpoints, et ennemis basiques.
Livrables attendus : 5 niveaux jouables avec difficulte progressive. Un systeme de mort/respawn aux checkpoints. Timer pour speedrunner.
Calendrier previsionnel : Trois semaines. Le moteur physique m'a pris une semaine a lui seul, le reste c'etait les niveaux et le polish.
Parties prenantes & criteres de succes : Projet perso ambitieux. Je voulais comprendre comment marchent les vrais platformers, pourquoi certains ont un "game feel" satisfaisant.
Le Defi
Le saut. Ca parait simple mais c'est hyper complexe. Un saut lineaire c'est nul, faut une courbe agreable. Et les collisions avec les plateformes, surtout quand tu arrives par le cote ou par en dessous. Au debut le perso se bloquait dans les murs.
La Solution
Pour le saut, j'ai implemente une gravite variable : plus forte quand tu descends que quand tu montes, et encore plus forte si tu laches le bouton saut tot (permet les petits sauts). Pour les collisions, je separe le mouvement en X et Y et je check les collisions independamment, ca evite les blocages.
Architecture Technique
Classe Player avec velocite, etats (au sol, en l'air, contre un mur), et animations. Classe Level qui charge les tiles depuis JSON. Classe Camera qui suit le joueur avec un peu de smoothing. Les entites heritent d'une classe GameObject avec position et hitbox.
Points Cles
- Physique de saut avec gravite variable
- Coyote time et input buffering
- Wall jump et plateformes mobiles
Apercu
Resultats & Apprentissages
Le jeu est vraiment fun a jouer, les controles sont reactifs. J'ai compris tous ces petits trucs invisibles qui font qu'un platformer est agreable (coyote time, input buffering, gravite variable). C'est mon projet dont je suis le plus fier.
Evolutions Futures
Un editeur de niveaux dans le navigateur. Plus de mecaniques (dash, grappin). Des vrais sprites animes au lieu de rectangles colores. Peut-etre un mode avec generation procedurale de niveaux.