MARIO.GAME
nl

MariOCaml

Een Super Mario-platformgame geschreven in OCaml met willekeurige levels

MariOCaml

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

InvoerActie
← → of A DBewegen
Spatie, ↑ of WSpringen
↓ of SBukken

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

  1. De teller linksboven is de framerate, geen timer — neem dus rustig de tijd.
  2. Je kunt schildjes tegen andere vijanden schoppen voor een reeks punten.
  3. Als een level er onhandig uitkomt te zien, laad het frame dan opnieuw met de herstartknop voor een nieuwe indeling.

Veelgestelde vragen

Wat is OCaml?

OCaml is een functionele programmeertaal die wordt gebruikt in de wetenschap en het bedrijfsleven. MariOCaml laat zien dat je er een volledige realtime game mee kunt maken wanneer het naar JavaScript wordt gecompileerd.

Zijn de levels altijd anders?

Ja — het level wordt bij elke keer laden willekeurig gegenereerd, dus elke herstart geeft je een nieuwe map.

Wie heeft MariOCaml gemaakt?

Matthew Hsu, Liam Bui en Ashley Xue. Het project is open source onder de MIT-licentie.

Meer games om te spelen