Del Concepto al Desarrollo: Construcción de un Videojuego Runner 3D con Enfoque Ambiental en Unity
Cómo diseñamos una experiencia interactiva que combina entretenimiento, arquitectura de software y conciencia ecológica
La industria del desarrollo de videojuegos se ha convertido en uno de los campos tecnológicos más exigentes y multidisciplinarios de la actualidad. Construir una experiencia digital funcional ya no depende únicamente de crear gráficos atractivos o mecánicas entretenidas; implica integrar principios de ingeniería de software, diseño visual, experiencia de usuario, programación orientada a objetos, optimización de recursos y arquitectura de sistemas.
Bajo esta visión nació nuestro proyecto académico: un videojuego Runner 3D desarrollado en Unity Engine 6, diseñado no solo como una experiencia de entretenimiento, sino también como una herramienta interactiva con enfoque ambiental. El objetivo principal fue construir un entorno dinámico donde los jugadores pudieran desplazarse continuamente, recolectar elementos ecológicos, evitar obstáculos y enfrentarse a una dificultad progresiva, mientras interactúan con una propuesta visual diseñada alrededor de la sostenibilidad y la responsabilidad ambiental.
El desarrollo fue realizado por Keren Saray Guzmán Yepes, Angélica María Camacho Monsalve y Julián David Garzón Fuquen, estudiantes de Ingeniería de Sistemas de la Universidad Central, dentro del espacio académico de Modelado 3D y Videojuegos.
Más allá del resultado final, este proyecto representó una oportunidad para aplicar conocimientos técnicos reales en un entorno práctico de desarrollo de videojuegos modernos.
La idea inicial: transformar un Endless Runner tradicional
Los videojuegos tipo Endless Runner poseen una característica principal: el jugador nunca deja de avanzar.
Títulos de este género suelen basarse en:
- Movimiento automático continuo
- Recolección de objetos
- Evasión de obstáculos
- Incremento progresivo de dificultad
- Sistemas de puntuación acumulativa
Sin embargo, la intención del proyecto no era replicar una experiencia tradicional, sino reinterpretarla mediante una propuesta con propósito educativo.
La idea central consistió en construir un videojuego donde el usuario interactuara con elementos relacionados con la conservación ambiental mientras avanza dentro de escenarios tridimensionales dinámicos.
En lugar de únicamente acumular puntos, el jugador debe desarrollar capacidad de reacción, toma rápida de decisiones y reconocimiento de elementos beneficiosos dentro del entorno.
La propuesta también incorporó un componente de identidad bastante particular: los personajes principales fueron diseñados tomando como referencia directa a los integrantes del equipo desarrollador.
Esta decisión permitió fortalecer apropiación conceptual, diferenciación visual y construcción narrativa dentro de la experiencia digital.
Arquitectura técnica: construir primero la estructura antes del videojuego
Uno de los principios fundamentales aplicados durante el desarrollo fue diseñar una arquitectura organizada desde etapas tempranas.
En proyectos de videojuegos pequeños suele cometerse un error frecuente: comenzar programando mecánicas sin una estructura clara.
A medida que el proyecto crece aparecen problemas como:
- Código difícil de mantener
- Dependencias innecesarias
- Errores de escalabilidad
- Bajo rendimiento
- Dificultad para agregar nuevas funcionalidades
Para evitar este escenario, se implementó una arquitectura modular basada en componentes utilizando Unity Engine 6 y programación orientada a objetos mediante C#.
El sistema fue dividido en subsistemas independientes responsables de funciones específicas:
Sistema de movimiento
Controla:
- Desplazamiento continuo
- Movimiento lateral
- Salto
- Actualización de animaciones
- Validación de estados del personaje
Sistema de puntuación
Administra:
- Tiempo de supervivencia
- Recolección de elementos
- Bonificaciones
- Progresión de niveles
Sistema de colisiones
Gestiona:
- Interacción con obstáculos
- Recolección de objetos
- Activación de potenciadores
- Eventos físicos
Sistema de dificultad dinámica
Permite incrementar progresivamente la exigencia del videojuego mediante ajustes automáticos sobre velocidad y complejidad.
Sistema de escenarios dinámicos
Construye nuevas secciones del entorno conforme avanza la partida.
Este enfoque permitió mantener una estructura organizada y facilitar futuras expansiones.
Unity Engine 6 como motor principal de desarrollo
La construcción técnica del proyecto se realizó utilizando Unity Engine 6, una de las plataformas más utilizadas actualmente para desarrollo de videojuegos.
Su arquitectura basada en componentes facilitó la implementación modular del sistema.
Entre las tecnologías integradas durante el proyecto se utilizaron:
- C#
- Rigidbody
- Collider
- Animator
- TextMeshPro
- SceneManager
- Universal Render Pipeline (URP)
- AudioSource
- Input System
La decisión de trabajar sobre Unity permitió aprovechar múltiples herramientas internas relacionadas con física, animación, administración de escenas y optimización.
Uno de los elementos más importantes fue la implementación del sistema físico mediante:
- Rigidbody
- Triggers
- Collider
Esta combinación permitió administrar gravedad, movimiento, detección de impactos y respuesta automática ante interacciones.
Construcción del personaje: modelos 3D, Avatar y sistema de animación
Uno de los desafíos más importantes apareció durante la integración de personajes personalizados dentro del motor.
Los modelos tridimensionales fueron importados y configurados mediante el sistema Humanoid Avatar de Unity, permitiendo conectar correctamente las estructuras óseas del personaje con el sistema interno de animaciones.
Durante el proceso fue necesario configurar correctamente:
- Avatar Definition
- Rig Humanoid
- Animator Controller
- Root Motion
- Estados de animación
El sistema Animator permitió construir una máquina de estados responsable de controlar comportamientos visuales del personaje.
Se diseñaron estados principales asociados a:
- Movimiento principal
- Salto
- Muerte
Las transiciones internas permiten cambiar dinámicamente entre animaciones dependiendo del comportamiento actual del jugador.
Por ejemplo:
Si el personaje salta:
Run → Jump
Si ocurre una colisión crítica:
Run → Death
Este enfoque mejora considerablemente la percepción visual y fortalece sensación de respuesta inmediata dentro de la experiencia interactiva.
Adicionalmente, la integración de Avatars personalizados permitió reutilizar sistemas de animación sin necesidad de construir configuraciones independientes para cada personaje.
Mecánica principal: movimiento continuo y control simplificado
Uno de los principios UX más importantes dentro de videojuegos Runner consiste en reducir complejidad operativa.
Por esa razón el sistema implementó únicamente tres controles principales:
A → Movimiento izquierda
D → Movimiento derecha
SPACE → Salto
La intención fue construir una curva de aprendizaje accesible.
El desplazamiento frontal ocurre automáticamente.
Esto significa que el jugador no debe preocuparse por avanzar; únicamente debe reaccionar ante el entorno.
La lógica interna utiliza movimiento basado sobre Rigidbody:
rb.MovePosition(
transform.position +
transform.forward *
speed *
Time.deltaTime
);
El uso de Time.deltaTime garantiza consistencia entre equipos con diferentes tasas de cuadros por segundo.
De esta manera el videojuego mantiene estabilidad operativa incluso bajo condiciones de hardware distintas.
El desplazamiento lateral se encuentra limitado mediante un sistema de carriles.
Se establecieron restricciones para impedir que el personaje abandone el área válida de interacción:
- Límite izquierdo: -2
- Límite derecho: 2
Esta decisión reduce errores operativos y fortalece precisión de control.
Sistema de salto e integración física
El salto representa una de las mecánicas más importantes dentro del flujo de juego.
La implementación se realizó utilizando impulso físico real mediante Rigidbody.
El comportamiento principal funciona a través de:
AddForce(
Vector3.up *
jumpForce,
ForceMode.Impulse
);
Este enfoque permite obtener movimientos más naturales respecto a desplazamientos manuales por transformación directa.
Adicionalmente se implementaron validaciones internas para evitar:
- Doble salto accidental
- Salto infinito
- Explotación de mecánicas
La condición principal valida velocidad vertical antes de permitir una nueva acción.
Esto mejora equilibrio y estabilidad dentro del sistema.
Sistema de puntuación: supervivencia y estrategia
La puntuación no se limita únicamente a permanecer vivo.
El sistema integra múltiples variables:
Tiempo de supervivencia
Mientras el jugador continúa activo, la puntuación aumenta automáticamente.
La lógica conceptual puede resumirse así:
Puntaje =
Tiempo Sobrevivido
+
Bonificaciones
Esto incentiva permanencia dentro de la experiencia.
Recolección de elementos
El videojuego incorpora objetos ecológicos distribuidos estratégicamente.
Cuando el jugador entra en contacto con ellos:
- Se incrementa la puntuación
- Se reproduce sonido
- Aparece retroalimentación visual
- El objeto desaparece
Cada elemento recolectado aporta bonificaciones adicionales.
Esto genera una combinación interesante entre:
- Exploración
- Supervivencia
- Precisión operativa
Sistema de colisiones: el núcleo mecánico del videojuego
Las colisiones representan uno de los componentes técnicos más críticos.
El sistema implementado combina:
- Collider
- Rigidbody
- Trigger
Cada objeto posee una etiqueta específica (Tag) que permite identificar comportamiento esperado.
Por ejemplo:
Obstáculos
Si ocurre impacto contra un obstáculo:
- Se activa Game Over
- Se reproduce animación de muerte
- Se detiene música
- Se bloquea desplazamiento
La respuesta inmediata fortalece percepción de consecuencias dentro de la experiencia.
Objetos recolectables
Cuando el personaje entra en contacto:
- Incrementa puntuación
- Ejecuta sonido
- Aparece efecto visual
- El objeto desaparece
Potenciadores
Algunos objetos especiales modifican temporalmente capacidades internas del jugador.
Aquí aparece uno de los componentes más interesantes del proyecto.
Sistema de potenciadores: introducir estrategia dentro del desafío
El videojuego incorpora un potenciador principal:
Escudo Protector
Su función consiste en proporcionar inmunidad temporal frente a obstáculos.
Cuando el jugador lo obtiene:
- Se activa protección interna
- Los impactos dejan de finalizar la partida
- Los obstáculos se destruyen automáticamente
- Aparecen efectos visuales específicos
La duración establecida fue:
5 segundos
Aunque parece una mecánica sencilla, introduce un componente estratégico importante.
El usuario debe decidir cómo aprovechar temporalmente esa ventaja.
Además, desde perspectiva de diseño, estos sistemas ayudan a mantener ritmo dinámico y reducir sensación de monotonía.
Escenarios dinámicos y generación procedural
Uno de los componentes más importantes desde perspectiva técnica fue la construcción de escenarios dinámicos.
Crear un escenario infinito completo desde el inicio genera múltiples problemas:
- Consumo excesivo de memoria
- Baja estabilidad
- Sobrecarga gráfica
- Procesamiento innecesario
La solución implementada fue utilizar generación procedural.
El sistema administra automáticamente:
- Creación de nuevos segmentos
- Eliminación de elementos fuera del área útil
- Administración progresiva de memoria
Variables internas como:
levelLength
count
permiten determinar cuándo generar nuevas secciones.
El resultado es un entorno potencialmente infinito que mantiene estabilidad operativa.
Este enfoque constituye una práctica ampliamente utilizada dentro de videojuegos Runner modernos.
Diseño visual y experiencia de usuario
La propuesta visual fue diseñada bajo principios de:
- Claridad gráfica
- Simplicidad visual
- Consistencia estética
- Retroalimentación inmediata
En videojuegos donde velocidad aumenta progresivamente, la saturación visual puede convertirse en un problema serio.
Por esa razón se priorizó:
- Contraste entre objetos
- Distribución estratégica
- Espacios visuales limpios
- Identificación rápida de elementos interactivos
La interfaz gráfica fue construida utilizando:
- Canvas
- TextMeshPro
- Buttons
- Panels
Los principales componentes UI incluyen:
Menú principal
Permite:
- Iniciar partida
- Visualizar instrucciones
- Salir del juego
Pantalla de instrucciones
Explica:
- Controles
- Objetivos
- Mecánicas principales
HUD
Muestra información en tiempo real:
- Puntaje
- Progreso
Pantalla Game Over
Facilita:
- Reinicio rápido
- Regreso al menú principal
Todas estas decisiones fueron orientadas a construir una experiencia intuitiva y accesible.
Optimización: una parte invisible pero fundamental
Uno de los mayores retos dentro del desarrollo de videojuegos modernos consiste en optimizar recursos.
Un videojuego puede verse visualmente atractivo y aun así presentar problemas graves:
- Caídas de FPS
- Alto consumo RAM
- Baja estabilidad
- Procesamiento excesivo
Para evitarlo se implementaron múltiples estrategias.
Eliminación automática de objetos
Los elementos fuera del área útil son destruidos automáticamente.
Esto reduce:
- Consumo memoria
- Carga física
- Procesamiento innecesario
Uso de Universal Render Pipeline
URP permitió mejorar rendimiento gráfico manteniendo calidad visual.
Procesamiento distribuido
Los elementos aparecen únicamente cuando resultan necesarios.
Esto evita cargas iniciales excesivas.
Arquitectura escalable
La organización modular permite agregar:
- Nuevos personajes
- Obstáculos adicionales
- Más potenciadores
- Nuevos escenarios
- Logros
- Clasificaciones
sin necesidad de reconstruir toda la arquitectura.
Más que un videojuego: una aplicación práctica de ingeniería de software
El proyecto permitió demostrar cómo principios clásicos de ingeniería de software pueden integrarse directamente dentro del desarrollo de videojuegos.
Durante la construcción fue necesario aplicar conceptos relacionados con:
- Modularidad
- Encapsulamiento
- Reutilización
- Escalabilidad
- Optimización
- Arquitectura de sistemas
- Diseño orientado a objetos
Además, incorporar una temática ambiental permitió añadir una dimensión educativa al producto.
El videojuego deja de ser únicamente una experiencia recreativa y se convierte en una herramienta digital capaz de transmitir conceptos asociados con sostenibilidad y responsabilidad ecológica.
Finalmente, el proyecto permitió consolidar conocimientos técnicos reales dentro de un entorno de desarrollo moderno, integrando programación, modelado tridimensional, experiencia de usuario y arquitectura de software dentro de una única experiencia interactiva.
El resultado no solo fue un Runner 3D funcional desarrollado en Unity, sino también una demostración práctica de cómo la tecnología puede convertirse en un medio para construir experiencias digitales con propósito.
Arquitectura general

Diagrama de flujo general
Desarrollo del Videojuego
1. Conceptualización del Videojuego
1.1 Contexto General
El videojuego desarrollado corresponde a una experiencia interactiva tridimensional perteneciente al género Runner de desplazamiento continuo, diseñada bajo un enfoque educativo–ambiental orientado a generar conciencia sobre la importancia de la conservación del entorno mediante dinámicas lúdicas.
La propuesta busca transformar una mecánica tradicional de videojuegos arcade en una herramienta interactiva capaz de transmitir conceptos asociados a sostenibilidad y responsabilidad ambiental mediante procesos implícitos de aprendizaje.
A diferencia de experiencias tradicionales centradas exclusivamente en competencia o acumulación de puntuación, el proyecto incorpora una narrativa conceptual donde los jugadores representan agentes activos dentro de un entorno ecológico afectado por elementos contaminantes y obstáculos asociados al deterioro ambiental.
Los personajes principales corresponden a representaciones digitales de los integrantes del equipo desarrollador, fortaleciendo componentes de identidad y apropiación dentro del diseño narrativo.
La dinámica principal se fundamenta en tres pilares funcionales:
Recolección
El jugador debe identificar elementos beneficiosos presentes dentro del entorno. Estos objetos permiten incrementar puntuación y favorecer progresión dentro del sistema.
Supervivencia
El jugador debe evitar colisiones con obstáculos que comprometan continuidad de la partida. La supervivencia constituye la variable principal que determina duración y rendimiento dentro del juego.
Progresión Dinámica
La dificultad incrementa progresivamente mediante mecanismos automáticos relacionados con velocidad y complejidad del entorno. Este enfoque busca mantener equilibrio entre accesibilidad inicial y desafío progresivo.
1.2 Género y Clasificación
Clasificación principal:
| Característica | Clasificación |
| Género principal | Endless Runner |
| Subgénero | Arcade 3D |
| Plataforma objetivo | PC |
| Motor gráfico | Unity 6 |
| Lenguaje | C# |
| Estilo visual | 3D estilizado |
| Perspectiva | Tercera persona |
| Modalidad | Individual |
1.3 Público Objetivo
El producto está orientado hacia usuarios jóvenes y adultos interesados en experiencias digitales casuales con componentes educativos implícitos.
Se establece como público objetivo:
Edad objetivo: 10 – 30 años
Perfil jugador:
- Jugadores casuales
- Usuarios interesados en sostenibilidad
- Comunidad académica
- Público universitario
Duración estimada de sesión: 5 – 15 minutos
Curva aprendizaje: Baja complejidad inicial + Incremento progresivo dificultad




2. Arquitectura del Sistema
La arquitectura del videojuego fue diseñada bajo un modelo modular orientado a componentes, aprovechando la estructura nativa del motor Unity para separar responsabilidades funcionales y facilitar procesos futuros de mantenimiento, escalabilidad y optimización.
El desarrollo utiliza un enfoque basado en programación orientada a objetos (POO), permitiendo encapsular comportamientos específicos dentro de componentes independientes asociados a cada entidad del sistema.
La arquitectura implementada se encuentra dividida en múltiples subsistemas funcionales encargados de gestionar aspectos específicos del entorno interactivo.
Los principales componentes identificados son:

La separación funcional permite reducir acoplamiento entre componentes, mejorando mantenibilidad y favoreciendo reutilización de código.
2.1 Motor de Desarrollo
El videojuego fue desarrollado utilizando Unity Engine 6 LTS, una plataforma multiplataforma especializada en construcción de experiencias interactivas bidimensionales y tridimensionales.
Unity proporciona una arquitectura basada en componentes que permite asociar funcionalidades específicas a entidades independientes mediante scripts desarrollados en lenguaje C#.
Dentro del proyecto se utilizaron funcionalidades propias del motor relacionadas con:
Motor físico
Implementado mediante:
- Rigidbody
- Collider
- Triggers
- Fuerzas físicas
El sistema físico permite administrar:
- gravedad
- detección de colisiones
- desplazamiento controlado
- interacción con obstáculos
Sistema de Animación
Se implementó mediante:
- Animator Controller
- Animation States
- Transitions
Dentro del personaje principal se identificó integración con Animator para controlar estados asociados al movimiento y eventos de juego.
Variables utilizadas:
- Jump
- Death
Estas variables permiten modificar dinámicamente comportamientos visuales del personaje dependiendo del estado actual.
Sistema de Escenas
El proyecto implementa múltiples escenas independientes:
- MenuInicial
- SampleScene
Cada escena cumple responsabilidades específicas.
MenuInicial
Responsabilidades:
- menú principal
- navegación inicial
- transición gameplay
SampleScene
Responsabilidades:
- entorno principal
- lógica gameplay
- sistema puntuación
- obstáculos
- progresión
La separación entre escenas permite modularizar experiencia del usuario.
Sistema de Prefabs
El proyecto utiliza prefabricados (Prefabs) para optimizar reutilización de recursos.
Elementos reutilizables identificados:
- Player
- Floor
- Shield
- Obstacles
Beneficios técnicos:
- reducción duplicación
- facilidad mantenimiento
- actualización centralizada
- optimización desarrollo
2.2 Lenguaje de Programación
La implementación funcional fue desarrollada utilizando C#, lenguaje orientado a objetos integrado dentro del ecosistema Unity.
El paradigma orientado a objetos permite modelar entidades independientes encapsulando datos y comportamientos específicos.
Principios aplicados:
Encapsulamiento
Cada componente administra internamente sus propias variables y lógica.
Ejemplo identificado:
CharacterScript:
float roundScore;
bool isGameOver;
bool isShield;
Las variables permanecen controladas internamente reduciendo dependencias externas.
Modularidad
Cada script posee responsabilidades específicas.
Arquitectura observada:
Esta estructura reduce acoplamiento funcional.
Reutilización
El uso de componentes independientes facilita expansión futura.
Ejemplo:
El sistema de movimiento puede reutilizarse sobre múltiples personajes sin necesidad de rediseñar lógica principal.
2.3 Arquitectura Funcional del Sistema
El videojuego implementa un modelo centralizado de control utilizando un componente administrador principal denominado:
GameManager
Este componente actúa como núcleo operativo del videojuego.
Responsabilidades identificadas:
Gestión dinámica escenarios
El sistema administra generación procedural de segmentos.
Variables identificadas:
levelLength = 106.3f;
count = 10;
El escenario incrementa progresivamente conforme avanza el jugador.
Proceso identificado:

