Talently
Talently
AI Game Developer

AI Game Developer

Diseña e implementa los sistemas de inteligencia artificial que dan vida a los mundos, personajes y desafíos de los videojuegos modernos.

Un AI Game Developer es especialista en el diseño e implementación de los sistemas de inteligencia artificial que hacen que los videojuegos se sientan vivos: enemigos que toman decisiones creíbles, compañeros que colaboran inteligentemente, mundos que responden dinámicamente al jugador y sistemas procedurales que generan contenido variado. A diferencia de la IA académica o empresarial, la IA de videojuegos prioriza la apariencia de inteligencia y la experiencia del jugador sobre la optimalidad matemática. Trabaja en estrecha colaboración con game designers, programmers y narrative designers para crear comportamientos que sirven al diseño del juego y enriquecen la experiencia sin comprometer el rendimiento.

Behavior TreesPathfindingUnityUnreal EngineMachine LearningGenerative AI

Recluta al mejor AI Game Developer aquí

Empieza ahora

Responsabilidades Principales

  • Diseñar e implementar sistemas de comportamiento de NPCs usando behavior trees, state machines y utility AI que produzcan comportamientos creíbles y desafiantes.
  • Implementar sistemas de navegación y pathfinding con NavMesh, A* y sus variantes para movimiento de agentes en entornos complejos y dinámicos.
  • Desarrollar sistemas de percepción de IA con modelos de visión, audición y memoria que gobiernan cómo los agentes perciben y responden al entorno.
  • Integrar técnicas de machine learning para comportamientos adaptativos, generación procedural de contenido y personalización de la experiencia.
  • Optimizar los sistemas de IA para que funcionen dentro del frame budget disponible en las plataformas objetivo.
  • Colaborar con game designers para que los comportamientos implementados sirvan al diseño del juego y produzcan la experiencia de juego deseada.

Habilidades Clave

Technical Skills

  • Behavior Trees y Hierarchical State Machines para diseño modular y escalable de comportamientos complejos de NPCs
  • Algoritmos de pathfinding: A*, Dijkstra, NavMesh, flow fields y sus variantes para distintos tipos de entornos y agentes
  • Utility AI y sistemas de toma de decisiones basados en scoring para comportamientos más naturales y emergentes
  • Machine learning aplicado a videojuegos: reinforcement learning para comportamientos adaptativos y redes neuronales para animación procedural
  • Generative AI para contenido de juegos: generación procedural de niveles, narrativa dinámica y diálogos basados en LLMs
  • Optimización de IA en tiempo real: spatial partitioning, LOD de IA, threading de comportamientos y presupuesto de actualizaciones

Soft Skills

  • Comprensión profunda del diseño de juegos para implementar IA que sirve a la experiencia del jugador y no solo a la correctitud técnica
  • Colaboración creativa con diseñadores para encontrar soluciones de IA que producen los comportamientos deseados con el presupuesto técnico disponible
  • Pensamiento en términos de comportamiento emergente: cómo sistemas de reglas simples producen comportamientos complejos e interesantes
  • Capacidad de iterar rápidamente sobre comportamientos de IA basándose en el feedback de playtesting
  • Comunicación clara de las limitaciones y posibilidades de la IA a diseñadores que frecuentemente tienen expectativas no técnicas sobre lo que la IA puede hacer
  • Equilibrio entre la sofisticación técnica y la practicidad: la IA más simple que produce el comportamiento deseado siempre es preferible a la más compleja

Casos de uso reales

Contexto

Los enemigos de combate son el corazón de la experiencia en los juegos de acción. Su IA debe presentar un desafío interesante sin ser injustamente difícil, y sus comportamientos deben ser legibles para que el jugador pueda aprender y mejorar.

Ejemplos reales

  • Enemigos con comportamientos de flanqueo, cobertura y supresión coordinados entre sí
  • Sistema de threat assessment que dirige la atención del enemigo al objetivo más relevante en cada momento
  • Comportamientos de retreat y reagrupamiento cuando el enemigo está en desventaja
  • Balanceo dinámico de la dificultad ajustando los parámetros de IA según el rendimiento del jugador

Contexto

Un sistema de percepción realista hace que el mundo del juego se sienta vivo y consecuente. Los NPCs deben reaccionar de forma creíble a lo que ven, escuchan y recuerdan del jugador.

Ejemplos reales

  • Sistema de visión con conos de detección que considera oclusión, distancia e iluminación del entorno
  • Sistema de memoria de IA que recuerda dónde vio al jugador por última vez y navega hacia ese punto
  • Propagación de alertas entre NPCs cuando uno detecta al jugador en stealth games
  • Sistema de investigación con comportamientos de búsqueda cuando la IA pierde al jugador de vista

Contexto

La generación procedural permite crear cantidades masivas de contenido variado con recursos limitados de producción, desde niveles hasta narrativa y diálogos.

Ejemplos reales

  • Generación procedural de mapas de dungeon con validación de jugabilidad automática
  • Sistema de quest generation que combina objetivos, recompensas y narrativa de forma coherente
  • Diálogos dinámicos generados con LLMs que responden al estado del juego y el historial del jugador
  • Generación de personajes con personalidades, trasfondos y comportamientos procedurales

Contexto

Los juegos de estrategia requieren IA que tome decisiones de alto nivel sobre recursos, construcción y táctica que presenten un desafío real sin hacer trampa en la información.

Ejemplos reales

  • Sistema de planificación estratégica con evaluación de amenazas y oportunidades a nivel de mapa
  • Gestión de recursos y priorización de construcción basada en el estado actual y los objetivos a largo plazo
  • Tactical AI para combate con formaciones, flanqueos y uso del terreno
  • Dificultad escalable que ajusta las capacidades de la IA sin darle información privilegiada

Contexto

Las técnicas modernas de ML y IA generativa abren posibilidades nuevas para comportamientos adaptativos, personalización y generación de contenido que antes requerían producción manual masiva.

Ejemplos reales

  • Reinforcement learning para entrenar NPCs que aprenden a jugar mejor contra el jugador humano
  • Redes neuronales para animación procedural que adapta el movimiento del personaje al terreno en tiempo real
  • LLMs integrados para NPCs con diálogos contextuales que responden a cualquier input del jugador
  • Generación de texturas y assets procedurales con modelos de difusión para variedad visual masiva

Preguntas básicas

Una State Machine es un grafo de estados con transiciones explícitas entre ellos. Simple de entender y predecible, pero escala mal: con muchos estados las transiciones se multiplican y se vuelve difícil de mantener. Un Behavior Tree es una jerarquía de comportamientos con nodos de control (Sequence, Selector, Parallel) y nodos de acción. Escala mejor que la FSM para comportamientos complejos porque los sub-comportamientos son modulares y reutilizables. Usar FSM para comportamientos simples con pocos estados bien definidos (puerta: abierta, cerrada, bloqueada). Usar Behavior Tree para comportamientos complejos con múltiples sub-tareas y prioridades jerarquizadas (enemigo de combate con docenas de posibles comportamientos). Muchos juegos combinan ambos: una FSM de alto nivel (patrulla, alerta, combate) con un BT en cada estado para el comportamiento detallado.
A* busca el camino de menor costo entre dos nodos en un grafo evaluando nodos según f(n) = g(n) + h(n), donde g es el costo desde el inicio y h es la heurística estimada hasta el destino. Garantiza el camino óptimo si la heurística es admisible (nunca sobreestima). Limitaciones en juegos dinámicos: el costo de recalcular el camino en cada frame cuando el entorno cambia. Para entornos altamente dinámicos, D* Lite o Theta* son más eficientes en recalcular caminos parciales. En juegos con muchos agentes, los flow fields calculan el campo de direcciones una sola vez para todos los agentes que van al mismo destino. La NavMesh simplifica el grafo de navegación reduciendo el número de nodos y está optimizada para bipedos humanoides.
Utility AI es un sistema de toma de decisiones donde cada acción posible tiene una función de utilidad que evalúa numéricamente cuán deseable es ejecutarla en el contexto actual. El agente siempre elige la acción de mayor utilidad. A diferencia del BT que tiene una jerarquía fija de prioridades, Utility AI produce comportamientos más naturales y emergentes porque las prioridades son dinámicas y continuas. Un enemigo con Utility AI puede alternar fluidamente entre atacar, cubrirse, curar y llamar refuerzos según qué acción tiene mayor utilidad en cada momento, sin transiciones abruptas. La complejidad de Utility AI es el diseño de las funciones de utilidad: curvas mal calibradas producen comportamientos extraños. Es más costoso de diseñar que un BT pero produce comportamientos más creíbles en agentes con muchas opciones.
El sistema de percepción evalúa si el enemigo puede detectar al jugador combinando múltiples factores. Visión: raycast desde los ojos del enemigo al jugador verificando que no hay obstáculos. Ángulo: el jugador debe estar dentro del cono de visión del enemigo (dot product entre la dirección del enemigo y la dirección al jugador). Distancia: atenuación de la probabilidad de detección con la distancia. Iluminación: si el juego tiene sistema de luz, la iluminación del jugador afecta a la detectabilidad. El resultado es un valor de awareness que aumenta cuando las condiciones de detección se cumplen y disminuye cuando no. El cambio de estado de 'no detectado' a 'alerta' a 'combate' ocurre al cruzar umbrales de awareness. Este modelo produce comportamientos más graduales y creíbles que la detección binaria.
Implementar un presupuesto de tiempo de CPU para la IA y distribuirlo entre todos los agentes activos. No actualizar todos los agentes en cada frame: usar LOD de IA donde los agentes cercanos al jugador se actualizan cada frame, los de media distancia cada dos o tres frames, y los lejanos con menor frecuencia. Para operaciones costosas como pathfinding, distribuirlas en múltiples frames con un sistema de cola asíncrona. Usar spatial partitioning para limitar las queries de percepción a los agentes en el área relevante. Perfilar el costo de la IA con el profiler del motor para verificar que se mantiene dentro del presupuesto antes de cada milestone.
Una IA demasiado óptima produce una experiencia de juego frustrante o no divertida: si el enemigo siempre hace la jugada perfecta, el jugador no tiene oportunidad de aprender ni de ganar con estrategia. La IA de juegos debe parecer inteligente, no ser óptima. Técnicas para humanizar la IA: introducir delays deliberados en la reacción (los humanos no reaccionan instantáneamente), añadir ruido aleatorio en la precisión del disparo, permitir que el enemigo cometa errores predecibles que el jugador puede explotar una vez que aprende el patrón, y ajustar la dificultad reduciendo las capacidades de la IA en lugar de dando información privilegiada al nivel fácil.
Implementar herramientas de visualización de IA desde el inicio del desarrollo: dibujar el cono de visión del enemigo, el camino que está siguiendo, su estado actual y los valores de sus variables en tiempo real en el editor. Los bugs de IA son frecuentemente difíciles de reproducir porque dependen del estado del mundo en un momento específico. Implementar un sistema de logging de eventos de IA que registra las decisiones tomadas con el contexto (estado, inputs, resultado) para poder analizar post-mortem qué ocurrió en un bug reportado. El Gameplay Debugger de Unreal Engine y las herramientas de debug customizables en Unity son fundamentales para diagnosticar problemas de IA en tiempo real.
NavMesh triangula el espacio de navegación en polígonos convexos y A* busca el camino a través de ellos. Eficiente para pocos agentes que van a destinos distintos. Flow field precalcula para cada celda del grid la dirección óptima hacia un destino específico: todos los agentes que van al mismo destino consultan el mismo flow field. Extremadamente eficiente cuando muchos agentes van al mismo objetivo. NavMesh: juegos con pocos NPCs (RPG, FPS), entornos complejos y destinos variables. Flow fields: juegos RTS con cientos o miles de unidades moviéndose hacia el mismo objetivo, o juegos de tower defense. En práctica, muchos juegos usan NavMesh con optimizaciones (steering behaviors para evitar colisiones entre agentes) que escalan mejor de lo que parece sin necesitar flow fields.

Preguntas técnicas

Unreal Engine tiene un sistema de Behavior Tree nativo pero entender su arquitectura interna es la pregunta. El BT se ejecuta desde la raíz hacia las hojas en cada tick. Los nodos Selector prueban sus hijos de izquierda a derecha y tienen éxito al encontrar el primero que no falla. Los nodos Sequence ejecutan sus hijos en orden y fallan al primer hijo que falla. El Blackboard es una memoria compartida de pares clave-valor donde los nodos leen el estado del mundo (posición del jugador, nivel de salud, último punto conocido) sin acoplarse entre sí. Para implementar un BT propio en C++: clase base BTNode con métodos Execute(Blackboard&) que retorna Success, Failure o Running. Las clases derivadas implementan los nodos compuestos y de acción. El nodo Running permite comportamientos asíncronos que se extienden múltiples frames.
La coordinación emergente sin coordinador central usa el entorno compartido como medio de comunicación. Steering behaviors con separación, cohesión y alineación producen movimiento de grupo fluido sin coordinación explícita. Para tácticas más sofisticadas, un Influence Map calcula dónde está el control del jugador y del equipo enemigo: cada enemigo consulta el mapa para tomar decisiones de posicionamiento que naturalmente producen flanqueos y cobertura. El Squad AI limita la comunicación explícita a pocos mensajes de alto nivel: el líder del squad emite una orden de flaquear izquierda y cada agente interpreta la orden según su posición actual. El blackboard compartido de squad permite que los agentes lean el estado de sus compañeros (quién está atacando, quién está cubierto) sin mensajes directos entre ellos.
Usar ML-Agents de Unity o el sistema de entrenamiento de Unreal Engine. Definir el espacio de observación (qué ve el agente: posición del jugador, salud propia, munición, posición de cobertura cercana), el espacio de acciones (mover, disparar, cubrirse, recargar) y la función de recompensa (positiva por dañar al jugador, negativa por recibir daño, positiva por completar el objetivo). El agente aprende mediante PPO o SAC interactuando con el entorno en simulación acelerada. El mayor desafío es el diseño de la función de recompensa: una función mal diseñada produce comportamientos óptimos para la recompensa pero no divertidos para el jugador (el agente puede aprender a campear pasivamente si el reward no penaliza la inactividad). Usar self-play para entrenar contra versiones anteriores del propio agente escalando la dificultad automáticamente.
Un AI Director (como el de Left 4 Dead) monitorea métricas del estado del jugador: salud, recursos, tiempo desde el último encuentro peligroso, y una métrica de intensidad acumulada. Con estas métricas, el director decide cuándo es el momento correcto para añadir más presión (spawner enemigos, generar sonidos amenazantes) y cuándo dar respiro (drop de recursos, reducir spawns). La curva de tensión que el director mantiene sigue el ritmo de un thriller bien escrito: escalada, clímax, y bajada para preparar la siguiente escalada. La implementación técnica es un FSM del director con estados de Build-up, Sustain Peak, Relax y Finale, con transiciones basadas en las métricas del jugador. Cada estado tiene reglas sobre qué puede y no puede spawnear el director para mantener el ritmo deseado.
La integración de LLMs en juegos requiere gestionar el contexto cuidadosamente. El system prompt define la personalidad del NPC, su trasfondo, su relación con el jugador y las restricciones narrativas (no puede revelar información que el jugador no descubrió aún). El contexto de cada conversación incluye el estado actual del juego relevante: quest activa, items del inventario del jugador, reputación del jugador con la facción del NPC. Implementar RAG (Retrieval Augmented Generation) con una base de conocimiento del lore del juego para que el NPC pueda responder preguntas de worldbuilding con consistencia. Gestionar la latencia: las llamadas a la API del LLM tienen latencia de varios segundos que debe ocultarse con animaciones de 'pensando'. Implementar filtros de contenido para prevenir que el LLM produzca respuestas fuera del tono del juego.
Separar la generación de la validación. Generación con BSP (Binary Space Partitioning): dividir recursivamente el espacio en rooms, conectarlas con corredores. Validación: graph search desde el punto de entrada verificando que todos los rooms críticos (jefe, tesoro, salida) son alcanzables. Verificación de dificultad: el número y tipo de encuentros en el camino crítico debe estar dentro del rango diseñado. Si el nivel falla la validación, regenerar con un nuevo seed. Para el balanceo de dificultad, el sistema de placement de encuentros usa un presupuesto de dificultad por sección del nivel: las primeras rooms reciben encuentros de bajo presupuesto, los rooms cerca del jefe reciben los de alto presupuesto. Exponer los parámetros de generación como configuración editable por el game designer.
Inverse Kinematics (IK) es la base de la animación procedural de terreno. Para los pies: raycast desde cada pie hacia abajo para detectar la superficie. Calcular la posición objetivo de cada pie en la superficie y aplicar IK para ajustar la posición de la pierna completa. El sistema de Two-Bone IK en Unity o el Full Body IK de Unreal ajustan automáticamente la cadera para mantener el equilibrio cuando los pies están a alturas distintas. Para la colocación de manos en paredes al apoyarse o en objetos al interactuar, usar IK con targets definidos por el diseñador o detectados automáticamente con raycasts. La clave es que la animación base de locomoción sigue siendo keyframed para calidad artística; el IK solo ajusta las extremidades para que contacten correctamente con el entorno real.
La clave es ajustar parámetros que tienen impacto en la dificultad pero no son visibles para el jugador. Parámetros ajustables sin que el jugador lo note: tiempo de reacción del enemigo (más lento en fácil), tamaño del cono de visión y detección, precisión del disparo con varianza configurable, agresividad del pathfinding (el enemigo puede tomar rutas subóptimas deliberadamente), y tiempo que tarda el enemigo en recuperarse del daño. Parámetros que el jugador sí nota y que deben evitarse para scaling invisible: HP del jugador inflada artificialmente, daño del enemigo reducido a la mitad, spawner de recursos adicionales solo cuando el jugador está bajo de salud. Dynamic Difficulty Adjustment (DDA) implementado correctamente mejora la retención sin que el jugador sienta que el juego está siendo condescendiente.

Preguntas avanzadas

Los sistemas de vida simulada (como en The Sims o Dwarf Fortress) requieren una arquitectura de IA de múltiples capas. Capa de need simulation: cada NPC tiene necesidades (hambre, sueño, sociabilidad) que aumentan con el tiempo y generan motivaciones. Capa de goal selection con Utility AI: el NPC elige el objetivo que mejor satisface sus necesidades actuales. Capa de schedule: rutinas diarias que definen el comportamiento esperado a cada hora, interrumpibles por eventos. Capa de memoria: el NPC recuerda eventos significativos con el jugador con decaimiento temporal. Para escalar a cientos de NPCs, usar simulación de nivel de detalle: los NPCs fuera del área cargada se simulan en un modelo simplificado sin física ni pathfinding real, actualizando solo sus needs y schedule. Al entrar en el área cargada, el NPC se sincroniza con el estado de la simulación simplificada.
Las métricas de IA de juegos son distintas a las de IA técnica. Métricas de experiencia del jugador: win rate por nivel de dificultad (debe estar en un rango de desafío apropiado), tiempo de vida del jugador por encuentro (muy corto indica IA demasiado letal, muy largo indica IA demasiado pasiva), número de retries por sección (indicador de frustración), y engagement metrics post-encuentro (el jugador continúa jugando o abandona). Métricas de comportamiento de IA: variedad de comportamientos exhibidos (si la IA siempre hace lo mismo, es predecible y aburrida), frecuencia de estados no alcanzados (si ciertos estados del BT nunca se activan, están mal diseñados), y coherencia narrativa (los NPCs hacen cosas que tienen sentido en el contexto del mundo). Las sesiones de playtesting con observación directa son más reveladoras que las métricas solas.
La IA generativa en tiempo de ejecución para juegos requiere guardrails cuidadosos. Para narrativa dinámica: definir un conjunto de templates narrativos con los arquetipos del mundo y dejar que el LLM rellene los detalles dentro de esos templates, no genere la estructura. Para quests dinámicas: un sistema de quest grammar genera la estructura (objetivo, antagonista, recompensa) y el LLM genera el flavor text y los diálogos. Para assets procedurales con IA: generación en tiempo de compilación del juego, no en tiempo de ejecución del jugador, para garantizar calidad y consistencia. Los mayores riesgos son la incoherencia de tono (el LLM produce texto que no suena al mundo del juego), el contenido inapropiado (filtros de contenido obligatorios), y la latencia (las llamadas a APIs externas no son aceptables en el gameplay crítico).
La IA de juegos de estrategia históricamente hace trampa accediendo a información que el jugador no tiene (posición de todas las unidades bajo fog of war). Un sistema de IA sin trampa requiere que el agente mantenga su propio modelo del mundo basado solo en lo que sus unidades han observado. Implementar un sistema de inteligencia simulada: las unidades de la IA tienen un rango de visión que descubre el mapa gradualmente como el jugador. La IA mantiene un mapa de probabilidades de dónde están las unidades enemigas basado en sus últimas observaciones y en inferencias del comportamiento del jugador. Para ser competitiva sin trampa, la IA necesita compensar con mejor planificación táctica y mayor consistencia de ejecución, no con información privilegiada. Esto produce una IA más interesante de jugar contra porque el jugador puede engañarla con desinformación.
La memoria narrativa de NPCs requiere un sistema de eventos semánticos que registra las acciones significativas del jugador con metadatos: qué ocurrió, dónde, cuándo, quién estaba presente. Los NPCs tienen acceso a los eventos que están dentro de su grafo social (lo que saben directamente y lo que les contaron sus contactos). Al generar diálogos, el sistema de diálogo consulta la memoria del NPC y filtra los eventos relevantes para el contexto actual. La coherencia temporal es el mayor desafío: los NPCs deben recordar el contexto temporal correcto (si el jugador traicionó a la facción hace tres horas de juego, el NPC debe saberlo si tiene razón para saberlo). Implementar un sistema de rumor spreading que propaga los eventos a través de la red social de NPCs con un delay realista produce el efecto de que el mundo reacciona gradualmente a las acciones del jugador.
Las técnicas clásicas (BT, Utility AI, FSM) tienen ventajas claras en producción: comportamiento predecible y debuggeable, sin necesidad de datos de entrenamiento, control total del diseñador sobre los comportamientos específicos, y costo computacional determinístico y bajo. Machine learning produce comportamientos más naturales y adaptativos, pero tiene costos reales: tiempo y datos de entrenamiento significativos, comportamiento difícil de predecir y debuggear, posibilidad de comportamientos no deseados que son difíciles de eliminar sin reentrenar, y mayor costo computacional de inferencia. En la mayoría de los juegos en producción, las técnicas clásicas bien diseñadas producen mejor resultado con menor riesgo que ML. ML está justificado cuando el comportamiento requerido es imposible de codificar manualmente (física de movimiento realista, juego competitivo de alto nivel) o cuando la variedad adaptativa es el core del juego. La combinación más frecuente es BT clásico para estructura de decisiones con componentes de ML para subsistemas específicos.

Errores comunes en entrevistas

El ML en videojuegos tiene costos reales: tiempo de entrenamiento, comportamiento no determinístico, dificultad de debugging, y mayor costo computacional. Un AI Game Developer que propone reinforcement learning para un enemigo de patrulla simple demuestra desconexión entre la solución técnica y el problema real. Los entrevistadores con experiencia en producción preguntan por qué ML en lugar de un BT bien diseñado.
Una IA técnicamente perfecta que produce comportamientos que el jugador no puede entender ni predecir genera frustración. Los NPCs deben comunicar sus intenciones con animaciones de anticipación, sonidos, y señales visuales que permiten al jugador reaccionar. Un AI Game Developer que no menciona la legibilidad del comportamiento está pensando solo como ingeniero, no como diseñador de experiencias.
Los bugs de IA son los más difíciles de diagnosticar sin visualización en tiempo real. Un candidato que describe problemas de IA que resolvió revisando código en lugar de con herramientas de visualización de conos de visión, estados activos y paths demuestra que trabaja a ciegas. Los entrevistadores de estudios con sistemas de IA complejos consideran las herramientas de debug como parte del sistema de IA, no como un extra.
La IA más sofisticada no tiene valor si no cabe en el frame budget. Un AI Game Developer que describe sistemas de IA sin mencionar su costo computacional ni cómo lo gestionó demuestra que trabaja sin conciencia del rendimiento. Los entrevistadores de estudios con plataformas con restricciones de rendimiento (consolas, móvil) preguntan específicamente cuánto tiempo de CPU consumían los sistemas de IA descritos.
La IA de videojuegos optimiza la experiencia del jugador, no la optimalidad matemática. Un candidato que describe la IA de juegos con el mismo lenguaje que la IA de machine learning empresarial (optimizar métricas, minimizar pérdida) sin mencionar game feel, legibilidad del comportamiento y diversión demuestra que viene de un background distinto y que puede no transferir bien al dominio de videojuegos.
La sofisticación técnica de un sistema de IA no tiene valor intrínseco en videojuegos. Un BT de 200 nodos que produce comportamientos que el jugador no nota es peor que un BT de 20 nodos con comportamientos memorables. Un candidato que no puede conectar sus implementaciones técnicas con momentos específicos de experiencia del jugador está describiendo ingeniería, no diseño de experiencias.