Über MariOCaml
MariOCaml wurde an der Cornell University von Matthew Hsu, Liam Bui und Ashley Xue als Abschlussprojekt für einen Kurs zur funktionalen Programmierung entwickelt und entwickelte sich zu einem der beliebtesten OCaml-Projekte auf GitHub.
Das ganze Spiel – Physik, Gegner, Items, Kamera und Renderer – ist in OCaml geschrieben und mit js_of_ocaml zu JavaScript cross-kompiliert, sodass es auf einer ganz normalen Webseite läuft. Darunter arbeitet ein „Director“, der den Spielzustand verwaltet und die Hauptschleife ausführt, während ein prozeduraler Generator jedes Level auf einem Raster aufbaut und darauf achtet, dass es spielbar bleibt.
Das Ergebnis sieht aus wie ein Mario-Spiel aus der SNES-Ära – mit einem Twist: Bei jedem Laden bekommst du eine andere Anordnung aus Ziegelsteintürmen, Münzwolken und Koopa Troopas. Manche Layouts sind elegant, manche chaotisch – das ist der Charme eines zufälligen Levels.
Steuerung
| Eingabe | Aktion |
|---|---|
| ← → oder A D | Bewegen |
| Leertaste, ↑ oder W | Springen |
| ↓ oder S | Ducken |
Funktionen
- Zu 100 % in der funktionalen Sprache OCaml geschrieben
- Zufälliger Level-Generator, der Blöcke, Münzen, Gegner und Lücken platziert
- Punktestand, Münzzähler sowie Game-Over- und Siegbildschirm
- Partikeleffekte, wenn Blöcke zerbrechen und Gegner zertreten werden
Tipps
- Der Zähler oben links zeigt die Bildrate an, nicht die Zeit – lass dir also ruhig Zeit.
- Panzer lassen sich gegen andere Gegner kicken und bringen dir eine Punktekette.
- Wenn ein Level ungünstig generiert wird, lade den Frame mit dem Neustart-Button neu, um ein neues Layout zu erhalten.


