Niixer

Coin Rush: El frenesí de la recolección 3D y la arquitectura detrás de sus niveles

El género de plataformas en tres dimensiones ha sido, desde la época del Nintendo 64, uno de los pilares fundamentales para entender el diseño de niveles y el control de físicas en los videojuegos. Inspirado en la época dorada y la evolución de clásicos como Super Mario 64 y Super Mario Odyssey, se propuso el reto de diseñar Coin Rush. Este videojuego de aventura en tercera persona construido sobre Unity combina mecánicas arcade clásicas, un diseño de entornos rico en texturas y una arquitectura de código escalable para PC.

A través de este artículo, desglosamos cómo transformamos nuestro Documento de Diseño de Juego (GDD) en un prototipo funcional, detallando el flujo técnico de los personajes, el comportamiento de la Inteligencia Artificial y la gestión colaborativa en el repositorio.

Mecánicas de Juego y la Experiencia del Usuario (Gameplay)

La premisa de Coin Rush gira en torno a un ciclo clásico de recompensa y reto controlado: el jugador debe explorar escenarios abiertos, recolectar la mayor cantidad de monedas y objetos especiales, y alcanzar la meta antes de que el temporizador llegue a cero.

El flujo de control es intuitivo y responsivo. El usuario se desplaza utilizando el esquema clásico de teclas W A S D, mientras ejecuta saltos precisos con la barra espaciadora y realiza sprints con la tecla Shift izquierdo. La inmersión se complementa con un sistema de cámara orbital en tercera persona implementada con Cinemachine (FreeLook Camera), la cual sigue de forma suave al protagonista respondiendo al movimiento horizontal y vertical del mouse.

Durante la partida, el Canvas del HUD mantiene al jugador completamente informado mediante indicadores dinámicos en pantalla. En la esquina superior izquierda se visualizan las vidas restantes con el icono del personaje; en el centro, un temporizador en cuenta regresiva que se tiñe de color rojo al caer por debajo de los 30 segundos; y en la esquina superior derecha, el contador de score y monedas recolectadas en tiempo real.

Atributos de Personajes y Gestión con ScriptableObjects

Para dotar al juego de una alta rejugabilidad y profundidad estratégica, rompimos con el esquema del protagonista único, diseñando un sistema de tres personajes seleccionables con estadísticas internas completamente diferenciadas. Para mantener el código limpio y modular, los valores de velocidad de caminata, velocidad de carrera, fuerza de salto y puntos de vida se gestionan mediante ScriptableObjects (CharacterData).

Un factor clave en nuestro flujo de trabajo gráfico fue la integración de la tecnología de Avaturn para el modelado de los personajes. Esto nos permitió incorporar avatares altamente detallados con un sistema de rigging avanzado, garantizando que el Animator Controller de Unity procesara de forma fluida las transiciones entre las animaciones de reposo (idle), desplazamiento a alta velocidad y salto.

Inteligencia Artificial de los Enemigos

El entorno hostil de Coin Rush cobra vida gracias a una Máquina de Estados Finitos (FSM) escrita en C#. Los enemigos no actúan de manera aleatoria; su comportamiento transiciona matemáticamente entre los estados de Idle, Patrol, Chase, Attack y Dead evaluando constantemente la distancia espacial hacia el transform del jugador mediante la función Vector3.Distance.

Para los enemigos terrestres como los Goombas y los Esqueletos, implementamos el paquete oficial de AI Navigation de Unity. Al realizar el horneado (Bake) del NavMesh sobre la geometría de nuestros escenarios, permitimos que los agentes calculen de forma autónoma rutas eficientes de persecución esquivando los obstáculos físicos del mapa. Por otro lado, las amenazas como el Cuervo volador prescinden del NavMesh y se desplazan de manera sinusoidal utilizando puntos de ruta prefijados (waypoints) en el aire antes de lanzarse en picado sobre el jugador.

Diseño de Entornos y Desafío Atmosférico

