SlideShare uma empresa Scribd logo
1 de 39
Baixar para ler offline
Introducción
Contribución al área PCG
Resumen
Generación automática de contenido para un
nuevo juego basado en el problema de los tres
cuerpos
Alejandro Gutiérrez Alcoba1, Raúl Lara-Cabrera2, Antonio J.
Fernández-Leiva2
1Dept. Arquitectura de Computadores, Universidad de Málaga
2Dept. Lenguajes y Ciencias de la Computación, Universidad de Málaga
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
Índice
1 Introducción
Motivación de la PCG en juegos
Objetivos
2 Contribución al área PCG
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
Motivación de la PCG en juegos
Objetivos
Índice
1 Introducción
Motivación de la PCG en juegos
Objetivos
2 Contribución al área PCG
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
Motivación de la PCG en juegos
Objetivos
Generación automática de contenido para videojuegos
PCG (Procedural Content Generation) consiste en la
generación automática, mediante algoritmos en lugar de
forma manual, de contenido para videojuegos
El contenido que puede generarse por estos medios es
muy diverso: terrenos del juego, características de armas
u otros objetos, ciertas reglas del propio juego,. . .
Ventajas:
Reduce costes
Reduce el consumo de memoria de los juegos
Ofrece la posibilidad de generar juegos infinitos y
contenido adaptado a diversos estilos de juego
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
Motivación de la PCG en juegos
Objetivos
Índice
1 Introducción
Motivación de la PCG en juegos
Objetivos
2 Contribución al área PCG
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
Motivación de la PCG en juegos
Objetivos
Objetivos del algoritmo PCG implementado
El principal objetivo del algoritmo PCG diseñado es
mejorar la dificultad de los niveles de un juego
determinado, adaptandose a los jugadores con mayor
habilidad, pero pudiendo diseñar al mismo tiempo niveles
a jugadores principiantes.
Para ello se ha diseñado un un algoritmo evolutivo de
estado estacionario y población estructurada en tres
clases de igual tamaño.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Índice
1 Introducción
Motivación de la PCG en juegos
Objetivos
2 Contribución al área PCG
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
El juego: una simulación física
Problema de los n cuerpos
Consiste en determinar, en cualquier instante, las posiciones y
velocidades de n partículas regidas por la ley de gravitación
universal de Newton, partiendo de cualesquiera condiciones
iniciales de posición y velocidad.
Particularidades de la simulación
La simulación se realiza en 2D
Resulta más sencillo para el jugador
Permite generalizar los resultados a otros juegos en los
que el terreno se define como el grafo de cierta función
f : R × R → R
Define de forma natural terrenos de juego tridimensionales
Una sola partícula recibe la fuerza gravitatoria del resto
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
El juego: una simulación física
Problema de los n cuerpos
Consiste en determinar, en cualquier instante, las posiciones y
velocidades de n partículas regidas por la ley de gravitación
universal de Newton, partiendo de cualesquiera condiciones
iniciales de posición y velocidad.
Particularidades de la simulación
La simulación se realiza en 2D
Resulta más sencillo para el jugador
Permite generalizar los resultados a otros juegos en los
que el terreno se define como el grafo de cierta función
f : R × R → R
Define de forma natural terrenos de juego tridimensionales
Una sola partícula recibe la fuerza gravitatoria del resto
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
El juego: una simulación física
Problema de los n cuerpos
Consiste en determinar, en cualquier instante, las posiciones y
velocidades de n partículas regidas por la ley de gravitación
universal de Newton, partiendo de cualesquiera condiciones
iniciales de posición y velocidad.
Particularidades de la simulación
La simulación se realiza en 2D
Resulta más sencillo para el jugador
Permite generalizar los resultados a otros juegos en los
que el terreno se define como el grafo de cierta función
f : R × R → R
Define de forma natural terrenos de juego tridimensionales
Una sola partícula recibe la fuerza gravitatoria del resto
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
El juego: una simulación física
Problema de los n cuerpos
Consiste en determinar, en cualquier instante, las posiciones y
velocidades de n partículas regidas por la ley de gravitación
universal de Newton, partiendo de cualesquiera condiciones
iniciales de posición y velocidad.
Particularidades de la simulación
La simulación se realiza en 2D
Resulta más sencillo para el jugador
Permite generalizar los resultados a otros juegos en los
que el terreno se define como el grafo de cierta función
f : R × R → R
Define de forma natural terrenos de juego tridimensionales
Una sola partícula recibe la fuerza gravitatoria del resto
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
El juego: una simulación física
Problema de los n cuerpos
Consiste en determinar, en cualquier instante, las posiciones y
velocidades de n partículas regidas por la ley de gravitación
universal de Newton, partiendo de cualesquiera condiciones
iniciales de posición y velocidad.
Particularidades de la simulación
La simulación se realiza en 2D
Resulta más sencillo para el jugador
Permite generalizar los resultados a otros juegos en los
que el terreno se define como el grafo de cierta función
f : R × R → R
Define de forma natural terrenos de juego tridimensionales
Una sola partícula recibe la fuerza gravitatoria del resto
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
El juego: una simulación física
Problema de los n cuerpos
Consiste en determinar, en cualquier instante, las posiciones y
velocidades de n partículas regidas por la ley de gravitación
universal de Newton, partiendo de cualesquiera condiciones
iniciales de posición y velocidad.
Particularidades de la simulación
La simulación se realiza en 2D
Resulta más sencillo para el jugador
Permite generalizar los resultados a otros juegos en los
que el terreno se define como el grafo de cierta función
f : R × R → R
Define de forma natural terrenos de juego tridimensionales
Una sola partícula recibe la fuerza gravitatoria del resto
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
El juego
Gravityvolve en internet
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
La física del juego
Ley de Gravitación Universal
La fuerza ejercida entre dos cuerpos distintos de masas m1 y
m2 y separados sus centros de masa por una distancia r, es
proporcional al producto de sus masas e inversamente
proporcional al cuadrado de la distancia. En concreto,
F = G
m1m2
r
Segunda ley de Newton
Establece la relación entre la aceleración a de un cuerpo, su
masa m1 y la fuerza que se le aplica
F = m1a
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
La física del juego
Los resultados anteriores permiten calcular la aceleración que
sufre una partícula de masa m1 por el efecto de otra de masa
m2
a = G
m2
r2
Vectorialmente
a =
m2
r3
(p2 − p1)
siendo p1 y p2 los vectores de las partículas de masas m1 y
m2, respectivamente.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Un nivel como un terreno tridimensional
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Índice
1 Introducción
Motivación de la PCG en juegos
Objetivos
2 Contribución al área PCG
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Representación de individuos (niveles)
Los n planetas que definen la parte más importante de un
nivel tienen tres genes: posición horizontal, vertical y masa
El radio de los planetas se define en todos los
constructores de la clase proporcional a
√
m
La posición de la partícula y el objetivo se establece a
partir de un índice que indica el planeta y el argumento
(ángulo) con el que se posicionará
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Constructor aleatorio de niveles
Los planetas que definen el nivel van generándose uno a uno
siguiendo estos pasos:
1 Asignar atributo “masa” (distribución N(500, 200))
2 Asignar los atributos de posición X e Y
Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle
Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle
3 ¿Bien definido con los anteriores?
De esta forma se consiguen definir niveles muy diversos,
apropiados para servir de población inicial del algoritmo
evolutivo.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Constructor aleatorio de niveles
Los planetas que definen el nivel van generándose uno a uno
siguiendo estos pasos:
1 Asignar atributo “masa” (distribución N(500, 200))
2 Asignar los atributos de posición X e Y
Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle
Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle
3 ¿Bien definido con los anteriores?
De esta forma se consiguen definir niveles muy diversos,
apropiados para servir de población inicial del algoritmo
evolutivo.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Constructor aleatorio de niveles
Los planetas que definen el nivel van generándose uno a uno
siguiendo estos pasos:
1 Asignar atributo “masa” (distribución N(500, 200))
2 Asignar los atributos de posición X e Y
Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle
Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle
3 ¿Bien definido con los anteriores?
De esta forma se consiguen definir niveles muy diversos,
apropiados para servir de población inicial del algoritmo
evolutivo.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Constructor aleatorio de niveles
Los planetas que definen el nivel van generándose uno a uno
siguiendo estos pasos:
1 Asignar atributo “masa” (distribución N(500, 200))
2 Asignar los atributos de posición X e Y
Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle
Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle
3 ¿Bien definido con los anteriores?
De esta forma se consiguen definir niveles muy diversos,
apropiados para servir de población inicial del algoritmo
evolutivo.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Constructor aleatorio de niveles
Los planetas que definen el nivel van generándose uno a uno
siguiendo estos pasos:
1 Asignar atributo “masa” (distribución N(500, 200))
2 Asignar los atributos de posición X e Y
Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle
Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle
3 ¿Bien definido con los anteriores?
De esta forma se consiguen definir niveles muy diversos,
apropiados para servir de población inicial del algoritmo
evolutivo.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Constructor aleatorio de niveles
Los planetas que definen el nivel van generándose uno a uno
siguiendo estos pasos:
1 Asignar atributo “masa” (distribución N(500, 200))
2 Asignar los atributos de posición X e Y
Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle
Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle
3 ¿Bien definido con los anteriores?
De esta forma se consiguen definir niveles muy diversos,
apropiados para servir de población inicial del algoritmo
evolutivo.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Diseño del algoritmo
Tras inicializar la población se lleva a
cabo el bucle del algoritmo, hasta
2*MAX_ITER nuevas evaluaciones:
1 Selección de dos individuos
distintos mediante torneo binario
2 Proceso de cruce (probabilidad
CROSSOVER_RATE)
3 Mutación de la descendencia
generada (probabilidad
MUTATION_RATE y
MUTATION_PARTICLES_RATE)
4 Inserción de nuevos individuos
en la población estructurada
5 Evaluación global de la población
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Diseño del algoritmo
Tras inicializar la población se lleva a
cabo el bucle del algoritmo, hasta
2*MAX_ITER nuevas evaluaciones:
1 Selección de dos individuos
distintos mediante torneo binario
2 Proceso de cruce (probabilidad
CROSSOVER_RATE)
3 Mutación de la descendencia
generada (probabilidad
MUTATION_RATE y
MUTATION_PARTICLES_RATE)
4 Inserción de nuevos individuos
en la población estructurada
5 Evaluación global de la población
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Diseño del algoritmo
Tras inicializar la población se lleva a
cabo el bucle del algoritmo, hasta
2*MAX_ITER nuevas evaluaciones:
1 Selección de dos individuos
distintos mediante torneo binario
2 Proceso de cruce (probabilidad
CROSSOVER_RATE)
3 Mutación de la descendencia
generada (probabilidad
MUTATION_RATE y
MUTATION_PARTICLES_RATE)
4 Inserción de nuevos individuos
en la población estructurada
5 Evaluación global de la población
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Diseño del algoritmo
Tras inicializar la población se lleva a
cabo el bucle del algoritmo, hasta
2*MAX_ITER nuevas evaluaciones:
1 Selección de dos individuos
distintos mediante torneo binario
2 Proceso de cruce (probabilidad
CROSSOVER_RATE)
3 Mutación de la descendencia
generada (probabilidad
MUTATION_RATE y
MUTATION_PARTICLES_RATE)
4 Inserción de nuevos individuos
en la población estructurada
5 Evaluación global de la población
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Diseño del algoritmo
Tras inicializar la población se lleva a
cabo el bucle del algoritmo, hasta
2*MAX_ITER nuevas evaluaciones:
1 Selección de dos individuos
distintos mediante torneo binario
2 Proceso de cruce (probabilidad
CROSSOVER_RATE)
3 Mutación de la descendencia
generada (probabilidad
MUTATION_RATE y
MUTATION_PARTICLES_RATE)
4 Inserción de nuevos individuos
en la población estructurada
5 Evaluación global de la población
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Diseño del algoritmo
Tras inicializar la población se lleva a
cabo el bucle del algoritmo, hasta
2*MAX_ITER nuevas evaluaciones:
1 Selección de dos individuos
distintos mediante torneo binario
2 Proceso de cruce (probabilidad
CROSSOVER_RATE)
3 Mutación de la descendencia
generada (probabilidad
MUTATION_RATE y
MUTATION_PARTICLES_RATE)
4 Inserción de nuevos individuos
en la población estructurada
5 Evaluación global de la población
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Crossover
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Mutación
Cada gen (posición horizontal, vertical, masa) de los
planetas se mutan con una probabilidad p = 1
3n , con n el
número de planetas.
Así, el número de este tipo de genes que son mutados
sigue una distribución X ∼ B(3n, 1
3n ), de media
E(X) = 3n 1
3n = 1
En cada caso, la mutación consiste en sumar el valor de
una N(0, 50)
Cada uno de los genes relativos a la partícula y el objetivo
se mutan con probabilidad 0, 15. La mutación en estos
casos sigue una uniforme en el rango del atributo en
cuestión.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Función de aptitud: intersecciones
Consiste en poner “tierra de por medio” entre la partícula y
el planeta en que se encuentra el objetivo.
Calcula la ecuación de la recta que pasa por el punto
central de la partícula y del planeta objetivo.
Comprueba si cada uno de los planetas intermedios
interseca con la recta y cual es esa distancia.
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Función de aptitud: minimizar atracción en el objetivo
Calcula el vector de aceleración total en n puntos alrededor del
planeta objetivo y su proyección sobre el vector definido entre
el punto considerado en ese momento y el centro del planeta
objetivo:
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Función de aptitud basada en simulación directa
Mide la dificultad de alcanzar el objetivo en el primer
lanzamiento
Simula el lanzamiento de la partícula con multitud de
vectores de velocidad diferentes
En cada acierto mide la dificultad de dicho acierto
dificultadAcierto =
1
distancia * timesCollided
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Índice
1 Introducción
Motivación de la PCG en juegos
Objetivos
2 Contribución al área PCG
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
El juego
Principales ideas de la implementación del algoritmo
Resultados y conclusiones
Dificultad de los niveles generados
Niveles maximizando intersecciones
Niveles minimizando atracción en el objetivo
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
Introducción
Contribución al área PCG
Resumen
Resumen
Se ha diseñado un algoritmo PCG capaz de construir
niveles de un juego de forma online y adaptados a todo
tipo de jugadores.
El juego diseñado define de forma natural terrenos
tridimensionales e incluye de forma implícita las físicas.
Muchas de las técnicas vistas pueden ser utilizadas de
forma más general para la generación de contenido en
otros juegos.
Trabajos futuros
Construir niveles con funciones multiobjetivo.
Realizar un análisis de la satisfacción de los jugadores con
los niveles en una futura encuesta.
Mejorar la función de simulación
Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado

Mais conteúdo relacionado

Mais de Sociedad Española para las Ciencias del Videojuego

Mais de Sociedad Española para las Ciencias del Videojuego (20)

CoSECiVi 2020 - Entornos parcialmente no euclidianos en realidad virtual
CoSECiVi 2020 - Entornos parcialmente no euclidianos en realidad virtualCoSECiVi 2020 - Entornos parcialmente no euclidianos en realidad virtual
CoSECiVi 2020 - Entornos parcialmente no euclidianos en realidad virtual
 
CoSECiVi 2020 - An Exploration on Automating Player Personality Identificatio...
CoSECiVi 2020 - An Exploration on Automating Player Personality Identificatio...CoSECiVi 2020 - An Exploration on Automating Player Personality Identificatio...
CoSECiVi 2020 - An Exploration on Automating Player Personality Identificatio...
 
CoSECiVi 2020 - Data mining of deck archetypes in Hearthstone
CoSECiVi 2020 - Data mining of deck archetypes in HearthstoneCoSECiVi 2020 - Data mining of deck archetypes in Hearthstone
CoSECiVi 2020 - Data mining of deck archetypes in Hearthstone
 
CoSECiVi 2020 - Descubrimiento de modelos de comportamiento de perfiles de ju...
CoSECiVi 2020 - Descubrimiento de modelos de comportamiento de perfiles de ju...CoSECiVi 2020 - Descubrimiento de modelos de comportamiento de perfiles de ju...
CoSECiVi 2020 - Descubrimiento de modelos de comportamiento de perfiles de ju...
 
