Over MariOCaml
MariOCaml is gemaakt aan Cornell University door Matthew Hsu, Liam Bui en Ashley Xue als eindproject voor een vak over functioneel programmeren, en groeide uit tot een van de populairste OCaml-projecten op GitHub.
Het hele spel — natuurkunde, vijanden, items, de camera en de renderer — is geschreven in OCaml en met js_of_ocaml gecompileerd naar JavaScript, zodat het in een gewone webpagina draait. Eronder zit een "director" die de spelstatus beheert en de hoofdlus uitvoert, terwijl een procedurele generator elk level op een raster opbouwt en erop let dat het speelbaar blijft.
Het resultaat ziet eruit als een Mario-game uit het SNES-tijdperk, maar met een twist: elke keer dat je het laadt, krijg je een andere opstelling van bakstenen torens, muntenwolken en Koopa Troopa's. Sommige indelingen zijn elegant, andere chaotisch — dat is de charme van een willekeurig level.
Besturing
| Invoer | Actie |
|---|---|
| ← → of A D | Bewegen |
| Spatie, ↑ of W | Springen |
| ↓ of S | Bukken |
Kenmerken
- Voor 100% geschreven in de functionele programmeertaal OCaml
- Willekeurige levelgenerator die blokken, munten, vijanden en gaten plaatst
- Score, muntenteller en schermen voor game over en gewonnen spel
- Deeltjeseffecten wanneer blokken breken en vijanden worden platgesprongen
Tips
- De teller linksboven is de framerate, geen timer — neem dus rustig de tijd.
- Je kunt schildjes tegen andere vijanden schoppen voor een reeks punten.
- Als een level er onhandig uitkomt te zien, laad het frame dan opnieuw met de herstartknop voor een nieuwe indeling.


