MARIO.GAME
ko

MariOCaml

OCaml로 만든 슈퍼 마리오 플랫폼 게임, 랜덤 레벨 지원

MariOCaml

MariOCaml 소개

MariOCaml은 코넬 대학교에서 Matthew Hsu, Liam Bui, Ashley Xue가 함수형 프로그래밍 수업의 기말 프로젝트로 만든 게임으로, 이후 GitHub에서 가장 인기 있는 OCaml 프로젝트 중 하나로 성장했습니다.

물리 엔진, 적, 아이템, 카메라, 렌더러까지 게임 전체가 OCaml로 작성되었고 js_of_ocaml을 통해 JavaScript로 크로스 컴파일되어 일반 웹 페이지에서 실행됩니다. 내부에는 게임 상태를 관리하고 메인 루프를 실행하는 "디렉터"가 있으며, 절차적 생성기가 격자 위에 각 레벨을 만들면서 플레이가 가능하도록 신경 씁니다.

결과물은 SNES 시대의 마리오 게임 같은 느낌에 독특한 반전이 더해져 있습니다. 불러올 때마다 벽돌 탑, 코인 구름, 쿠파 트루파의 배치가 매번 달라집니다. 어떤 배치는 우아하고 어떤 배치는 엉망이지만, 그게 바로 랜덤 레벨의 매력입니다.

조작법

입력동작
← → 또는 A D이동
Space, ↑ 또는 W점프
↓ 또는 S숙이기

특징

  • 함수형 언어 OCaml로 100% 작성
  • 블록, 코인, 적, 구덩이를 배치하는 랜덤 레벨 생성기
  • 점수, 코인 카운터, 게임 오버 및 게임 클리어 화면
  • 블록이 부서지거나 적을 밟을 때 나타나는 파티클 효과

팁

  1. 왼쪽 위 모서리의 숫자는 타이머가 아니라 프레임 레이트입니다. 천천히 즐기세요.
  2. 등껍질을 다른 적에게 걷어차면 연속으로 점수를 얻을 수 있습니다.
  3. 레벨이 어색하게 생성되었다면 다시 시작 버튼으로 프레임을 새로고침해 새로운 배치를 만나 보세요.

자주 묻는 질문

OCaml이 뭔가요?

OCaml은 학계와 산업계에서 사용되는 함수형 프로그래밍 언어입니다. MariOCaml은 JavaScript로 컴파일하면 완전한 실시간 게임도 구동할 수 있다는 것을 보여줍니다.

레벨은 항상 달라지나요?

네, 불러올 때마다 레벨이 무작위로 생성되므로 다시 시작할 때마다 새로운 맵이 나옵니다.

MariOCaml은 누가 만들었나요?

Matthew Hsu, Liam Bui, Ashley Xue가 만들었습니다. 이 프로젝트는 MIT 라이선스의 오픈 소스입니다.

더 즐길 수 있는 게임