Parte: 8 — Game design y diseño de niveles · Fuente: Síntesis original sobre emergencia, immersive sims y diseño de posibilidades ⏱️ Duración estimada: 70 min · Nivel: Intermedio
La emergencia es la magia de que pocas reglas simples produzcan un número enorme de situaciones que el diseñador nunca previó. En esta clase estudiarás cómo los immersive sims y los sandbox logran esa profundidad no scriptando cada momento, sino diseñando sistemas que interactúan entre sí de forma consistente.
Aprenderás el diseño de posibilidades: en vez de preguntarte "¿qué hará el jugador aquí?", te preguntas "¿qué reglas cruzadas permito y qué pasa cuando chocan?". Diseñarás tres sistemas simples cuyas interacciones generen comportamiento emergente y las documentarás en una matriz de interacciones, la herramienta clave para razonar sobre este tipo de diseño.
Al finalizar, el alumno podrá:
| # | Tema | Por qué importa |
|---|---|---|
| 1 | Qué es la emergencia | Distingue diseño de sistemas de diseño de contenido |
| 2 | Reglas simples, resultados ricos | La profundidad no exige complejidad de reglas |
| 3 | Sistemas ortogonales | Cuando no se solapan, se combinan mejor |
| 4 | Immersive sims | Referente de máxima interacción de sistemas |
| 5 | Sandbox y espacio de posibilidad | El jugador improvisa sus propias soluciones |
| 6 | Matriz de interacciones | Herramienta para prever y balancear cruces |
| 7 | Consistencia de reglas | La confianza del jugador depende de ella |
Esta clase es de diseño analítico: tu herramienta es la matriz de interacciones (hoja de cálculo, tabla Markdown o papel cuadriculado). No implementarás los sistemas aquí, pero pensarás cómo lo harías en Godot: cada sistema suele modelarse como un componente/nodo que emite y recibe señales (por ejemplo, un Area3D "fuego" que al solaparse con uno "agua" produce "vapor"). Ten presente el patrón de señales de Godot (https://docs.godotengine.org/en/stable/getting_started/step_by_step/signals.html) y el uso de grupos para consultar sistemas afectados.
Diseñarás 3 sistemas simples que interactúen y enumerarás las interacciones emergentes en una matriz. Entregable: tabla de reglas + matriz de interacciones + lista de emergentes.
Paso 1 — Define 3 sistemas ortogonales. Elige un trío clásico (fuego / agua / viento) o crea el tuyo. Para cada uno, declara su regla base:
| Sistema | Regla base | Se propaga a | Estado que crea |
|---|---|---|---|
| Fuego | Quema materiales inflamables adyacentes | Madera, hierba, aceite | Ceniza, calor |
| Agua | Moja y apaga; fluye hacia abajo | Superficies, fuego | Mojado, charco |
| Viento | Empuja objetos ligeros y llamas | Fuego, humo, hojas | Dirección de propagación |
Paso 2 — Rellena la matriz de interacciones. Cruza cada sistema con los demás y anota el resultado emergente:
| ↓ actúa sobre → | Fuego | Agua | Viento |
|---|---|---|---|
| Fuego | — | Se apaga → vapor | Se aviva y avanza |
| Agua | Apaga; crea vapor | — | Se ondula; se dispersa rocío |
| Viento | Propaga el fuego | Empuja el charco | — |
Paso 3 — Lista de emergentes. Deriva situaciones que ningún sistema define por sí solo pero surgen del cruce:
Observa que ninguno de estos comportamientos aparece escrito en la regla base de un sistema aislado: todos nacen del cruce. Esa es la firma de la emergencia — el diseñador define las reglas, el jugador descubre las combinaciones.
Paso 4 — Chequeo de consistencia. Verifica que ninguna interacción sea una excepción especial: si el fuego apaga con agua, debe hacerlo siempre, no solo en la sala scriptada. Marca cada celda como regla general o excepción (evita excepciones).
Un truco útil: para cada celda, pregúntate "¿el jugador esperaría este resultado si conoce las dos reglas por separado?". Si la respuesta es no, o la interacción es un caso especial, o falta comunicar mejor una de las reglas base.
Paso 5 — Boceto de implementación. Para UNA interacción, escribe en pseudo-GDScript cómo se dispararía por señales:
# Boceto: el sistema Fuego reacciona a solaparse con Agua.
func _on_area_entered(otra: Area3D) -> void:
if otra.is_in_group("agua"):
apagar() # regla general, no caso especial
_emitir_vapor(global_position)
Entrega el diseño de 3 sistemas ortogonales con su tabla de reglas, la matriz de interacciones completa (todos los cruces resueltos) y una lista de al menos 4 comportamientos emergentes derivados que no estén definidos explícitamente en ningún sistema individual.
Criterio de aceptación: los 3 sistemas son ortogonales (no redundantes); la matriz tiene todas las celdas de cruce rellenas y marcadas como regla general o excepción; y cada emergente de la lista se puede rastrear a la combinación concreta de reglas que lo produce.
| Síntoma | Causa y arreglo |
|---|---|
| Los sistemas no producen sorpresas | Son redundantes; hazlos ortogonales con efectos distintos |
| Hay reglas "solo aquí" | Excepciones scriptadas; conviértelas en reglas generales |
| El jugador no confía en las reglas | Inconsistencia; aplica cada regla igual en todo contexto |
| La matriz tiene celdas vacías | Interacciones sin definir; decide qué pasa en cada cruce |
| Todo se resuelve de una sola forma | Poca ortogonalidad; añade un sistema que abra rutas nuevas |
| El balance se rompe con una combo | Interacción demasiado potente; ajusta coste o efecto |
¿Emergencia significa caos incontrolable? No: significa variedad dentro de reglas consistentes. El diseñador acota el espacio de posibilidad, no cada resultado.
¿Necesito muchos sistemas para tener emergencia? No. Tres sistemas ortogonales bien cruzados dan más profundidad que diez redundantes. La riqueza está en las interacciones, no en el número.
¿Cómo balanceo algo que no puedo prever del todo? Con la matriz identificas las combinaciones peligrosas y ajustas costes; luego el playtest revela las que se te escaparon.
¿Los immersive sims son el único género emergente? No, pero son el ejemplo más puro. Roguelikes, sandbox y muchos sistémicos comparten el mismo principio de reglas cruzadas.
Clase 168 - Narrativa y storytelling en juegos
Continúa con Clase 170 - Documentación de diseño: GDD y one-pager, donde aprenderás a comunicar y documentar la visión de estos sistemas.