Motor de videojuegos 3D básico para fines pedagógicos
Tesis
Publication date
2021Metadata
Show full item record
Cómo citar
Calderón Saavedra, Daniel
Cómo citar
Motor de videojuegos 3D básico para fines pedagógicos
Author
Professor Advisor
Abstract
Hoy en día el interés en los videojuegos es innegable, ejemplo de esto a nivel local son
la comunidad de desarrollo de videojuegos en u-cursos con alrededor de 300 integrantes y el reciente ramo Taller de Diseño y Desarrollo de Videojuegos con alrededor de 65 personas tomándolo. Es bajo este contexto que desarrollar un motor de videojuegos, el cual apoyará el aprendizaje de un curso de arquitectura de motores de videojuegos, que el Profesor Daniel Calderón planea dictar, se vuelve un tema relevante.
Dentro del curso a dictar tener este motor serviría, por ejemplo, para tener fragmentos de
código de un sistema simple sin barreras de entrada tan grandes como motores ya establecidos. Enseñar y facilitar el aprendizaje sobre motores gráficos es relevante, ya que en primer lugar si bien siempre existe la opción de usar motores ya disponibles, conocer sobre su funcionamiento interno, o entender el razonamiento bajo el diseño de ellos facilita el aprendizaje sobre cómo usarlos. En otras palabras, conocer sobre motores de videojuegos, es similar al conocimiento de sistemas operativos para desarrollar aplicaciones de sistemas.
El motor desarrollado es uno básico, de código abierto, multiplataforma y escrito en el
lenguaje C++, el cual cuenta con los siguientes sistemas: un sistema de renderizado, un
sistema de audio, un sistema de física y colisiones, un sistema de animación, un sistema de eventos y un modelo de las entidades que existen dentro del mundo simulado típicamente llamados game objects. Cada uno de estos sistemas no es de alta complejidad, pero de todos modos permite ilustrar la arquitectura típica de un motor compuestos por estos.
El sistema de renderizado permite renderizar mallas estáticas y animadas, además implementa múltiples modelos de iluminación de distinta complejidad. El sistema de animación soporta una basada en esqueletos y transiciones suaves entre diferentes animaciones. El sistema de física simula múltiples cuerpos rígidos y permite hacer consultas de tipo raycast. El sistema de audio permite reproducir múltiples sonidos, los cuales pueden ser espacializados. Finalmente, el motor posee un modelo de game objects basado en componentes.
Para demostrar el correcto funcionamiento de la solución desarrollada, se implementaron
exitosamente dos ejemplos que hacen uso de las distintas características soportadas por los sistemas del motor. Estos ejemplos consistieron en un clon del juego clásico Breakout y una aplicación donde el movimiento de un personaje animado es controlado con el mouse.
Como trabajo futuro destacan el añadir las siguientes características al motor: sombras
al sistema de renderizado, simulación del entorno acústico al sistema de audio, métodos de interpolación más complejos al sistema de animación, compresión de datos a este mismo sistema y simulación de ragdolls al sistema de física.
General note
Memoria para optar al título de Ingeniero Civil en Computación
Identifier
URI: https://repositorio.uchile.cl/handle/2250/181544
Collections
The following license files are associated with this item: