Desarrollo y optimización de entorno 3D en Unity

Ramos Gutiérrez, Alberto (2020). Desarrollo y optimización de entorno 3D en Unity. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.

Description

Title: Desarrollo y optimización de entorno 3D en Unity
Author/s:
  • Ramos Gutiérrez, Alberto
Contributor/s:
  • Alonso Calvo, Raúl
Item Type: Final Project
Degree: Grado en Ingeniería Informática
Date: January 2020
Subjects:
Faculty: E.T.S. de Ingenieros Informáticos (UPM)
Department: Lenguajes y Sistemas Informáticos e Ingeniería del Software
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (5MB) | Preview

Abstract

El planteamiento de este proyecto era el de diseñar, crear y optimizar un entorno tridimensional, así como un videojuego que sirva como prueba de concepto, con el motor gráfico Unity, siempre teniendo muy presente la optimización de cada apartado del juego. Los distintos objetivos principales eran los de: hacer el diseño del juego, crear el escenario donde tendría lugar el juego, escribir al menos un shader para aplicar a algún elemento del entorno y, finalmente, desarrollar el juego, que implica pero no consiste únicamente en escribir una variedad de scripts que implementen la funcionalidad de diversos factores del juego. Tomé varios videojuegos existentes como referencia sobre los que he basado varios aspectos del juego, entre ellos la estética general, que he buscado lograr mediante el uso de recursos artísticos ya creados y de un shader que modifica la estética de un elemento del entorno. Usé las herramientas de generación de terreno de Unity para crear el entorno explorable por el personaje y lo rellené de objetos para dotar al escenario de credibilidad. He aplicado técnicas de optimización a varios niveles: en el escenario se usan técnicas de renderizado diseñadas para quitar cargas de trabajo a la tarjeta gráfica; en el código he puesto gran énfasis en realizar cachés lo máximo posible, así como de usar los algoritmos más apropiados para cada situación. El grueso del proyecto, sin embargo, fue la realización de la lógica del juego: escribir todo el código en C# entre los diversos scripts para los objetos del juego que tienen alguna funcionalidad. A pesar de estar terminado el proyecto con todos los objetivos cumplidos, hay muchas posibilidades de continuación de trabajo en el futuro: extensión del entorno, optimización de los sistemas del juego ya establecidos y, sobre todo, la inclusión de nuevos sistemas para agrandar las posibilidades del juego.---ABSTRACT---The goal for this project was to design, make and optimize a 3D environment, as well as a videogame to serve as proof of concept, made in the Unity game engine, always keeping optimization in mind. The different objectives for my project were: design the game, build the environment where the game takes place, write at least one shader to apply to some element in the environment and develop the game itself, which consists in -among other things- creating the scripts to implement all the logic and functionalities in the game. I took some existing games as reference/inspiration for several aspects of the game, one of them being the aesthetic. I tried to accomplish this through the use of already made art assets and a custom made shader to modify the looks of one or more element/s in the environment. I used Unity’s terrain tools to create the walkable environment and filled it with objects to give it credibility. I applied optimization techniques to various degrees: rendering techniques used by the environment so as not to draw unnecessary assets and reduce the graphic’s card work load; also, in code, I’ve strived to use caching as much as possible, as well as the most appropriate algorithms for every situation. Lastly I developed all the logic for the game. Even though I finished the project and succeeded in accomplishing all objectives there’s a lot of room for improvement and optimization of the already implemented game systems as well as other game systems to extend the possibilities of the game.

More information

Item ID: 58090
DC Identifier: http://oa.upm.es/58090/
OAI Identifier: oai:oa.upm.es:58090
Deposited by: Biblioteca Facultad de Informatica
Deposited on: 19 Feb 2020 08:58
Last Modified: 19 Feb 2020 08:58
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM