Francisco Fernández de Vega - Generación automática de contenidos para Videojuegos mediante...

88
Generación Automática Generación Automática de Contenidos para de Contenidos para Videojuegos mediante Videojuegos mediante Programación Genética Programación Genética Francisco Fernández de Vega Francisco Fernández de Vega fcofdez.wordpress.com fcofdez.wordpress.com [email protected] [email protected] Facultad Informática, UCM 18 Abril 2016

Transcript of Francisco Fernández de Vega - Generación automática de contenidos para Videojuegos mediante...

Page 1: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Generación Automática Generación Automática de Contenidos para de Contenidos para

Videojuegos mediante Videojuegos mediante Programación GenéticaProgramación Genética

Francisco Fernández de VegaFrancisco Fernández de Vega

fcofdez.wordpress.comfcofdez.wordpress.com

[email protected]@unex.esFacultad Informática, UCM18 Abril 2016

Page 2: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Índice

El negocio de los videojuegos.El negocio de los videojuegos. Videjuegos y CI.Videjuegos y CI. Generación Procedimental de Generación Procedimental de

Contenidos.Contenidos. Genetic Terrain Programming.Genetic Terrain Programming.

Facultad Informática, UCM18 Abril 2016

Page 3: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Índice

El negocio de los videojuegos.El negocio de los videojuegos. Videjuegos y CI.Videjuegos y CI. Generación Procedimental de Generación Procedimental de

Contenidos.Contenidos. Genetic Terrain Programming.Genetic Terrain Programming.

Facultad Informática, UCM18 Abril 2016

Page 4: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Facturación

• En 2014 creción un 31%.• 83.600 millones en 2014.

– 413 millones de euros en España y más de 400 empresas censadas.

• GTA V recaudó en 24 horas 815 millones de dólares (Harry Potter recaudó 220 millones en el mismo tiempo)

Libro blanco desarrollo español de videojuegos 2015.

Page 5: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Consumo

• Según la AEVI (Asociación Española de Videojuegos), el consumo global superó en españa los 1000 millones de euros.

• En España, 13 millones de videojugadores.

Page 6: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Facturación

Page 7: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Cuota de Mercado

Page 8: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Empresas

Page 9: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Perfiles profesionales

Page 10: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Perfiles profesionales

Page 11: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

c

Hace mucho tiempo...

Page 12: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Videojuegos: Pre-historia• El juego se llamó “Tennis for Two”.• Programó un movimiento balístico, con

posibilidad de intercepción.• La construcción se realizó para una

muestra al público de las instalaciones.

– http://www.youtube.com/watch?v=s2E9iSQfGdg

Page 13: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Índice

El negocio de los videojuegos.El negocio de los videojuegos. Videjuegos y CIVidejuegos y CI.. Generación Procedimental de Generación Procedimental de

Contenidos.Contenidos. Genetic Terrain Programming.Genetic Terrain Programming.

Facultad Informática, UCM18 Abril 2016

Page 14: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Computational Intelligence

Conjunto de metodologías computacionales inspiradas por la naturaleza que permiten atacar problemas del mundo real. (en los que las matemáticas o el

modelado tradicional no sirven).

Page 15: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Algoritmos Evolutivos Basados en la teoría de la Evolución

mediante selección Natural de Darwin.

Charles Darwin:El Origen de las Especies.1859.

Introducción

F.

Fernández

Page 16: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

¿Evo...qué?

Page 17: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

¿Evo...qué?

Page 18: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Neodarwinismo

Introducción

F.

Fernández

Page 19: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

El Mar de la Inteligencia Artificial

IA

F.

Fernández

Page 20: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

El Mar de la Inteligencia Artificial

Soft Computing

IA

F.

Fernández

Page 21: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

¿Cómo funciona un AE? Un resumen:

T=0; Inicializar y Evaluar [P(t)] While condición_fin no alcanzada do