CoSECiVi 2020 - Virtual Reality and Chess. A Video Game for Cognitive Trainin...
CoSECiVi 2020 - Virtual Reality and Chess. A Video Game for Cognitive Trainin...CoSECiVi 2020 - Virtual Reality and Chess. A Video Game for Cognitive Trainin...
CoSECiVi 2020 - Virtual Reality and Chess. A Video Game for Cognitive Trainin...
 
CoSECiVi'16 - Hacia la generación automática de mecánicas de juego: un edito...
CoSECiVi'16 - 	Hacia la generación automática de mecánicas de juego: un edito...CoSECiVi'16 - 	Hacia la generación automática de mecánicas de juego: un edito...
CoSECiVi'16 - Hacia la generación automática de mecánicas de juego: un edito...
 
CoSECiVi'16 - Computación Efímera: identificando retos para la investigación e...
CoSECiVi'16 - Computación Efímera: identificando retos para la investigación e...CoSECiVi'16 - Computación Efímera: identificando retos para la investigación e...
CoSECiVi'16 - Computación Efímera: identificando retos para la investigación e...
 
CoSECiVi'16 - Walking in VR. Measuring Presence and Simulator Sickness in Fir...
CoSECiVi'16 - Walking in VR. Measuring Presence and Simulator Sickness in Fir...CoSECiVi'16 - Walking in VR. Measuring Presence and Simulator Sickness in Fir...
CoSECiVi'16 - Walking in VR. Measuring Presence and Simulator Sickness in Fir...
 
