MariOCaml 소개
MariOCaml은 코넬 대학교에서 Matthew Hsu, Liam Bui, Ashley Xue가 함수형 프로그래밍 수업의 기말 프로젝트로 만든 게임으로, 이후 GitHub에서 가장 인기 있는 OCaml 프로젝트 중 하나로 성장했습니다.
물리 엔진, 적, 아이템, 카메라, 렌더러까지 게임 전체가 OCaml로 작성되었고 js_of_ocaml을 통해 JavaScript로 크로스 컴파일되어 일반 웹 페이지에서 실행됩니다. 내부에는 게임 상태를 관리하고 메인 루프를 실행하는 "디렉터"가 있으며, 절차적 생성기가 격자 위에 각 레벨을 만들면서 플레이가 가능하도록 신경 씁니다.
결과물은 SNES 시대의 마리오 게임 같은 느낌에 독특한 반전이 더해져 있습니다. 불러올 때마다 벽돌 탑, 코인 구름, 쿠파 트루파의 배치가 매번 달라집니다. 어떤 배치는 우아하고 어떤 배치는 엉망이지만, 그게 바로 랜덤 레벨의 매력입니다.
조작법
| 입력 | 동작 |
|---|---|
| ← → 또는 A D | 이동 |
| Space, ↑ 또는 W | 점프 |
| ↓ 또는 S | 숙이기 |
특징
- 함수형 언어 OCaml로 100% 작성
- 블록, 코인, 적, 구덩이를 배치하는 랜덤 레벨 생성기
- 점수, 코인 카운터, 게임 오버 및 게임 클리어 화면
- 블록이 부서지거나 적을 밟을 때 나타나는 파티클 효과
팁
- 왼쪽 위 모서리의 숫자는 타이머가 아니라 프레임 레이트입니다. 천천히 즐기세요.
- 등껍질을 다른 적에게 걷어차면 연속으로 점수를 얻을 수 있습니다.
- 레벨이 어색하게 생성되었다면 다시 시작 버튼으로 프레임을 새로고침해 새로운 배치를 만나 보세요.


