retos tecnológicos en videojuegos jesús de santos garcía equipo de tecnología pyro studios

61
Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Upload: emperatriz-villella

Post on 05-Mar-2015

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Tecnológicos en Videojuegos

Jesús de Santos García

Equipo de Tecnología

Pyro Studios

Page 2: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Tecnológicos en Videojuegos

• Filosofía general de esta presentación– Pocos detalles técnicos (referencias al final de la

presentación)– Abarcar el mayor numero de áreas posible– Dar una visión general del tipo de problemas técnicos

a los que nos enfrentamos los programadores de videojuegos

– No estrictamente problemas técnicos• ¿Qué tipo de “retos tecnologicos”?

– Puramente técnicos– Problemas de tratamiento de datos– Complejidad humana en el proceso

Page 3: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Tecnológicos en Videojuegos

• En la siguiente hora– Tecnología gráfica– Física– IA– Multithreading– Desarrollo de Herramientas– Metodologías / Procesos de Trabajo

• Resto– Preguntas

Page 4: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Gráficos

• Potencia gráfica cada vez mayor. • Ritmo de crecimiento superior a la Ley de Moore

– GPU: cada vez mas funcionalidad de propósito – CPU: cada vez mas cores paralelos

http://www.reghardware.co.uk

Page 5: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Gráficos• Potencia gráfica de cada plataforma

– PC• Shader Model 3.0• Shader Model 4.0• OpenGL 2.0, DX9, DX10

– XBox 360• 3 PowerPC 3.2GHz x 2 threads hardware• Tarjeta ATI – SM 3.0 - 500Mhz• Memoria unificada 512Mb• ~DX9.5

– PlayStation3• 1 PPU (PowerPC 3.2Ghz) + 6 SPU (3.2Ghz)• Tarjeta nVidia – SM 3.0 – 550Mhz• 256Mb Video / 256Mb Sistema• libgcm / ~OpenGL ES

– Wii• PowerPC 729Mhz• Tarjeta ATI 243Mhz (Gamecube)• 64Mb• ~OpenGL

Page 6: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Gráficos

• Aprovechar todo el potencial disponible

• Cada vez podemos asimilar más técnicas provenientes del mundo del Cine 3D– Materiales (Shaders)– Modelado– Iluminación– Sombras– Animación

Page 7: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Materiales• RenderMan

– Render empleado por Pixar para todas sus películas. La especificación es pública y ha sido empleado en un gran número de películas.

– RenderMan Shading Language: un lenguaje para describir las propiedades visuales de los materiales (plástico, cristal…)

Page 8: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Materiales

• Ejemplo de RSL

surface metal( float Ka = 1; float Ks = 1;

float roughness = 0.1;)

{

normal Nf = faceforward(normalize(N), I);

vector V = - normalize(I);

Oi = Os;

Ci = Os * Cs * (Ka * ambient() + Ks * specular(Nf, V, roughness));

}

Page 9: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Materiales

• Los videojuegos empezaron el camino de los shaders hace mucho tiempo.

• Es ahora, en esta generación, cuando realmente estamos llegando a la libertad disponible en el cine. Fin de la época de los Pseudoshaders

• HLSL, GLSL, CG

Page 10: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Materiales• HLSL// // Directional Fragment Shader //float4 metal_fp( dirVertexOutput IN,

uniform float Ks, uniform float SpecExpon, uniform float3 LightDir) : COLOR

{ float3 Nn = normalize(IN.WorldNormal); float3 Ln = -normalize(LightDir); float3 Vn = normalize(IN.WorldView); float3 Hn = normalize(Vn + Ln); float spec = pow(dot(Hn, Nn), SpecExpon); float3 color = Ks * spec; return float4(color, 1.0);

}

Page 11: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Materiales

• En el pasado– Prácticamente un material común para todos

los objetos. – Quizá algún material específico– Artistas ajustan el aspecto visual mediante

parámetros de ese material• Textura• Color por vértice

– Aspecto muy uniforme

Page 12: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Materiales

• En esta generación– Materiales específicos para cada uso. Podemos

emplear materiales distintos para un mismo personaje por ejemplo: pelo, piel, ojos, metal

– Ajuste de parámetros específicos del material– Librerías de materiales– Un montón de herencia proveniente del cine, que por

supuesto hay que optimizar

Page 13: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Materiales

