generación de escenarios de un videojuego 2d …cabalar/lrc18/alcalde.pdfgeneración de escenarios...

71
Generación de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado en Ingeniería Informática Mención en Computación Proyecto clásico de Ingeniería Facultad de Informática Director: Pedro Cabalar A Coruña, 19 de septiembre de 2018 Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 1 / 31

Upload: others

Post on 07-Jul-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación de Escenarios de un Videojuego 2Dmediante Programación Lógica

Rafael Alcalde Azpiazu

Grado en Ingeniería InformáticaMención en Computación

Proyecto clásico de IngenieríaFacultad de Informática

Director: Pedro Cabalar

A Coruña, 19 de septiembre de 2018

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 1 / 31

Page 2: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Motivación

• La industria del videojuego constituye un sector económico cada vezmás relevante.

Bene�cios netos (en dólares):• Minecraft: 2500 millones, Fornite: 1000 millones, Destiny: 500 millones.

• Ha activado avances tecnológicos, p. ej. el uso de la InteligenciaArti�cial, uno de los campos que más ha contribuido.

• Diseño de enemigos inteligentes, p. ej mediante programaciónevolutiva (No Man’s Sky).

• Diseño del entorno. Existen dos aproximaciones:

• Generación procedimental. La más usada.• Generación declarativa⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 2 / 31

Page 3: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Motivación

• La industria del videojuego constituye un sector económico cada vezmás relevante.Bene�cios netos (en dólares):• Minecraft: 2500 millones, Fornite: 1000 millones, Destiny: 500 millones.

• Ha activado avances tecnológicos, p. ej. el uso de la InteligenciaArti�cial, uno de los campos que más ha contribuido.

• Diseño de enemigos inteligentes, p. ej mediante programaciónevolutiva (No Man’s Sky).

• Diseño del entorno. Existen dos aproximaciones:

• Generación procedimental. La más usada.• Generación declarativa⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 2 / 31

Page 4: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Motivación

• La industria del videojuego constituye un sector económico cada vezmás relevante.Bene�cios netos (en dólares):• Minecraft: 2500 millones, Fornite: 1000 millones, Destiny: 500 millones.

• Ha activado avances tecnológicos, p. ej. el uso de la InteligenciaArti�cial, uno de los campos que más ha contribuido.

• Diseño de enemigos inteligentes, p. ej mediante programaciónevolutiva (No Man’s Sky).

• Diseño del entorno. Existen dos aproximaciones:

• Generación procedimental. La más usada.• Generación declarativa⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 2 / 31

Page 5: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Motivación

• La industria del videojuego constituye un sector económico cada vezmás relevante.Bene�cios netos (en dólares):• Minecraft: 2500 millones, Fornite: 1000 millones, Destiny: 500 millones.

• Ha activado avances tecnológicos, p. ej. el uso de la InteligenciaArti�cial, uno de los campos que más ha contribuido.

• Diseño de enemigos inteligentes, p. ej mediante programaciónevolutiva (No Man’s Sky).

• Diseño del entorno. Existen dos aproximaciones:

• Generación procedimental. La más usada.• Generación declarativa⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 2 / 31

Page 6: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Motivación

• La industria del videojuego constituye un sector económico cada vezmás relevante.Bene�cios netos (en dólares):• Minecraft: 2500 millones, Fornite: 1000 millones, Destiny: 500 millones.

• Ha activado avances tecnológicos, p. ej. el uso de la InteligenciaArti�cial, uno de los campos que más ha contribuido.

• Diseño de enemigos inteligentes, p. ej mediante programaciónevolutiva (No Man’s Sky).

• Diseño del entorno. Existen dos aproximaciones:

• Generación procedimental. La más usada.

• Generación declarativa⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 2 / 31

Page 7: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Motivación

• La industria del videojuego constituye un sector económico cada vezmás relevante.Bene�cios netos (en dólares):• Minecraft: 2500 millones, Fornite: 1000 millones, Destiny: 500 millones.

• Ha activado avances tecnológicos, p. ej. el uso de la InteligenciaArti�cial, uno de los campos que más ha contribuido.

