Transcript

VIDEOJUEGOS 2Motores para videojuegos

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Puntos a tratar• ¿Qué es un motor? • Origen de los motores • Elementos de un motor • Arquitectura del motor • Ventajas de los motores • Tipos de motores • ¿Qué motor utilizar? • Motores disponibles • Herramientas asociadas

2

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

¿Qué es un motor?

• Sistema software para la creación de videojuegos

• Proporcionan • API y SDK para el desarrollo

Algunos motores pueden permitir crear juegos sin necesidad de escribir código

Algunos proporcionan su propio lenguaje de script

• Conjunto de herramientas de edición Algunos motores no proporcionan herramientas visuales, pero

pueden existir herramientas de terceros

3

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Origen de los motores (I)• En los inicios • Todo el juego estaba contenido en el ejecutable • Intratable conforme avanza su complejidad

• Con el surgimiento de los sistemas de ficheros surgen nuevas posibilidades • Separar “ejecutable” y datos • Permite cambiar contenidos sin cambiar el gameplay • Tenemos motores reutilizables (data-driven)

• Evolución • Definir el comportamiento también como datos

4

Pinball Construction Set, 1983

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Origen de los motores (II)• A finales de los 80 las compañías hacían sus

propios motores, normalmente cerrados • Script Creation Utility for Maniac Mansion

(SCUMM), de Lucas Arts • Sierra’s Creative Interpreter (SCI) de Sierra

• En 1993 aparece Doom Engine • Tanto datos como comportamiento se define en

ficheros WAD • Se trata de un motor abierto • Cualquiera puede editar WADs

• El término “motor de videojuegos” empieza a utilizarse a mediados de los 90

5

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Origen de los motores (III)

• El enfoque de Doom es aplicado a futuros juegos • Quake (id Software), donde surge el motor id Tech • Unreal (Epic Games), donde surge Unreal Engine,

uno de los motores más populares en la actualidad

• Hoy en día tenemos motores de propósito general • El código se reduce al mínimo, genérico y

reutilizable • Es necesaria extensa documentación debido al

aumento de su complejidad • Algunos motores proporcionan Sistemas de

Creación de Contenidos (CCS)

6

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Elementos de un motor

7

Gráficos

Física

Entrada

Audio

Red

I.A.

Scripting

Ficheros

Vídeo

Algunos motores sólo incorporan funcionalidades de render 3D, como OGRE o Irrlicht

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Arquitectura del motor• Orientada a objetos

8

EscenaServicios del motor

Gestor de recursos

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Módulos del motor

9

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Escena del juego

10

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Patrón fachada• Ocultamos tras los módulos del motor las librerías a utilizar • No debemos utilizar sus clases desde otros módulos • Por ejemplo, sólo accedemos a Irrlicht desde “Graphics”

11

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Alternativa: Componentes• Podemos utilizar una arquitectura orientada a componentes • Adecuada cuando tenemos gran número de tipos de entidades • Reutilizamos sus componentes en diferentes entidades

12

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Scheduler• Podemos añadir un scheduler a nuestro motor • Útil para definir secuencias de acciones

13

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Motores y Middleware• Un motor de videojuegos podría ser visto como un

middleware que nos permite desarrollar videojuegos • Sin embargo, el término middleware de videojuegos

se refiere normalmente a subsistemas que pueden ser integrados en el motor y se especializan en tareas concretas

• Ejemplos

14

Interfaz Scaleform GFx

Vídeo Bink, CRI Movie

Físicas Havok, PhysX, Bullet, ODE

Audio FMOD, Wwise, Miles

Render y animación SpeedTree, FaceFX, Umbra, Simplygon

I.A. Kynapse, NavPower, PathEngine, Havok AI

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Ventajas de los motores (I)• Mejoran el flujo de trabajo • Separación de programadores, artistas, músicos, diseñadores, etc • Cada componente del equipo trabaja sobre sus ficheros de datos

• Reusabilidad • Nos permite reutilizar el mismo software para varios videojuegos • Data-Driven Development

• Portabilidad • Abstracción del hardware • Nos permiten desplegar en múltiples plataformas

15

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Ventajas de los motores (II)• Menor coste de desarrollo • Algunos ofrecen entornos y herramientas que facilitan el trabajo • Permiten llegar al mercado más rápidamente (time to market)

• Evolución del hardware • Conforme aumenta la complejidad se necesita mayor organización • El coste de hacer un motor propio crece con el avance de la

tecnología

• Utilizar un motor ya implementado permite centrarse en lo que hace a nuestro juego diferente • El motor se ocupa del ciclo del juego, modelo de objetos, gestión de

