Upload
dodang
View
213
Download
0
Embed Size (px)
Citation preview
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