El diseño de niveles progresa a través de cuatro mundos conceptuales esculpidos minuciosamente con la herramienta Terrain de Unity, cuidando de forma rigurosa el mapeado de texturas (texture mapping) y el tiling para evitar patrones repetitivos en el suelo:

  • Nivel 1 — Pradera del Inicio: Diseñado de forma obligatoria mediante los Starter Assets oficiales de Unity, introduciendo colinas suaves, árboles dispersos y un río pequeño.
  • Nivel 2 — Montaña Helada: Presenta un reto de físicas complejo, donde las superficies de hielo cuentan con alta inercia que hace resbalar al personaje, complementado con un sistema de partículas de nieve constante.
  • Nivel 3 — Lago de los Lirios: Introduce amplias extensiones de agua con corrientes que arrastran al jugador y plataformas móviles basadas en hojas flotantes.

Para procesar de forma óptima los materiales de los fluidos (como el agua estilizada y la lava incandescente), los sombreadores dinámicos y los efectos de post-procesamiento (bloom y vignette), el proyecto se renderiza por completo bajo el Universal Render Pipeline (URP).

Control de Versiones

Un proyecto de esta envergadura, compuesto por múltiples niveles, prefabs de partículas y scripts interactuando en simultáneo, exige una coordinación logística impecable. Para mitigar los destructivos conflictos de fusión (merge conflicts) en los archivos binarios de Unity (como escenas y assets de UI), adoptamos una política estricta de control de versiones utilizando GitHub operado exclusivamente desde la línea de comandos (CMD).

El flujo de trabajo en la terminal se convirtió en nuestro estándar de estabilidad diario antes de realizar cualquier modificación en el repositorio Videojuego-Coin-Rush:

  1. git pull obligatorio cada mañana antes de abrir el editor de Unity para integrar las lógicas de código y bakes de IA actualizados por los demás compañeros.
  2. Desarrollo aislado y modular trabajando únicamente sobre prefabs específicos o escenas asignadas.
  3. git commit -m "Mensaje descriptivo" y git push inmediatos tras validar localmente en el modo Play que el bucle de juego funcionaba sin arrojar excepciones en la consola.

Conclusión

El desarrollo de Coin Rush demuestra que el verdadero reto de crear un plataformero moderno en tres dimensiones no reside únicamente en programar la acción de saltar, sino en lograr la armonía e integración exacta entre el control de físicas, la optimización geométrica de los biomas y una arquitectura de software robusta gobernada por managers persistentes.

Agradecimientos

Se extiende un agradecimiento especial al profesor Carlos Iván Pinzón por su orientación y mentoría clave durante las etapas de diseño y desarrollo de este proyecto. Asimismo, se reconoce el esfuerzo, compromiso y colaboración técnica de los integrantes Maria Fernanda Ceballos, Luis Duiche y Laura Gutierrez.

Por otra parte, el sustento teórico y el desarrollo práctico del videojuego no habrían sido posibles sin el aporte de las siguientes bases documentales y recursos de la comunidad global de desarrolladores:

  • Bases Teóricas: El enfoque estético se apoyó en la guía de Low Poly Art de Obeidi (2020), mientras que la optimización gráfica se estructuró bajo la documentación oficial de Universal Render Pipeline (URP) de Unity Technologies.
  • Recursos Prácticos y Tutoriales: La lógica del sistema de Canvas se enriqueció gracias a las guías de implementación de sistemas de selección de personajes mediante Scriptable Objects publicados por Comp-3 Interactive (2020), Zigurous (2021) y los videotutoriales en español de Heroe Dev (2022).

Referencias Bibliográficas

Comp-3 Interactive. (30 de junio de 2020). Character Selection – Scriptable Objects – Unity Tutorial [Video]. YouTube. youtube.com

Heroe Dev. (23 de agosto de 2022). Menú Selección de Personajes – Unity 3D / Tutorial Español [Video]. YouTube. youtube.com

Obeidi, A. (2020). The low poly art guide: Create 3D art with a minimalist aesthetic. Independent Publishing.

Unity Technologies. (s. f.). Universal Render Pipeline (URP) overview. Unity Documentation. unity3d.com

Zigurous. (21 de marzo de 2021). Character Selection System in Unity [Video]. YouTube. youtube.com

Créditos del Proyecto

Autores: Nicolas Fonseca Fagua, Andres Camilo Plaza

Asesor / Editor: Carlos Iván Pinzón

Código de Curso: UCMV-10

Institución: Universidad Central