• Diseño de enemigos inteligentes, p. ej mediante programaciónevolutiva (No Man’s Sky).

• Diseño del entorno. Existen dos aproximaciones:

• Generación procedimental. La más usada.• Generación declarativa⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 2 / 31

Page 8: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Diseño de entornos

• Generación procedimental: se basa en un algoritmo o técnica yaprede�nida.

1 Algoritmo ad-hoc.2 Programación evolutiva.3 Expresiones matemáticas.

Problemática

Para in�uir en el resultado de la generación se necesita reprogramar elalgoritmo generador para adaptarlo a los criterios.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 3 / 31

Page 9: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Diseño de entornos

• Generación procedimental: se basa en un algoritmo o técnica yaprede�nida.

1 Algoritmo ad-hoc.2 Programación evolutiva.3 Expresiones matemáticas.

Problemática

Para in�uir en el resultado de la generación se necesita reprogramar elalgoritmo generador para adaptarlo a los criterios.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 3 / 31

Page 10: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Diseño de entornos

• Generación declarativa: existe una representación formal delentorno, p. ej. mediante programación lógica.

• La generación es independiente del algoritmo de búsqueda usadopara obtener las posibles soluciones.

• Un caso concreto de programación lógica es Answer Set Programming.

• Answer Set Programming for Procedural Content Generation: A DesignSpace Approach [Smith et al, 11] (ASP + Warzone 2100).

• En este proyecto: ASP + Freeciv⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 4 / 31

Page 11: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Diseño de entornos

• Generación declarativa: existe una representación formal delentorno, p. ej. mediante programación lógica.

• La generación es independiente del algoritmo de búsqueda usadopara obtener las posibles soluciones.

• Un caso concreto de programación lógica es Answer Set Programming.

• Answer Set Programming for Procedural Content Generation: A DesignSpace Approach [Smith et al, 11] (ASP + Warzone 2100).

• En este proyecto: ASP + Freeciv⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 4 / 31

Page 12: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Diseño de entornos

• Generación declarativa: existe una representación formal delentorno, p. ej. mediante programación lógica.

• La generación es independiente del algoritmo de búsqueda usadopara obtener las posibles soluciones.

• Un caso concreto de programación lógica es Answer Set Programming.

• Answer Set Programming for Procedural Content Generation: A DesignSpace Approach [Smith et al, 11] (ASP + Warzone 2100).

• En este proyecto: ASP + Freeciv⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 4 / 31

Page 13: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Diseño de entornos

• Generación declarativa: existe una representación formal delentorno, p. ej. mediante programación lógica.

• La generación es independiente del algoritmo de búsqueda usadopara obtener las posibles soluciones.

• Un caso concreto de programación lógica es Answer Set Programming.

• Answer Set Programming for Procedural Content Generation: A DesignSpace Approach [Smith et al, 11] (ASP + Warzone 2100).

• En este proyecto: ASP + Freeciv⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 4 / 31

Page 14: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Diseño de entornos

• Generación declarativa: existe una representación formal delentorno, p. ej. mediante programación lógica.

• La generación es independiente del algoritmo de búsqueda usadopara obtener las posibles soluciones.

• Un caso concreto de programación lógica es Answer Set Programming.

• Answer Set Programming for Procedural Content Generation: A DesignSpace Approach [Smith et al, 11] (ASP + Warzone 2100).

• En este proyecto: ASP + Freeciv⇐.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 4 / 31

Page 15: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Freeciv

• Versión open source y gratuita de SidMeier’s Civilization creado en launiversidad de Aarhus.

• Juego de estrategia por turnos.

• El jugador controla a un grupo decolonos, comienza en el año 4000 A.C.

• El objetivo �nal es crear una grancivilización. Para ello existen 5 formasde �nalizar el juego:

• Victoria por dominación, cientí�ca,religión, cultural o por puntuación.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 5 / 31

Page 16: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Freeciv

• Versión open source y gratuita de SidMeier’s Civilization creado en launiversidad de Aarhus.

• Juego de estrategia por turnos.

• El jugador controla a un grupo decolonos, comienza en el año 4000 A.C.