CoSECiVi'16 - Extensión de los grafos de dependencia para incrementar la reju...
CoSECiVi'16 - Extensión de los grafos de dependencia para incrementar la reju...CoSECiVi'16 - Extensión de los grafos de dependencia para incrementar la reju...
CoSECiVi'16 - Extensión de los grafos de dependencia para incrementar la reju...
 
CoSECiVi'16 - Sólo puede quedar uno: Evolución de Bots para RTS basada en sup...
CoSECiVi'16 - Sólo puede quedar uno: Evolución de Bots para RTS basada en sup...CoSECiVi'16 - Sólo puede quedar uno: Evolución de Bots para RTS basada en sup...
CoSECiVi'16 - Sólo puede quedar uno: Evolución de Bots para RTS basada en sup...
 
CoSECiVi'16 - Living-UGR: Una aventura gráfica geolocalizada para difundir el...
CoSECiVi'16 - Living-UGR: Una aventura gráfica geolocalizada para difundir el...CoSECiVi'16 - Living-UGR: Una aventura gráfica geolocalizada para difundir el...
CoSECiVi'16 - Living-UGR: Una aventura gráfica geolocalizada para difundir el...
 
CoSECiVi'16 - Desarrollo de una plataforma basada en Unity3D para la aplicaci...
CoSECiVi'16 - Desarrollo de una plataforma basada en Unity3D para la aplicaci...CoSECiVi'16 - Desarrollo de una plataforma basada en Unity3D para la aplicaci...
CoSECiVi'16 - Desarrollo de una plataforma basada en Unity3D para la aplicaci...
 
