MARIO.GAME
fr

MariOCaml

Un jeu de plateforme Super Mario écrit en OCaml avec des niveaux aléatoires

MariOCaml

À propos de MariOCaml

MariOCaml a été créé à l'université Cornell par Matthew Hsu, Liam Bui et Ashley Xue comme projet de fin de cours de programmation fonctionnelle, et il est devenu l'un des projets OCaml les plus populaires sur GitHub.

Tout le jeu (la physique, les ennemis, les objets, la caméra et le moteur de rendu) est écrit en OCaml et compilé vers JavaScript avec js_of_ocaml, ce qui lui permet de tourner dans une simple page web. En dessous, un « directeur » gère l'état du jeu et exécute la boucle principale, tandis qu'un générateur procédural construit chaque niveau sur une grille en veillant à ce qu'il reste jouable.

Le résultat ressemble à un jeu Mario de l'époque de la SNES, avec une petite touche en plus : à chaque chargement, vous obtenez une disposition différente de tours de briques, de nuages de pièces et de Koopa Troopa. Certaines configurations sont élégantes, d'autres chaotiques : c'est tout le charme d'un niveau aléatoire.

Commandes

ToucheAction
← → ou A DSe déplacer
Espace, ↑ ou WSauter
↓ ou SS'accroupir

Fonctionnalités

  • Écrit à 100 % en OCaml, un langage fonctionnel
  • Générateur de niveaux aléatoires qui place les blocs, les pièces, les ennemis et les trous
  • Écrans de score, de compteur de pièces, de game over et de victoire
  • Effets de particules quand les blocs se brisent et que les ennemis sont écrasés

Astuces

  1. Le compteur en haut à gauche indique la fréquence d'images, pas le temps : prenez votre temps.
  2. Vous pouvez envoyer les carapaces dans d'autres ennemis pour enchaîner les points.
  3. Si un niveau est mal généré, rechargez le cadre avec le bouton de redémarrage pour obtenir une nouvelle disposition.

Questions fréquentes

Qu'est-ce que l'OCaml ?

L'OCaml est un langage de programmation fonctionnel utilisé dans le monde universitaire et dans l'industrie. MariOCaml montre qu'il peut faire tourner un jeu complet en temps réel une fois compilé en JavaScript.

Les niveaux sont-ils toujours différents ?

Oui : le niveau est généré aléatoirement à chaque chargement, donc chaque redémarrage vous offre une nouvelle carte.

Qui a créé MariOCaml ?

Matthew Hsu, Liam Bui et Ashley Xue. Le projet est open source sous licence MIT.

D'autres jeux à découvrir