Esto permite construir un entorno potencialmente infinito.
Gestión progresión dificultad
La velocidad global incrementa automáticamente:
Time.timeScale
Restricción:
Máximo = 3x
Objetivo:
- mantener desafío
- evitar monotonía
- incrementar exigencia progresiva
Gestión transición niveles
Se identificaron cuatro etapas dinámicas:
Nivel 1:
0 – 199 puntos
Nivel 2:
200 puntos
Nivel 3:
1000 puntos
Nivel 4:
2000 puntos
El cambio ocurre automáticamente mediante validación continua del puntaje.
Proceso:
2.4 Organización del Proyecto
La estructura organizacional identificada sigue lineamientos modulares.2
Descripción funcional:
Scripts
Contiene lógica principal.
Ejemplos:
- GameManager.cs
- CharacterScript.cs
- MenuInicial.cs
- ObstacleDestroy.cs
Prefabs
Almacena entidades reutilizables.
Ejemplos:
- Player
- Obstacle
- Shield
- Floor
Scenes
Administra flujo navegación.
Ejemplos:
- MenuInicial
- Gameplay
2.5 Dependencias Tecnológicas
Tecnologías identificadas:
| Tecnología | Función |
| Unity 6 LTS | Motor desarrollo |
| C# | Programación |
| TextMeshPro | Interfaz texto |
| Input System | Entrada usuario |
| Rigidbody | Física |
| Animator | Animaciones |
| URP | Renderizado |
| AudioSource | Sonido |
| SceneManager | Gestión escenas |
3. Diseño Técnico del Videojuego
El diseño técnico constituye la representación estructural de los componentes funcionales que conforman la lógica operativa del videojuego. Esta fase permite describir detalladamente la implementación de las mecánicas principales, la interacción entre módulos y las decisiones de ingeniería adoptadas durante el desarrollo.
La arquitectura funcional implementada se fundamenta en un modelo modular orientado a componentes, donde cada entidad del sistema posee responsabilidades específicas dentro del flujo operativo general.
Los componentes identificados corresponden a:
- Sistema de Movimiento
- Sistema de Puntuación
- Sistema de Colisiones
- Sistema de Escudo
- Sistema de Escenarios
- Sistema de Dificultad
- Sistema de Audio
- Sistema de Interfaz
Cada subsistema interactúa de forma coordinada para construir la experiencia completa de juego.
3.1 Sistema de Movimiento del Jugador
El sistema de movimiento constituye uno de los componentes principales dentro del videojuego, ya que permite la interacción directa entre usuario y entorno tridimensional.
La implementación se realizó mediante un componente denominado: CharacterScript.cs
Este módulo administra:
- desplazamiento lateral
- movimiento automático frontal
- salto
- actualización de animaciones
- validación de estado del jugador
El desplazamiento frontal ocurre continuamente sin intervención directa del usuario.
Implementación conceptual: Posición Actual+Velocidad+Tiempo=Nueva Posición
Implementación observada:
rb.MovePosition(
transform.position +
transform.forward *
speed *
Time.deltaTime
);
El uso de Time.deltaTime permite garantizar independencia respecto a la tasa de cuadros por segundo (FPS), asegurando comportamiento consistente entre distintos equipos.
Movimiento Horizontal
El videojuego implementa desplazamiento lateral mediante sistema de carriles.
Entrada identificada:
- A → Izquierda
- D → Derecha
Proceso funcional:
Entrada usuario → Validación límites → Movimiento lateral → Actualización posición
Restricciones observadas:
- Límite izquierdo = -2
- Límite derecho = 2
Estas restricciones impiden que el jugador abandone el área válida de interacción.
Modelo conceptual:
Carril Izquierdo → Carril Central → Carril Derecho
Esta arquitectura resulta común en videojuegos tipo runner, ya que facilita control intuitivo y reduce complejidad cognitiva durante la interacción.
Sistema de Salto
El salto se implementa utilizando el motor físico integrado de Unity.
Evento identificado: SPACE
Proceso operativo:
Implementación conceptual:
AddForce(
Vector3.up *
jumpForce,
ForceMode.Impulse
);
El uso de impulso físico permite obtener movimientos más naturales respecto a desplazamientos manuales por transformación directa.
Adicionalmente, el sistema valida velocidad vertical antes de permitir un nuevo salto.
Condición identificada:
Velocidad Y ≈ 0
Esto evita:
- salto infinito
- doble salto accidental
- explotación mecánica
3.2 Sistema de Puntuación
El sistema de puntuación constituye uno de los mecanismos principales de retroalimentación para el usuario.
Su propósito consiste en cuantificar desempeño durante la partida.
La puntuación se construye mediante dos fuentes principales:
Tiempo de supervivencia
El puntaje incrementa continuamente mientras el jugador permanece activo.
Modelo identificado: Score = Tiempo acumulado + Bonificaciones
Proceso:

Implementación conceptual:
roundScore +=
Time.deltaTime;
Este enfoque incentiva supervivencia prolongada.
Recolección de elementos
El videojuego incorpora elementos recolectables distribuidos dentro del escenario.
Proceso:

Etiqueta identificada: Money
Incremento observado: +5 puntos
Modelo matemático: Puntaje Total = Tiempo Sobrevivido + Objetos Recolectados
Este enfoque combina:
- desempeño técnico
- exploración
- supervivencia
3.3 Sistema de Colisiones
El sistema de colisiones constituye uno de los componentes fundamentales dentro de la arquitectura funcional del videojuego, ya que permite administrar las interacciones físicas entre el jugador y los distintos elementos presentes dentro del entorno tridimensional. Su implementación resulta crítica para garantizar consistencia mecánica, retroalimentación inmediata al usuario y correcta ejecución de eventos asociados al progreso de la partida.
La solución desarrollada utiliza el motor físico integrado de Unity mediante la combinación de componentes Collider, Rigidbody y mecanismos de detección por Triggers, permitiendo construir un modelo híbrido de interacción capaz de responder dinámicamente ante distintos tipos de objetos presentes en el escenario.
El componente Rigidbody se encuentra asociado al personaje principal y permite que los movimientos se integren correctamente con el sistema físico del motor, incorporando gravedad, fuerzas y validación automática de colisiones. Por otra parte, los componentes Collider delimitan las áreas de interacción física de cada objeto, estableciendo superficies de contacto capaces de generar eventos cuando se produce una superposición o impacto.
Adicionalmente, se emplean Triggers para detectar eventos específicos que no requieren respuesta física directa, permitiendo activar acciones relacionadas con puntuación, potenciadores y elementos recolectables sin afectar el desplazamiento natural del jugador.
El sistema implementado permite identificar interacciones con múltiples categorías de objetos:
- Obstáculos
- Elementos recolectables
- Potenciadores
- Elementos del entorno
Cada objeto posee una etiqueta (Tag) específica que facilita su identificación lógica durante la ejecución del juego.
Interacción con obstáculos
Los obstáculos representan el principal mecanismo de desafío dentro de la experiencia interactiva. Estos elementos se encuentran distribuidos estratégicamente a lo largo del escenario con el propósito de exigir capacidad de reacción y toma de decisiones por parte del jugador.
Cuando el personaje establece una colisión con un objeto etiquetado como: Obstacle, el sistema ejecuta una validación interna relacionada con el estado actual del jugador.
Si el personaje no posee protección activa mediante potenciadores, la partida finaliza automáticamente, ejecutando una serie de acciones orientadas a proporcionar retroalimentación inmediata al usuario.
Entre las acciones implementadas se encuentran:
- activación del menú de derrota
- reproducción de efectos sonoros
- activación de animación de muerte
- detención de música de fondo
- bloqueo de continuidad del desplazamiento
Este comportamiento busca generar una transición clara entre el estado de juego activo y el estado de finalización de partida, reforzando la comprensión del usuario respecto a las consecuencias derivadas de errores durante la ejecución.
Interacción con elementos recolectables
El videojuego incorpora objetos de recolección cuya finalidad principal consiste en incentivar exploración y favorecer progresión de puntuación.
Estos elementos utilizan la etiqueta: Money
Cuando el jugador establece contacto con uno de estos objetos, el sistema ejecuta automáticamente una secuencia de eventos internos orientados a reforzar la experiencia interactiva.
Entre las operaciones realizadas se encuentran:
- incremento de puntuación
- reproducción de efectos visuales
- reproducción de sonido asociado
- eliminación controlada del objeto recolectado
La puntuación obtenida permite fortalecer el componente competitivo y funciona además como variable de progresión utilizada para activar cambios de nivel y escalamiento de dificultad.
Interacción con potenciadores
Adicionalmente, el sistema de colisiones administra interacción con elementos especiales asociados a potenciadores temporales.
Estos componentes no generan una respuesta física tradicional, sino que modifican dinámicamente ciertas propiedades funcionales del jugador durante intervalos específicos.
La implementación mediante detección Trigger permite realizar estas modificaciones sin alterar estabilidad física del entorno ni comprometer consistencia del sistema de movimiento.
En conjunto, el sistema de colisiones constituye una pieza crítica dentro de la arquitectura funcional del videojuego, permitiendo integrar mecánicas de desafío, progresión y recompensa mediante una estructura organizada, modular y consistente.
Créditos
Autor: Angelica Maria Camacho Monsalve – Keren Saray Guzmán Yepes – Julián David Garzón Fuquen
Editor: Magister Ingeniero Carlos Iván Pinzón Romero
Código: UCMVG1-10
Universidad: Universidad Central
Referencias
Unity Technologies. (2025). Unity User Manual. Unity Technologies.
Unity Technologies. (2025). Scripting API Documentation. Unity Technologies.
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.
Schell, J. (2019). The Art of Game Design: A Book of Lenses (3rd ed.). CRC Press.
Fullerton, T. (2018). Game Design Workshop: A Playcentric Approach to Creating Innovative Games (4th ed.). CRC Press.
Pressman, R. S., & Maxim, B. R. (2020). Ingeniería de Software: Un enfoque práctico. McGraw-Hill.
Unity Technologies. (2025). Universal Render Pipeline Documentation.
