10 puntos por GN⁺ 2025-06-08 | 1 comentarios | Compartir por WhatsApp
  • Es una biblioteca ligera de JavaScript diseñada para que incluso usuarios con poca experiencia en programación puedan crear videojuegos fácilmente
  • Es ideal para desarrollar juegos narrativos, es decir, juegos centrados en la narración
  • Ofrece una experiencia de creación de juegos sin programación compleja gracias a una estructura de código intuitiva y una API sencilla
  • Como todo (sprites, diálogos, sonido, interacciones) se crea con código, es posible guardar el juego completo en un solo archivo

Características y ventajas principales

  • Incluso desarrolladores principiantes o personas no técnicas pueden crear juegos narrativos con código JavaScript simple
  • A diferencia de los frameworks grandes, ofrece un tamaño muy reducido y facilidad de uso
  • Destaca en historia e interacción, como juegos basados en elecciones, contenido interactivo y experiencias de desarrollo visual

Para quién es útil

  • Puede ser útil para principiantes en desarrollo de juegos o para quienes buscan crear prototipos rápidamente: startups, profesionales de TI, desarrolladores y creadores
  • Es una herramienta más adecuada para experimentar ideas, contenido interactivo y desarrollo narrativo que para gráficos complejos o juegos de gran escala

El desarrollo del juego comienza con createGame()

createGame({  
  player: {  
    sprite: 7,  
    position: [2, 5]  
  },  
  map: `  
    ########  
    #......#  
    #..X...#  
    #......#  
    ########  
  `,  
  templates: {  
    X: {  
      sprite: 4,  
      dialog: 'Hello, adventurer!'  
    }  
  }  
})  

