O grze MariOCaml
MariOCaml powstał na Uniwersytecie Cornella. Stworzyli go Matthew Hsu, Liam Bui i Ashley Xue jako projekt końcowy na kursie programowania funkcyjnego, a z czasem stał się jednym z najpopularniejszych projektów w OCaml na GitHub.
Cała gra — fizyka, wrogowie, przedmioty, kamera i renderer — jest napisana w OCaml i skompilowana do JavaScript za pomocą js_of_ocaml, dzięki czemu działa na zwykłej stronie internetowej. Pod spodem działa „dyrektor”, który zarządza stanem gry i uruchamia główną pętlę, a generator proceduralny buduje każdy poziom na siatce, dbając o to, by dało się go przejść.
Efekt wygląda jak gra z Mario z czasów SNES-a, ale z dodatkowym twistem: przy każdym uruchomieniu dostajesz inny układ ceglanych wież, chmur monet i Koopa Troopa. Niektóre układy są eleganckie, inne chaotyczne — na tym polega urok losowego poziomu.
Sterowanie
| Klawisz | Akcja |
|---|---|
| ← → lub A D | Ruch |
| Spacja, ↑ lub W | Skok |
| ↓ lub S | Kucanie |
Funkcje
- Napisana w 100% w funkcyjnym języku OCaml
- Generator losowych poziomów, który rozmieszcza bloki, monety, wrogów i przepaście
- Wynik, licznik monet oraz ekrany końca gry i zwycięstwa
- Efekty cząsteczkowe przy rozbijaniu bloków i rozgniataniu wrogów
Wskazówki
- Licznik w lewym górnym rogu pokazuje liczbę klatek na sekundę, a nie czas — nie spiesz się.
- Skorupy można kopnąć w innych wrogów, aby zdobyć serię punktów.
- Jeśli poziom wygeneruje się w niewygodny sposób, załaduj ramkę ponownie przyciskiem restartu, aby dostać nowy układ.


