Unity · C# · Plataformas 2D · Robot
IO Robot Platform 2D
Prototipo base jugable de plataformas 2D con robot humanoide, cambio entre modo combate y modo movilidad, proyectiles, doble salto, contrarreloj, enemigos, puertas y plataformas móviles.
Resumen técnico
IO Robot Platform 2D es un prototipo base jugable de plataformas 2D desarrollado en Unity con C#. El jugador controla un robot humanoide en vista lateral y debe superar una fase con plataformas, trampas, pinchos, enemigos, puertas elevadizas, objetos interactuables y plataformas móviles.
Su mecánica diferencial es el cambio de forma entre modo combate, representado en amarillo y capaz de disparar proyectiles, y modo movilidad, representado en azul y centrado en mayor velocidad y doble salto. La partida se gana al llegar al final del nivel y se pierde al agotar vidas o tiempo.
Cambio de forma
El personaje alterna entre dos formas con lectura visual clara: amarillo para combate y azul para movilidad. Cada modo modifica las posibilidades del jugador y obliga a decidir cuándo priorizar ataque, velocidad o salto.
Objetivo y condiciones
El objetivo es llegar al final de la fase antes de quedarse sin tiempo o sin vidas. El prototipo combina contrarreloj, daño, enemigos, obstáculos, muerte, reinicio, puntuación, victoria y derrota.
Mi contribución
- Diseño e implementación de un controlador de plataformas 2D con movimiento, salto, doble salto, caída, gravedad y detección de suelo.
- Diseño del sistema de cambio entre modo combate y modo movilidad, incluyendo feedback visual por color y diferencias jugables.
- Implementación de proyectiles, límite de balas, recarga por tiempo, enemigos, trampas, puertas, botones, objetos destructibles y plataformas móviles.
- Integración de contrarreloj, vidas, puntuación, victoria, derrota, menú principal, pausa, partículas, sonido, música, build y documentación técnica.
Sistemas implementados
- Movimiento horizontal, salto, doble salto, caída, gravedad y detección de suelo.
- Cambio entre modo combate y modo movilidad con feedback visual amarillo/azul.
- Disparo de proyectiles, límite de balas y recarga de balas por tiempo.
- Enemigos derrotables, daño, vidas, muerte, reinicio, victoria y derrota.
- Trampas, pinchos, obstáculos, objetos destructibles, botones y puertas elevadizas.
- Plataformas, plataformas móviles, parallax y cámara de seguimiento.
- Sistema de contrarreloj, puntuación, niveles, menú principal y pausa.
- Partículas, sonido, música, UI básica y build jugable para Windows.
Características principales
- Gameplay de plataformas 2D con vista lateral.
- Robot humanoide controlado por el jugador.
- Movimiento horizontal, salto, doble salto, gravedad y detección de suelo.
- Modo combate con proyectiles y modo movilidad con más velocidad.
- Feedback visual por forma: amarillo para combate y azul para movilidad.
- Límite de balas y recarga de balas por tiempo.
- Enemigos, obstáculos, trampas, pinchos y objetos destructibles.
- Puertas elevadizas accionables mediante objetos interactuables.
- Plataformas móviles, cámara y parallax.
- Contrarreloj, vidas, puntuación, victoria y derrota.
- Menú principal, pausa, partículas, sonido y música.
- Build jugable para Windows publicada en GitHub Releases.
Flujo técnico previsto
El flujo jugable conecta movimiento, cambio de forma, interacción, riesgo ambiental y condiciones de partida dentro de una fase funcional.
- 01Player MovementLeer input, mover al robot, aplicar salto, doble salto, gravedad y detección de suelo.
- 02Mode SwitchingAlternar entre combate y movilidad para habilitar proyectiles o mejorar velocidad y salto.
- 03Level InteractionResolver obstáculos, activar puertas, usar plataformas móviles, esquivar trampas y derrotar enemigos.
- 04Game StateGestionar contrarreloj, vidas, puntuación, victoria, derrota, reinicio, menú y pausa.
Arquitectura
La lógica se divide en sistemas pequeños para separar jugador, modo de gameplay, disparo, nivel, enemigos, UI, tiempo, puntuación e interacción con el escenario.
- BulletControl — disparo, proyectiles, límite de balas y recarga.
- ButtonDoorControl — botones, puertas elevadizas e interacción.
- CameraControl — seguimiento y control de cámara.
- DestructibleItem — comportamiento de elementos destructibles.
- EndLevelControl — detección de final de fase y condición de victoria.
- EnemyControl — comportamiento de enemigos derrotables.
- GrabbedItemControl — objetos interactuables o recogibles.
- LevelManager — control general del nivel.
- MenuController — navegación por menús y pausa.
- MobilePlatform — comportamiento de plataformas móviles.
- Parallax — efecto visual de profundidad en el escenario.
- PlayerModeController — cambio entre modo combate y modo movilidad.
- PlayerMovement — movimiento, salto y físicas del jugador.
- ScoreController — puntuación.
- TimerControl — contrarreloj y condición de derrota por tiempo.
Tecnologías
Visuales previstos
El repositorio deja preparados nombres previstos para logo, portada, banner y miniaturas centradas en cambio de modo, plataformas, puertas con botones y combate.
iorobot-logo.pngiorobot-cover.pngiorobot-banner.pngiorobot-thumbnail-01-mode-switching.pngiorobot-thumbnail-02-platforming.pngiorobot-thumbnail-03-door-button-puzzle.pngiorobot-thumbnail-04-combat-mode.png
Estado y próximos pasos
Ruta recomendada de revisión
Para revisar técnicamente el proyecto, conviene empezar por los sistemas que conectan tiempo, cambio de modo, proyectiles e interacción con puertas.
TimerControl.csContrarreloj, pérdida por tiempo y sincronización del estado de partida.PlayerModeController.csCambio entre modo combate y modo movilidad con feedback visual.BulletControl.csDisparo, proyectiles, límite de balas y recarga por tiempo.ButtonDoorControl.csInteracción con botones, puertas elevadizas y obstáculos del nivel.
Aprendizajes
Este proyecto me permitió trabajar movimiento y salto 2D con Rigidbody2D, detección de suelo, gravedad, plataformas y control de personaje en un entorno de plataformas.
También me ayudó a diseñar un personaje con dos modos de gameplay claramente diferenciados, tanto a nivel mecánico como visual: combate y movilidad.
Además, practiqué gestión de proyectiles con límite y recarga por tiempo, contrarreloj, vidas, victoria, derrota e interacción con puertas, botones, plataformas móviles y objetos destructibles.