• Efectos de postproceso– Un nuevo campo en este generación– Soporte de imágenes en coma flotante– Disponible todo el soporte de materiales– Ejemplos:

• Desenfoque• Motion Blur• Gamma/Color correction• Flares / Glares

Page 14: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Materiales

Page 15: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Materiales

Page 16: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Modelado

• Técnicas de modelado para tiempo real– Bump Mapping.

Jim Blinn (1978) – Optimizada dio como

resultado Normal Mapping.

– Usada prácticamente en todas las superficies de esta generacion

– Información proveniente de un modelo de alta poligonización

Page 17: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Modelado

• Evolución del Bump Mapping– Desplazamiento real de geometría.

Displacement Mapping– Ray Tracing implementado en el shader– No aplicable a todas las superficies (costoso)

• Solo aquellos partes importantes (por ejemplo las más cercanas, cinemáticas)

• En superficies más aptas para esta técnica, como por ejemplo los terrenos

Page 18: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Modelado

• Displacement Mapping

Page 19: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Modelado

• Gracias a estas técnicas, los modeladores solo crean una malla visual– Sin restricción de ningún tipo

• Polígonos• Texturas / Mapeado

– Zbrush

• Esa malla es convertida luego a otra de menor detalle– Alto Detalle ~ Malla + Bump + Displacement– Proceso automatizable (asistido)

Page 20: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Modelado

• Subdivisión de superficies– Complemento ideal

Displacement Mapping– Compresión / Reducción

Bandwidth– Complicado de

implementar en software– El siguiente paso necesario

a implementar por hardware en la industria

– Fin de los polígonos

Page 21: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Modelado

• Subdivisión de superficies

Modelo de http://developer.nvidia.com

Page 22: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Iluminación

• Uno de los grandes retos actuales

• Técnicas habituales– Iluminación estática pegada en texturas:

lightmaps. Generada offline. Baking– Luces dinámicas ordenadas por importancia

• Luces por píxel• Luces por vértice• Luces por objeto

Page 23: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Iluminación

• Retos en iluminación– Iluminación dinámica

• Mapas de opacidad• Precálculos de visibilidad• Información de transmisión de luz (PRT)

– Ambient occlusion– Luces de área

• Cube Maps• Spherical Harmonics• Cielos

Page 24: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Sombras

• Tema tradicionalmente complicado.– Muchos años luchando en este área.– Muchos años por luchar

• Implementación más sencilla con restricciones conocidas– Proyección en el suelo

• Juegos de lucha• Juegos de coches

– Volúmenes de sombras precalculados

Page 25: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Sombras

• Reto tecnológico– Toda la iluminación dinámica

• Auto sombras• Sin casos particulares

– Tras un periodo confuso de técnicas, el cine marca una vez mas el camino a seguir: Shadow Mapping

• Lance Williams (1978)• Simple• Eficiente• Soportado por hardware

Page 26: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Sombras

• Shadow Mapping

Page 27: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos - Sombras

Page 28: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos – Animación

• Morphos– Animación facial– Soporte HW

• Esqueletos / Bones– Misma técnica desde 10 años– Nuevos modelos

• Retargeting• Generación dinámica de

animaciones

Page 29: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Gráficos

• En resumen– Gran parte de técnicas heredadas del mundo

del cine– Poder creativo en manos del artista– El principio básico sigue funcionando: no

tiene que ser realista, tiene que parecerlo. Y si es posible, de la manera mas sencilla.

Page 30: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Tecnológicos en Videojuegos

• En la siguiente hora– Tecnología gráfica– Física– IA– Multithreading– Desarrollo de Herramientas– Metodologías / Procesos de Trabajo

• Resto– Preguntas

Page 31: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Física• Responsabilidad del sistema Físico

– Interacción del jugador con el entorno– Interacción entre objetos– Usos específicos según el tipo de videojuego: telas, vehículos– Ragdolls

• Por lo general el sistema físico emplea una representación del mundo independiente a la visual– KDTree– BSP– OBBTree– KDopTree

Page 32: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Física

• La física de un videojuego es un campo en el que el empleo de middleware es una norma habitual– Havok– AGEIA / PhysX

• Un camino que acabaran siguiendo prácticamente todos los subsistemas de un videojuego– ¿Para qué reinventar la rueda si otro la vende mas

barata?

Page 33: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Tecnológicos en Videojuegos

