MARIO.GAME
es

MariOCaml

Un juego de plataformas de Super Mario escrito en OCaml con niveles aleatorios

MariOCaml

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

EntradaAcción
← → o A DMoverse
Espacio, ↑ o WSaltar
↓ o SAgacharse

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

  1. El contador de la esquina superior izquierda son los fotogramas por segundo, no un temporizador: tómate tu tiempo.
  2. Puedes lanzar los caparazones contra otros enemigos para conseguir una cadena de puntos.
  3. Si un nivel se genera de forma incómoda, recarga el marco con el botón de reinicio para obtener una disposición nueva.

Preguntas frecuentes

¿Qué es OCaml?

OCaml es un lenguaje de programación funcional que se usa tanto en el ámbito académico como en la industria. MariOCaml demuestra que, compilado a JavaScript, puede dar vida a un juego completo en tiempo real.

¿Los niveles son siempre diferentes?

Sí: el nivel se genera de forma aleatoria cada vez que se carga, así que cada reinicio te da un mapa nuevo.

¿Quién creó MariOCaml?

Matthew Hsu, Liam Bui y Ashley Xue. El proyecto es de código abierto con licencia MIT.

Más juegos para jugar