Diseñando el estado del juego
Todo mundo interesante lleva la cuenta de algo. Battle Royale sigue a 40 estudiantes y quién sigue vivo. Sakura Season lleva tres arcos de relación separados. Wandering Diary sigue a la vez la actitud de los compañeros, el inventario y el estado de cada lugar.
Lo básico sobre los tipos de variable, las Reglas de comportamiento y el Seguimiento preciso está en Variables.
La decisión creativa: ¿qué deberías seguir?
Antes de añadir nada, pregúntate: ¿qué necesita sentir el jugador como real?
En un juego de supervivencia, la respuesta son los recursos: salud, hambre, munición. El jugador necesita sentir la escasez. En un romance, es la profundidad de la relación: el jugador necesita sentir que sus elecciones están construyendo algo. En un misterio, son las pistas conseguidas: el jugador necesita sentir que la investigación se va cerrando.
No necesitas una variable para todo. La IA maneja perfectamente los detalles narrativos por su cuenta: no hace falta una variable current_weather salvo que el clima importe en la mecánica. Sigue las cosas que mueven decisiones y consecuencias.
Una buena regla general: si el valor debería afectar a lo que la IA escriba después, conviértelo en variable. Si solo es ambientación, deja que la IA improvise.
Cómo viven y mueren las variables
Defines una variable en el lienzo (tipo, valor inicial, rango). Se inicializa con su valor inicial cuando un jugador empieza una sesión nueva. Durante la partida puede cambiar de varias formas: el ayudante de Seguimiento preciso después de cada respuesta, las directivas con corchetes de la IA (para las variables sin Seguimiento preciso), los comportamientos, los botones de la interfaz del jugador y las fórmulas que se recalculan a partir de otras variables. El estado completo del juego se guarda al final de cada turno.
Si añades una variable nueva a un mundo que ya se está jugando, las partidas guardadas reciben automáticamente el valor inicial la próxima vez que se cargan. Si eliminas una variable, desaparece sin más. Puedes ir ajustando el diseño de tus variables sin romper la partida de nadie.
Elegir el tipo correcto
Los cuatro tipos de variable se explican en Variables. En el lienzo se llaman Número, Texto, Interruptor y Lista / tabla (number, string, boolean y json en los datos de la carta). La decisión de diseño es cuál usar en cada caso, porque afecta a cómo interactúa la IA con tu mundo.
Número cuando el valor cambia poco a poco, necesitas umbrales para eventos o importa la magnitud del cambio. El motor hace respetar el mínimo y el máximo de los números, así que no tienes que gastar espacio del prompt diciéndole a la IA "no dejes que la salud baje de cero".
Texto cuando el valor es una etiqueta y no una cantidad: lugares, estados de ánimo, fases de la historia. Dale Valores permitidos cuando haya un conjunto fijo (fases, estados de ánimo): así el Seguimiento preciso solo elige de esa lista. No uses Texto para valores de dos estados (cerrado/abierto); usa un Interruptor.
Interruptor cuando algo ha pasado o no. Es el tipo más simple, el más fácil de llevar para la IA y la condición ideal para el lore condicional y los comportamientos.
Lista / tabla cuando una sola variable necesita datos estructurados: inventarios con propiedades de cada objeto, mapas de facciones con varias relaciones, registros de misiones con progreso anidado. No la uses para valores simples: [health: -10] es más fiable que [stats.health: -10]. El Seguimiento preciso no funciona con este tipo, así que la IA lo cambia con directivas.
Escribir reglas de comportamiento: la fórmula de las cuatro preguntas
Las mismas Reglas de comportamiento las lee la IA que escribe la historia, o el ayudante de Seguimiento preciso cuando está activado. En los dos casos, unas buenas reglas de comportamiento responden a cuatro preguntas:
1. ¿Qué significan los valores? Dale a la IA una leyenda. Para los números, describe qué representa cada rango en la historia. Para el texto, enumera los estados válidos. Para los interruptores, explica qué significan activado y desactivado en la historia.
2. ¿Qué provoca un cambio? Concreta las situaciones. "Las interacciones amables suben la afinidad" está bien para una variable de relación. "El daño físico baja la salud" sirve para los HP. Cuantos más ejemplos des, más constante será la IA.
3. ¿Cuánto debería cambiar? Aquí es donde la mayoría de los creadores se quedan cortos. Da rangos de magnitud. Los momentos pequeños deberían producir cambios pequeños, y los grandes eventos, cambios grandes. Sin esta guía, la IA tiende a pasarse (cada interacción es +20 de afinidad) o a quedarse corta (una experiencia casi mortal cambia la salud en 2).
4. ¿Cuáles son los límites? Limita el cambio máximo por turno. Así evitas saltos bruscos que rompen la inmersión. Con el Seguimiento preciso activado, rellena Máximo que sube por turno y Máximo que baja por turno y el motor los hace cumplir. Sin él, escribe el límite en las Reglas de comportamiento: "Nunca cambies más de 15 en un turno."
TIP
De dos a cuatro frases suele bastar. Si tus reglas de comportamiento ocupan más que un párrafo corto, simplifica. Dale a la IA la idea y los límites, no un reglamento.
Algunas cosas que conviene saber
La operación delete elimina una clave de un objeto JSON o un elemento de un array JSON. Funciona con la sintaxis normal de corchetes: [npcs: delete "aria"] (texto entre comillas para una clave de objeto) o [inventory: delete 0] (número para un índice de array). La única trampa: delete necesita detrás un valor con forma JSON; la forma suelta [var: delete] se interpreta como un set implícito y escribe el texto literal "delete" en la variable, que casi nunca es lo que quieres. Para borrar varias cosas a la vez o borrar elementos de un array por id, también sirve un bloque JSON Patch <UpdateVariable> (mira Directivas y Macros de IA).
Patrones reales de mundos publicados
Seguimiento de relaciones
Sakura Season usa una variable numérica por heroína, con reglas de comportamiento que especifican rangos de magnitud. Es el enfoque más simple y funciona bien con 2-5 personajes.
La alternativa: un único objeto JSON con todas las relaciones.
{
"aria": { "trust": 50, "romance": 0, "met": true },
"kael": { "trust": 30, "romance": 0, "met": false }
}Esto queda más ordenado cuando tienes muchos personajes, porque la IA puede actualizar cualquiera con una ruta de punto ([relationships.aria.trust: +10]) y puedes añadir personajes nuevos fusionando una clave nueva. La contrapartida: las variables numéricas sueltas son más fáciles de entender para la IA, más difíciles de estropear y pueden usar el Seguimiento preciso.
Elige variables separadas cuando tengas 2-5 personajes y quieras la máxima fiabilidad. Elige un objeto JSON cuando tengas muchos personajes o necesites añadir nuevos sobre la marcha.
Sistemas de inventario
El inventario más simple es una variable de Texto a la que la IA añade cosas con append; Battle Royale lleva así su lista de muertos. Para un inventario completo con propiedades de cada objeto, usa un array JSON:
[
{"id": "torch", "name": "Torch", "qty": 1},
{"id": "bread", "name": "Bread", "qty": 2}
]Para añadir objetos se usa push. Para quitarlos, delete con un índice. Las reglas de comportamiento deben decirle a la IA qué enfoque usar:
Usa push con un objeto completo para añadir objetos. Para quitar un objeto, usa delete con el índice del array. Límite del inventario: 10 objetos. Cuando se alcance el límite, el personaje tiene que soltar algo primero.
Estado de ubicación y escena
Una variable de Texto llamada location (valor inicial: "starting village") suele ser todo lo que necesitas. La ubicación del jugador cambia cuando viaja (la IA escribe [location: set "dark forest"], o el Seguimiento preciso elige entre los Valores permitidos), y el lore condicional sobre location envía la descripción de escena que toca.
Para mundos más complejos que siguen varios aspectos de una escena, usa un objeto JSON:
{
"area": "castle",
"room": "throne-room",
"time": "night",
"alert-level": "high"
}La IA puede actualizar aspectos concretos: [scene.alert-level: set "low"] después de pasar a escondidas junto a los guardias.
La sintaxis completa de las directivas, con las 9 operaciones, la trampa de la abreviatura y la notación de ruta de punto para variables JSON, está en Directivas y Macros de IA.
Errores comunes
Seguir demasiadas cosas. No necesitas una variable para todo. Si la IA puede llevar algo en la narración sin un número detrás, sáltate la variable. Cada variable que añades es más estado que la IA tiene que leer y mantener coherente. La mayoría de los buenos mundos siguen 5-15 cosas; muy pocos necesitan 50.
Reglas de comportamiento vagas. "Lleva la cuenta de la salud" no le dice nada a la IA. "Baja 5-15 con golpes leves, 15-25 con golpes fuertes, 0 = escena de muerte" le dice todo lo que necesita. Las reglas de comportamiento marcan la diferencia entre una variable que funciona y una que se ignora.
Usar JSON cuando bastaría un tipo simple. Si solo necesitas un número, usa un número. [health: -10] es más simple y fiable que [stats.health: -10]. Deja JSON para datos que de verdad tienen estructura.
Olvidar el mínimo y el máximo de los números. Sin límites, la IA podría llevar la salud a -47 o el oro a 999.999. Pon un Rango a cada variable numérica. El motor recorta el valor automáticamente.
No probar la magnitud. Juega 10 turnos y comprueba si los números se sienten bien. Si la afinidad salta de 15 a 80 en tres interacciones, tus rangos son demasiado generosos. Si apenas se mueve tras 20 turnos, son demasiado estrechos. Este turno → Cada valor, en una prueba, te enseña por qué se movió o no cada valor.
Poner IDs difíciles para la IA. Usa IDs simples y legibles como health, player-gold, aria-trust (el ID de una variable está en Avanzado, dentro de sus ajustes). Evita espacios, caracteres especiales o nombres que choquen con macros integradas (user, char, time, date). Si quieres escribir el valor en el lore como {{macro}}, usa guiones bajos en vez de guiones (player_gold): los IDs con guiones, incluidos los aleatorios que reciben las variables nuevas, no funcionan como macros.
Consulta también
- Directivas y Macros de IA: sintaxis de las directivas, las 9 operaciones, rutas de punto y la trampa de la abreviatura
- Cómo escribir buenas entradas: lore condicional que reacciona a tus variables
- Comportamientos y automatización: comportamientos que se disparan cuando las variables cruzan umbrales
Esquema completo de variables → Especificación del mundo: Variables