• En la siguiente hora– Tecnología gráfica– Física– IA– Multithreading– Desarrollo de Herramientas– Metodologías / Procesos de Trabajo

• Resto– Preguntas

Page 34: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Inteligencia Artificial

• Campo con increíble potencial– Poco explotado hasta la fecha– El puesto de programador de IA era algo poco

reconocido hasta hace poco– La potencia actual permite empezar a desarrollar

inteligencia artificial de verdad. – Comportamientos emergentes

• Principal área de desarrollo del propio juego– Según vaya evolucionando el concepto de

middleware los programadores del juego estarán mayormente en este campo

Page 35: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Inteligencia Artificial

• Entidad / Actor– Elemento principal– Comunicación mediante mensajes / eventos– Máquinas de estados

Page 36: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Inteligencia Artificial

• Es práctica habitual recurrir a lenguajes más eficientes en este campo que C/C++– Lenguajes de script propios– Lua– Python– Lenguajes funcionales

Page 37: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Inteligencia Artificial

• Un lenguaje paralelizable es altamente deseable – Queremos cientos de actores ejecutándose

individualmente• Cada uno es un cerebro implementado en un

procesador virtual– Comunicación con otros cerebros mediante mensajes

• Ejecución en una máquina virtual– Dominio diferente al del motor– Virtualización de recursos– Replicación de entidades por red

• Analogía con un sistema operativo

Page 38: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Inteligencia Artificial• UnrealScript

// This is the automatic state to executeauto state Idle {

// When touched by another actor… function Touch( actor Other ) {

log( "I was touched, so I’m going to Attacking" ); GotoState( ‘Attacking’ ); Log( "I have gone to the Attacking state" );

} Begin:

log( "I am idle…" ); sleep( 10 ); goto ‘Begin’;

} // Attacking state. state Attacking state Attacking{ Begin:

Log( "I am executing the attacking state code" ); //...

}

Page 39: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Tecnológicos en Videojuegos

• En la siguiente hora– Tecnología gráfica– Física– IA– Multithreading– Desarrollo de Herramientas– Metodologías / Procesos de Trabajo

• Resto– Preguntas

Page 40: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Multithreading

• Reto principal– Arquitecturas con varios núcleos

• La evolución de los microprocesadores está cambiando– No se evoluciona creando micros con mayor

frecuencia de cálculo– Se crean micros con varios núcleos que

trabajan en paralelo

Page 41: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Sistema

• La concurrencia hardware es una realidad a día de hoy– PC

• procesadores con 2 núcleos, con 4 núcleos…

– XBox 360• 3 procesadores con 2 threads por hardware = 6

unidades de ejecución en paralelo

– PlayStation3• 1 procesador principal (PPU) + 6 procesadores

(SPU) de cálculo

Page 42: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Sistema

• Estamos ante una nueva revolución a nivel de software

• Es necesario adaptar las técnicas de programación actuales para sacar provecho de la concurrencia.

• Adaptar el motor de un videojuego a estas técnicas nuevas para poder sacar provecho.

“The free luch is over” – Herb Sutter

Page 43: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Sistema• Objetivo

– Descomponer el trabajo realizado a lo largo de un fotograma en muchas tareas pequeñas

– Conseguir una aplicación escalable a n núcleos

– Portabilidad siempre interesante

Page 44: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Sistema

• Riesgos– El nuevo paradigma es difícil de llevar a cabo con los

lenguajes actuales. • Lenguajes funcionales al rescate? Prolog, Haskell

– C/C++ sigue siendo el principal lenguaje para crear videojuegos

– Diseños con una gran cantidad de bloqueos ineficientes y muchas veces innecesarios

– El resultado son arquitecturas complejas y con un alto riesgo

• Primera generación de juegos de Xbox360 solo empleaba un núcleo

– No existe una solución clara a día de hoy.

Page 45: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Tecnológicos en Videojuegos

• En la siguiente hora– Tecnología gráfica– Física– IA– Multithreading– Desarrollo de Herramientas– Metodologías / Procesos de Trabajo

• Resto– Preguntas

Page 46: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Herramientas

• La parte más importante en todo el proceso de producción del videojuego

• El verdadero reto actual en la producción de videojuegos

• Interface de la tecnología para los artistas• Una tecnología potente no vale para nada sin

unas herramientas que expongan la potencia a los artistas

• Esta es posiblemente la pagina mas importante de la presentación

