HPL: Nyarlathotep Rising
Construí un editor visual de narrativa y su sistema de runtime que permitió a los guionistas crear historias lovecraftianas ramificadas y complejas. Trabajé en todo el juego—herramientas, UI, sistemas de guardado y más.
El juego
HPL: Nyarlathotep Rising es una aventura narrativa ambientada en el universo de Lovecraft—piensa en “The Life and Suffering of Sir Brante” pero con horror cósmico. Los jugadores toman decisiones a través de múltiples protagonistas, con consecuencias que se propagan por líneas argumentales ramificadas.
Un juego así depende totalmente de sus herramientas. Los guionistas necesitan crear estructuras narrativas complejas sin esperar a que los programadores implementen cada rama.
Mi rol
Como programador de herramientas y sistemas en un equipo pequeño (3 programadores, 1 artista, 1 guionista), trabajé en todo el juego. Mi foco principal fueron las herramientas narrativas, pero contribuí a casi todos los sistemas.
Qué construí
Editor visual de narrativa
La herramienta de autoría principal que permitió a los guionistas trabajar de forma independiente:
- Editor basado en nodos para construir diálogos ramificados visualmente
- Sistema de condiciones usando expresiones simples (sin necesidad de código)
- Modo preview para probar flujos sin lanzar el juego
- Seguimiento de variables para cordura, relaciones, inventario y flags de historia
Los guionistas podían crear e iterar contenido narrativo sin intervención del programador.
Sistema de runtime
El editor era solo la mitad del problema. También construí el runtime que:
- Lee la salida del editor y ejecuta la lógica narrativa
- Gestiona el estado del juego a través de múltiples protagonistas
- Maneja el flujo entre segmentos de historia, elecciones y consecuencias
Guardado y carga
Los juegos narrativos necesitan sistemas de guardado robustos—los jugadores esperan retomar exactamente donde lo dejaron:
- Serialización completa de estado a través de todas las variables de historia
- Múltiples slots de guardado con aislamiento de datos apropiado
- Carga fiable que restaura el estado exacto del juego
De todo un poco
Equipo pequeño, responsabilidades amplias:
- Implementación de UI frontend
- Efectos de partículas y pulido visual
- Integración de audio
- Sistemas de gameplay generales
El reto
Lo más difícil no fue ningún sistema individual—fue la coordinación. Múltiples equipos remotos, cada uno con su propio ritmo y prioridades. Requisitos que cambiaban. Malentendidos entre zonas horarias.
El juego se publicó. Las herramientas funcionaron. Los guionistas crearon el contenido que habían imaginado.
Qué aprendí
Construir herramientas para no-programadores es una habilidad en sí misma. La satisfacción no es solo ver tu código funcionar—es ver cómo el flujo de trabajo de otra persona mejora gracias a algo que construiste. Es como compartir tu conocimiento de programador, un poco cada día.