![Page 1: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/1.jpg)
Answer Set Programmingfor Procedural Content Generation
Innovation and Professional Development Project Pitch
by Andrea Tucci @andreatux
![Page 2: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/2.jpg)
Outline➔ Procedural Content Generation➔ Answer Set Programming
◆ the HEX programs➔ Goals
![Page 3: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/3.jpg)
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)
![Page 4: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/4.jpg)
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)
![Page 5: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/5.jpg)
Procedural Content Generation ➔ Examples
![Page 6: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/6.jpg)
Procedural Content Generation ➔ Planet Generator:
http://experilous.com/1/planet-generator/2014-09-28/version-1
![Page 7: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/7.jpg)
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
![Page 8: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/8.jpg)
Answer Set ProgrammingClassic 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
![Page 9: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/9.jpg)
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) … }
![Page 10: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/10.jpg)
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
![Page 11: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/11.jpg)
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(?)
![Page 12: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/12.jpg)
Goals - rough idea
![Page 13: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/13.jpg)
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
![Page 14: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/14.jpg)
Games ReferenceFrom 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
![Page 15: Project Pitch: Answer Set Programming for Procedural Content Generation](https://reader033.vdocuments.site/reader033/viewer/2022060118/558b9f61d8b42af4798b4577/html5/thumbnails/15.jpg)
Questions?