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
| Entrada | Ação |
|---|---|
| ← → ou A D | Mover |
| Espaço, ↑ ou W | Pular |
| ↓ ou S | Agachar |
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
- O contador no canto superior esquerdo é a taxa de quadros, não um cronômetro — jogue com calma.
- Cascos podem ser chutados contra outros inimigos para render uma sequência de pontos.
- Se uma fase for gerada de um jeito estranho, recarregue o frame com o botão de reiniciar para ter um novo layout.


