pixel-platformer
Un jeu de plateforme 2D complet en pixel art - physique du personnage, niveaux, ennemis et objets à collecter. La preuve que nous descendons jusqu'à la couche du moteur de jeu, et pas seulement que nous assemblons du tout fait.
Un jeu de plateformes 2D qui tourne dans le navigateur. Il n'a jamais été question du nombre de fonctionnalités, mais de faire en sorte que le saut ait un bon ressenti et reste fluide même sur un ordinateur portable modeste.
Aperçu
Un jeu de plateformes est l'un de ces projets qui paraissent banals de l'extérieur. Un carré saute sur des tuiles, qu'est-ce que cela peut avoir de difficile ? Toute la difficulté se cache dans des choses que le joueur ne voit pas mais ressent en quelques images : si le saut est nerveux, si la commande a du retard, si l'on parvient à atteindre le rebord.
Ce projet est né pour le plaisir, et pour vraiment comprendre d'où vient une bonne maniabilité. Au lieu d'empiler des mécaniques, nous avons porté une seule chose à un haut niveau : un déplacement du personnage qui tombe bien sous la main, et une boucle de jeu qui se comporte de la même façon sur n'importe quel matériel.
Un joueur juge un jeu dans les premières secondes, non par la raison mais par le toucher. Un personnage trop léger échappe aux doigts, un trop lourd se traîne et frustre. Entre les deux se trouve une bande étroite où le saut est agréable - et cette bande ne se trouve qu'en réglant des valeurs isolées : la force du saut, la gravité, le frottement à l'atterrissage.
C'est pourquoi un jeu de plateformes est un si bon exercice. Il n'y a pas de grande architecture à concevoir, mais un retour impitoyable : un chiffre mal choisi et le jeu cesse aussitôt d'être agréable. Le reste de cette étude de cas raconte ce qu'il a fallu mettre en ordre pour que ce réglage ait le moindre sens.
Un pas de physique, chaque machine à égalité
L'erreur la plus fréquente dans les jeux faits après le travail : une boucle liée au nombre d'images. Sur un moniteur 60 Hz le personnage saute normalement, à 144 Hz il vole deux fois plus vite, et sur un portable faible qui perd des images il ralentit. La physique ne peut pas dépendre de la vitesse à laquelle l'écran dessine.
La solution est simple et éprouvée : la simulation avance à pas fixe, et le dessin se fait séparément, avec une interpolation entre les ticks. Le monde se met à jour exactement soixante fois par seconde quel que soit le moniteur, et le moteur de rendu reçoit l'état plus une fraction du pas pour que le mouvement reste fluide.
Deux boucles de jeu
| Approche | Sur un écran rapide | Sur un portable faible |
|---|---|---|
| Boucle liée aux images | le personnage vole trop vite | le personnage se traîne |
| Pas fixe plus interpolation | même rythme | même rythme |
Des collisions qui ne trichent pas
La deuxième chose qui ruine le ressenti, ce sont les collisions. Le personnage doit s'arrêter exactement au bord d'une tuile, pas un pixel trop tôt ni un pixel trop tard, sinon le joueur sent que quelque chose cloche, même sans savoir le nommer. La simulation calcule plus simplement qu'il n'y paraît : la vitesse, puis l'axe X et l'axe Y séparément contre la grille de tuiles, avec une correction de position au contact.
nous lisons les touches une fois par image, mais nous les transmettons à la simulation, pas directement au mouvement.
le pas fixe calcule la vitesse, la gravité et les collisions contre la grille de tuiles.
le moteur de rendu reçoit l'état du monde plus une fraction du pas pour que le mouvement reste fluide entre les ticks.
Un pas de simulation fixe plus l'interpolation au dessin est le moyen le plus simple de faire qu'un jeu se comporte de façon identique sur n'importe quel matériel. La physique ne sait rien de la fréquence d'images du moniteur, et c'est cela qui décide si le saut est équitable.
L'effet que l'on sent dans la main
Ce qui en sort est un petit jeu vraiment agréable à jouer, avec un code qui reste lisible et facile à étendre. Le saut a un bon poids, les collisions sont honnêtes, et le rythme est le même sur chaque moniteur. Ce n'est pas une démo technique qui se fait passer pour un jeu, mais une chose menée à un état où l'on veut y jouer plus longtemps que ne dure son lancement.
Plus de projets
D'autres réalisations de la même catégorie - découvrez comment nous abordons des défis similaires.
Vous avez un projet similaire ?
Contactez-nous - le devis est gratuit et arrive sous une heure.