• El objetivo �nal es crear una grancivilización. Para ello existen 5 formasde �nalizar el juego:

• Victoria por dominación, cientí�ca,religión, cultural o por puntuación.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 5 / 31

Page 17: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Freeciv

• Versión open source y gratuita de SidMeier’s Civilization creado en launiversidad de Aarhus.

• Juego de estrategia por turnos.

• El jugador controla a un grupo decolonos, comienza en el año 4000 A.C.

• El objetivo �nal es crear una grancivilización. Para ello existen 5 formasde �nalizar el juego:

• Victoria por dominación, cientí�ca,religión, cultural o por puntuación.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 5 / 31

Page 18: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Freeciv

• Versión open source y gratuita de SidMeier’s Civilization creado en launiversidad de Aarhus.

• Juego de estrategia por turnos.

• El jugador controla a un grupo decolonos, comienza en el año 4000 A.C.

• El objetivo �nal es crear una grancivilización. Para ello existen 5 formasde �nalizar el juego:

• Victoria por dominación, cientí�ca,religión, cultural o por puntuación.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 5 / 31

Page 19: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Tipos de terrenos en Freeciv

• Hay 12 tipos de terreno, con posibles boni�caciones.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 6 / 31

Page 20: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Objetivos del proyecto

Para este proyecto:

• Se de�nirá un modelo declarativo del escenario para Freeciv usandoAnswer Set Programming.

• Se construirá una pequeña herramienta grá�ca con la que manipularel escenario.

• E�ciencia: reducir o podar el número de combinaciones posibles.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 7 / 31

Page 21: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Objetivos del proyecto

Para este proyecto:

• Se de�nirá un modelo declarativo del escenario para Freeciv usandoAnswer Set Programming.

• Se construirá una pequeña herramienta grá�ca con la que manipularel escenario.

• E�ciencia: reducir o podar el número de combinaciones posibles.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 7 / 31

Page 22: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Objetivos del proyecto

Para este proyecto:

• Se de�nirá un modelo declarativo del escenario para Freeciv usandoAnswer Set Programming.

• Se construirá una pequeña herramienta grá�ca con la que manipularel escenario.

• E�ciencia: reducir o podar el número de combinaciones posibles.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 7 / 31

Page 23: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Índice

1 Motivación

2 Answer Set Programming

3 Demostración

4 Trabajo desarrollado

5 Evaluación

6 Conclusiones

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 8 / 31

Page 24: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Índice

1 Motivación

2 Answer Set Programming

3 Demostración

4 Trabajo desarrollado

5 Evaluación

6 Conclusiones

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 9 / 31

Page 25: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Answer Set Programming• Paradigma enfocado a la resolución declarativa de problemas concomplejidad NP-hard.

• Combina un lenguaje simple (predicados y reglas) con el quemodelar problemas lógicos y herramientas de alto rendimiento.

Codificación

1 { root(C, I): pos(C) } 1 :­region(I). :­ root(C, I), root(C, J), I!=J.

...

Programa en ASP

ASP Solver

% Answer set 1 

root(0, 0). root(4, 1). ... 

% Answer set 2 

root(2, 0). root(6, 1). ... ...

Escenario parcial

Decodificación

Solución 2 Solución 1 Mundo real

Modelo declarativo

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 10 / 31

Page 26: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Answer Set Programming• Paradigma enfocado a la resolución declarativa de problemas concomplejidad NP-hard.

• Combina un lenguaje simple (predicados y reglas) con el quemodelar problemas lógicos y herramientas de alto rendimiento.

Codificación

1 { root(C, I): pos(C) } 1 :­region(I). :­ root(C, I), root(C, J), I!=J.

...

Programa en ASP

ASP Solver

% Answer set 1 

root(0, 0). root(4, 1). ... 

% Answer set 2 

root(2, 0). root(6, 1). ... ...

Escenario parcial

Decodificación

Solución 2 Solución 1 Mundo real

Modelo declarativo

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 10 / 31

Page 27: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Answer Set Programming• Paradigma enfocado a la resolución declarativa de problemas concomplejidad NP-hard.