P´(t)=variation [P(t)] Evaluate P´(t) P(t+1)=select [P´(t),P(t)] T=t+1

end while

Introduction 21

Page 22: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Algoritmos Evolutivos

Algoritmos Evolutivos

F.

Fernández

Para que la evolución actúe se deben cumplir cuatro condiciones:

•Los individuos de la población deben ser capaces de reproducirse.

•La supervicencia de los individuos depende de caracteres afectados por variaciones.

•Los caracteres pasan de padres a hijos mediante la herencia.

•Los individuos de la población compiten por los recursos.

T22

VARIACIÓN.HERENCIASUPERPOBLACIÓN

Page 23: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Algoritmos Evolutivos

Los individuos forman la población

Diferentes caracteres:

Los individuos compiten por los recursos

Herencia y Reproducción

T23 Algoritmos Evolutivos

F.

Fernández

Individuos de laPoblación: SolucionesCandidatas

Page 24: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Operaciones Básicas

Evaluación. Selección. Cruce. Mutación.

Page 25: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

¿Porqué funcionan?

Informalmente, los AEs realizan dos tareas: Exploración del espacio de búsqueda. Explotación de zonas “buenas”.

Formalmente, existen estudios de convergencia para cada uno de los algoritmos englobados en los AEs.

Page 26: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Problemas abordados Air-Injected Hydrocyclone OptimizationArtificial

IntelligenceAssignation of Radio-Link FrequenciesAutomated Parameter Tuning for Sonar Information ProcessingBin PackingClusteringCommunication Network DesignConformational Analysis of DNAData MiningDynamic Anticipatory Routing in Circuit-Switched Telecommunications NetworksElectronic-Circuit LayoutFlow ControlFuzzy Controller DesignGas-Pipeline ControlGenetic Synthesis of Neural Network ArchitectureHybrid EC SystemsImage Generation and RecognitionInterdigitation (Engineering Design Optimization)Job Shop SchedulingKnowledge AcquisitionLearningMathematical and Numerical OptimizationModels of International SecurityMultiple Fault DiagnosisNeural Network DesignNonlinear Dynamical SystemsOrdering Problems (TSP, N-Queens, . . . )Parallel Process SchedulingParametric Design of AircraftPortfolio OptimizationQuery Optimization in DatabasesReal Time Control of Physical SystemsRobot Trajectory GenerationSequence Scheduling (Genetic Edge Recombination)Strategy AcquisitionSymbolic Integration and DifferentiationTime-Serie Analysis and PredictionTraveling Salesman (Genetic Edge Recombination)Validation of Communication ProtocolsVLSI DesignWYSIWYG Artistic DesignX-Ray Crystallography

Page 27: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

¿AEs y Videojuegos?

Ms PacMan Competition

Page 28: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

CI y Videojuegos

7th Workshop on Procedural Content Generation

Page 29: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

¿Cuánto cuesta?

– Licencia plataforma 11%– Otras licencias 12%– Programación 20%– Diseño y producción 25%– Márketing 12%– Edición y distribución 8%– Márgenes venta 20%

Page 30: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

¿Cuánto cuesta?

– Licencia plataforma 11%– Otras licencias 12%– Programación 20%– Diseño y producción 25%– Márketing 12%– Edición y distribución 8%– Márgenes venta 20%

Page 31: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Generación Procedimental de

Contenidos

• ¿Porqué PCG?– ¿Cuál es el coste del desarrollo de

contenidos?• Escenarios.• Dinámicas del juego.• Objetivos.• Guión.• Música...

Page 32: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Yavalath: Juego de Mesa diseñado mediante Programación Genética.

(Ganador Hummies 2012)

Page 33: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Generación Procedimental de

Contenidos

• No es algo nuevo:– Se utilizó ya en los años 80.

Akalabeth, world of doom.

Page 34: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

AEs+Videojuegos

• ¿Qué podemos hacer?

– Generación de Contenidos.– Inteligencia Computacional.

Page 35: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Diseño Evolutivo

Evolutionary Design by Computers, P. Bentley. MIT Press.

The Art of Artificial Evolution, J. Romero, P. Machado. Springer.

Page 36: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Diseño Evolutivo

Karl Sims: Karl Sims: Primordial Dance: Primordial Dance:

http://es.youtube.com/watch?v=vIVjEkWTEXIhttp://es.youtube.com/watch?v=vIVjEkWTEXI Panspermia: Panspermia:

http://es.youtube.com/watch?v=AgeuRukfZLE&feature=relatedhttp://es.youtube.com/watch?v=AgeuRukfZLE&feature=related Virtual Creatures: Virtual Creatures:

http://es.youtube.com/watch?v=F0OHycypSG8&NR=1http://es.youtube.com/watch?v=F0OHycypSG8&NR=1

"Artificial Evolution for Computer Graphics"K.Sims, Computer Graphics (Siggraph '91 proceedings), July 1991, pp.319-328.

Page 37: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Diseño Evolutivo

Karl Sims: www.genarts.com

Curso Internacional de Verano: 15, 16 Julio, Almendralejo, Badajoz.

Page 38: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Diseño Evolutivo

John Collomose (University of Bath)

Page 39: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Diseño Evolutivo

John Collomose

Page 40: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Diseño Evolutivo

John Collomose

Page 41: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Índice

El negocio de los videojuegos.El negocio de los videojuegos. Videjuegos y CI.Videjuegos y CI. Generación Procedimental de Generación Procedimental de

Contenidos.Contenidos. Genetic Terrain Programming.Genetic Terrain Programming.

Facultad Informática, UCM18 Abril 2016

Page 42: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Videojuegos y CI

Diseño de Terrenos.

Page 43: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Diseño de Terrenos

Medición real (remote sensing). Modelado artístico (Blender). Procedimentales:

Fractales (Terragen). Evolutivo: Diseño evolutivo utilizado con

otros fines.

Page 44: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Terragen

http://www.planetside.co.uk/terragen/

Page 45: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Creatividad Computacional

Page 46: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

http://cyberneticserendipity.net/

• Cybernetic Serendipity Exhibition, London, 1968.

Page 47: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Creatividad Computacional

• Evolución Interactiva.• Programación Genética.

Page 48: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Programación Genética

• Popularizada por Koza en los 90s.• Aplica evolución en procesos de

generación automática de programas.

• Trabaja con estructura de árboles.

Page 49: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Programación Genética

b

a

b c

+

*

-

Individuo PG

Terminales

Funciones

Operadores Genéticos:

•Cruce.

•Mutación.

•Selección.

•Reproducción.

Función de Aptitud

T49 Programación Genética

F.

Fernández

Page 50: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Programación Genética

Punto de cruce

b

a

b c

+

*

-

a

b c

+

-b

/

Antes de la Operación

Después de la Operación

b c

-b

/ b c

-b

a

+

*

+

a

Subárboles a intercambiarC

R

U

C

E

T50 Programación Genética

F.

Fernández

Page 51: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Programación Genética

Punto de mutación

Después de la operación

b

a

+

*

Subárbol eliminado

Antes de la Operación

b

a

b c

+

*

-

b c

c+

-b

/

-a

Nuevo subárbol generado al azar

M

U

T

A

C

I

Ó

N

T51 Programación Genética

F.

Fernández

Page 52: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Programación Genética

S

E

L

E

C

C

I

Ó

N

Función de Evaluación

Valores de aptitud

Selección

T52 Programación Genética

F.

Fernández

Page 53: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Un ejemplo

• Regresión simbólica.

Page 54: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Diseño Evolutivo

¿GP para diseñar terrenos? Objetivos:

Capaz de generar diferentes tipos de terrenos.

Extensible. Interactivo e Intuitivo. Generación de familias de terrenos.

Page 55: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Diseño Evolutivo

¿Qué necesitamos? Funciones y Terminales + Operadores.

Page 56: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Genetic Terrain Programming

GTP (Frade, Fernández and Cotta). Funciones: plus2; minus2; multiply2;

sin1; cos1; tan1; atan1; myLog1; myPower2; myDivide2;

myMod2; mySqrt1; negative1; FFT1; smooth1;

gradientX1; gradientY1

Page 57: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP• Genetic Terrain

Programming:– IEA + GP.

Page 58: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Interactive EAs• IEA: An evolutionary Algorithm

with a human being in charge of fitness evaluation.

Page 59: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Interactive Evolutionary Algorithms

• Standard EA:– Fitness Evaluation.– Selection.– Crossover+Mutation.

• Interactive EA:– Fitness Evaluation (human made).– Selection.– Crossover+Mutation.

Page 60: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Evolutionary Art• Collaborative works...:

Picbreeder (Secretan et al).

Page 61: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Evolutionary Art

• Endless forms (Clune & Lipson).

Page 62: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

EvoEco

• EvoEco is an experimental piece of software for the creation of abstract images using simple virtual drawing creatures.

Kowaliw, Dorin, McCormack

Page 63: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP

Interfaz de Usuario.

Page 64: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP

Resultados.

Page 65: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP

Page 66: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP

Page 67: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP Acantilados

Page 68: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP

Montañas.

Page 69: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP

Objetivos Estéticos.

Page 70: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP: Niveles de detalle

Page 71: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP: Niveles de detalle

Page 72: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP: Niveles de detalle

Page 73: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP

Miguel Frade, F. Fernandez de Vega, Carlos Cotta, Modelling Video Games' Landscapes by Means of Genetic Terrain Programming - A New Approach for Improving Users' Experience. Lecture Notes in Computer Science 4974, 485-490.

Page 74: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTP

M. Frade, F. Fernández, C. Cotta, Genetic Terrain Programming - an Aesthetic Approach to Terrain Generation, Computer Games and Allied Technology (CG&AT 2008).(Seleccionado entre los 6 mejores artículos del congreso).

Page 75: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa

• ¿Podemos automatizar GTPi?• Evitar la interacción con

medidas del terreno:– Accesibilidad: Fácil de medir.– Proceso:

• Generar mapas de elevación a partir del TP

• Medir pendientes y Conectividad.• Evaluar.

Page 76: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa

• Utilización de funciones de ruido en lugar de valores random.

Paisaje generado con la función NOISE disponible en Blender.

Page 77: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Conjunto de funciones

Terminal set: orgBlenderNoise, x, y, ERC.

Page 78: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa: Fitness function

Page 79: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa

• Utilización de funciones y terminales:

Page 80: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa

● TP = cos(atan(minus(exp(X),myDivide(multiply(0.07358, 0.93756), myDivide(X,myLog(myLog(sin(Y))))))))

Page 81: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa

Page 82: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa

Page 83: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa

Page 84: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa

Page 85: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

GTPa

• M. Frade. F. Fernández, C. Cotta, “Evolution of Artificial Terrains for Video Games Based on Accessibility”. Evo* 2010 (LNCS 6024).

• Miguel Frade, Francisco Fernández de Vega, Carlos Cotta, Automatic evolution of programs for procedural generation of terrains for video games - Accessibility and edge length constraints. Soft Comput. 16(11): 1893-1914 (2012)

Page 86: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Resultados

Grupo de Evolución Artificial.Grupo de Evolución Artificial. Claroscuro Digital:Claroscuro Digital:

http://www.vimeo.com/2333108http://www.vimeo.com/2333108 http://www.vimeo.com/2994880http://www.vimeo.com/2994880 http://www.vimeo.com/4997211http://www.vimeo.com/4997211

Page 87: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

¿CI y Videojuegos en Extremadura?

Page 88: Francisco Fernández de Vega -  Generación automática de contenidos para Videojuegos mediante Programación Genética

Forja Chapas

• https://forja.unex.es/projects/chapas