Acerca de MariOCaml
MariOCaml fue creado en la Universidad Cornell por Matthew Hsu, Liam Bui y Ashley Xue como proyecto final de un curso de programación funcional, y acabó convirtiéndose en uno de los proyectos de OCaml más populares de GitHub.
Todo el juego (la física, los enemigos, los objetos, la cámara y el renderizador) está escrito en OCaml y compilado de forma cruzada a JavaScript con js_of_ocaml, así que funciona en una página web normal. Por debajo hay un «director» que gestiona el estado del juego y ejecuta el bucle principal, mientras que un generador procedural construye cada nivel sobre una cuadrícula y se encarga de que siga siendo jugable.
El resultado parece un juego de Mario de la era de SNES, pero con un giro: cada vez que lo cargas te encuentras una combinación distinta de torres de ladrillos, nubes de monedas y Koopa Troopas. Algunas disposiciones son elegantes y otras caóticas: ese es el encanto de un nivel aleatorio.
Controles
| Entrada | Acción |
|---|---|
| ← → o A D | Moverse |
| Espacio, ↑ o W | Saltar |
| ↓ o S | Agacharse |
Características
- Escrito al 100 % en el lenguaje funcional OCaml
- Generador de niveles aleatorios que coloca bloques, monedas, enemigos y huecos
- Pantallas de puntuación, contador de monedas, fin de la partida y victoria
- Efectos de partículas al romper bloques y al aplastar enemigos
Consejos
- El contador de la esquina superior izquierda son los fotogramas por segundo, no un temporizador: tómate tu tiempo.
- Puedes lanzar los caparazones contra otros enemigos para conseguir una cadena de puntos.
- Si un nivel se genera de forma incómoda, recarga el marco con el botón de reinicio para obtener una disposición nueva.