• Combina un lenguaje simple (predicados y reglas) con el quemodelar problemas lógicos y herramientas de alto rendimiento.

Codificación

1 { root(C, I): pos(C) } 1 :­region(I). :­ root(C, I), root(C, J), I!=J.

...

Programa en ASP

ASP Solver

% Answer set 1 

root(0, 0). root(4, 1). ... 

% Answer set 2 

root(2, 0). root(6, 1). ... ...

Escenario parcial

Decodificación

Solución 2 Solución 1 Mundo real

Modelo declarativo

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 10 / 31

Page 28: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación del escenario

• Generar todo el terreno a la vez esinviable.

• Se divide el mapa en cuadrantes yregiones.

• Un cuadrante es un grupo de celdas

1 Se genera regiones, que son grupos decuadrantes conectados entre sí.

2 Se detalla el terreno de cada región,formando islas.

• Los módulos son independientes. Nonecesitan toda la información delproblema.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 11 / 31

Page 29: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación del escenario

• Generar todo el terreno a la vez esinviable.

• Se divide el mapa en cuadrantes yregiones.

• Un cuadrante es un grupo de celdas

1 Se genera regiones, que son grupos decuadrantes conectados entre sí.

2 Se detalla el terreno de cada región,formando islas.

• Los módulos son independientes. Nonecesitan toda la información delproblema.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 11 / 31

Page 30: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación del escenario

• Generar todo el terreno a la vez esinviable.

• Se divide el mapa en cuadrantes yregiones.

• Un cuadrante es un grupo de celdas

1 Se genera regiones, que son grupos decuadrantes conectados entre sí.

2 Se detalla el terreno de cada región,formando islas.

• Los módulos son independientes. Nonecesitan toda la información delproblema.

1 1 2

1 3 2

1 3 3

1 1 3

2

2

2

2

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 11 / 31

Page 31: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación del escenario

• Generar todo el terreno a la vez esinviable.

• Se divide el mapa en cuadrantes yregiones.

• Un cuadrante es un grupo de celdas

1 Se genera regiones, que son grupos decuadrantes conectados entre sí.

2 Se detalla el terreno de cada región,formando islas.

• Los módulos son independientes. Nonecesitan toda la información delproblema.

1

3

21 1 22

1 3 22

1 3 23

1 1 23

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 11 / 31

Page 32: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación del escenario

• Generar todo el terreno a la vez esinviable.

• Se divide el mapa en cuadrantes yregiones.

• Un cuadrante es un grupo de celdas

1 Se genera regiones, que son grupos decuadrantes conectados entre sí.

2 Se detalla el terreno de cada región,formando islas.

• Los módulos son independientes. Nonecesitan toda la información delproblema.

1

3

21 1 22

1 3 22

1 3 23

1 1 23

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 11 / 31

Page 33: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunos predicados usados

root(C, I) Cuadrante inicial C de la región I.

pos(C) Posición C de un cuadrante.

reached(C, I) Cuadrante C que ha sido alcanzado.

adj(C, D) Posiciones adyacentes C y D en la cuadrícula.

land(C) Celda C de�nida como tierra.

mountain(C) Celda C de�nida como montaña.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 12 / 31

Page 34: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunas reglas lógicas

Generación del cuadrantes

reached(C, I) :- root(C, I).

0 { reached(C, I) } 1 :- region(I), reached(D, I),adj(D, C), not existsanother(C, I).

1 { root(C, I): pos(C) } 1 :- region(I).

:- root(C, I), root(C, J), region(I), region(J), I!=J.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 13 / 31

Page 35: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunas reglas lógicas

Generación del cuadrantes

reached(C, I) :- root(C, I).

0 { reached(C, I) } 1 :- region(I), reached(D, I),adj(D, C), not existsanother(C, I).

1 { root(C, I): pos(C) } 1 :- region(I).

:- root(C, I), root(C, J), region(I), region(J), I!=J.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 13 / 31

Page 36: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunas reglas lógicas

Generación del cuadrantes

reached(C, I) :- root(C, I).