memoria, render, animaciones, físicas, pipeline de contenidos, etc

16

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Costes de desarrollo por generación

17

Generación CostePSX $2M - $5MPS2 $5M - $12MPS3 $10M - $25M

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Tipos de motores• Según las facilidades ofrecidas • Librerías de apoyo que facilitan el desarrollo: SDL, XNA, DirectX,

OpenGL. Gran flexibilidad. Mayor tiempo de desarrollo. Hay que crear herramientas propias.

• Motores completos: OGRE, Unreal, id Tech. Requieren algo de programación (scripting)

• Herramientas de creación de videojuegos: GameMaker, ShiVa, Torque, Unity. Poco flexibles, a veces sólo sirven para determinados géneros.

• Según la licencia • Motores comerciales (algunos con licencia gratuita) • Motores OpenSource

18

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

¿Qué motor elegir?• Un motor requiere aprendizaje y familiarizarse con las herramientas • Es importante tomar una buena decisión

• El más sencillo que se adapte a nuestras necesidades • Motores como UDK pueden ser difíciles de abarcar para pequeños estudios

• Una buena documentación y soporte de la comunidad es fundamental, ¡comprobar que no se haya abandonado!

• En algunos casos podemos necesitar modificar el motor • OpenSource se puede mejorar y contribuir. Más difíciles de utilizar.

• No limitarse sólo a motores gratuitos • Las herramientas asociadas suelen tener un coste • Hay motores excesivamente caros sólo para equipos profesionales

• ¿Motor 2D ó 3D? En algunos casos permiten ambas modalidades • Implementar un motor propio es bueno para aprender, pero no para un

desarrollo real • ¡Probar varios antes!

19

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Motores de altas prestaciones

20

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Motores casuales comerciales

21

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Motores Open Source

22

www.ogre3d.org

irrlicht.sourceforge.net

jmonkeyengine.org

libgdx.badlogicgames.com

www.cocos2d-x.org

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Source Engine• Se puede descargar desde Steam • Se da acceso al código fuente del SDK • Para uso no comercial (útil para crear mods) • No existe licencia indie

23

Portal 2

The Stanley Parable

http://source.valvesoftware.com

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

CryENGINE 3• Gratuito para educación y uso no comercial • Licencia indie en la que sólo se pagan royalties (20%) • Acceso al fuente para títulos AAA

24

Crysis 2

Ryse

http://mycryengine.com

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Unreal Engine 4• Gratuito • 5% de los ingresos brutos en royalties • Acceso al código C++ del motor • Scripting visual mediante blueprints • Integra middleware: OculusVR, Bink, Speedtree, Simplygon,

Umbra, PhysX

25

Daylight Skara - The blade remains

http://unrealengine.com

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Unity• Permite la creación de juegos 2D y 3D • Versión gratuita con todas las funcionalidades • La versión gratuita (Personal Edition) puede ser utilizada por

entidades con ganancias inferiores a $100.000 anuales • Se puede utilizar de forma comercial libre de royalties

26

rain

Tiger Woods PGA Tour Online

http://unity3d.com/

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Herramientas de creación de contenidos• Algunos motores incorporan una serie de herramientas • En otros casos tenemos herramientas de terceros

27

Artistas Diseñadores

• Blender • 3D Studio Max • Maya 3D • Zbrush • Mudbox • SketchUp

• irrEdit • GTK Radiant • UnrealEd • QuArK • Physics Editor • Tiled

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

Referencias• Blog de Mark DeLoura • http://www.gamasutra.com/blogs/MarkDeLoura/42524/

• Revisión de motores y middleware. Presentación GDC 2011 • http://www.slideshare.net/markdeloura/game-engines-and-middleware-2011

• Selección de un motor de videojuegos. Presentación GDC 2009 • http://www.slideshare.net/markdeloura/choosing-a-game-engine

• Revisión de motores de videojuegos • http://www.gamasutra.com/view/feature/132226/

engines_of_creation_an_overview_.php?print=1 • Revisión de herramientas para la edición de niveles • http://www.worldofleveldesign.com/categories/level_design_tutorials/what-level-

editor-game-engine-should-you-use-how-to-choose.php • ¿Por qué crear nuestro propio motor? • http://www.altdevblogaday.com/2011/12/17/why-on-earth-would-we-write-our-

own-game-engine/

28

Motores para videojuegos

Videojuegos II © 2015-2016 Depto. Ciencia de la Computación e IA Motores para videojuegos

V2

¿Preguntas...?

29


Top Related