Innovation and Professional Development 
Project Pitch 
Answer Set Programming 
for Procedural Content Generation 
by Andr...
Outline 
➔ Procedural Content Generation 
➔ Answer Set Programming 
◆ the HEX programs 
➔ Goals
Procedural Content Generation 
➔ Procedural Content Generation (PCG) is an “algorithmical creation of game 
content with l...
Procedural Content Generation 
➔ Why? 
◆ new content 
◆ efficency 
◆ no designers… 
● ...really? I like to think of PCG as...
Procedural Content Generation 
➔ Examples
Procedural Content Generation 
➔ Planet Generator: 
http://experilous.com/1/planet-generator/2014-09-28/version- 
1
Answer Set Programming 
➔ Declarative problem solving approach 
◆ roots in logic programming 
➔ Write the description of t...
Answer Set Programming 
Classic example: Sudoku 
➔ Encode a cell with the predicate cell(X,Y,N) 
◆ X,Y are the coordinates...
Answer Set Programming 
➔ Make a “guess” of what number can be in a cell 
◆ cell(X,Y,1) v cell(X,Y,2) v cell (X,Y,3) v … v...
The Hex Programs 
➔ Support external knowledge 
◆ it is possible to make reasoning outside the logic program 
➔ Call a c++...
Goals and Objectives 
➔ Research on Procedural Content Generation algorithms and techniques 
◆ focusing on map/planet gene...
Goals - rough idea
Readings and References.. so far 
● J.Togelius, E.Kastbjerg, D.Schedl, G. N. Yannakakis: What is Procedural Content Genera...
Games Reference 
From the top left pic, from left to right: 
● Elite, Acornsoft 1984 
● Rescue on Fractalus, Activision 19...
Questions?
Nächste SlideShare
Wird geladen in …5
×

Project Pitch: Answer Set Programming for Procedural Content Generation

1.188 Aufrufe

Veröffentlicht am

My project pitch for my module "Innovation and Professional Development" at Abertay University.

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.188
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
448
Aktionen
Geteilt
0
Downloads
6
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Project Pitch: Answer Set Programming for Procedural Content Generation

  1. 1. Innovation and Professional Development Project Pitch Answer Set Programming for Procedural Content Generation by Andrea Tucci @andreatux
  2. 2. Outline ➔ Procedural Content Generation ➔ Answer Set Programming ◆ the HEX programs ➔ Goals
  3. 3. Procedural Content Generation ➔ Procedural Content Generation (PCG) is an “algorithmical creation of game content with limited or indirect user input”[1] ◆ levels, maps, music, quests, story … ➔ Software that, given some “rules”, is able to create new game elements ➔ Offers new ways of playing the game; new player experiences [1] J.Togelius, E.Kastbjerg, D.Schedl, G. N. Yannakakis: What is Procedural Content Generation?Mario on the borderline (2011)
  4. 4. Procedural Content Generation ➔ Why? ◆ new content ◆ efficency ◆ no designers… ● ...really? I like to think of PCG as a “tool” for designers ◆ automated procedure ◆ great for small teams ◆ experiments ◆ player-based content (data mining)
  5. 5. Procedural Content Generation ➔ Examples
  6. 6. Procedural Content Generation ➔ Planet Generator: http://experilous.com/1/planet-generator/2014-09-28/version- 1
  7. 7. Answer Set Programming ➔ Declarative problem solving approach ◆ roots in logic programming ➔ Write the description of the problem rather than how to solve it ◆ set of rules ◆ a rule can that is evaluated to be true, will fire ➔ Solution(s) to the problem, if exists, will be represented as sets of answer
  8. 8. Answer Set Programming Classic example: Sudoku ➔ Encode a cell with the predicate cell(X,Y,N) ◆ X,Y are the coordinates of the cell ◆ N is the number contained
  9. 9. Answer Set Programming ➔ Make a “guess” of what number can be in a cell ◆ cell(X,Y,1) v cell(X,Y,2) v cell (X,Y,3) v … v cell(X,Y,9) :- row(X), column(Y) ➔ Discard unwanted combinations ◆ Do not put the same number, given a row ● :- cell(X,Y,N), cell (X,Y1,N), Y1!=Y ◆ Do not put the same number, given a column ● :- cell(X,Y,N), cell(X1,Y,N), X!=X1 ◆ Do not put the same number in a block ● :- cell(X,Y,N), cell(X1,Y1,N), sameBlock(X,Y,X1,Y1) ➔ Answer in this form: {cell(0,0,3), cell(0,1,8) … }
  10. 10. The Hex Programs ➔ Support external knowledge ◆ it is possible to make reasoning outside the logic program ➔ Call a c++ function ◆ &firstbelow[P,objs](O) ● in AngryHex, ASP-based Angry Birds bot, returns the object O which is directly below P, given the objects objs ➔ ACTHEX extension ◆ rules that, when fired, call an external action that is able to change the environment
  11. 11. Goals and Objectives ➔ Research on Procedural Content Generation algorithms and techniques ◆ focusing on map/planet generation ➔ Research on Answer Set Programming application on PCG ◆ how can ASP be applied to PCG? ◆ how HEX and ACTHEX extension can be useful for this goal? ➔ Use ASP to procedurally generate game maps ◆ decouple logic from actions ◆ represent levels in structured files ➔ Map Visualization ➔ Experiments ◆ directly create levels when rules fire ◆ real-time content generation(?)
  12. 12. Goals - rough idea
  13. 13. Readings and References.. so far ● J.Togelius, E.Kastbjerg, D.Schedl, G. N. Yannakakis: What is Procedural Content Generation? Mario on the borderline (2011) ● Shaker, Noor and Togelius, Julian and Nelson, Mark J. : Procedural Content Generation in Games: A Textbook and an Overview of Current Research ● Procedural Content Generation Wiki: http://pcg.wikidot.com/ ● T.Eiter,G.Ianni and T.Krennwallner: Answer Set Programming: A Primer ● F.Calimeri, M. Fink, S. Germano, A. Humenberger, G. Ianni, C. Redl, D. Stepanova, A. Tucci : AngryHEX: an Artificial Player for Angry Birds Based on Declarative Knowledge Bases
  14. 14. Games Reference From the top left pic, from left to right: ● Elite, Acornsoft 1984 ● Rescue on Fractalus, Activision 1984 ● Minecraft, Mojang 2009 ● Diablo 2, Blizzard 2000 ● The Binding of Isaac, E.McMillen, F. Himsl 2011 ● No Men’s Sky, Hello Games 2015 (expected) I
  15. 15. Questions?

×