CoSECiVi'16 - Educapiz: Una herramienta para educación infantil basada en ser...
CoSECiVi'16 - Educapiz: Una herramienta para educación infantil basada en ser...CoSECiVi'16 - Educapiz: Una herramienta para educación infantil basada en ser...
CoSECiVi'16 - Educapiz: Una herramienta para educación infantil basada en ser...
 
CoSECiVi'15 - Predicting the winner in two player StarCraft games
CoSECiVi'15 - Predicting the winner in two player StarCraft gamesCoSECiVi'15 - Predicting the winner in two player StarCraft games
CoSECiVi'15 - Predicting the winner in two player StarCraft games
 
CoSECiVi'15 - Automatic gameplay testing for message passing architectures
CoSECiVi'15 - Automatic gameplay testing for message passing architecturesCoSECiVi'15 - Automatic gameplay testing for message passing architectures
CoSECiVi'15 - Automatic gameplay testing for message passing architectures
 
CoSECiVi'15 - Evaluación de una historia interactiva. Una aproximación basada...
CoSECiVi'15 - Evaluación de una historia interactiva. Una aproximación basada...CoSECiVi'15 - Evaluación de una historia interactiva. Una aproximación basada...
CoSECiVi'15 - Evaluación de una historia interactiva. Una aproximación basada...
 
CoSECiVi'15 - Implementación de nodos consulta en árboles de comportamiento
CoSECiVi'15 - Implementación de nodos consulta en árboles de comportamientoCoSECiVi'15 - Implementación de nodos consulta en árboles de comportamiento
CoSECiVi'15 - Implementación de nodos consulta en árboles de comportamiento
 
CoSECiVi'15 - Towards real-time procedural scene generation from a truncated ...
CoSECiVi'15 - Towards real-time procedural scene generation from a truncated ...CoSECiVi'15 - Towards real-time procedural scene generation from a truncated ...
CoSECiVi'15 - Towards real-time procedural scene generation from a truncated ...
 
CoSECiVi'15 - Modelling suspicion as a game mechanism for designing a compute...
CoSECiVi'15 - Modelling suspicion as a game mechanism for designing a compute...CoSECiVi'15 - Modelling suspicion as a game mechanism for designing a compute...
CoSECiVi'15 - Modelling suspicion as a game mechanism for designing a compute...
 
CoSECiVi'15 - RACMA o cómo dar vida a un mapa mudo en el Museo de América
CoSECiVi'15 - RACMA o cómo dar vida a un mapa mudo en el Museo de AméricaCoSECiVi'15 - RACMA o cómo dar vida a un mapa mudo en el Museo de América
CoSECiVi'15 - RACMA o cómo dar vida a un mapa mudo en el Museo de América
 

Último

Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 

Último (20)

Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 

CoSECiVi'14 - Generación automática de contenido para un nuevo juego basado en el problema de los tres cuerpos

  • 1. Introducción Contribución al área PCG Resumen Generación automática de contenido para un nuevo juego basado en el problema de los tres cuerpos Alejandro Gutiérrez Alcoba1, Raúl Lara-Cabrera2, Antonio J. Fernández-Leiva2 1Dept. Arquitectura de Computadores, Universidad de Málaga 2Dept. Lenguajes y Ciencias de la Computación, Universidad de Málaga Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 2. Introducción Contribución al área PCG Resumen Índice 1 Introducción Motivación de la PCG en juegos Objetivos 2 Contribución al área PCG El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 3. Introducción Contribución al área PCG Resumen Motivación de la PCG en juegos Objetivos Índice 1 Introducción Motivación de la PCG en juegos Objetivos 2 Contribución al área PCG El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 4. Introducción Contribución al área PCG Resumen Motivación de la PCG en juegos Objetivos Generación automática de contenido para videojuegos PCG (Procedural Content Generation) consiste en la generación automática, mediante algoritmos en lugar de forma manual, de contenido para videojuegos El contenido que puede generarse por estos medios es muy diverso: terrenos del juego, características de armas u otros objetos, ciertas reglas del propio juego,. . . Ventajas: Reduce costes Reduce el consumo de memoria de los juegos Ofrece la posibilidad de generar juegos infinitos y contenido adaptado a diversos estilos de juego Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 5. Introducción Contribución al área PCG Resumen Motivación de la PCG en juegos Objetivos Índice 1 Introducción Motivación de la PCG en juegos Objetivos 2 Contribución al área PCG El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 6. Introducción Contribución al área PCG Resumen Motivación de la PCG en juegos Objetivos Objetivos del algoritmo PCG implementado El principal objetivo del algoritmo PCG diseñado es mejorar la dificultad de los niveles de un juego determinado, adaptandose a los jugadores con mayor habilidad, pero pudiendo diseñar al mismo tiempo niveles a jugadores principiantes. Para ello se ha diseñado un un algoritmo evolutivo de estado estacionario y población estructurada en tres clases de igual tamaño. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 7. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Índice 1 Introducción Motivación de la PCG en juegos Objetivos 2 Contribución al área PCG El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 8. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones El juego: una simulación física Problema de los n cuerpos Consiste en determinar, en cualquier instante, las posiciones y velocidades de n partículas regidas por la ley de gravitación universal de Newton, partiendo de cualesquiera condiciones iniciales de posición y velocidad. Particularidades de la simulación La simulación se realiza en 2D Resulta más sencillo para el jugador Permite generalizar los resultados a otros juegos en los que el terreno se define como el grafo de cierta función f : R × R → R Define de forma natural terrenos de juego tridimensionales Una sola partícula recibe la fuerza gravitatoria del resto Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 9. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones El juego: una simulación física Problema de los n cuerpos Consiste en determinar, en cualquier instante, las posiciones y velocidades de n partículas regidas por la ley de gravitación universal de Newton, partiendo de cualesquiera condiciones iniciales de posición y velocidad. Particularidades de la simulación La simulación se realiza en 2D Resulta más sencillo para el jugador Permite generalizar los resultados a otros juegos en los que el terreno se define como el grafo de cierta función f : R × R → R Define de forma natural terrenos de juego tridimensionales Una sola partícula recibe la fuerza gravitatoria del resto Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 10. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones El juego: una simulación física Problema de los n cuerpos Consiste en determinar, en cualquier instante, las posiciones y velocidades de n partículas regidas por la ley de gravitación universal de Newton, partiendo de cualesquiera condiciones iniciales de posición y velocidad. Particularidades de la simulación La simulación se realiza en 2D Resulta más sencillo para el jugador Permite generalizar los resultados a otros juegos en los que el terreno se define como el grafo de cierta función f : R × R → R Define de forma natural terrenos de juego tridimensionales Una sola partícula recibe la fuerza gravitatoria del resto Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 11. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones El juego: una simulación física Problema de los n cuerpos Consiste en determinar, en cualquier instante, las posiciones y velocidades de n partículas regidas por la ley de gravitación universal de Newton, partiendo de cualesquiera condiciones iniciales de posición y velocidad. Particularidades de la simulación La simulación se realiza en 2D Resulta más sencillo para el jugador Permite generalizar los resultados a otros juegos en los que el terreno se define como el grafo de cierta función f : R × R → R Define de forma natural terrenos de juego tridimensionales Una sola partícula recibe la fuerza gravitatoria del resto Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 12. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones El juego: una simulación física Problema de los n cuerpos Consiste en determinar, en cualquier instante, las posiciones y velocidades de n partículas regidas por la ley de gravitación universal de Newton, partiendo de cualesquiera condiciones iniciales de posición y velocidad. Particularidades de la simulación La simulación se realiza en 2D Resulta más sencillo para el jugador Permite generalizar los resultados a otros juegos en los que el terreno se define como el grafo de cierta función f : R × R → R Define de forma natural terrenos de juego tridimensionales Una sola partícula recibe la fuerza gravitatoria del resto Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 13. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones El juego: una simulación física Problema de los n cuerpos Consiste en determinar, en cualquier instante, las posiciones y velocidades de n partículas regidas por la ley de gravitación universal de Newton, partiendo de cualesquiera condiciones iniciales de posición y velocidad. Particularidades de la simulación La simulación se realiza en 2D Resulta más sencillo para el jugador Permite generalizar los resultados a otros juegos en los que el terreno se define como el grafo de cierta función f : R × R → R Define de forma natural terrenos de juego tridimensionales Una sola partícula recibe la fuerza gravitatoria del resto Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 14. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones El juego Gravityvolve en internet Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 15. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones La física del juego Ley de Gravitación Universal La fuerza ejercida entre dos cuerpos distintos de masas m1 y m2 y separados sus centros de masa por una distancia r, es proporcional al producto de sus masas e inversamente proporcional al cuadrado de la distancia. En concreto, F = G m1m2 r Segunda ley de Newton Establece la relación entre la aceleración a de un cuerpo, su masa m1 y la fuerza que se le aplica F = m1a Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 16. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones La física del juego Los resultados anteriores permiten calcular la aceleración que sufre una partícula de masa m1 por el efecto de otra de masa m2 a = G m2 r2 Vectorialmente a = m2 r3 (p2 − p1) siendo p1 y p2 los vectores de las partículas de masas m1 y m2, respectivamente. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 17. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Un nivel como un terreno tridimensional Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 18. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Índice 1 Introducción Motivación de la PCG en juegos Objetivos 2 Contribución al área PCG El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 19. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Representación de individuos (niveles) Los n planetas que definen la parte más importante de un nivel tienen tres genes: posición horizontal, vertical y masa El radio de los planetas se define en todos los constructores de la clase proporcional a √ m La posición de la partícula y el objetivo se establece a partir de un índice que indica el planeta y el argumento (ángulo) con el que se posicionará Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 20. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Constructor aleatorio de niveles Los planetas que definen el nivel van generándose uno a uno siguiendo estos pasos: 1 Asignar atributo “masa” (distribución N(500, 200)) 2 Asignar los atributos de posición X e Y Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle 3 ¿Bien definido con los anteriores? De esta forma se consiguen definir niveles muy diversos, apropiados para servir de población inicial del algoritmo evolutivo. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 21. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Constructor aleatorio de niveles Los planetas que definen el nivel van generándose uno a uno siguiendo estos pasos: 1 Asignar atributo “masa” (distribución N(500, 200)) 2 Asignar los atributos de posición X e Y Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle 3 ¿Bien definido con los anteriores? De esta forma se consiguen definir niveles muy diversos, apropiados para servir de población inicial del algoritmo evolutivo. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 22. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Constructor aleatorio de niveles Los planetas que definen el nivel van generándose uno a uno siguiendo estos pasos: 1 Asignar atributo “masa” (distribución N(500, 200)) 2 Asignar los atributos de posición X e Y Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle 3 ¿Bien definido con los anteriores? De esta forma se consiguen definir niveles muy diversos, apropiados para servir de población inicial del algoritmo evolutivo. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 23. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Constructor aleatorio de niveles Los planetas que definen el nivel van generándose uno a uno siguiendo estos pasos: 1 Asignar atributo “masa” (distribución N(500, 200)) 2 Asignar los atributos de posición X e Y Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle 3 ¿Bien definido con los anteriores? De esta forma se consiguen definir niveles muy diversos, apropiados para servir de población inicial del algoritmo evolutivo. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 24. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Constructor aleatorio de niveles Los planetas que definen el nivel van generándose uno a uno siguiendo estos pasos: 1 Asignar atributo “masa” (distribución N(500, 200)) 2 Asignar los atributos de posición X e Y Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle 3 ¿Bien definido con los anteriores? De esta forma se consiguen definir niveles muy diversos, apropiados para servir de población inicial del algoritmo evolutivo. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 25. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Constructor aleatorio de niveles Los planetas que definen el nivel van generándose uno a uno siguiendo estos pasos: 1 Asignar atributo “masa” (distribución N(500, 200)) 2 Asignar los atributos de posición X e Y Posición X: U(900 − 2(rp + rparticle)) + rp + rparticle Posición Y: U(600 − 2(rp + rparticle)) + rp + rparticle 3 ¿Bien definido con los anteriores? De esta forma se consiguen definir niveles muy diversos, apropiados para servir de población inicial del algoritmo evolutivo. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 26. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Diseño del algoritmo Tras inicializar la población se lleva a cabo el bucle del algoritmo, hasta 2*MAX_ITER nuevas evaluaciones: 1 Selección de dos individuos distintos mediante torneo binario 2 Proceso de cruce (probabilidad CROSSOVER_RATE) 3 Mutación de la descendencia generada (probabilidad MUTATION_RATE y MUTATION_PARTICLES_RATE) 4 Inserción de nuevos individuos en la población estructurada 5 Evaluación global de la población Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 27. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Diseño del algoritmo Tras inicializar la población se lleva a cabo el bucle del algoritmo, hasta 2*MAX_ITER nuevas evaluaciones: 1 Selección de dos individuos distintos mediante torneo binario 2 Proceso de cruce (probabilidad CROSSOVER_RATE) 3 Mutación de la descendencia generada (probabilidad MUTATION_RATE y MUTATION_PARTICLES_RATE) 4 Inserción de nuevos individuos en la población estructurada 5 Evaluación global de la población Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 28. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Diseño del algoritmo Tras inicializar la población se lleva a cabo el bucle del algoritmo, hasta 2*MAX_ITER nuevas evaluaciones: 1 Selección de dos individuos distintos mediante torneo binario 2 Proceso de cruce (probabilidad CROSSOVER_RATE) 3 Mutación de la descendencia generada (probabilidad MUTATION_RATE y MUTATION_PARTICLES_RATE) 4 Inserción de nuevos individuos en la población estructurada 5 Evaluación global de la población Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 29. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Diseño del algoritmo Tras inicializar la población se lleva a cabo el bucle del algoritmo, hasta 2*MAX_ITER nuevas evaluaciones: 1 Selección de dos individuos distintos mediante torneo binario 2 Proceso de cruce (probabilidad CROSSOVER_RATE) 3 Mutación de la descendencia generada (probabilidad MUTATION_RATE y MUTATION_PARTICLES_RATE) 4 Inserción de nuevos individuos en la población estructurada 5 Evaluación global de la población Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 30. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Diseño del algoritmo Tras inicializar la población se lleva a cabo el bucle del algoritmo, hasta 2*MAX_ITER nuevas evaluaciones: 1 Selección de dos individuos distintos mediante torneo binario 2 Proceso de cruce (probabilidad CROSSOVER_RATE) 3 Mutación de la descendencia generada (probabilidad MUTATION_RATE y MUTATION_PARTICLES_RATE) 4 Inserción de nuevos individuos en la población estructurada 5 Evaluación global de la población Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 31. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Diseño del algoritmo Tras inicializar la población se lleva a cabo el bucle del algoritmo, hasta 2*MAX_ITER nuevas evaluaciones: 1 Selección de dos individuos distintos mediante torneo binario 2 Proceso de cruce (probabilidad CROSSOVER_RATE) 3 Mutación de la descendencia generada (probabilidad MUTATION_RATE y MUTATION_PARTICLES_RATE) 4 Inserción de nuevos individuos en la población estructurada 5 Evaluación global de la población Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 32. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Crossover Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 33. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Mutación Cada gen (posición horizontal, vertical, masa) de los planetas se mutan con una probabilidad p = 1 3n , con n el número de planetas. Así, el número de este tipo de genes que son mutados sigue una distribución X ∼ B(3n, 1 3n ), de media E(X) = 3n 1 3n = 1 En cada caso, la mutación consiste en sumar el valor de una N(0, 50) Cada uno de los genes relativos a la partícula y el objetivo se mutan con probabilidad 0, 15. La mutación en estos casos sigue una uniforme en el rango del atributo en cuestión. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 34. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Función de aptitud: intersecciones Consiste en poner “tierra de por medio” entre la partícula y el planeta en que se encuentra el objetivo. Calcula la ecuación de la recta que pasa por el punto central de la partícula y del planeta objetivo. Comprueba si cada uno de los planetas intermedios interseca con la recta y cual es esa distancia. Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 35. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Función de aptitud: minimizar atracción en el objetivo Calcula el vector de aceleración total en n puntos alrededor del planeta objetivo y su proyección sobre el vector definido entre el punto considerado en ese momento y el centro del planeta objetivo: Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 36. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Función de aptitud basada en simulación directa Mide la dificultad de alcanzar el objetivo en el primer lanzamiento Simula el lanzamiento de la partícula con multitud de vectores de velocidad diferentes En cada acierto mide la dificultad de dicho acierto dificultadAcierto = 1 distancia * timesCollided Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 37. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Índice 1 Introducción Motivación de la PCG en juegos Objetivos 2 Contribución al área PCG El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 38. Introducción Contribución al área PCG Resumen El juego Principales ideas de la implementación del algoritmo Resultados y conclusiones Dificultad de los niveles generados Niveles maximizando intersecciones Niveles minimizando atracción en el objetivo Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado
  • 39. Introducción Contribución al área PCG Resumen Resumen Se ha diseñado un algoritmo PCG capaz de construir niveles de un juego de forma online y adaptados a todo tipo de jugadores. El juego diseñado define de forma natural terrenos tridimensionales e incluye de forma implícita las físicas. Muchas de las técnicas vistas pueden ser utilizadas de forma más general para la generación de contenido en otros juegos. Trabajos futuros Construir niveles con funciones multiobjetivo. Realizar un análisis de la satisfacción de los jugadores con los niveles en una futura encuesta. Mejorar la función de simulación Alejandro Gutiérrez Alcoba, Raúl Lara-Cabrera, Antonio J. Fernández-LeivaGeneración automática de contenido para un nuevo juego basado