0% encontró este documento útil (0 votos)
6 vistas40 páginas

Unity Test

El documento es una evaluación técnica avanzada para programación de gameplay y sistemas en Unity, compuesta por 63 preguntas divididas en 15 secciones que abarcan temas como arquitectura, sistemas de gameplay, inteligencia artificial, y optimización. Incluye preguntas de diferentes niveles de dificultad y formatos, con un enfoque en la autoevaluación y la identificación de áreas de mejora. El objetivo es profundizar en el conocimiento y habilidades prácticas en el desarrollo de juegos utilizando Unity.

Cargado por

naguuuu10
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas40 páginas

Unity Test

El documento es una evaluación técnica avanzada para programación de gameplay y sistemas en Unity, compuesta por 63 preguntas divididas en 15 secciones que abarcan temas como arquitectura, sistemas de gameplay, inteligencia artificial, y optimización. Incluye preguntas de diferentes niveles de dificultad y formatos, con un enfoque en la autoevaluación y la identificación de áreas de mejora. El objetivo es profundizar en el conocimiento y habilidades prácticas en el desarrollo de juegos utilizando Unity.

Cargado por

naguuuu10
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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

También podría gustarte