0 { reached(C, I) } 1 :- region(I), reached(D, I),adj(D, C), not existsanother(C, I).

1 { root(C, I): pos(C) } 1 :- region(I).

:- root(C, I), root(C, J), region(I), region(J), I!=J.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 13 / 31

Page 37: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunas reglas lógicas

Generación del cuadrantes

reached(C, I) :- root(C, I).

0 { reached(C, I) } 1 :- region(I), reached(D, I),adj(D, C), not existsanother(C, I).

1 { root(C, I): pos(C) } 1 :- region(I).

:- root(C, I), root(C, J), region(I), region(J), I!=J.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 13 / 31

Page 38: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunas reglas lógicas

Generación del cuadrantes

reached(C, I) :- root(C, I).

0 { reached(C, I) } 1 :-region(I), reached(D, I),adj(D, C),not existsanother(C, I).

1 { root(C, I): pos(C) } 1 :-region(I).

:- root(C, I), root(C, J),region(I), region(J), I!=J.

1

3

2

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 14 / 31

Page 39: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunas reglas lógicas

Generación del cuadrantes

reached(C, I) :- root(C, I).

0 { reached(C, I) } 1 :-region(I), reached(D, I),adj(D, C),not existsanother(C, I).

1 { root(C, I): pos(C) } 1 :-region(I).

:- root(C, I), root(C, J),region(I), region(J), I!=J.

1

3

2

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 14 / 31

Page 40: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunas reglas lógicas

Generación del cuadrantes

reached(C, I) :- root(C, I).

0 { reached(C, I) } 1 :-region(I), reached(D, I),adj(D, C),not existsanother(C, I).

1 { root(C, I): pos(C) } 1 :-region(I).

:- root(C, I), root(C, J),region(I), region(J), I!=J.

1

3

2

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 14 / 31

Page 41: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunas reglas lógicas

Generación del cuadrantes

reached(C, I) :- root(C, I).

0 { reached(C, I) } 1 :-region(I), reached(D, I),adj(D, C),not existsanother(C, I).

1 { root(C, I): pos(C) } 1 :-region(I).

:- root(C, I), root(C, J),region(I), region(J), I!=J.

1

3

2

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 14 / 31

Page 42: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de algunas reglas lógicas

Generación del cuadrantes

reached(C, I) :- root(C, I).

0 { reached(C, I) } 1 :-region(I), reached(D, I),adj(D, C),not existsanother(C, I).

1 { root(C, I): pos(C) } 1 :-region(I).

:- root(C, I), root(C, J),region(I), region(J), I!=J.

1

3

2

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 14 / 31

Page 43: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación de biomas y de puntos de inicio

• Generación de biomas:

• Un bioma es una zona con el mismotipo de terreno.

• Misma forma que la generación deislas, salvo que se pueden pegar.

• Generación de puntos de inicio:

• Se escoge N celdas de tierra para los jugadores.• Para estos puntos se añaden preferencias:

• Minimizar la distancia al agua.• Maximizar la distancia a las montañas.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 15 / 31

Page 44: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación de biomas y de puntos de inicio

• Generación de biomas:

• Un bioma es una zona con el mismotipo de terreno.

• Misma forma que la generación deislas, salvo que se pueden pegar.

• Generación de puntos de inicio:

• Se escoge N celdas de tierra para los jugadores.• Para estos puntos se añaden preferencias:

• Minimizar la distancia al agua.• Maximizar la distancia a las montañas.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 15 / 31

Page 45: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación de biomas y de puntos de inicio

• Generación de biomas:

• Un bioma es una zona con el mismotipo de terreno.

• Misma forma que la generación deislas, salvo que se pueden pegar.

• Generación de puntos de inicio:

• Se escoge N celdas de tierra para los jugadores.

• Para estos puntos se añaden preferencias:

• Minimizar la distancia al agua.• Maximizar la distancia a las montañas.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 15 / 31

Page 46: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación de biomas y de puntos de inicio

• Generación de biomas:

• Un bioma es una zona con el mismotipo de terreno.

• Misma forma que la generación deislas, salvo que se pueden pegar.

• Generación de puntos de inicio:

