Upcoming SlideShare
×

# Project Pitch: Answer Set Programming for Procedural Content Generation

1,355 views

Published on

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

Published in: Technology
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

### 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?