MARIO.GAME
uk

MariOCaml

Платформер Super Mario, написаний на OCaml, з випадковими рівнями

MariOCaml

Про гру MariOCaml

MariOCaml створили в Корнелльському університеті Метью Сю, Ліам Буї та Ешлі Сюе як фінальний проєкт курсу з функціонального програмування, і він виріс в один із найпопулярніших проєктів на OCaml на GitHub.

Уся гра — фізика, вороги, предмети, камера та рендерер — написана на OCaml і крос-компілована в JavaScript за допомогою js_of_ocaml, тож працює на звичайній вебсторінці. В основі лежить «директор», який керує станом гри та запускає головний цикл, а процедурний генератор будує кожен рівень на сітці, дбаючи про те, щоб його можна було пройти.

У результаті виходить гра, схожа на Mario з епохи SNES, але з родзинкою: щоразу, коли ви її завантажуєте, ви бачите нове розташування веж із цегли, хмар із монет і Koopa Troopa. Деякі рівні вийдуть елегантними, інші — хаотичними, і в цьому вся принадність випадкового рівня.

Керування

КлавішаДія
← → або A DРух
Пробіл, ↑ або WСтрибок
↓ або SПрисісти

Особливості

  • На 100% написано функціональною мовою OCaml
  • Генератор випадкових рівнів, який розставляє блоки, монети, ворогів і прірви
  • Рахунок, лічильник монет, екрани програшу та перемоги
  • Ефекти частинок, коли ламаються блоки та ворогів розчавлюють

Поради

  1. Лічильник у верхньому лівому куті показує частоту кадрів, а не час — не поспішайте.
  2. Панцирі можна пнути в інших ворогів, щоб отримати ланцюжок очок.
  3. Якщо рівень згенерувався невдало, перезавантажте фрейм кнопкою перезапуску, щоб отримати нову розкладку.

Поширені запитання

Що таке OCaml?

OCaml — це функціональна мова програмування, яку використовують в науці та індустрії. MariOCaml показує, що після компіляції в JavaScript вона здатна забезпечити роботу повноцінної гри в реальному часі.

Рівні завжди різні?

Так — рівень генерується випадково під час кожного завантаження, тож кожен перезапуск дає нову мапу.

Хто створив MariOCaml?

Метью Сю, Ліам Буї та Ешлі Сюе. Проєкт має відкритий код за ліцензією MIT.

Більше ігор