Про гру MariOCaml
MariOCaml створили в Корнелльському університеті Метью Сю, Ліам Буї та Ешлі Сюе як фінальний проєкт курсу з функціонального програмування, і він виріс в один із найпопулярніших проєктів на OCaml на GitHub.
Уся гра — фізика, вороги, предмети, камера та рендерер — написана на OCaml і крос-компілована в JavaScript за допомогою js_of_ocaml, тож працює на звичайній вебсторінці. В основі лежить «директор», який керує станом гри та запускає головний цикл, а процедурний генератор будує кожен рівень на сітці, дбаючи про те, щоб його можна було пройти.
У результаті виходить гра, схожа на Mario з епохи SNES, але з родзинкою: щоразу, коли ви її завантажуєте, ви бачите нове розташування веж із цегли, хмар із монет і Koopa Troopa. Деякі рівні вийдуть елегантними, інші — хаотичними, і в цьому вся принадність випадкового рівня.
Керування
| Клавіша | Дія |
|---|---|
| ← → або A D | Рух |
| Пробіл, ↑ або W | Стрибок |
| ↓ або S | Присісти |
Особливості
- На 100% написано функціональною мовою OCaml
- Генератор випадкових рівнів, який розставляє блоки, монети, ворогів і прірви
- Рахунок, лічильник монет, екрани програшу та перемоги
- Ефекти частинок, коли ламаються блоки та ворогів розчавлюють
Поради
- Лічильник у верхньому лівому куті показує частоту кадрів, а не час — не поспішайте.
- Панцирі можна пнути в інших ворогів, щоб отримати ланцюжок очок.
- Якщо рівень згенерувався невдало, перезавантажте фрейм кнопкою перезапуску, щоб отримати нову розкладку.


