Desarrollo de una plataforma flexible para la construcción de escenarios de videojuegos
Tesis
Open/ Download
Publication date
2019Metadata
Show full item record
Cómo citar
Hitschfeld Kahler, Nancy
Cómo citar
Desarrollo de una plataforma flexible para la construcción de escenarios de videojuegos
Author
Professor Advisor
Abstract
Aprender a programar sobre GPUs (Graphics Processing Units), de manera óptima es
una tarea compleja. Esto motiva al alumno a desarrollar una biblioteca similar a los motores
físicos que existen para desarrollar juegos, con funciones que permitan incluir desde modelos
más simples hasta más complejos, para poder generar escenarios que puedan ser parte de
futuros videojuegos, y al mismo tiempo en el contexto de los cursos de Computación en
GPU y Computación Gráfica, para contar con una biblioteca que ayude a los alumnos a
aprender observando y analizando la implementación de problemas y funcionalidades básicas
que juegos y algunas simulaciones necesitan. La idea es que esta biblioteca sea de código
abierto y fácilmente extensible para que a futuro, alumnos del departamento de ciencias de
la computación, puedan usarla, extenderla y mejorarla.
El desarrollo de esta memoria comenzó con una investigación exhaustiva sobre tecnologías
que cumplieran los requisitos de accesibilidad que calzaran con los objetivos propuestos. Es así
como se eligió Typescript y WebGL para construir la plataforma o mejor denominado motor
de videojuegos en un ambiente web y se utilizó el game engine Unity como inspiración del
diseño de ésta. Se realizó un diseño de clases inicial que fue implementado con las condiciones
que incluyera elementos de enseñanza de algunos de los contenidos de programación GPU y
Computación Gráfica. Una vez implementada la primera versión se realizó un rediseño del
módulo más importante del motor de videojuegos, el de rendering para facilitar su extensión
a futuro, por lo que era importante lograr añadir shaders con facilidad, lo que se logró en la
implementación final del motor de videojuegos.
El motor de videojuegos actual contiene sesenta clases entre las que destacan los módulos
de Rendering, Input, Time, GameObject y Physics, además de una biblioteca matemática.
Con estos elementos se construyó un juego simple que tenía como objetivo probar el desempeño
de la plataforma en términos de procesamiento y en términos de flexibilidad de la interfaz.
El juego posee dieciséis elementos que se calculan sus colisiones, un modelo controlable por
el jugador que simula poseer gravedad y tres tipos de shaders entre los que existe uno con
texturas e iluminación Pong, uno para líneas y uno sin texturas ni iluminación.
Dentro de las posibles mejoras destacan: (i) un módulo para almacenar la información del
juego a desarrollar a través de la serialización de los GameObjects de todas las escenas del
juego que se esté desarrollando, (ii) una extensión del módulo de física para poseer simulación
de física newtoniana, la implementación de la función de raycast, (iii) traspasar los procesos
de alto procesamiento como colisiones y física a GPU para obtener un mejor rendimiento para
múltiples elementos y finalmente (iv) la creación de un módulo de animaciones que permita
reproducir animaciones con rigging, que simulan el esqueleto de un modelo 3D para obtener
animaciones realistas.
General note
Memoria para optar al título de Ingeniero Civil en Computación
Identifier
URI: https://repositorio.uchile.cl/handle/2250/174593
Collections
The following license files are associated with this item: