• No se han encontrado resultados

para Plataforma Android Francisco Javier Ortiz Quetglas 25 de Junio de 2014 Tutor José María Buades Rubio

N/A
N/A
Protected

Academic year: 2021

Share "para Plataforma Android Francisco Javier Ortiz Quetglas 25 de Junio de 2014 Tutor José María Buades Rubio"

Copied!
39
0
0

Texto completo

(1)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Motor de Videojuegos

para Plataforma Android

Francisco Javier Ortiz Quetglas Tutor

Jos´e Mar´ıa Buades Rubio Escola Polit`ecnica Superior Universitat de les Illes Balears

25 de Junio de 2014

(2)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Contenido

1 Contexto 2 Introducci´on 3 Objetivos 4 Concepto 5 Caracter´ısticas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario 6 Estructura 7 Dedicaci´on 8 Pruebas 9 Conclusiones 2 / 27

(3)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Contexto

• Actualmente la media de gasto en desarrollo por

videojuegos se mueve entre 7.4 y 9.7 millones de euros.

• Con la aparici´on de las plataformas Android, iOS y

Windows Phone han aumentado el numero de empresas que se dedican exclusivamente a desarrollar videojuegos para m´ovil.

• En 2010, se tuvieron unas ganancias de 87.000 millones de

d´olares debido solamente a la publicidad incluida en los videojuegos para m´ovil.

• Es un mercado que esta creciendo muy r´apidamente y de

f´acil acceso. Licencias de bajo coste.

• Windows Phone: Cuota anual de 99 d´olares. • iOS: Cuota anual de 99 d´olares.

• Android: Pago ´unico de 25 d´olares.

(4)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

¿Qu´

e es un Motor de Videojuegos?

Definici´on

Un motor de videojuegos es un t´ermino que hace referencia a

una serie de rutinas de programaci´on que permiten el dise˜no, la creaci´on y la representaci´on de un videojuego.

• Arquitectura basada en capas.

• No se necesitan conocimientos de librer´ıas gr´aficas o plataforma.

• Facilidad de creaci´on de videojuegos.

(5)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Objetivos

• Renderizaci´on de objetos 2D y 3D. • Sistema de sonido. • Sistema de part´ıculas. • Sistema de f´ısicas 2D. • Detecci´on de colisiones. • Carga de modelos 3D. • Animaci´on de modelos 3D.

• Uso de shaders personalizados para la renderizaci´on.

• Interfaz de Usuario.

• El programador que use el motor de videojuegos no

necesita tener conocimientos deAndroid o de las librer´ıas

gr´aficas.

• Proporcionar herramientas para debugging y rendimiento.

• Implementar peque˜na demostraci´on del MDV.

(6)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Limites

Limitaciones

Probablemente es imposible hacer un motor para crear

cualquier videojuego de forma ´optima. Los motores de uso

general son menos ´optimos en calidad e im´agenes por segundo.

(7)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Arquitectura(I)

7 / 27

(8)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Arquitectura(I)

7 / 27

(9)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Arquitectura(II)

8 / 27

(10)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Arquitectura(II)

8 / 27

(11)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Arquitectura(III)

9 / 27

(12)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Arquitectura(III)

9 / 27

(13)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Caracter´ısticas

Herramientas utilizadas para el TFG:

• SDK de Android.

• Entorno Eclipse.

• Blender.

• Maquina virtual Android.

(14)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Librer´ıas OpenGL

Se dispone de tres versiones:

• OpenGL ES 1.1(Android 1.0+)

• OpenGL ES 2.0(Android 2.2+)

• OpenGL ES 3.0(Android 4.3+)

(15)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Librer´ıas OpenGL

Se dispone de tres versiones:

• OpenGL ES 1.1(Android 1.0+)

• OpenGL ES 2.0(Android 2.2+)

• OpenGL ES 3.0(Android 4.3+)

(16)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Gestor de Recursos

El gestor de recursos se encarga de asegurar que solamente existe una copia en memoria de un determinado recurso. Se

guardan de formaconsistente e integra. Los gestores de

recursos son: • Gestor de C´amaras • Gestor de Materiales • Gestor de Modelos • Gestor de Shader • Gestor de Sonido • Gestor de Texturas 12 / 27

(17)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Modelos 3D(I)

Hay varios formatos a la hora de cargar modelos 3D:

Formato Animaci´on Calidad

MD2 (Quake II) S´ı Media

MD3 (Quake III) S´ı Alta

Wavefront No Alta

Autodesk 3ds Max No Alta

DirectX No Media

(18)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Modelos 3D(I)

Hay varios formatos a la hora de cargar modelos 3D:

Formato Animaci´on Calidad

MD2 (Quake II) S´ı Media

MD3 (Quake III) S´ı Alta

Wavefront No Alta

Autodesk 3ds Max No Alta

DirectX No Media

(19)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Modelos 3D(II) Formato Wavefront

El formato WaveFront se compone de los siguientes elementos:

• V´ertices geom´etricos (v)

• V´ertices de textura (vt) • V´ertices de normales (vn) • Cara (f) vx y z vttx ty vn nx ny nz f v/vt/vn v/vt/vn v/vt/vn ... 14 / 27

(20)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Renderizaci´

on

Se han utilizado una serie deshader para renderizar todos los

posibles casos de renderizaci´on que puede necesitar el motor de

videojuegos. Losshader implementados son:

• Per pixel shading.

• Textura.

• Per pixel shading + Textura.

• Sprite.

• Efectos Post-proceso.

(21)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Sonido

Dos posibles librer´ıas:MediaPlayer ySoundPool. Se ha

utilizadoSoundPool porque permite mantener en memoria el

sonido listo para reproducirse y reproducir varios sonidos

simult´aneamente. La operaciones que se pueden efectuar sobre

los sonidos son:

• Pausar todos los sonidos.

• Reanudar todos los sonidos.

• Mirar si un sonido se esta reproduciendo.

• A˜nadir un sonido.

• Eliminar un sonido.

• Reproducir un sonido (una vez o infinitamente).

• Pausar un sonido.

• Reanudar un sonido.

• Parar un sonido.

• Cambiar propiedades del sonido(velocidad y volumen).

(22)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: F´ısicas - Herramientas

Se han dado herramientas para modelizar el terreno en 2D. Se

forma un segmento de terreno a partir dedos puntos(P1 y

P2). Estos dos puntos forman una recta:

x−P1.x P2.x−P1.x−

y−P1.y P2.y−P1.y = 0

Se proporcionan herramientas para comparar la posici´on de los

diferentes elementos de la escena respecto a estos segmentos de terreno.

(23)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: F´ısicas - Simulaci´

on

Se efect´ua la simulaci´on de las f´ısicas de formaiterativa.

Adem´as se limita el ratio de FPS a valores de 60, 45, 30, 29,

28, 27... para ahorrar recursos de CPU y mantener ratios de FPS estables.

La simulaci´on se encarga de gestionar en que instantes de

tiempo se ejecutan las f´ısicas de cada actor/objeto, manteniendo un tiempo estable entre ejecuciones.

(24)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Efectos de Post-proceso

Se han implementado los efectos de post-proceso:

• Glow

• Blanco y Negro

• Sepia

(25)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Efectos de Post-proceso

Se han implementado los efectos de post-proceso:

• Glow

• Blanco y Negro

• Sepia

(26)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Efectos de Post-proceso

Se han implementado los efectos de post-proceso:

• Glow

• Blanco y Negro

• Sepia

La forma en que se aplican estos efectos es:

(27)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Sistema de Part´ıculas

El sistema de part´ıculas se compone de tres elementos clave:

• Part´ıculas: Cada part´ıcula tiene un tama˜no, posici´on, tiempo de vida y velocidad.

• Simulaci´on del sistema: Mantiene numero estable de part´ıculas y simula la aparici´on y desaparici´on de estas.

• Renderizaci´on del sistema: Renderiza las part´ıculas del sistema.

En la renderizaci´on se dibujan las part´ıculas como cuadrados que siempre miran hacia la c´amara utilizando la t´ecnica del

Billboarding.

(28)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

odulo: Interfaz de Usuario

Se han definido una serie de elementos para proporcionar al usuario una interfaz con el videojuego. Estos elementos son:

• Botones

• Joystick

• Sprites

• Texto

• Fondo

Estos elementos se encuentran posicionados seg´un los bordes

de la pantalla: izquierda, centro, derecha, arriba y abajo.

(29)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Estructura de Classes

22 / 27

(30)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Estructura de Classes

22 / 27

(31)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Estructura de Classes

22 / 27

(32)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Estructura de Classes

22 / 27

(33)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Estructura de Classes

22 / 27

(34)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Estructura de Classes

22 / 27

(35)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Dedicaci´

on

• Semana 1-2: Trabajo previo. • Semana 3: Esqueleto de Renderizaci´on. • Semana 4-5: Carga modelo 3D.

• Semana 6-7: Optimizaci´on Carga modelo 3D. • Semana 8: Sprites.

• Semana 9: Interfaz de Usuario. • Semana 10: Documento dise˜no videojuego. • Semana 11: Sistema de Part´ıculas • Semana 12: Texto y Billboarding Part´ıculas. • Semana 13-14: Efectos de Post-proceso • Semana 15: Revisi´on y correcci´on. • Semana 16: Animaci´on de modelos 3D. • Semana 17: Herramientas de terreno. • Semana 18: Simulaci´on.

• Semana 19: Sistema de f´ısicas. • Semana 20-21: Correci´on y optimizaci´on. • Semana 22-23: Videojuego de Ejemplo. • Semana 24: Sistema de Sonido.

• Semana 25-27: Documentaci´on y correcci´on bugs. • Semana 28: Presentaci´on.

(36)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Pruebas

Se ha hecho un videojuego de ejemplo con todas las caracter´ısticas del motor y se ha probado en los siguientes dispositivos satisfactoriamente.

• Xperia S - Android 2.3.7

• Samsung S3 - Android 4.0

• Tablet iJoy X2 - Android 4.1.1

• LG Optimus L5 - Android 4.1.2

• Sony Xperia L - Android 4.2.2

• Nexus 5 - Android 4.4.2

• Moto G - Android 4.4.2

• Nexus 4 - Android 4.4.3

(37)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

Conclusiones

• Renderizaci´on de objetos 2D y 3D. • Sistema de sonido. • Sistema de part´ıculas. • Sistema de f´ısicas 2D. • Detecci´on de colisiones. • Carga de modelos 3D. • Animaci´on de modelos 3D.

• Uso de shaders personalizados para la renderizaci´on.

• Interfaz de Usuario.

• El programador que use el motor de videojuegos no

necesita tener conocimientos deAndroid o de las librer´ıas

gr´aficas.

• Proporcionar herramientas para debugging y rendimiento.

• Implementar peque˜na demostraci´on del MDV.

• Efectos de post-proceso.

(38)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones

L´ıneas futuras

• Editor para el motor.

• A˜nadir tipos de iluminaci´on m´as complejos.

• Sistema de archivosscript.

• Efectos de post-proceso m´as avanzados.

• Sombras.

• M´as tipos de elementos de interfaz.

• M´as formatos para modelos 3D.

• Uso de librer´ıas de sonido m´as complejas.

• Compatibilidad con OpenGL 1.1 y 3.0.

• Multijugador/Networking.

• Etc´etera.

(39)

Motor de Videojuegos Contexto Introducci´on Objetivos Concepto Caracter´ısti-cas OpenGL Recursos Modelos 3D Renderizaci´on Sonido F´ısicas Post-Proceso Part´ıculas Interfaz Usuario Estructura Dedicaci´on Pruebas Conclusiones 27 / 27

Referencias

Documento similar

Para obtener los espectros de absorci´on y determinar las posibles transiciones de fase en funci´on de la presi´on a temperatura ambiente, se realiza la detecci´on del

A continuaci ´on analizaremos con algo m ´as de profundidad los problemas que surgen al considerar un modelo de regresi ´on lineal cl ´asico en el que la variable dependiente

María Jesús Almendral Parra, Francisco Javier Burguillo Muñoz, María Victoria Calvo Hernández, Javier Domínguez Álvarez, Montserrat Dueñas Patón, Alejandro Esteller Pérez,

Al enviar la aplicación devuelve al aspirante a la pantalla de la solicitud, pero ya se ha habilitado la opción de “Continuar” sobre la que se debe hacer clic, para avanzar

La distribuci´ on de la interfaz en el perfil de otro usuario es an´ aloga a la del perfil del usuario pero aplicando las pol´ıticas de privacidad de la aplicaci´ on, por ello, el

LAS UNIDADES DEL RELIEVE COMO BASE DE LAS FISIOGRÁFICAS Y SU UTILIDAD EN PLANIFICACIÓN TERRITORIAL, por Javier de Pedraza Gilsanz, José Francisco Martín Duque, Rosa María

Las reglas de dise˜ no de la arquitectura von Neuman contin´ uan vigentes hoy en d´ıa para la construcci´ on de ordenadores: la unidad de control y la unidad aritm´etico-l´

Es decir, el uso de los nuevos recursos formativos exige por parte del alumno el dominio de una serie de habili- dades (Hookanson y Hooper 2000) sin las cuales el apoyo del tutor es