Grinchmas Kart
Lideré un kart 3D en equipo de 4 y le enseñé al rival a conducir solo
Métricas clave
Métricas de rendimiento y topología del sistema Métricas y topología del sistema
- IA rival con reinforcement learning en un nivel de carrera
- RLIA rival con reinforcement learning en un nivel de carrera
- niveles encadenados en la misma partida hasta los créditos
- 0niveles encadenados en la misma partida hasta los créditos
- del proyecto liderado en equipo de 4: código, IA, flujo y 3D
- ~0%del proyecto liderado en equipo de 4: código, IA, flujo y 3D
- modelos 3D propios en blender: kart, pista, personajes y escenarios
- 0modelos 3D propios en blender: kart, pista, personajes y escenarios
Grinchmas Kart
Kart racing 3D end-to-end sobre el template Karting Microgame 5.0.1: físicas arcade creíbles y un rival que aprende a conducir con Reinforcement Learning (ML-Agents).
Arquitectura en capas
Presentación → Sistemas de juego → Física/Gameplay → Controladores → Input, con asmdefs bien definidos (KartGame, KartGame.Editor, KartGame.AI, KartGame.AI.Editor).
- ● Presentación: UI + audio + cámaras (Cinemachine)
- ● Sistemas de juego: GameFlowManager, ObjectiveManager, TimeManager
- ● Física/Gameplay: ArcadeKart, KartBounce, KartAnimation
- ● Controladores intercambiables: KeyboardInput y KartAgent producen el mismo InputData
IA con Reinforcement Learning (ML-Agents)
El rival comparte la misma interfaz IInput que el jugador: el ArcadeKart recibe un InputData sin distinguir quién lo conduce.
- ● Observaciones por raycasts + velocidad local + dirección al checkpoint
- ● Recompensas por progreso y velocidad, penalizaciones por choque
- ● Modos Training/Inferencing
Física arcade
Rigidbody + 4 WheelColliders, suspensión parametrizada (tunable sin código), derrape con VFX y power-ups extensibles.
- ● Suspensión parametrizada
- ● Derrape con VFX
- ● Power-ups extensibles (struct Stats)
Flujo de partida
5 niveles encadenados dentro de una misma partida, victoria/derrota y pantalla de créditos con video (GameFlowManager modificado).
- ● 5 niveles encadenados hasta los créditos
- ● Victoria / derrota (LoseScene)
Modelos 3D y dirección
Assets originales en Blender (Grinch, Santa, Mono de Nieve y Pingüino, con sus vehículos, pista y escenarios), HUD navideño, trailer y créditos en video y audio propios.

Resumen
Grinchmas Kart (3D, sep – dic 2023) es un kart racing end-to-end de ABMODEL Games, equipo universitario de 4 integrantes. Lideré ~80% del proyecto: código, gameplay, IA, flujo de niveles, dirección y modelos 3D propios en Blender. El objetivo fue superar el juego de muestra oficial (Karting Microgame 5.0.1) con físicas arcade creíbles y un rival que aprende a conducir con Reinforcement Learning.
Problema
Un kart racing creíble exige físicas arcade bien parametrizadas, una IA rival que compita de verdad y un loop de partida completo, no un demo técnico. Partimos de la base oficial de Unity y la convertimos en juego propio: integramos la IA rival con Reinforcement Learning y la hicimos funcionar en un nivel de carrera; en el resto, los rivales replican los movimientos del jugador principal, con 5 niveles encadenados hasta los créditos.
Mi rol
- Lideré el proyecto (~80%): código, gameplay, integración de ML-Agents, flujo de niveles, dirección e integración.
- Integré la IA rival con Reinforcement Learning y la hice funcionar en un nivel de carrera: comparte la entrada del jugador, observa con sensores de distancia, velocidad y dirección al punto de control, con recompensas por progreso y penalizaciones por choque, en modos entrenamiento e inferencia. En el resto de niveles, los rivales replican los movimientos del jugador principal.
- Modelé en Blender los assets propios: personajes (Grinch, Santa, Mono de Nieve y Pingüino), sus vehículos, pista y escenarios; HUD navideño, trailer y créditos en video y audio propios.
- Diseñé el flujo de partida encadenando 5 niveles hasta los créditos (modifiqué `GameFlowManager`).
Solución
- Arquitectura en capas con `asmdefs` bien definidos (KartGame, KartGame.Editor, KartGame.AI, KartGame.AI.Editor).
- IA rival que aprende a conducir: integramos el módulo de Reinforcement Learning en nuestro proyecto y lo hicimos funcionar en un nivel de carrera. Usa la misma entrada que el jugador, así el kart no distingue quién lo maneja. Detecta la pista con sensores de distancia, mide su velocidad y apunta al siguiente punto de control; gana puntos por avanzar rápido y los pierde por chocar. En el resto de niveles, los rivales replican los movimientos del jugador principal.
- Física arcade: Rigidbody + 4 WheelColliders, suspensión parametrizada (tunable sin código), derrape con VFX, power-ups extensibles (`struct Stats`), `KartBounce` y reorientación aérea al caer.
- Flujo de partida: 5 niveles encadenados dentro de una misma partida, victoria/derrota y pantalla de créditos con video.
- Modelos 3D y dirección: assets originales en Blender, arte navideño y trailer/créditos en video y audio propios.