Retos Tecnolgicos en Videojuegos - PowerPoint PPT Presentation

1 / 61
About This Presentation
Title:

Retos Tecnolgicos en Videojuegos

Description:

Pocos detalles t cnicos (referencias al final de la presentaci n) ... Commandos Strike Force (Pyro Studios) 31000 ficheros. 12 GB. NextGen en desarrollo (Pyro Studios) ... – PowerPoint PPT presentation

Number of Views:109
Avg rating:3.0/5.0
Slides: 62
Provided by: jesusdesan
Category:

less

Transcript and Presenter's Notes

Title: Retos Tecnolgicos en Videojuegos


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

2
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

3
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

4
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
5
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

6
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

7
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)

8
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))

9
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

10
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)

11
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

12
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 ?

13
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

14
Gráficos - Materiales
15
Gráficos - Materiales
16
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

17
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

18
Gráficos - Modelado
  • Displacement Mapping

19
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)

20
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 ?

21
Gráficos - Modelado
  • Subdivisión de superficies

Modelo de http//developer.nvidia.com
22
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

23
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

24
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

25
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

26
Gráficos - Sombras
  • Shadow Mapping

27
Gráficos - Sombras
28
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

29
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.

30
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

31
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

32
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?

33
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

34
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

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

36
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

37
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

38
Inteligencia Artificial
  • UnrealScript
  • // This is the automatic state to execute
  • auto state Idle
  • // When touched by another actor
  • function Touch( actor Other )
  • log( "I was touched, so Im 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

39
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

40
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

41
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

42
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

43
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

44
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.

45
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

46
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 ?

47
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

48
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

49
Herramientas
  • Ejemplo
  • Editor de partículas

50
Herramientas
  • Video de ejemplo

51
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

52
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

53
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

54
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

55
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

56
Video Tecnología
  • Demo para probar tecnología
  • Estrictamente tecnología
  • No jugable
  • Stress a todos los subsistemas

57
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

58
Fin de la presentación
  • Preguntas?
  • Esta presentación con todos los links y más
    información en
  • http//entland.homelinux.com/blog

59
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-har
    monic-lighting.html
  • Generalized Displacement Maps
  • http//research.microsoft.com/users/xtong/gdm_elec
    tronic.zip

60
Referencias
  • Hardware Shadow Mapping
  • http//developer.nvidia.com/object/hwshadowmap_pap
    er.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_p
    fv.htm
  • The RenderMan Companion A Programmer's Guide to
    Realistic Computer Graphics
  • http//www.amazon.com/RenderMan-Companion-Programm
    ers-Realistic-Computer/dp/0201508680

61
Referencias
  • The Free Lunch Is Over A Fundamental Turn Toward
    Concurrency in Software
  • http//www.gotw.ca/publications/concurrency-ddj.ht
    m
  • Software and the Concurrency Revolution
  • http//www.gotw.ca/resources/Software20and20Conc
    urrency20-20OGDC.pdf
  • Agile Game Development - GDC2007 Tutorial
  • http//www.agilegamedevelopment.com/2007/03/sessio
    n-and-tutorial-slides-are-posted.html
Write a Comment
User Comments (0)
About PowerShow.com