SlideShare a Scribd company logo
Innovation and Professional Development 
Project Pitch 
Answer Set Programming 
for Procedural Content Generation 
by Andrea Tucci 
@andreatux
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 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)
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)
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 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
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
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) … }
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
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(?)
Goals - rough idea
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
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
Questions?

More Related Content

Similar to Project Pitch: Answer Set Programming for Procedural Content Generation

Keynote at the 2018 SIGGRAPH Conference on Motion, Interaction and Games
Keynote at the 2018 SIGGRAPH Conference on Motion, Interaction and GamesKeynote at the 2018 SIGGRAPH Conference on Motion, Interaction and Games
Keynote at the 2018 SIGGRAPH Conference on Motion, Interaction and Games
Rogelio E. Cardona-Rivera
 
An Incomplete Introduction to Artificial Intelligence
An Incomplete Introduction to Artificial IntelligenceAn Incomplete Introduction to Artificial Intelligence
An Incomplete Introduction to Artificial Intelligence
Steven Beeckman
 
A General Overview of Machine Learning
A General Overview of Machine LearningA General Overview of Machine Learning
A General Overview of Machine Learning
Ashish Sharma
 
The idea of projectour project is about creating a intell.docx
The idea of projectour project is about creating a intell.docxThe idea of projectour project is about creating a intell.docx
The idea of projectour project is about creating a intell.docx
cherry686017
 
Noise Contrastive Estimation-based Matching Framework for Low-Resource Securi...
Noise Contrastive Estimation-based Matching Framework for Low-Resource Securi...Noise Contrastive Estimation-based Matching Framework for Low-Resource Securi...
Noise Contrastive Estimation-based Matching Framework for Low-Resource Securi...
Tu Nguyen
 
Csise15 codehunt
Csise15 codehuntCsise15 codehunt
Csise15 codehuntTao Xie
 
Algorithms for Computer Games - lecture slides 2009
Algorithms for Computer Games - lecture slides 2009Algorithms for Computer Games - lecture slides 2009
Algorithms for Computer Games - lecture slides 2009
Jouni Smed
 
Matching Game Mechanics and Human Computation Tasks in Games with a Purpose
Matching Game Mechanics and Human Computation Tasks in Games with a PurposeMatching Game Mechanics and Human Computation Tasks in Games with a Purpose
Matching Game Mechanics and Human Computation Tasks in Games with a Purpose
CUbRIK Project
 
Matching Game Mechanics and Human Computation Tasks in Games with a Purpose
Matching Game Mechanics and Human Computation Tasks in Games with a PurposeMatching Game Mechanics and Human Computation Tasks in Games with a Purpose
Matching Game Mechanics and Human Computation Tasks in Games with a Purpose
Luca Galli
 
Software Defect Prediction on Unlabeled Datasets
Software Defect Prediction on Unlabeled DatasetsSoftware Defect Prediction on Unlabeled Datasets
Software Defect Prediction on Unlabeled Datasets
Sung Kim
 
Gamifying Teaching and Learning of Software Engineering and Programming
Gamifying Teaching and Learning of Software Engineering and ProgrammingGamifying Teaching and Learning of Software Engineering and Programming
Gamifying Teaching and Learning of Software Engineering and Programming
Tao Xie
 
Declarative Datalog Debugging for Mere Mortals
Declarative Datalog Debugging for Mere MortalsDeclarative Datalog Debugging for Mere Mortals
Declarative Datalog Debugging for Mere Mortals
Bertram Ludäscher
 
How to write a project proposal
How to write a project proposalHow to write a project proposal
How to write a project proposal
PT carbon indonesia
 
Academy Software Foundation on MaterialX | SIGGRAPH 2021
Academy Software Foundation on MaterialX | SIGGRAPH 2021 Academy Software Foundation on MaterialX | SIGGRAPH 2021
Academy Software Foundation on MaterialX | SIGGRAPH 2021
Alejandro Franceschi
 
TOG: An Innovation Centric Approach to teaching Computational Expression and ...
TOG: An Innovation Centric Approach to teaching Computational Expression and ...TOG: An Innovation Centric Approach to teaching Computational Expression and ...
TOG: An Innovation Centric Approach to teaching Computational Expression and ...
Mirjam Eladhari
 
Learning to Rank with Neural Networks
Learning to Rank with Neural NetworksLearning to Rank with Neural Networks
Learning to Rank with Neural Networks
Bhaskar Mitra
 
19. Java data structures algorithms and complexity
19. Java data structures algorithms and complexity19. Java data structures algorithms and complexity
19. Java data structures algorithms and complexity
Intro C# Book
 
The intelligent game designer: Game design as a new domain for automated disc...
The intelligent game designer: Game design as a new domain for automated disc...The intelligent game designer: Game design as a new domain for automated disc...
The intelligent game designer: Game design as a new domain for automated disc...
rndmcnlly
 
Make money fast! department of computer science-copypasteads.com
Make money fast!   department of computer science-copypasteads.comMake money fast!   department of computer science-copypasteads.com
Make money fast! department of computer science-copypasteads.com
jackpot201
 
The Role of Evolutionary Computation in Game AI
The Role of Evolutionary Computation in Game AIThe Role of Evolutionary Computation in Game AI
The Role of Evolutionary Computation in Game AI
Mike Preuss
 

