MariOCamlについて
MariOCamlは、コーネル大学でMatthew Hsu、Liam Bui、Ashley Xueが関数型プログラミングの授業の最終課題として制作したもので、GitHubで最も人気のあるOCamlプロジェクトのひとつにまで成長しました。
ゲーム全体、つまり物理演算、敵、アイテム、カメラ、レンダラーまでがすべてOCamlで書かれ、js_of_ocamlでJavaScriptにクロスコンパイルされているため、通常のウェブページ上で動作します。土台にはゲームの状態を管理してメインループを回す「ディレクター」があり、プロシージャル生成プログラムがグリッド上で各ステージを組み立て、きちんとプレイできるように配慮しています。
見た目はスーファミ時代のマリオのようですが、ひと味違います。読み込むたびに、レンガの塔、コインの雲、ノコノコの配置が毎回変わるのです。洗練されたレイアウトもあれば、カオスなレイアウトもあります。それがランダムステージの魅力です。
操作方法
| 入力 | アクション |
|---|---|
| ← → または A D | 移動 |
| スペース、↑ または W | ジャンプ |
| ↓ または S | しゃがむ |
特徴
- 関数型言語OCamlで100%書かれています
- ブロック、コイン、敵、穴を配置するランダムステージジェネレーター
- スコア、コインカウンター、ゲームオーバー画面、ゲームクリア画面
- ブロックを壊したときや敵を踏んだときのパーティクルエフェクト
ヒント
- 左上のカウンターはタイマーではなくフレームレートです。ゆっくり進めて大丈夫です。
- 甲羅を他の敵に向かって蹴ると、連鎖して得点を稼げます。
- ステージの生成が遊びにくいときは、リスタートボタンでフレームを再読み込みすると新しいレイアウトになります。


