MARIO.GAME
de

MariOCaml

Ein Super-Mario-Plattformer, geschrieben in OCaml, mit zufälligen Levels

MariOCaml

Ü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

EingabeAktion
← → oder A DBewegen
Leertaste, ↑ oder WSpringen
↓ oder SDucken

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

  1. Der Zähler oben links zeigt die Bildrate an, nicht die Zeit – lass dir also ruhig Zeit.
  2. Panzer lassen sich gegen andere Gegner kicken und bringen dir eine Punktekette.
  3. Wenn ein Level ungünstig generiert wird, lade den Frame mit dem Neustart-Button neu, um ein neues Layout zu erhalten.

Häufig gestellte Fragen

Was ist OCaml?

OCaml ist eine funktionale Programmiersprache, die in Wissenschaft und Industrie verwendet wird. MariOCaml zeigt, dass sie, wenn sie zu JavaScript kompiliert wird, ein vollständiges Echtzeitspiel antreiben kann.

Sind die Levels immer anders?

Ja – das Level wird bei jedem Laden zufällig generiert, sodass du bei jedem Neustart eine neue Karte bekommst.

Wer hat MariOCaml entwickelt?

Matthew Hsu, Liam Bui und Ashley Xue. Das Projekt ist Open Source unter der MIT-Lizenz.

Weitere Spiele zum Spielen