Similar to Project Pitch: Answer Set Programming for Procedural Content Generation (20)

Keynote at the 2018 SIGGRAPH Conference on Motion, Interaction and Games
Keynote at the 2018 SIGGRAPH Conference on Motion, Interaction and GamesKeynote at the 2018 SIGGRAPH Conference on Motion, Interaction and Games
Keynote at the 2018 SIGGRAPH Conference on Motion, Interaction and Games
 
An Incomplete Introduction to Artificial Intelligence
An Incomplete Introduction to Artificial IntelligenceAn Incomplete Introduction to Artificial Intelligence
An Incomplete Introduction to Artificial Intelligence
 
A General Overview of Machine Learning
A General Overview of Machine LearningA General Overview of Machine Learning
A General Overview of Machine Learning
 
The idea of projectour project is about creating a intell.docx
The idea of projectour project is about creating a intell.docxThe idea of projectour project is about creating a intell.docx
The idea of projectour project is about creating a intell.docx
 
Noise Contrastive Estimation-based Matching Framework for Low-Resource Securi...
Noise Contrastive Estimation-based Matching Framework for Low-Resource Securi...Noise Contrastive Estimation-based Matching Framework for Low-Resource Securi...
Noise Contrastive Estimation-based Matching Framework for Low-Resource Securi...
 
Csise15 codehunt
Csise15 codehuntCsise15 codehunt
Csise15 codehunt
 
Algorithms for Computer Games - lecture slides 2009
Algorithms for Computer Games - lecture slides 2009Algorithms for Computer Games - lecture slides 2009
Algorithms for Computer Games - lecture slides 2009
 
Matching Game Mechanics and Human Computation Tasks in Games with a Purpose
Matching Game Mechanics and Human Computation Tasks in Games with a PurposeMatching Game Mechanics and Human Computation Tasks in Games with a Purpose
Matching Game Mechanics and Human Computation Tasks in Games with a Purpose
 
Matching Game Mechanics and Human Computation Tasks in Games with a Purpose
Matching Game Mechanics and Human Computation Tasks in Games with a PurposeMatching Game Mechanics and Human Computation Tasks in Games with a Purpose
Matching Game Mechanics and Human Computation Tasks in Games with a Purpose
 
Software Defect Prediction on Unlabeled Datasets
Software Defect Prediction on Unlabeled DatasetsSoftware Defect Prediction on Unlabeled Datasets
Software Defect Prediction on Unlabeled Datasets
 
Gamifying Teaching and Learning of Software Engineering and Programming
Gamifying Teaching and Learning of Software Engineering and ProgrammingGamifying Teaching and Learning of Software Engineering and Programming
Gamifying Teaching and Learning of Software Engineering and Programming
 
Declarative Datalog Debugging for Mere Mortals
Declarative Datalog Debugging for Mere MortalsDeclarative Datalog Debugging for Mere Mortals
Declarative Datalog Debugging for Mere Mortals
 
How to write a project proposal
How to write a project proposalHow to write a project proposal
How to write a project proposal
 
Academy Software Foundation on MaterialX | SIGGRAPH 2021
Academy Software Foundation on MaterialX | SIGGRAPH 2021 Academy Software Foundation on MaterialX | SIGGRAPH 2021
Academy Software Foundation on MaterialX | SIGGRAPH 2021
 
TOG: An Innovation Centric Approach to teaching Computational Expression and ...
TOG: An Innovation Centric Approach to teaching Computational Expression and ...TOG: An Innovation Centric Approach to teaching Computational Expression and ...
TOG: An Innovation Centric Approach to teaching Computational Expression and ...
 
Learning to Rank with Neural Networks
Learning to Rank with Neural NetworksLearning to Rank with Neural Networks
Learning to Rank with Neural Networks
 
19. Java data structures algorithms and complexity
19. Java data structures algorithms and complexity19. Java data structures algorithms and complexity
19. Java data structures algorithms and complexity
 
The intelligent game designer: Game design as a new domain for automated disc...
The intelligent game designer: Game design as a new domain for automated disc...The intelligent game designer: Game design as a new domain for automated disc...
The intelligent game designer: Game design as a new domain for automated disc...
 
Make money fast! department of computer science-copypasteads.com
Make money fast!   department of computer science-copypasteads.comMake money fast!   department of computer science-copypasteads.com
Make money fast! department of computer science-copypasteads.com
 
The Role of Evolutionary Computation in Game AI
The Role of Evolutionary Computation in Game AIThe Role of Evolutionary Computation in Game AI
The Role of Evolutionary Computation in Game AI
 

Recently uploaded

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 

Recently uploaded (20)

Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 

Project Pitch: Answer Set Programming for Procedural Content Generation

  • 1. Innovation and Professional Development Project Pitch Answer Set Programming for Procedural Content Generation by Andrea Tucci @andreatux
  • 2. Outline ➔ Procedural Content Generation ➔ Answer Set Programming ◆ the HEX programs ➔ Goals
  • 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. 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)
  • 6. Procedural Content Generation ➔ Planet Generator: http://experilous.com/1/planet-generator/2014-09-28/version- 1
  • 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. 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. 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. 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. 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(?)
  • 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. 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