UNITY
Gameplay & Systems Programming
EVALUACION TECNICA AVANZADA
Test + Cuaderno de Trabajo
Nombre: ___________________________________
Fecha: ____________________________________
63 preguntas | 3 niveles de dificultad | Multiples formatos
INDICE DE CONTENIDOS
Sec. Tema Preguntas
1 Arquitectura y Patrones de Diseno Preguntas 1-7
2 Gameplay Systems Preguntas 8-14
3 State Machines y AI Preguntas 15-18
4 Input Systems y Control Preguntas 19-21
5 Fisica y Colisiones Preguntas 22-25
6 Animacion y Gameplay Feel Preguntas 26-29
7 ScriptableObjects Preguntas 30-32
8 Optimizacion y Profiling Preguntas 33-37
9 Tools Programming y Editor Extensions Preguntas 38-42
10 Event-Driven Systems Preguntas 43-45
11 Combat Systems Preguntas 46-48
12 Saving, Serializacion y Persistencia Preguntas 49-51
13 Coroutines, Async/Await y Jobs Preguntas 52-55
14 UI Systems Preguntas 56-57
15 Conceptos Transversales Preguntas 58-63
-- Autocorreccion, Checklist y Reflexion Final
Instrucciones: Este documento esta disenado como una herramienta de autoevaluacion y aprendizaje.
Responde cada pregunta con la mayor profundidad posible. Si no conoces la respuesta, investiga y
documentalo en la seccion de reflexion final. El objetivo no es aprobar, sino detectar areas de mejora.
Niveles: [INTERMEDIO] = Conocimiento solido esperado. [AVANZADO] = Profundidad y experiencia
practica. [EXPERTO] = Dominio avanzado, diseno de sistemas complejos.
Formatos: Desarrollo (respuesta escrita), Test (opcion multiple), Razonamiento (analisis critico), Diseno
de sistemas (arquitectura), Deteccion de errores (code review).
Unity Gameplay & Systems Programming Assessment | Pagina 2
SECCION 1: Arquitectura y Patrones de Diseno
Pregunta 1 [INTERMEDIO] Arquitectura y Patrones de Diseno | Desarrollo
Explica las diferencias fundamentales entre el patron Singleton y el Service Locator en el contexto de
Unity. Indica en que situaciones preferirías uno sobre el otro y que problemas puede causar un uso
excesivo de Singletons en un proyecto de mediana escala.
Pregunta 2 [INTERMEDIO] Arquitectura y Patrones de Diseno | Desarrollo
Describe el patron Observer y como se implementa nativamente en C# usando events y delegates. Pon
un ejemplo de uso practico en un sistema de gameplay (por ejemplo, un sistema de vida del jugador que
notifique a la UI, al audio y al sistema de logros).
Pregunta 3 [AVANZADO] Arquitectura y Patrones de Diseno | Desarrollo
Compara la arquitectura basada en herencia vs la basada en composicion para definir entidades de
gameplay (enemigos, NPCs, objetos interactivos). Explica los trade-offs en escalabilidad, mantenibilidad y
rendimiento. Pon un ejemplo concreto donde la herencia falle y la composicion sea superior.
Unity Gameplay & Systems Programming Assessment | Pagina 3
Pregunta 4 [AVANZADO] Arquitectura y Patrones de Diseno | Razonamiento
Un companero te propone usar un Singleton global para el GameManager, el AudioManager, el
UIManager, el SaveManager y el PoolManager. Cada uno accede directamente a los demas a traves de
sus instancias estaticas. Identifica al menos 4 problemas arquitectonicos de esta decision y propone una
alternativa mas escalable.
Pregunta 5 [EXPERTO] Arquitectura y Patrones de Diseno | Diseno de sistemas
Disena la arquitectura de alto nivel de un sistema de gameplay modular que permita anadir nuevas
mecanicas (dash, doble salto, wall run, grapple) sin modificar el codigo existente del PlayerController.
Describe los patrones que usarias (Strategy, Command, etc.), como se comunicarian los modulos, y como
garantizarias que el sistema sea testeable y extensible.
Pregunta 6 [AVANZADO] Arquitectura y Patrones de Diseno | Test
Cual de las siguientes afirmaciones sobre el patron Command en gameplay es CORRECTA?
■ a) Solo sirve para implementar sistemas de input.
■ b) Permite encapsular acciones como objetos, facilitando undo/redo, replay y buffering de inputs.
■ c) Es incompatible con el patron Observer.
■ d) Requiere obligatoriamente el uso de interfaces genericas en C#.
Pregunta 7 [EXPERTO] Arquitectura y Patrones de Diseno | Desarrollo
Explica en detalle como implementarias un sistema de Dependency Injection ligero en Unity sin usar
frameworks externos (como Zenject/VContainer). Describe el flujo de resolucion de dependencias, como
Unity Gameplay & Systems Programming Assessment | Pagina 4
gestionarias el ciclo de vida de los servicios y que ventajas ofrece frente a acceso directo por Singleton.
Unity Gameplay & Systems Programming Assessment | Pagina 5
SECCION 2: Gameplay Systems
Pregunta 8 [INTERMEDIO] Gameplay Systems | Desarrollo
Describe como implementarias un sistema de vida (Health System) reutilizable que pueda usarse tanto
para el jugador como para enemigos, NPCs y objetos destructibles. Incluye consideraciones sobre
eventos, inmunidad temporal y death handling.
Pregunta 9 [AVANZADO] Gameplay Systems | Diseno de sistemas
Disena un sistema de combo para un juego de accion. El sistema debe: detectar secuencias de inputs
dentro de ventanas de tiempo, encadenar ataques con diferentes propiedades (dano, knockback,
velocidad), permitir cancelaciones (cancel windows), ser extensible para nuevos combos sin recompilar.
Describe la arquitectura, estructuras de datos y flujo.
Pregunta 10 [AVANZADO] Gameplay Systems | Deteccion de errores
Analiza el siguiente pseudocodigo de un sistema de dano y detecta los problemas:
public void TakeDamage(float amount) {
health -= amount;
if (health <= 0) {
Die();
}
OnDamaged?.Invoke(amount);
StartCoroutine(InvulnerabilityFrames());
}
public void Die() {
Destroy(gameObject);
OnDeath?.Invoke();
Unity Gameplay & Systems Programming Assessment | Pagina 6
}
Pregunta 11 [EXPERTO] Gameplay Systems | Diseno de sistemas
Disena un Ability System inspirado en GAS (Gameplay Ability System) simplificado para Unity. Debe
soportar: habilidades activas y pasivas, cooldowns, costes de recurso, tags de gameplay (para
bloquear/permitir habilidades segun estado), efectos que modifican stats (buffs/debuffs con stacking), y
prediccion basica para netcode. Describe la arquitectura de clases, el flujo de activacion y los puntos de
extension.
Pregunta 12 [INTERMEDIO] Gameplay Systems | Test
En un sistema de inventario, cual es la principal ventaja de usar ScriptableObjects para definir los
ItemData?
■ a) Ocupan menos memoria porque se comparten por referencia en vez de duplicarse por
instancia.
■ b) Se serializan automaticamente a JSON sin codigo adicional.
■ c) Son mas rapidos que MonoBehaviours porque no usan el Update loop.
■ d) Permiten usar herencia multiple en C#.
Pregunta 13 [AVANZADO] Gameplay Systems | Desarrollo
Unity Gameplay & Systems Programming Assessment | Pagina 7
Explica como implementarias un sistema de Inventory con soporte para: slots con capacidad maxima
(stacking), diferentes tipos de items (equipables, consumibles, quest items), filtrado y ordenacion, y
serializacion para guardado. Que estructuras de datos usarias y por que?
Pregunta 14 [EXPERTO] Gameplay Systems | Desarrollo
Describe como implementarias un Quest System modular que soporte: quests lineales y ramificadas,
objetivos compuestos (kill X, collect Y, go to Z), dependencias entre quests, estados persistentes entre
sesiones, y un editor visual para disenadores. Que patrones y estructuras usarias? Como manejaras la
comunicacion entre el Quest System y los demas sistemas del juego?
Unity Gameplay & Systems Programming Assessment | Pagina 8
SECCION 3: State Machines y AI
Pregunta 15 [INTERMEDIO] State Machines y AI | Desarrollo
Implementa conceptualmente una FSM (Finite State Machine) basica para un enemigo con los estados:
Idle, Patrol, Chase, Attack, Dead. Describe la estructura de clases, como se gestionan las transiciones y
como evitarias usar cadenas de if-else o switch gigantes.
Pregunta 16 [AVANZADO] State Machines y AI | Desarrollo
Compara FSM, HFSM (Hierarchical FSM) y Behaviour Trees para controlar el AI de enemigos en un juego
de accion. Indica en que escenarios cada una es mas apropiada, sus limitaciones, y como escalan
cuando la complejidad del comportamiento crece.
Pregunta 17 [AVANZADO] State Machines y AI | Razonamiento
Un disenador te pide que un enemigo pueda: patrullar, perseguir al jugador, atacar cuerpo a cuerpo,
lanzar proyectiles a distancia, huir si tiene poca vida, pedir refuerzos, y reaccionar a sonidos. Con una
FSM plana tendrias al menos 7+ estados y docenas de transiciones. Propone una solucion arquitectonica
que mantenga esto manejable y explica por que.
Unity Gameplay & Systems Programming Assessment | Pagina 9
Pregunta 18 [EXPERTO] State Machines y AI | Diseno de sistemas
Disena un sistema de AI Director (inspirado en Left 4 Dead) que ajuste dinamicamente la dificultad y el
ritmo del gameplay. Debe monitorizar metricas del jugador (vida, municion, kills recientes, tiempo en
zona), decidir cuando spawnear enemigos o dar respiro, y ser configurable por disenadores. Describe la
arquitectura, las metricas clave y el algoritmo de decision.
Unity Gameplay & Systems Programming Assessment | Pagina 10
SECCION 4: Input Systems y Control
Pregunta 19 [INTERMEDIO] Input Systems y Control | Desarrollo
Explica las diferencias entre el viejo Input Manager de Unity y el nuevo Input System. Que ventajas ofrece
el nuevo sistema para un juego que debe soportar gamepad, teclado+raton, y pantalla tactil
simultaneamente?
Pregunta 20 [AVANZADO] Input Systems y Control | Desarrollo
Describe como implementarias un Input Buffer para un juego de accion/plataformas. El buffer debe
permitir que el jugador presione un boton ligeramente antes de que la accion sea posible (ej: saltar antes
de tocar el suelo). Incluye consideraciones sobre timing, prioridad de acciones y como se integra con la
state machine del personaje.
Pregunta 21 [AVANZADO] Input Systems y Control | Deteccion de errores
Un companero implemento el movimiento del jugador asi. Detecta los problemas y propone mejoras:
void Update() {
float h = [Link]("Horizontal");
float v = [Link]("Vertical");
Vector3 move = new Vector3(h, 0, v);
[Link] += move * speed * [Link];
if ([Link]([Link])) {
[Link]([Link] * jumpForce);
}
}
Unity Gameplay & Systems Programming Assessment | Pagina 11
Unity Gameplay & Systems Programming Assessment | Pagina 12
SECCION 5: Fisica y Colisiones
Pregunta 22 [INTERMEDIO] Fisica y Colisiones | Test
Cual es la diferencia fundamental entre un Collider normal y un Collider marcado como Trigger en Unity?
■ a) Los Triggers no generan respuesta fisica (no hay rebote ni friccion), solo detectan solapamiento
mediante OnTriggerEnter/Stay/Exit.
■ b) Los Triggers son mas eficientes en rendimiento porque no usan el motor de fisica.
■ c) Los Triggers solo funcionan con Rigidbody kinematicos.
■ d) No hay diferencia real; es solo una convencion de nombrado.
Pregunta 23 [AVANZADO] Fisica y Colisiones | Desarrollo
Explica la diferencia entre [Link], [Link] y AddForce para mover un
personaje. En que contextos usarias cada uno? Que problemas puede causar mezclar logica de fisica en
Update vs FixedUpdate?
Pregunta 24 [AVANZADO] Fisica y Colisiones | Desarrollo
Describe como implementarias un sistema de deteccion de suelo (ground check) robusto para un
character controller basado en fisica. Compara las opciones: raycast simple, SphereCast, CheckSphere, y
multiple raycasts. Que problemas tiene cada uno en bordes, pendientes y plataformas en movimiento?
Pregunta 25 [EXPERTO] Fisica y Colisiones | Razonamiento
Unity Gameplay & Systems Programming Assessment | Pagina 13
En un juego con muchos proyectiles simultaneos (bullet hell), el uso de Rigidbody + Colliders para cada
bala genera picos de rendimiento. Propone una estrategia alternativa para gestionar las colisiones de
cientos de proyectiles de forma eficiente. Considera spatial partitioning, OverlapSphere manual, y el
tradeoff entre precision y rendimiento.
Unity Gameplay & Systems Programming Assessment | Pagina 14
SECCION 6: Animacion y Gameplay Feel
Pregunta 26 [INTERMEDIO] Animacion y Gameplay Feel | Desarrollo
Explica que son los Animation Events en Unity y como se usan para sincronizar logica de gameplay (por
ejemplo, activar un hitbox de ataque en el frame exacto del golpe). Que alternativas existen y cuales son
los pros y contras de cada una?
Pregunta 27 [AVANZADO] Animacion y Gameplay Feel | Desarrollo
Describe al menos 5 tecnicas concretas para mejorar el 'game feel' de un personaje de plataformas:
coyote time, input buffering, squash and stretch, screen shake, hitstop... Explica como se implementa
cada una tecnicamente en Unity.
Pregunta 28 [AVANZADO] Animacion y Gameplay Feel | Desarrollo
Explica la diferencia entre Animator Layers, Blend Trees y Animation Override Controllers. Da un ejemplo
practico de cuando usar cada uno (por ejemplo, para un personaje que puede disparar mientras corre, o
que tiene variaciones de animacion segun el arma equipada).
Pregunta 29 [EXPERTO] Animacion y Gameplay Feel | Diseno de sistemas
Unity Gameplay & Systems Programming Assessment | Pagina 15
Disena un sistema de procedural hit reactions que combine: animaciones predefinidas con ragdoll parcial,
reacciones proporcionales a la fuerza y direccion del impacto, y transicion suave entre animacion
controlada y fisica. Describe el flujo tecnico, los componentes involucrados y como garantizas que el
resultado sea visualmente coherente.
Unity Gameplay & Systems Programming Assessment | Pagina 16
SECCION 7: ScriptableObjects
Pregunta 30 [INTERMEDIO] ScriptableObjects | Desarrollo
Explica que son los ScriptableObjects, cuantas instancias en memoria se crean cuando multiples objetos
referencian el mismo SO, y por que esto es importante para la gestion de datos de gameplay (items,
habilidades, configuracion de enemigos, etc.).
Pregunta 31 [AVANZADO] ScriptableObjects | Desarrollo
Describe el patron 'ScriptableObject como evento' (SO-based event system). Como funciona? Que
ventajas tiene frente a eventos estaticos o un EventBus tradicional? Que limitaciones tiene y cuando NO
es apropiado usarlo?
Pregunta 32 [EXPERTO] ScriptableObjects | Razonamiento
Un proyecto usa ScriptableObjects para almacenar el estado mutable del juego (vida del jugador,
inventario, progreso de quests). Esto funciona en el Editor pero causa bugs en builds. Explica por que
ocurre esto, como los SOs manejan su ciclo de vida en builds vs Editor, y propone una solucion correcta.
Unity Gameplay & Systems Programming Assessment | Pagina 17
SECCION 8: Optimizacion y Profiling
Pregunta 33 [INTERMEDIO] Optimizacion y Profiling | Test
Cual de las siguientes genera mas garbage collection (GC alloc) en un Update loop?
■ a) Cachear GetComponent<T>() en Awake y reutilizar la referencia.
■ b) Usar CompareTag('Enemy') para comparar tags.
■ c) Concatenar strings con + dentro de Update: text = 'HP: ' + [Link]();
■ d) Usar foreach sobre una List<T> en versiones modernas de Unity.
Pregunta 34 [AVANZADO] Optimizacion y Profiling | Desarrollo
Explica que es Object Pooling, por que es critico en juegos con spawn/despawn frecuente (proyectiles,
efectos, enemigos), y describe como implementarias un pool generico y eficiente en Unity. Incluye
consideraciones sobre precalentamiento, tamano dinamico y liberacion.
Pregunta 35 [AVANZADO] Optimizacion y Profiling | Desarrollo
Describe el flujo de trabajo que seguirias para diagnosticar un spike de rendimiento en un juego Unity
usando el Profiler. Indica que secciones mirarias primero (CPU, GPU, Memory, GC), como identificarias el
cuello de botella, y que herramientas complementarias usarias (Frame Debugger, Memory Profiler, etc.).
Pregunta 36 [EXPERTO] Optimizacion y Profiling | Desarrollo
Unity Gameplay & Systems Programming Assessment | Pagina 18
Explica las diferencias entre el C# Job System, Burst Compiler y ECS (DOTS). En que escenarios cada
uno aporta mejoras reales de rendimiento? Como se integran con el workflow tradicional de
MonoBehaviour? Da un ejemplo concreto de un sistema de gameplay que se beneficiaria de Jobs+Burst
sin necesitar ECS completo.
Pregunta 37 [EXPERTO] Optimizacion y Profiling | Razonamiento
Tu juego tiene 500 enemigos activos simultaneamente, cada uno ejecutando logica de AI, pathfinding y
deteccion de jugador en Update. El frame rate cae a 20 FPS. Describe paso a paso como diagnosticarias
y resolverias este problema. Considera: LOD de AI, spatial partitioning, time-slicing, Job System, y
cualquier otra tecnica relevante.
Unity Gameplay & Systems Programming Assessment | Pagina 19
SECCION 9: Tools Programming y Editor Extensions
Pregunta 38 [INTERMEDIO] Tools Programming y Editor Extensions | Desarrollo
Explica la diferencia entre [CustomEditor], [CustomPropertyDrawer] y EditorWindow en Unity. Da un
ejemplo de cuando usarias cada uno.
Pregunta 39 [AVANZADO] Tools Programming y Editor Extensions | Desarrollo
Describe como crearias un Custom Inspector para un componente de 'Spawner' que muestre: un preview
del prefab a spawnear, un slider para el radio de spawn con gizmo visual en la escena, validacion que
alerte si el prefab no tiene cierto componente, y un boton 'Test Spawn' que funcione en Edit Mode.
Pregunta 40 [AVANZADO] Tools Programming y Editor Extensions | Desarrollo
Explica como funciona SerializedProperty y SerializedObject en el editor de Unity. Por que es importante
usar este sistema en vez de acceder directamente a los campos del target? Que relacion tiene con el
sistema de Undo y con Prefab Overrides?
Pregunta 41 [EXPERTO] Tools Programming y Editor Extensions | Diseno de sistemas
Unity Gameplay & Systems Programming Assessment | Pagina 20
Disena una Editor Window completa para un Level Designer tool que permita: pintar tiles/objetos sobre
una grilla en la Scene View, definir capas (ground, obstacles, decoracion), guardar/cargar layouts como
assets, preview en tiempo real, y soporte para undo. Describe la arquitectura, los callbacks de editor que
usarias ([Link], Handles, etc.) y como gestionarias la persistencia.
Pregunta 42 [EXPERTO] Tools Programming y Editor Extensions | Desarrollo
Explica como implementarias un sistema de validacion automatica de assets que se ejecute antes de
cada build. Debe verificar: que todas las escenas del build tienen los managers necesarios, que no hay
referencias nulas en ScriptableObjects criticos, que los prefabs de gameplay cumplen ciertos requisitos, y
generar un reporte. Que APIs de Unity usarias?
Unity Gameplay & Systems Programming Assessment | Pagina 21
SECCION 10: Event-Driven Systems
Pregunta 43 [INTERMEDIO] Event-Driven Systems | Desarrollo
Compara tres formas de comunicacion entre sistemas en Unity: UnityEvents (configurables en Inspector),
C# events/delegates, y un EventBus/MessageBus centralizado. Indica pros, contras y caso de uso ideal
de cada uno.
Pregunta 44 [AVANZADO] Event-Driven Systems | Deteccion de errores
El siguiente EventBus tiene un problema critico comun. Identificalo y propone la solucion:
public static class EventBus {
static Dictionary<Type, Delegate> events = new();
public static void Subscribe<T>(Action<T> handler) {
if ([Link](typeof(T)))
events[typeof(T)] = [Link](events[typeof(T)], handler);
else
events[typeof(T)] = handler;
}
public static void Publish<T>(T eventData) {
if ([Link](typeof(T), out var d))
((Action<T>)d)?.Invoke(eventData);
}
}
// Usage in MonoBehaviour:
void OnEnable() => [Link]<PlayerDied>(OnPlayerDied);
Pregunta 45 [EXPERTO] Event-Driven Systems | Razonamiento
Unity Gameplay & Systems Programming Assessment | Pagina 22
En un juego complejo, diferentes sistemas necesitan reaccionar al evento 'EnemyKilled': el ScoreSystem,
el QuestSystem, el LootSystem, el AchievementSystem, el AudioSystem y el VFXSystem. Algunos
necesitan datos diferentes. Disena un sistema de eventos tipado, desacoplado, que evite memory leaks,
soporte prioridades de ejecucion, y sea debuggeable (puedas ver que listeners estan suscritos). Describe
la arquitectura completa.
Unity Gameplay & Systems Programming Assessment | Pagina 23
SECCION 11: Combat Systems
Pregunta 46 [AVANZADO] Combat Systems | Diseno de sistemas
Disena un sistema de deteccion de golpes (hitbox/hurtbox) para un juego de accion melee. Describe:
como representas hitboxes y hurtboxes, como sincronizas su activacion con las animaciones, como
calculas el dano (considerando stats del atacante, defensa del receptor, tipos de dano), y como evitas
multihit no deseado en un mismo ataque.
Pregunta 47 [AVANZADO] Combat Systems | Desarrollo
Explica como implementarias un Damage Pipeline donde el dano pasa por varias fases de modificacion:
dano base > modificadores del arma > buffs/debuffs del atacante > resistencias del receptor > efectos
especiales (critico, penetracion de armadura) > dano final. Que patron arquitectonico usarias y por que?
Pregunta 48 [EXPERTO] Combat Systems | Desarrollo
Describe como implementarias un sistema de targeting/lock-on para un juego de accion en tercera
persona. El sistema debe: seleccionar el enemigo mas relevante (no solo el mas cercano), mantener el
lock-on con suavizado de camara, permitir cambio de target con stick, y desactivarse automaticamente si
el enemigo muere o sale de rango. Que factores usarias para el scoring de relevancia?
Unity Gameplay & Systems Programming Assessment | Pagina 24
Unity Gameplay & Systems Programming Assessment | Pagina 25
SECCION 12: Saving, Serializacion y Persistencia
Pregunta 49 [INTERMEDIO] Saving, Serializacion y Persistencia | Test
Cual de las siguientes afirmaciones sobre la serializacion en Unity es FALSA?
■ a) Unity no serializa propiedades (properties), solo campos (fields) publicos o marcados con
[SerializeField].
■ b) Los Dictionary<K,V> se serializan nativamente en el Inspector de Unity.
■ c) Un campo private con [SerializeField] se guarda en la escena/prefab y aparece en el Inspector.
■ d) Los campos static nunca se serializan.
Pregunta 50 [AVANZADO] Saving, Serializacion y Persistencia | Desarrollo
Describe la arquitectura de un Save System robusto que soporte: guardado de estado del mundo
(posicion de objetos, estados de enemigos, puertas abiertas), inventario del jugador, progreso de quests,
multiples slots de guardado, y versionado (para que saves antiguos funcionen con nuevas versiones del
juego). Que formato de serializacion elegirias y por que?
Pregunta 51 [EXPERTO] Saving, Serializacion y Persistencia | Razonamiento
Tu juego usa JsonUtility para serializar los datos de guardado. Un disenador anade un nuevo campo a
una clase serializada y los saves existentes dejan de cargar correctamente. Explica por que ocurre esto,
como funciona JsonUtility internamente con campos faltantes/extras, y disena una estrategia de
versionado y migracion de datos de guardado.
Unity Gameplay & Systems Programming Assessment | Pagina 26
Unity Gameplay & Systems Programming Assessment | Pagina 27
SECCION 13: Coroutines, Async/Await y Jobs
Pregunta 52 [INTERMEDIO] Coroutines, Async/Await y Jobs | Desarrollo
Explica como funcionan las Coroutines en Unity internamente (son threads? que pasa cuando haces yield
return?). Indica al menos 3 limitaciones importantes de las Coroutines y cuando es mejor usar
async/await.
Pregunta 53 [AVANZADO] Coroutines, Async/Await y Jobs | Deteccion de errores
Detecta los problemas de este codigo que usa Coroutines y propone mejoras:
IEnumerator SpawnWaves() {
while (true) {
for (int i = 0; i < waveSize; i++) {
var enemy = Instantiate(enemyPrefab, GetRandomPos(), [Link]);
yield return new WaitForSeconds(0.5f);
}
yield return new WaitForSeconds(waveInterval);
}
}
void OnDisable() {
// nada
}
Pregunta 54 [AVANZADO] Coroutines, Async/Await y Jobs | Desarrollo
Compara el uso de async/await con UniTask vs Coroutines para las siguientes situaciones: esperar a que
se cargue un asset, encadenar varias animaciones secuencialmente, hacer una peticion HTTP. Que
ventajas concretas aporta UniTask sobre las coroutines nativas?
Unity Gameplay & Systems Programming Assessment | Pagina 28
Pregunta 55 [EXPERTO] Coroutines, Async/Await y Jobs | Desarrollo
Explica como usarias el C# Job System con Burst Compiler para paralelizar el calculo de steering
behaviors de 200 agentes de AI. Describe la estructura del Job (IJobParallelFor), los NativeArrays
necesarios, como pasas los datos y recoges los resultados, y que restricciones impone Burst sobre el
codigo C#.
Unity Gameplay & Systems Programming Assessment | Pagina 29
SECCION 14: UI Systems
Pregunta 56 [AVANZADO] UI Systems | Desarrollo
Describe como estructurarias el codigo de un UI System para un juego con menus complejos: pantalla de
titulo, menu de opciones, HUD de gameplay, menu de pausa, inventario, dialogo. Como gestionas la
navegacion entre pantallas, el foco de input, y la separacion entre logica de UI y logica de gameplay? Que
patron usarias (MVC, MVP, MVVM)?
Pregunta 57 [AVANZADO] UI Systems | Razonamiento
Un companero crea un script UIManager que tiene referencias directas a todos los textos, barras y
botones del HUD, y los actualiza directamente en Update leyendo datos de otros Managers. Identifica los
problemas de esta aproximacion y propone una arquitectura alternativa mas limpia y escalable.
Unity Gameplay & Systems Programming Assessment | Pagina 30
SECCION 15: Conceptos Transversales
Pregunta 58 [INTERMEDIO] Conceptos Transversales | Test
En que orden se ejecutan tipicamente los callbacks de MonoBehaviour?
■ a) Start > Awake > OnEnable > Update > LateUpdate
■ b) Awake > OnEnable > Start > FixedUpdate > Update > LateUpdate
■ c) OnEnable > Awake > Start > Update > FixedUpdate
■ d) Awake > Start > OnEnable > Update > LateUpdate
Pregunta 59 [AVANZADO] Conceptos Transversales | Desarrollo
Explica el concepto de Addressables en Unity. Que problemas resuelve frente al sistema clasico de
Resources? Como afecta a la gestion de memoria, tiempos de carga y tamano del build? Describe un flujo
tipico de carga asincrona de un asset con Addressables.
Pregunta 60 [AVANZADO] Conceptos Transversales | Desarrollo
Describe como implementarias un sistema de Object Tagging mas potente que el sistema nativo de tags
de Unity (que solo permite un tag por GameObject). Tu sistema debe permitir multiples tags, busquedas
eficientes por tag, y ser compatible con prefabs. Que estructura de datos usarias?
Pregunta 61 [EXPERTO] Conceptos Transversales | Desarrollo
Unity Gameplay & Systems Programming Assessment | Pagina 31
Explica las implicaciones de la recoleccion de basura (GC) incremental vs no-incremental en Unity. Como
afecta al gameplay en tiempo real? Que estrategias de codigo usarias para minimizar las allocations en el
hot path (Update, physics, rendering)? Da al menos 5 ejemplos concretos de allocations ocultas comunes
en Unity.
Pregunta 62 [EXPERTO] Conceptos Transversales | Diseno de sistemas
Disena un sistema completo de Dialogue con branching, condiciones (segun estado del juego, relaciones
con NPCs, items en inventario), soporte para localizacion, integracion con el sistema de quests, y un
editor visual para escritores. Describe la arquitectura de datos (como representas el arbol de dialogo), el
runtime engine, y la herramienta de editor.
Pregunta 63 [EXPERTO] Conceptos Transversales | Razonamiento
Te incorporas a un proyecto Unity existente de un juego de accion RPG. El codigo tiene los siguientes
problemas: clases de 3000+ lineas, logica de gameplay mezclada con UI y audio, Singletons por todos
lados, sin tests, frame rate inestable. Describe un plan de refactorizacion priorizado y realista (sin parar
produccion) para mejorar la calidad del codigo progresivamente. Que abordarias primero y por que?
Unity Gameplay & Systems Programming Assessment | Pagina 32
Unity Gameplay & Systems Programming Assessment | Pagina 33
SECCION FINAL: AUTOCORRECCION, CHECKLIST Y
REFLEXION
A. Plantilla de Autocorreccion
Despues de responder todas las preguntas, revisa tus respuestas e investiga las que no supiste. Usa esta
tabla para registrar tu nivel de confianza en cada respuesta.
Tuve que
Pregunta Respondida Confianza (1-5) Notas
investigar
1 Si / No _/5 Si / No
2 Si / No _/5 Si / No
3 Si / No _/5 Si / No
4 Si / No _/5 Si / No
5 Si / No _/5 Si / No
6 Si / No _/5 Si / No
7 Si / No _/5 Si / No
8 Si / No _/5 Si / No
9 Si / No _/5 Si / No
10 Si / No _/5 Si / No
11 Si / No _/5 Si / No
12 Si / No _/5 Si / No
13 Si / No _/5 Si / No
14 Si / No _/5 Si / No
15 Si / No _/5 Si / No
Tuve que
Pregunta Respondida Confianza (1-5) Notas
investigar
16 Si / No _/5 Si / No
17 Si / No _/5 Si / No
18 Si / No _/5 Si / No
19 Si / No _/5 Si / No
20 Si / No _/5 Si / No
21 Si / No _/5 Si / No
Unity Gameplay & Systems Programming Assessment | Pagina 34
22 Si / No _/5 Si / No
23 Si / No _/5 Si / No
24 Si / No _/5 Si / No
25 Si / No _/5 Si / No
26 Si / No _/5 Si / No
27 Si / No _/5 Si / No
28 Si / No _/5 Si / No
29 Si / No _/5 Si / No
30 Si / No _/5 Si / No
Tuve que
Pregunta Respondida Confianza (1-5) Notas
investigar
31 Si / No _/5 Si / No
32 Si / No _/5 Si / No
33 Si / No _/5 Si / No
34 Si / No _/5 Si / No
35 Si / No _/5 Si / No
36 Si / No _/5 Si / No
37 Si / No _/5 Si / No
38 Si / No _/5 Si / No
39 Si / No _/5 Si / No
40 Si / No _/5 Si / No
41 Si / No _/5 Si / No
42 Si / No _/5 Si / No
43 Si / No _/5 Si / No
44 Si / No _/5 Si / No
45 Si / No _/5 Si / No
Tuve que
Pregunta Respondida Confianza (1-5) Notas
investigar
46 Si / No _/5 Si / No
47 Si / No _/5 Si / No
48 Si / No _/5 Si / No
49 Si / No _/5 Si / No
Unity Gameplay & Systems Programming Assessment | Pagina 35
50 Si / No _/5 Si / No
51 Si / No _/5 Si / No
52 Si / No _/5 Si / No
53 Si / No _/5 Si / No
54 Si / No _/5 Si / No
55 Si / No _/5 Si / No
56 Si / No _/5 Si / No
57 Si / No _/5 Si / No
58 Si / No _/5 Si / No
59 Si / No _/5 Si / No
60 Si / No _/5 Si / No
Tuve que
Pregunta Respondida Confianza (1-5) Notas
investigar
61 Si / No _/5 Si / No
62 Si / No _/5 Si / No
63 Si / No _/5 Si / No
Unity Gameplay & Systems Programming Assessment | Pagina 36
B. Checklist de Temas: Dominados vs A Reforzar
Marca con un check los temas que dominas y con una X los que necesitas reforzar.
■ Domino | ■ Reforzar | Patrones de diseno (Singleton, Observer, Command, Strategy, State,
Factory)
■ Domino | ■ Reforzar | Arquitectura de codigo y separacion de responsabilidades (SRP, SOLID)
■ Domino | ■ Reforzar | Composicion vs Herencia en entidades de gameplay
■ Domino | ■ Reforzar | Dependency Injection y Service Locator
■ Domino | ■ Reforzar | ScriptableObjects: datos, eventos, configuracion
■ Domino | ■ Reforzar | Event systems: C# events, UnityEvents, EventBus
■ Domino | ■ Reforzar | State Machines (FSM, HFSM, Behaviour Trees)
■ Domino | ■ Reforzar | Gameplay systems: vida, dano, inventario, quests, habilidades
■ Domino | ■ Reforzar | Combat systems: hitbox/hurtbox, damage pipeline, targeting
■ Domino | ■ Reforzar | Input System nuevo: Actions, bindings, buffer
■ Domino | ■ Reforzar | Fisica: Rigidbody, colisiones, ground check, triggers
■ Domino | ■ Reforzar | Animacion: Animator, Blend Trees, Layers, Animation Events
■ Domino | ■ Reforzar | Gameplay feel: juice, hitstop, screen shake, coyote time
■ Domino | ■ Reforzar | UI architecture: MVC/MVP, navegacion de pantallas
■ Domino | ■ Reforzar | Object Pooling y gestion eficiente de objetos
■ Domino | ■ Reforzar | GC allocations: identificar y evitar garbage en hot path
■ Domino | ■ Reforzar | Profiling: Unity Profiler, Frame Debugger, Memory Profiler
■ Domino | ■ Reforzar | C# Job System + Burst Compiler
■ Domino | ■ Reforzar | ECS / DOTS (conceptual)
■ Domino | ■ Reforzar | Coroutines vs async/await vs UniTask
■ Domino | ■ Reforzar | Serializacion en Unity: campos, limitaciones, custom serialization
■ Domino | ■ Reforzar | Save System: formato, versionado, migracion
■ Domino | ■ Reforzar | Addressables y gestion de assets
■ Domino | ■ Reforzar | Editor tools: CustomEditor, PropertyDrawer, EditorWindow
■ Domino | ■ Reforzar | Scene View tools: Handles, Gizmos, SceneView callbacks
■ Domino | ■ Reforzar | Asset validation y build pipelines
■ Domino | ■ Reforzar | AI gameplay: steering, pathfinding, decision making
■ Domino | ■ Reforzar | Dialogue systems y branching narrativo
■ Domino | ■ Reforzar | Networking / netcode (conceptual)
■ Domino | ■ Reforzar | Refactorizacion y deuda tecnica
Unity Gameplay & Systems Programming Assessment | Pagina 37
C. Resumen de Puntuacion por Seccion
Calcula cuantas preguntas respondiste con confianza alta (4-5) en cada seccion.
Total Confianza
Seccion % Nivel
Preguntas Alta
Arquitectura y Patrones 7 __ / 7 __%
Gameplay Systems 7 __ / 7 __%
State Machines y AI 4 __ / 4 __%
Input y Control 3 __ / 3 __%
Fisica y Colisiones 4 __ / 4 __%
Animacion y Gameplay Feel 4 __ / 4 __%
ScriptableObjects 3 __ / 3 __%
Optimizacion y Profiling 5 __ / 5 __%
Tools y Editor 5 __ / 5 __%
Event-Driven Systems 3 __ / 3 __%
Combat Systems 3 __ / 3 __%
Saving y Persistencia 3 __ / 3 __%
Coroutines, Async, Jobs 4 __ / 4 __%
UI Systems 2 __ / 2 __%
Conceptos Transversales 6 __ / 6 __%
TOTAL 63 __ / 63 __%
Guia de nivel: 80-100% confianza alta = Solido. 60-79% = Buen nivel con areas de mejora. 40-59% =
Necesitas estudio enfocado. <40% = Area prioritaria de estudio.
Unity Gameplay & Systems Programming Assessment | Pagina 38
D. Reflexion Final
Temas que domino con seguridad:
Lista los temas en los que respondiste con confianza y sin necesidad de investigar.
Temas que debo repasar:
Lista los temas donde tuviste dudas o cometiste errores.
Conceptos que tuve que buscar:
Registra todo lo que no conocias y tuviste que investigar. Esto es valioso: marca tus puntos ciegos.
Areas que deberia estudiar mas para acercarme a un perfil fuerte de Gameplay/Systems
Programmer:
Basandote en los resultados, prioriza las 3-5 areas donde mas impacto tendria invertir tiempo de estudio.
Recursos y proximos pasos:
Unity Gameplay & Systems Programming Assessment | Pagina 39
Anota tutoriales, documentacion, libros, repos o proyectos que te ayudarian a mejorar en las areas
detectadas.
Nota personal y objetivos a corto plazo:
Define 2-3 objetivos concretos y medibles para las proximas semanas.
Recuerda: El objetivo de este documento no es obtener una puntuacion perfecta, sino identificar tus
fortalezas reales y tus areas de mejora con honestidad. Un buen Gameplay/Systems Programmer no es
quien lo sabe todo, sino quien sabe diagnosticar problemas, tomar decisiones arquitectonicas
fundamentadas y aprender constantemente. Usa este cuaderno como punto de partida para un plan de
estudio concreto.
Unity Gameplay & Systems Programming Assessment | Pagina 40