1 comentarios

 
GN⁺ 2025-06-08
Opiniones en Hacker News
  • Me da curiosidad por qué el título dice ‘...for narrative games’
    En la página oficial de la librería no se menciona ‘narrative’ para los juegos
    Hay confusión sobre qué significa ‘narrative game’
    Los juegos de ejemplo no encajan con mi definición de ‘narrative game’
    No veo mucha relación entre lo que aparece en Google al buscar ‘narrative game’ y los juegos de ejemplo
    Si existe una definición ampliamente aceptada de ‘narrative game’, me pregunto qué funciones ofrece esta librería específicamente para crearlos en comparación con otros motores de juego

    • Anoche se me ocurrió una idea para un juego de aventura basado en texto
      La idea sería cumplir misiones cotidianas de adulto, como pagar impuestos, ir a trabajar y limpiar la casa
      Si haces menos de esas cosas, la vida se vuelve más difícil; si haces más, se vuelve más fácil
      El objetivo final es morir sin deudas

    • Creo que la idea de esta herramienta es permitir crear juegos de aventura simples de forma declarativa usando texto y diálogo
      No está pensada para centrarse en mecánicas como un motor de juego general tipo Pico-8
      Es fácil crear mapas, moverse entre mapas, agregar NPC, diálogos y activadores de texto
      Los motores orientados a no programadores (como RPGMaker) son parecidos: la mayoría de los usuarios hace juegos centrados en mapas y activadores, con texto y diálogo, sin mecánicas complejas aparte
      Creo que esta herramienta destaca precisamente por facilitar este tipo de juegos ‘narrativos’

    • En la documentación oficial de introducción:
      ‘Odyc.js es una biblioteca de JavaScript pequeña y ligera diseñada para crear juegos narrativos combinando píxeles, sonido, texto y un poco de lógica’

    • Yo habría asumido naturalmente que era un motor para aventuras de texto

    • Solo en la versión francesa del sitio hay dos ejemplos más etiquetados como ‘narrative’
      Usé ese término porque, por su estructura por turnos y su enfoque en mensajes, prompts y diálogos, me pareció adecuado para juegos ‘narrativos’ o basados en texto
      Pero si alguien tiene una mejor idea para la etiqueta, con gusto la cambio

  • The Magic Mushroom está buenísimo
    Enlace

    • Hasta ahora, este es el que más me gusta
      Enlace

    • El juego de John Wick se siente como un resumen de las películas recientes
      Enlace

  • Me gusta mucho esta forma de estructurarlo
    He hecho varios motores de juego en JavaScript y probado distintos experimentos, y esto ocupa un punto perfecto entre ‘necesito terminar algo rápido para niños en menos de 2 horas’ y ‘quiero entender bien la estructura a fondo’
    Espero hacer algunos juegos rápidos con esto para mantener entretenidos a niños en entornos de bajo ancho de banda

  • Se siente como una herramienta muy simpática
    En concreto, creo que sería buena para enseñar a niños (algo así como el pygame de esta época)
    Scratch y similares están diseñados para niños de 5 años, así que el contenido de programación termina siendo demasiado básico
    Esta herramienta se ve perfecta para estudiantes de alrededor de 10 años
    Pueden aprender manipulación simple de cadenas, algunos trucos de sintaxis e implementar un side scroller básico con NPC
    Luego, cuando estén listos, también puede servir para aprender flujo de control
    Si alguien aprende esto y considera abrir clases para niños o invertir en un espacio tipo playground, incluso podría venderse de forma realista
    Desde otro ángulo, también valdría la pena experimentar con generación procedural básica de assets de juego usando esta herramienta

  • Comparten este ejemplo de código: game.prompt(“Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?”, “Yes”, “No”);

    • Ejemplo usando este código: await game.openDialog(“Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?”)
      game.prompt( “Yes”, “No”)

    • ¿No era un solo huevo? ¿Cómo se convirtió en cuarenta? Esa es la duda

  • Lo califican como un proyecto realmente inspirador
    Confirman que es open source, pero señalan que falta la licencia, así que no queda claro hasta qué punto otros desarrolladores pueden hacer fork, modificarlo y redistribuirlo
    Quieren publicar también un fork traducido a su idioma nativo (dejando el crédito, por supuesto) y preguntan si eso estaría bien
    En su país, menos del 5% de la población habla inglés

    • Agradecen el comentario y dicen que van a agregar una licencia (tipo MIT)
      Preguntan cuál es su idioma nativo
      Explican que aplicar traducciones en idiomas de izquierda a derecha es sencillo
      Será bienvenido cualquier fork, PR o acercamiento para ayudar a mejorar la accesibilidad
  • Esto está increíble
    Era exactamente lo que necesitaba hace apenas 12 horas
    Por coincidencia, anoche me quedé dormido mientras hacía por primera vez assets para un juego narrativo romántico de 3 niveles para una sola persona
    Nunca antes había desarrollado un juego
    Y en la mañana vi en HN que una librería JS para juegos narrativos había llegado al puesto #1
    FTR, mi juego es un juego de simp, y lo estoy usando para pedirle formalmente ser pareja a alguien con quien he estado saliendo

    • Me parece una idea genial
      Tuve una experiencia parecida: hace poco recreé por completo en HTML la interfaz del chat de MSN de 2005 para darle a alguien una dosis de nostalgia
      Fue una experiencia realmente cálida

    • Buena idea
      Ojalá pudiera ayudarte más
      De verdad creo que esta herramienta encaja perfecto con ese caso de uso
      Espero que te salga muy bien

    • Que te guste alguien y quieras pasar tiempo con esa persona, o mostrar interés, no es algo que deba llamarse ‘simp’
      Me parece una propuesta muy cálida y considerada

  • Me da la impresión de que es parecido a puzzlescript

    • PuzzleScript es buenísimo, y dentro de la misma familia de motores pequeños también recomiendo crisp-game-lib
  • Se ve como una herramienta realmente genial

  • No tiene que ver con esta librería, pero me interesa cómo funciona el canvas video recorder aplicado en el playground
    Me gustaría implementarlo yo mismo