• Se escoge N celdas de tierra para los jugadores.• Para estos puntos se añaden preferencias:

• Minimizar la distancia al agua.

• Maximizar la distancia a las montañas.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 15 / 31

Page 47: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación de biomas y de puntos de inicio

• Generación de biomas:

• Un bioma es una zona con el mismotipo de terreno.

• Misma forma que la generación deislas, salvo que se pueden pegar.

• Generación de puntos de inicio:

• Se escoge N celdas de tierra para los jugadores.• Para estos puntos se añaden preferencias:

• Minimizar la distancia al agua.• Maximizar la distancia a las montañas.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 15 / 31

Page 48: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Índice

1 Motivación

2 Answer Set Programming

3 Demostración

4 Trabajo desarrollado

5 Evaluación

6 Conclusiones

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 16 / 31

Page 49: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Índice

1 Motivación

2 Answer Set Programming

3 Demostración

4 Trabajo desarrollado

5 Evaluación

6 Conclusiones

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 17 / 31

Page 50: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Arquitectura del sistema• Front-end: Creado en LÖVE, usa un modelo MVC que usa una interfazgrá�ca en modo inmediato.

• Back-end: Creado en Lua (con API de clingo) y ASP, usa un modelo enpipeline.

Sistema

Programa ASP

Controlador UI Lua

Vista Lua

Modelo Lua

UsuarioControlador ASP

Lua Generador ASP

ASP/Lua

Generador de islas ASP

Rellenado de islas ASP

Solución ASP json

Archivo de FreeCiv txt

Archivo de mapa json

Rellenado de biomas ASP

Generador de cordilleras ASP

Rellenado de mares ASP

Generador de spawns ASP

Clingo LÖVE

Interfaz Gráfica

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 18 / 31

Page 51: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Arquitectura del sistema• Front-end: Creado en LÖVE, usa un modelo MVC que usa una interfazgrá�ca en modo inmediato.

• Back-end: Creado en Lua (con API de clingo) y ASP, usa un modelo enpipeline.

Sistema

Programa ASP

Controlador UI Lua

Vista Lua

Modelo Lua

UsuarioControlador ASP

Lua Generador ASP

ASP/Lua

Generador de islas ASP

Rellenado de islas ASP

Solución ASP json

Archivo de FreeCiv txt

Archivo de mapa json

Rellenado de biomas ASP

Generador de cordilleras ASP

Rellenado de mares ASP

Generador de spawns ASP

Clingo LÖVE

Interfaz Gráfica

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 18 / 31

Page 52: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Arquitectura del sistema• Front-end: Creado en LÖVE, usa un modelo MVC que usa una interfazgrá�ca en modo inmediato.

• Back-end: Creado en Lua (con API de clingo) y ASP, usa un modelo enpipeline.

Sistema

Programa ASP

Controlador UI Lua

Vista Lua

Modelo Lua

UsuarioControlador ASP

Lua Generador ASP

ASP/Lua

Generador de islas ASP

Rellenado de islas ASP

Solución ASP json

Archivo de FreeCiv txt

Archivo de mapa json

Rellenado de biomas ASP

Generador de cordilleras ASP

Rellenado de mares ASP

Generador de spawns ASP

Clingo LÖVE

Interfaz Gráfica

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 18 / 31

Page 53: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Proceso de ingeniería

• Metodología: desarrollo iterativo incremental y evolutivo.

• Se ha usado herramientas de uso libre y gratuitas para el desarrollodel proyecto.

• El coste total del proyecto asciende a 3720.00e.

Iteración 1Iteración 2Iteración 3 Iteración 4 Iteración 5Iteración 6Iteración 7 Iteración 8

Feb Mar Abr May Jun Jul Ago

Iteración 9 Iteración 10

Sep

Iteración 11 Iteración 12

30 h30 h30 h20 h20 h32 h32 h32 h32 h32 h32 h40 h

362 hTotal

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 19 / 31

Page 54: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Proceso de ingeniería

• Metodología: desarrollo iterativo incremental y evolutivo.

• Se ha usado herramientas de uso libre y gratuitas para el desarrollodel proyecto.

• El coste total del proyecto asciende a 3720.00e.

Iteración 1Iteración 2Iteración 3 Iteración 4 Iteración 5Iteración 6Iteración 7 Iteración 8

Feb Mar Abr May Jun Jul Ago

Iteración 9 Iteración 10

Sep

Iteración 11 Iteración 12

30 h30 h30 h20 h20 h32 h32 h32 h32 h32 h32 h40 h

362 hTotal

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 19 / 31

Page 55: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Proceso de ingeniería

• Metodología: desarrollo iterativo incremental y evolutivo.

• Se ha usado herramientas de uso libre y gratuitas para el desarrollodel proyecto.

• El coste total del proyecto asciende a 3720.00e.

Iteración 1Iteración 2Iteración 3 Iteración 4 Iteración 5Iteración 6Iteración 7 Iteración 8

Feb Mar Abr May Jun Jul Ago

Iteración 9 Iteración 10

Sep

Iteración 11 Iteración 12

30 h30 h30 h20 h20 h32 h32 h32 h32 h32 h32 h40 h

362 hTotal

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 19 / 31

Page 56: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Proceso de ingeniería

• Metodología: desarrollo iterativo incremental y evolutivo.

• Se ha usado herramientas de uso libre y gratuitas para el desarrollodel proyecto.

• El coste total del proyecto asciende a 3720.00e.

Iteración 1Iteración 2Iteración 3 Iteración 4 Iteración 5Iteración 6Iteración 7 Iteración 8

Feb Mar Abr May Jun Jul Ago

Iteración 9 Iteración 10

Sep

Iteración 11 Iteración 12

30 h30 h30 h20 h20 h32 h32 h32 h32 h32 h32 h40 h

362 hTotal

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 19 / 31

Page 57: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Índice

1 Motivación

2 Answer Set Programming

3 Demostración

4 Trabajo desarrollado

5 Evaluación

6 Conclusiones

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 20 / 31

Page 58: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Evaluación• Se han procedido a realizar diferentes pruebas con distintasvariables.

• Por ejemplo, de�niendo distintos tamaños de escenarios.

0

100

200

300

400

500

10x10 15x15 20x20 25x25 30x30 40x40 45x45

Tiem

po e

n s

eg

und

os

Tamaño del mapa en celdas

Ejecución (s)

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 21 / 31

Page 59: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Evaluación• Se han procedido a realizar diferentes pruebas con distintasvariables.

• Por ejemplo, de�niendo distintos tamaños de escenarios.

0

100

200

300

400

500

10x10 15x15 20x20 25x25 30x30 40x40 45x45

Tiem

po e

n s

eg

und

os

Tamaño del mapa en celdas

Ejecución (s)

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 21 / 31

Page 60: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Evaluación• Se han procedido a realizar diferentes pruebas con distintasvariables.

• Por ejemplo, de�niendo distintos tamaños de escenarios.

0

100

200

300

400

500

10x10 15x15 20x20 25x25 30x30 40x40 45x45

Tiem

po e

n s

eg

und

os

Tamaño del mapa en celdas

Ejecución (s)

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 21 / 31

Page 61: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Evaluación• Modi�cado porcentajes de terreno con tierra y tamaño de biomas.

• Se observa la misma tendencia que en la primera prueba.

Tamaño de biomas10% 15% 20% 25% 30% 35%

Tamañode

tierra

10% 42 s 41 s 35 s 88 s 117 s 214 s15% 41 s 37 s 36 s 88 s 133 s 247 s20% 37 s 43 s 37 s 105 s 123 s 224 s25% 29 s 51 s 43 s 92 s 123 s 220 s30% 42 s 43 s 138 s 95 s - -35% 41 s 40 s 38 s 90 s - 241 s40% 43 s 46 s 36 s - - 217 s45% 69 s 49 s 36 s 737 s - 220 s50% 100 s - 1064 s - - -55% 55 s 956 s - - - -60% 164 s 740 s - - - -65% 97 s 838 s - - - -

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 22 / 31

