MARIO.GAME
pt

MariOCaml

Um jogo de plataforma do Super Mario escrito em OCaml com fases aleatórias

MariOCaml

Sobre MariOCaml

MariOCaml foi criado na Universidade Cornell por Matthew Hsu, Liam Bui e Ashley Xue como projeto final de um curso de programação funcional, e se tornou um dos projetos de OCaml mais populares no GitHub.

O jogo inteiro — física, inimigos, itens, câmera e renderizador — é escrito em OCaml e compilado para JavaScript com js_of_ocaml, então roda em uma página web comum. Por baixo dos panos há um "diretor" que guarda o estado do jogo e executa o laço principal, enquanto um gerador procedural monta cada fase em uma grade, cuidando para que ela seja jogável.

O resultado parece um jogo do Mario da era do SNES com um toque especial: toda vez que você carrega o jogo, encontra um arranjo diferente de torres de tijolos, nuvens de moedas e Koopa Troopas. Alguns layouts são elegantes, outros são caóticos — esse é o charme de uma fase aleatória.

Controles

EntradaAção
← → ou A DMover
Espaço, ↑ ou WPular
↓ ou SAgachar

Recursos

  • Escrito 100% na linguagem funcional OCaml
  • Gerador aleatório de fases que posiciona blocos, moedas, inimigos e buracos
  • Pontuação, contador de moedas e telas de game over e de vitória
  • Efeitos de partículas quando blocos se quebram e inimigos são esmagados

Dicas

  1. O contador no canto superior esquerdo é a taxa de quadros, não um cronômetro — jogue com calma.
  2. Cascos podem ser chutados contra outros inimigos para render uma sequência de pontos.
  3. Se uma fase for gerada de um jeito estranho, recarregue o frame com o botão de reiniciar para ter um novo layout.

Perguntas frequentes

O que é OCaml?

OCaml é uma linguagem de programação funcional usada na academia e na indústria. O MariOCaml mostra que ela pode alimentar um jogo completo em tempo real quando compilada para JavaScript.

As fases são sempre diferentes?

Sim — a fase é gerada aleatoriamente a cada carregamento, então cada reinício traz um mapa novo.

Quem criou o MariOCaml?

Matthew Hsu, Liam Bui e Ashley Xue. O projeto é de código aberto sob a licença MIT.

Mais jogos para jogar