Project Pitch: Answer Set Programming for Procedural Content Generation

15
Answer Set Programming for Procedural Content Generation Innovation and Professional Development Project Pitch by Andrea Tucci @andreatux

description

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

Transcript of Project Pitch: Answer Set Programming for Procedural Content Generation

Page 1: Project Pitch: Answer Set Programming for Procedural Content Generation

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

Outline➔ Procedural Content Generation➔ Answer Set Programming

◆ the HEX programs➔ Goals

Page 3: Project Pitch: Answer Set Programming for Procedural Content Generation

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

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

Procedural Content Generation ➔ Examples

Page 6: Project Pitch: Answer Set Programming for Procedural Content Generation

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

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

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

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

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

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

Goals - rough idea

Page 13: Project Pitch: Answer Set Programming for Procedural Content Generation

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

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

Questions?