Page 47: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Herramientas

• Evolución en la complejidad de los datos en videojuegos– Commandos Strike Force (Pyro Studios)

• 31000 ficheros• 12 GB

– NextGen en desarrollo (Pyro Studios)• 65462 ficheros• 17.7 GB

Page 48: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Herramientas

• Características deseables en cualquier herramienta “decente”– Interacción entre las herramientas y el motor

lo mas rápida posible– Visualización directa en el motor del juego– Recarga en caliente

• Texturas• Modelos• Lógica

Page 49: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Herramientas

• Ejemplo– Editor de partículas

Page 50: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Herramientas

• Video de ejemplo

Page 51: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Retos Tecnológicos en Videojuegos

• En la siguiente hora– Tecnología gráfica– Física– IA– Multithreading– Desarrollo de Herramientas– Metodologías / Procesos de Trabajo

• Resto– Preguntas

Page 52: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Metodologías / Procesos de Trabajo

• Principales problemas a resolver en esta área– Problemas de comunicación en equipos

grandes• Optimizarla

– Importancia de las personas en el equipo– Difusión del conocimiento en equipos

Page 53: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Metodologías / Procesos de Trabajo

• Herramientas para mejorar el flujo de trabajo y comunicación– Wiki

• Más eficiente que documentos sueltos• Comunicación entre departamentos

– Mensajería interna– RSS

• Más eficiente que el mail

Page 54: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Metodologías / Procesos de Trabajo

• Concepto de compilación continua– Una máquina dedicada exclusivamente a compilar la

ultima versión del juego• Directamente del repositorio de código• Compilación en las diversas configuraciones• Ejecución de “test de regresión”• Compilación de datos• Empaquetado

– Siempre existe una última versión del juego en la máquina de compilación

– Importante para mejorar la sensación de progresión. Moral del equipo

Page 55: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Metodologías / Procesos de Trabajo

• Metodologías “Agile”– Nuevas filosofías de trabajo con el objetivo de

incrementar la productividad• Scrum

– Dos ciclos de desarrollo

» Sprint: 2 - 3 semanas

» Scrum diario

Page 56: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Video Tecnología

• Demo para probar tecnología

• Estrictamente tecnología

• No jugable

• Stress a todos los subsistemas

Page 57: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Resumen

• Realización de un videojuego cada vez más y más compleja.

• Mucha herencia proveniente del cine• Evolución del HW muy superior a lo “asimilable”• Desarrollo de videojuegos con un alto factor de

riesgo tecnológico• Reducción del riesgo mediante middleware• Importancia de las herramientas durante la

producción• Nueva revolución de software: paralelismo• Nuevas metodologías de trabajo

Page 58: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Fin de la presentación

• ¿Preguntas?

– Esta presentación con todos los links y más información en:• http://entland.homelinux.com/blog

Page 59: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Referencias

• Real-Time Rendering– http://www.realtimerendering.com/

• D3D10 Unleashed: New Features and Effects – d3d10 unleashed - new features and effects.zip

• Spherical Harmonic Lighting: The Gritty Details – http://www.research.scea.com/gdc2003/spherical-

harmonic-lighting.html

• Generalized Displacement Maps – http://research.microsoft.com/users/xtong/

gdm_electronic.zip

Page 60: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Referencias

• Hardware Shadow Mapping– http://developer.nvidia.com/object/hwshadowmap_paper.html

• Practical Dynamic Parallax Occlusion Mapping– http://ati.amd.com/developer/SIGGRAPH05/Tatarchuk-

ParallaxOcclusionMapping-Sketch-print.pdf

• Subdivision Surface Theory– http://www.gamasutra.com/features/20000411/

sharp_pfv.htm • The RenderMan Companion: A Programmer's Guide to

Realistic Computer Graphics – http://www.amazon.com/RenderMan-Companion-Programmers-

Realistic-Computer/dp/0201508680

Page 61: Retos Tecnológicos en Videojuegos Jesús de Santos García Equipo de Tecnología Pyro Studios

Referencias

• The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software – http://www.gotw.ca/publications/concurrency-ddj.htm

• Software and the Concurrency Revolution – http://www.gotw.ca/resources/Software%20and

%20Concurrency%20-%20OGDC.pdf• Agile Game Development - GDC2007 Tutorial

– http://www.agilegamedevelopment.com/2007/03/session-and-tutorial-slides-are-posted.html