À 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
| Touche | Action |
|---|---|
| ← → ou A D | Se déplacer |
| Espace, ↑ ou W | Sauter |
| ↓ ou S | S'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
- Le compteur en haut à gauche indique la fréquence d'images, pas le temps : prenez votre temps.
- Vous pouvez envoyer les carapaces dans d'autres ennemis pour enchaîner les points.
- Si un niveau est mal généré, rechargez le cadre avec le bouton de redémarrage pour obtenir une nouvelle disposition.


