Tesis profesional presentada por Daniel de Jesús Martínez Franco

Licenciatura en Ingeniería en Sistemas Computacionales. Departamento de Computación, Electrónica, Física e Innovación. Escuela de Ingeniería y Ciencias, Universidad de las Américas Puebla.

Jurado Calificador

Presidente: Dr. Mauricio Javier Osorio Galindo
Vocal y Director: Dr. Daniel Vallejo Rodríguez
Secretario: Dr. Fernando Antonio Aguilera Ramírez

Cholula, Puebla, México a 15 de mayo de 2006.

Resumen

En este proyecto de tesis se implementó el Núcleo de un Motor de Juegos que sea re-usable, modular y que aproveche lo mejor posible los recursos de hardware que lleva por nombre SION Engine.

Este Motor de Juegos cuenta con 3 sub-Motores: un Motor Gráfico, un Motor de Audio y un Motor Input. El Motor Gráfico se encarga de la administración de objetos y modelos 3D, su rendereo en la pantalla, las matemáticas que se relacionan a estos modelos 3D, y los movimientos de cámaras. El Motor de Audio solamente se encarga de administrar los sonidos, y el Motor Input se encarga de administrar los dispositivos de entrada. Para el diseño y desarrollo de SION Engine se utilizó el lenguaje de programación C++, el API de DirectX ( DirectSound, DirectMusic, Direct3D, DirectInput), un lenguaje de programación de shaders para optimizar el procesamiento de vértices y píxeles en el GPU llamado HLSL ( High Level Shading Language ) y un tipo especial de lenguaje ensamblador para optimizar las matemáticas 3D en el CPU llamado SSE ( Streaming SIMD extensión ). Para que fuera modular, se utilizó un tipo de estructura en el cual cada sub-Motor es independiente y se pueden utilizar por separado dependiendo las necesidades que se requieran. También se pueden hacer modificaciones o aumentar funcionalidad sin necesidad de reescribir las aplicaciones que ya fueron creadas por este Motor. Aprovecha los recursos de hardware distribuyendo el trabajo al CPU y al GPU utilizando lenguajes de programación especializados en cada unidad de procesamiento.

Este Motor de Juegos se puede utilizar para la creación de diferentes aplicaciones 3D y la creación y desarrollo de diferentes videojuegos en primera persona sin necesidad de preocuparse en las partes técnicas como las matemáticas y la programación de bajo nivel.

Palabras Clave: DirectX, HLSL ( High Level Shading Language ), SSE ( Streaming SIMD Extensión ), GPU ( Graphic Process Unit ), CPU ( Central Process Unit ), Motor de Juegos.

Índice de contenido

Portada (archivo pdf, 20 kb)

Índices (archivo pdf, 18 kb)

Capítulo 1. Introducción (archivo pdf, 46 kb)

  • 1.1 Definición del Problema
  • 1.2 Objetivo General
  • 1.3 Objetivos Específicos
  • 1.4 Alcances
  • 1.5 Limitaciones
  • 1.6 Hardware Utilizado
  • 1.7 Software Utilizado

Capítulo 2. Marco teórico (archivo pdf, 240 kb)

  • 2.1 Motor de Juegos
  • 2.2 DirectX
  • 2.3 GPU´s y VPU´s
  • 2.4 High Level Shading Language ( HLSL )
  • 2.5 Streaming SIMD Extensions ( SSE )
  • 2.6 Quaterniones

Capítulo 3. Desarrollo del motor de juegos (archivo pdf, 109 kb)

  • 3.1 Análisis
  • 3.2 Diseño
  • 3.3 Motor Gráfico
  • 3.4 Motor Input
  • 3.5 Motor de Audio

Capítulo 4. Pruebas (archivo pdf, 1 mb)

  • 4.1 Pruebas

Capítulo 5. Conclusiones y trabajo a futuro (archivo pdf, 21 kb)

  • 5.1 Conclusiones
  • 5.2 Trabajo a Futuro

Referencias (archivo pdf, 33 kb)

Martínez Franco, D. d. 2006. Implementación del núcleo de un motor de juegos utilizando C++, DirectX y HLS. Tesis Licenciatura. Ingeniería en Sistemas Computacionales. Departamento de Computación, Electrónica, Física e Innovación, Escuela de Ingeniería y Ciencias, Universidad de las Américas Puebla. Mayo. Derechos Reservados © 2006.