Page 62: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Evaluación• Modi�cado porcentajes de terreno con tierra y tamaño de biomas.

• Se observa la misma tendencia que en la primera prueba.

Tamaño de biomas10% 15% 20% 25% 30% 35%

Tamañode

tierra

10% 42 s 41 s 35 s 88 s 117 s 214 s15% 41 s 37 s 36 s 88 s 133 s 247 s20% 37 s 43 s 37 s 105 s 123 s 224 s25% 29 s 51 s 43 s 92 s 123 s 220 s30% 42 s 43 s 138 s 95 s - -35% 41 s 40 s 38 s 90 s - 241 s40% 43 s 46 s 36 s - - 217 s45% 69 s 49 s 36 s 737 s - 220 s50% 100 s - 1064 s - - -55% 55 s 956 s - - - -60% 164 s 740 s - - - -65% 97 s 838 s - - - -

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 22 / 31

Page 63: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Índice

1 Motivación

2 Answer Set Programming

3 Demostración

4 Trabajo desarrollado

5 Evaluación

6 Conclusiones

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 23 / 31

Page 64: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Conclusiones

• El sistema permite de�nir nuevas propiedades de forma sencilla.

• Esto proporciona �exibilidad a la hora de adaptar el sistema.• No hay que tener en cuenta el método de resolución.

• Se ha reducido el problema de e�ciencia ocasionado por el númeroexponencial de combinaciones posibles.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 24 / 31

Page 65: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Trabajo futuro

• Añadir otros elementos del mapa al generador (ríos, comida,animales, etc...).

• Mejorar el rendimiento del sistema.

• Posible mejora en la interfaz grá�ca.

• Mejorar la manipulación del mapa.• Añadir nuevos tipos de restricciones.

• Publicar la herramienta para tener una base de usuarios.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 25 / 31

Page 66: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Generación de Escenarios de un Videojuego 2Dmediante Programación Lógica

Rafael Alcalde Azpiazu

¡Gracias por su atención!Grado en Ingeniería Informática

Mención en Computación

Proyecto clásico de IngenieríaFacultad de Informática

Director: Pedro Cabalar

A Coruña, 19 de septiembre de 2018Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 26 / 31

Page 67: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de la biblioteca de Clingo

Añadir restricciones al programa#script(lua)function main(prog)

––Genero las regionesfor i = 0, c_regions-1 do

––Hace grounding del programa lógicoprog:ground({{”base”, {}}, {”generate”, {i}}})––Obtengo un manejador de la soluciónhandle = prog:solve(yield=true)

local restrictions = ” ”––Recorre los modelos de la soluciónfor model in handle:iter() do

––Añado las restriccionesif #restrictions ~= 0 then

prog1:load(”resources/restrictions.lp”)end...

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 27 / 31

Page 68: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de la biblioteca de Clingo

Añadir restricciones al programafor m in handle:iter() do

for row_str, col_str, contain instring.gmatch(tostring(model), ”cell%(p%((%d+),(%d+)%),(%l+)%)”) do

if contain == "l"thenlands = lands .. ”

land(p(”..row_str..”,”..col_str..”)).”restrictions = restrictions ..

check_restrictions(row, col, i)end

end

df = io.open(”resources/restrictions.lp”, ”w+”)df:write(restrictions)df:flush()df:close()

endend

endend#end.

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 28 / 31

Page 69: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejecución del módulo Clingo

<<thread>> run()

Thread Controller

UI

clingo

load("generate_regions.lp")

execute("generator.lp")

loop [0..regions]load("fill_regions.lp")

load("restrictions.lp")

return

finish()

load("detail_terrain.lp")

load("detail_mountains.lp")

load("detail_water.lp")

load("generate_players.lp")

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 29 / 31

Page 70: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de generación 20x20

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 30 / 31

Page 71: Generación de Escenarios de un Videojuego 2D …cabalar/LRC18/alcalde.pdfGeneración de Escenarios de un Videojuego 2D mediante Programación Lógica Rafael Alcalde Azpiazu Grado

Ejemplo de generación 30x30

Rafael Alcalde Azpiazu (UDC) Generación mediante ASP 31 / 31