CS 680: GAME AI WEEK 7: PROCEDURAL CONTENT GENERATION 2/27/2012 - - PowerPoint PPT Presentation

cs 680 game ai
SMART_READER_LITE
LIVE PREVIEW

CS 680: GAME AI WEEK 7: PROCEDURAL CONTENT GENERATION 2/27/2012 - - PowerPoint PPT Presentation

CS 680: GAME AI WEEK 7: PROCEDURAL CONTENT GENERATION 2/27/2012 Santiago Ontan santi@cs.drexel.edu https://www.cs.drexel.edu/~santi/teaching/2012/CS680/intro.html Reminders Progress self-check indicator: Your progress is good is


slide-1
SLIDE 1

CS 680: GAME AI

WEEK 7: PROCEDURAL CONTENT GENERATION

2/27/2012 Santiago Ontañón santi@cs.drexel.edu https://www.cs.drexel.edu/~santi/teaching/2012/CS680/intro.html

slide-2
SLIDE 2

Reminders

  • Progress self-check indicator:
  • Your progress is good is you have:
  • Project 1 completed.
  • You have a working drama manager (or whatever is that you are

building in project 2) (even if it’s not perfect)

  • Progress self-check indicator (next week):
  • Your progress is good is you have:
  • Project 1 completed.
  • Project 2 completed
slide-3
SLIDE 3

Outline

  • Student Presentation:

“From Abstraction to Reality: Integrating Drama Management into a Playable Game Experience”

  • Student Presentation:

“Computational Approaches to Storytelling and Creativity”

  • Student Presentation:

“STORYEVAL: An Empirical Evaluation Framework for Narrative Generation”

  • Introduction to Procedural Content Generation
  • Constructive Methods for PCG
  • (Brief Introduction to Hill-Climbing algorithms)
  • Search-based PCG
  • Project 3
  • Project Discussion
slide-4
SLIDE 4

Outline

  • Student Presentation:

“From Abstraction to Reality: Integrating Drama Management into a Playable Game Experience”

  • Student Presentation:

“Computational Approaches to Storytelling and Creativity”

  • Student Presentation:

“STORYEVAL: An Empirical Evaluation Framework for Narrative Generation”

  • Introduction to Procedural Content Generation
  • Constructive Methods for PCG
  • (Brief Introduction to Hill-Climbing algorithms)
  • Search-based PCG
  • Project 3
  • Project Discussion
slide-5
SLIDE 5

Procedural Content Generation

  • Procedural content generation (PCG): creation game

content automatically, through algorithmic means.

  • Game content:
  • Maps
  • Items
  • Plot / story
  • Game play
  • Dialogue
  • etc.
slide-6
SLIDE 6

Procedural Content Generation

  • Procedural content generation (PCG): creation game

content automatically, through algorithmic means.

  • Game content:
  • Maps
  • Items
  • Plot / story
  • Game play
  • Dialogue
  • etc.

Next week

slide-7
SLIDE 7

Example: Maps in Civilization IV

slide-8
SLIDE 8

Why Procedural Content Generation?

  • In early games: space saving
  • Games using PCG do not have to save map data to disk
  • Early games ran in old computers with little memory to spare
  • In modern games:
  • Makes the creation of large worlds possible:
  • Skyrim / Starwars Galaxies, etc. would be impossible (prohibitive cost)

without PCG

  • New gameplay possibilities based on PCG:
  • Roguelikes
  • Spore
  • Galactic Arms Race
slide-9
SLIDE 9

Star Wars Galaxies

slide-10
SLIDE 10

Skyrim (also Oblivion, Daggerfall)

slide-11
SLIDE 11

S.T.A.L.K.E.R.

slide-12
SLIDE 12

Spore

slide-13
SLIDE 13

Darwinia

  • http://www.introversion.co.uk/darwiniaplus/
slide-14
SLIDE 14

Murder!

slide-15
SLIDE 15

Nethack (and other roguelikes)

slide-16
SLIDE 16

Infinite Mario

  • http://www.supermariobrothers.org/infinite-mario.html
slide-17
SLIDE 17

Galactic Arms Race

slide-18
SLIDE 18

Procedural Content Generation

  • Expand content from a “short description” to an

“expanded description”

  • E.g for Skyrim:
  • Short description: parameters that define a tree (size, amount of snow,

type of leaves, color, health, etc.). A few bytes (1KByte at most)

  • Expanded description: tree mesh. Several MegaBytes.
  • Depending of the nature of the “short description”, or the

procedure with which it is expanded, there are many families of PCG methods.

slide-19
SLIDE 19

Classification of PCG Techniques

When is PCG performed? Content Degrees of control Determinism Technique Online Optional Purely random Stochastic Constructive Offline Necessary Control vector Deterministic Generate & Test Togelius, Yannakakis, Stanley, Browne (2011)

slide-20
SLIDE 20

Classification of PCG Techniques

When is PCG performed? Content Degrees of control Determinism Technique Online Optional Purely random Stochastic Constructive Offline Necessary Control vector Deterministic Generate & Test Executed during the game: Must be fast and reliable Executed during game design: Maybe slower, and less need for strong reliability

slide-21
SLIDE 21

Classification of PCG Techniques

When is PCG performed? Content Degrees of control Determinism Technique Online Optional Purely random Stochastic Constructive Offline Necessary Control vector Deterministic Generate & Test Content generated is only an “add-on”

  • f the game. Not

important if it’s flawed Content generated is the core of the game: main map, main plot, etc. Must be flawless

slide-22
SLIDE 22

Classification of PCG Techniques

When is PCG performed? Content Degrees of control Determinism Technique Online Optional Purely random Stochastic Constructive Offline Necessary Control vector Deterministic Generate & Test Only way to control

  • utcome is through

the random seed (no “short description”) PCG expands a “short description” with which the game designer has control of the

  • utcome
slide-23
SLIDE 23

Classification of PCG Techniques

When is PCG performed? Content Degrees of control Determinism Technique Online Optional Purely random Stochastic Constructive Offline Necessary Control vector Deterministi c Generate & Test Outcome is unpredictable Given same input, algorithm always provides the same

  • utput
slide-24
SLIDE 24

Classification of PCG Techniques

When is PCG performed? Content Degrees of control Determinism Technique Online Optional Purely random Stochastic Constructive Offline Necessary Control vector Deterministic Generate & Test Algorithm designed in such a way that the

  • utcome always

achieves the desired effect Given an “evaluation function”, the algorithm generates candidates until one satisfies the function

slide-25
SLIDE 25

Constructive vs Generate & Test

  • Constructive algorithms:
  • Task-specific
  • Typically, they are “tricks”
  • Require a lot of fine tuning
  • Generate & Test:
  • AI-like
  • Evaluation function defines what are we looking for
  • A search algorithm (e.g. Hill-climbing) used to search an individual

satisfying (maximizing) the evaluation function

  • Generic
slide-26
SLIDE 26

Outline

  • Student Presentation:

“From Abstraction to Reality: Integrating Drama Management into a Playable Game Experience”

  • Student Presentation:

“Computational Approaches to Storytelling and Creativity”

  • Student Presentation:

“STORYEVAL: An Empirical Evaluation Framework for Narrative Generation”

  • Introduction to Procedural Content Generation
  • Constructive Methods for PCG
  • (Brief Introduction to Hill-Climbing algorithms)
  • Search-based PCG
  • Project 3
  • Project Discussion
slide-27
SLIDE 27

Constructive Approaches to PCG

  • Typically application specific
  • Most common are map-generation approaches
  • Some generic families of techniques that have been

shown to work for many applications:

  • Statistical approaches
  • Simulation-based approaches
  • Grammar approaches
slide-28
SLIDE 28

Examples of Constructive Approaches

  • Application Specific
  • Statistical approaches
  • Simulation-based approaches
slide-29
SLIDE 29

Example: Application Specific Method

  • House-blueprint generation for Zelda-like games
  • Input parameters:
  • Size of the grid (e.g. 32x32)
  • Number of rooms of each tipe (bedrooms, living rooms, etc.)
  • Output:
  • Full floor plan of a house for direct use in a game
  • Assumptions:
  • Rooms are rectangles
slide-30
SLIDE 30

Example: Application Specific Method

  • Step 1: Generate random rectangles
slide-31
SLIDE 31

Example: Application Specific Method

  • Step 2: Push them away enough for avoiding collisions
slide-32
SLIDE 32

Example: Application Specific Method

  • Step 3: Assign the role of each one (at random)

Living room Bedroom Bedroom Kitchen

slide-33
SLIDE 33

Example: Application Specific Method

  • Step 4: Make sure all rooms are reachable from a living

room (create doors)

Living room Bedroom Bedroom Kitchen

slide-34
SLIDE 34

Example: Application Specific Method

  • Step 5: Create one or several outside doors

Living room Bedroom Bedroom Kitchen

slide-35
SLIDE 35

Example: Application Specific Method

  • Step 6: Add furniture (each room type has a different

probability of have different pieces of furniture)

Living room Bedroom Bedroom Kitchen Table Shelves Stove Bed Bed Chair

slide-36
SLIDE 36

Example: Application Specific Method

  • Step 7: Render the house
slide-37
SLIDE 37

Example: Application Specific Method

  • Step 7: Render the house
slide-38
SLIDE 38

Application Specific Methods

  • They work
  • They need a lot of fine tuning:
  • In the example: how many pieces of furniture per room
  • They do not generalize to any other application
  • Very common in games (because they work, and can be

fine tuned to generate exactly what we want, and the way we want)

slide-39
SLIDE 39

Examples of Constructive Approaches

  • Application Specific
  • Statistical approaches
  • Simulation-based approaches
slide-40
SLIDE 40

Example: Statistical Approaches

  • Name generation
  • Application: large games with lots of NPCs/items require

the game designer to give a name each of them. Time consuming.

  • Approach:
  • Model the statistical properties of a given language
  • Generate random words that have the same statistical properties

as the given language

slide-41
SLIDE 41

Example: Statistical Approaches

  • Collect a corpus of the language we want the name to sound

like

  • A corpus is just a lot of text that is representative of a given

language:

  • “The first time I catched Tom private I asked him what was his idea,

time of the evasion?—what it was he'd planned to do if the evasion worked all right and he managed to set a nigger free that was already free before? And he said, what he had planned in his head from the start, if we got Jim out all safe, was for us to run him down the river on the raft, and have adventures plumb to the mouth of the river, and then tell him about his being free, and take him back up home on a steamboat, in style, and pay him for his lost time, and write word ahead and get out all the niggers around, and have them waltz him into town with a torchlight procession and a brass-band, and then he would be a hero, and so would we. But I reckoned it was about as well the way it

  • was. … ”
slide-42
SLIDE 42

Example: Statistical Approaches

  • Modeling the statistical properties of a language
  • “The first time I catched Tom private …”

T H E F I R S T P(letter | previous letter)

slide-43
SLIDE 43

Example: Statistical Approaches

  • Probability table:

2 a b c d … x y z a 759 927 1547 37 2296 1 3297 b 541 105 435 147 c 1144 63 9 78 d 564 9 4 178 15108 … … x 26 28 30 104 y 77 253 1 5896 z 2 55 19 8 78 15187 5317 36105 1630 37 2296 1 28597

slide-44
SLIDE 44

Example: Statistical Approaches

  • Given the probability table, generating a new name is just

do the following:

  • Word = “”;
  • Current = ‘ ‘;
  • Do
  • Current = sample(P(letter | Current))
  • Word = Word + Current
  • While(Current != ‘ ‘)
  • Return Word
slide-45
SLIDE 45

Example: Statistical Approaches

With English Corpus: Weng Outood Wasel Tehe Botowacout Eangis Wand Heno Bemit With Spanish Corpus: Favo Destel Biscile Cótano Taló Lubía Akete Antriliden Dichado With Chinese Corpus: Yuìn Hòhéngjībì Jīng Xùgshuì Zhuán Sǎngzhò Dùyón Pádén Mǐlì

slide-46
SLIDE 46

Example: Statistical Approaches

  • Can easily be improved:
  • Taking into account “bigrams” (probability of a letter given the last two

letters)

  • Considering syllables rather than letters
  • Additional restrictions could be imposed by generating several

samples, and selecting only the ones that satisfy restrictions (Generate & Test)

  • Same concept can be applied to other domains. For example:
  • Map generation:
  • probability of one map cell given the previous one(s)
  • Corpus: existing data from that domain
  • Main problem: needs a corpus to be trained on
slide-47
SLIDE 47

Examples of Constructive Approaches

  • Application Specific
  • Statistical approaches
  • Simulation-based approaches
slide-48
SLIDE 48

Simulation-based Approaches

  • Idea: generate content by simulating the natural process

through which that content would have been generated in the real world

  • Example:
  • Map generation: simulate erosion
  • Plot generation: simulate characters’ behavior
slide-49
SLIDE 49

Example: Simulation-based Approaches

  • Outdoor map generation. Two steps:
  • Step 1: Generate an initial map (many techniques are

known, e.g. based on fractals)

  • Step 2: Simulate natural erosion to make the map look

natural

slide-50
SLIDE 50

Example: Simulation-based Approaches

  • Step 1: Generate an initial map (e.g. fractals)
  • Simplest approach: diamond-square method

s s s s c c c c s c c c c c s s s s c c c c c c c c c s s s s c c c c c c c c c c c c c s s s s s s s s s s s s

diamond diamond square square

slide-51
SLIDE 51

Example: Simulation-based Approaches

  • Step 1: Generate an initial map (e.g. fractals)
  • Simplest approach: diamond-square method

s s s s c c c c s c c c c c s s s s c c c c c c c c c s s s s c c c c c c c c c c c c c s s s s s s s s s s s s

diamond diamond square square Average of the outer 4 dots +random noise

slide-52
SLIDE 52

Example: Simulation-based Approaches

  • Step 1: Generate an initial map (e.g. fractals)
  • Simplest approach: diamond-square method

s s s s c c c c s c c c c c s s s s c c c c c c c c c s s s s c c c c c c c c c c c c c s s s s s s s s s s s s

diamond diamond square square Average of the 3 (4) neighbors +random noise

slide-53
SLIDE 53

Example: Simulation-based Approaches

  • Step 1: Generate an initial map (e.g. fractals)
  • Simplest approach: diamond-square method
slide-54
SLIDE 54

Example: Simulation-based Approaches

  • Step 2: Simulate Natural Erosion
  • Determine physical composition of map (sand, rock, etc.)
  • Physical model of natural erosion
  • Simulate wind
  • Simulate heat
  • etc.
slide-55
SLIDE 55

Example: Simulation-based Approaches

  • Step 2: Simulate Natural Erosion

[Olsen, 2004]

slide-56
SLIDE 56

Example: Simulation-based Approaches

  • In the example, we had an initial map and simulated
  • erosion. Some approaches do not need an initial model
  • Simulation-based approaches have been used in actual

games, e.g. Galaxies in Masters of Orion 3

slide-57
SLIDE 57

Outline

  • Student Presentation:

“From Abstraction to Reality: Integrating Drama Management into a Playable Game Experience”

  • Student Presentation:

“Computational Approaches to Storytelling and Creativity”

  • Student Presentation:

“STORYEVAL: An Empirical Evaluation Framework for Narrative Generation”

  • Introduction to Procedural Content Generation
  • Constructive Methods for PCG
  • (Brief Introduction to Hill-Climbing algorithms)
  • Search-based PCG
  • Project 3
  • Project Discussion
slide-58
SLIDE 58

Hill Climbing

  • Systematic vs local search:
  • Systematic search: (e.g. A*)
  • Ensures exploration of the whole search space.
  • Typically relevant when we care about the path from start to goal
  • Ensure optimal solutions
  • Local search:
  • Only explores some parts of the search space.
  • Typically relevant when we don’t care about the path, but just finding the

goal

  • No guarantee of optimality
  • Optimization problems: e.g. find the state that maximizes a certain

function

  • Basic algorithm: Hill-Climbing
slide-59
SLIDE 59

Local Search

  • Given:
  • A search space
  • A function h(s) to optimize (maximize/minimize)
  • Start in the initial state(s) (typically selected at random)
  • Evaluate current state(s): h(s)
  • Explore neighbors of the current state(s) trying to increase

the current value of h(s)

  • Advantages:
  • Can find reasonably good solutions in little time
slide-60
SLIDE 60

Hill Climbing

  • Keep a single current state
  • If there is a better neighbor:
  • Move there
  • Otherwise
  • End, and return current state

Current state

slide-61
SLIDE 61

Hill Climbing

  • Keep a single current state
  • If there is a better neighbor:
  • Move there
  • Otherwise
  • End, and return current state

Current state neighbors

slide-62
SLIDE 62

Hill Climbing

  • Keep a single current state
  • If there is a better neighbor:
  • Move there
  • Otherwise
  • End, and return current state

Current state

slide-63
SLIDE 63

Hill Climbing

  • Keep a single current state
  • If there is a better neighbor:
  • Move there
  • Otherwise
  • End, and return current state

Current state

slide-64
SLIDE 64

Hill Climbing

  • Applications: optimization problems, like Travel-Salesman

Problem

  • Problems: local maxima/minima (there are many variants

to alleviate this)

  • Common variants of hill climbing search:
  • Tabu-Search
  • Simulated Annealing
  • Genetic Algorithms
  • Swarm Algorithms
slide-65
SLIDE 65

Outline

  • Student Presentation:

“From Abstraction to Reality: Integrating Drama Management into a Playable Game Experience”

  • Student Presentation:

“Computational Approaches to Storytelling and Creativity”

  • Student Presentation:

“STORYEVAL: An Empirical Evaluation Framework for Narrative Generation”

  • Introduction to Procedural Content Generation
  • Constructive Methods for PCG
  • (Brief Introduction to Hill-Climbing algorithms)
  • Search-based PCG
  • Project 3
  • Project Discussion
slide-66
SLIDE 66

Generate and Test Approaches to PCG

  • Two approaches to generate and test:
  • Simple Generate & Test:
  • Search-based:

Unreliable Constructive Method Correctness Verification Search Method Evaluation Function

slide-67
SLIDE 67

Generate and Test Approaches to PCG

  • Two approaches to generate and test:
  • Simple Generate & Test:
  • Search-based:

Unreliable Constructive Method Correctness Verification Search Method Evaluation Function For example: verify that a path exists from the start to the goal

slide-68
SLIDE 68

Search-based Approaches to PCG

  • Search algorithm can be either:
  • systematic search (A*-like)
  • Local search (Hill-climbing)
  • Systematic search constructs a design bit by bit, and the

evaluation function guides the search towards a complete design

  • Local search starts with random (complete) designs, and

improves them bit by bit, guided by the evaluation function

slide-69
SLIDE 69

Search-based Approaches to PCG

  • Search algorithm explores the space of possible designs

(maps, plots, quests, etc.)

  • Algorithm stops when:

a)

A candidate that satisfied a minimum criteria of quality is found

b)

After some fixed amount of search (returning the best individual found so far)

  • The evaluation function can be either:

a)

Evaluating only complete designs, and measuring how good they are (suitable for hill-climbing algorithms, like GAs)

b)

Evaluating partial designs, and measuring how close are they to completion (suitable for heuristic search algorithms, like A*)

slide-70
SLIDE 70

Design Space

  • Search-based algorithms search in the space of possible

“designs”

  • Such space is HUGE (think, for example, of all the

possible storylines a game could have!)

  • Solution:
  • Define a smaller design space
  • Smaller space, containing enough “interesting designs”
  • E.g.: in the case of house-layout generation, only houses with

rectangular rooms that fit in a 32x32 grid.

  • Key for making an algorithm converge to a good design, fast
slide-71
SLIDE 71

Design Space: Abstraction

  • In order to make the search space smaller, we can use

abstraction

  • Simplified representation of the actual design
  • Examples of abstractions (map design):

1.

No abstraction: representation is the content of each map cell

2.

Some abstraction: representation of walls, size of walls, and

  • rientation

3.

More abstraction: set of parameters characterizing a map (number of rooms, corridors, etc.)

slide-72
SLIDE 72

Design Space: Abstraction

  • Example: Starcraft Map Generation

Design Space Search

slide-73
SLIDE 73

Design Space: Abstraction

  • Example: Map Generation

Design Space Search Every point in the design space is an “abstracted map” that corresponds to exactly

  • ne actual map
slide-74
SLIDE 74

Design Space: Abstraction

  • Example: Map Generation

Design Space Search The mapping between “abstracted map” and “actual map” should be deterministic. If it’s not, at least all the “actual maps” resulting from an “abstracted map” must have same or nearly identical evaluation Otherwise, the evaluation function will not be useful for the search algorithm.

slide-75
SLIDE 75

Design Space: Abstraction

  • Representation in the design space should be:
  • Abstract enough to make the space small
  • Rich enough to ensure that some interesting designs can be

encoded with it

  • Continuous: neighbors in the design space should have similar

evaluation function values (for Hill Climbing algorithms)

  • For Hill-Climbing algorithms: vector of numbers are good
  • For A*-like algorithms: trees, graphs, or sequences are

good

slide-76
SLIDE 76

Types of Evaluation Functions

  • Heuristic: For A*-like algorithms. They measure how close are

we from finding a complete design

  • Fitness:
  • Direct Measurement: a direct function (hand-authored) that measures

how good is the design.

  • Example: spatial concentration of resources in RTS maps.
  • Simulation: simulate the design to obtain measurements.
  • Example: use a player model to estimate how long does a level take to be

finished.

  • Interactive: in-game, players provide feedback to how good are the

designs

  • Example: Galactic Arms Race.
slide-77
SLIDE 77

Example: RTS Map Generation

[Togelius, Preuss, Yanakakis 2010]

slide-78
SLIDE 78

Example: RTS Map Generation

  • Design space representation:
  • Vector of numbers (76 total):
  • Position of base 1 (x,y)
  • Position of base 2 (x,y)
  • Position of resources 1 (x,y)
  • Position of resource n (x,y)
  • Terrain feature 1 (Gaussian parameters: mean, covariances)
  • Terrain feature 2 (Gaussian parameters: mean, covariances)
slide-79
SLIDE 79

Example: RTS Map Generation

  • Evaluation function consists of a collection of direct and

simulation-based measures:

  • Base Space: give enough space to all player bases
  • Base Distance: keep player bases far away
  • Resource-balance:
  • Penalizes resources too close to one player and far from another
  • Penalizes if one player has clearly ownership of more resources than

another

  • Penalizes maps where there is an unbalance between gas and geysers

for any player

  • Map geometry interestingness:
  • Choke points: favors the appearance of chokepoints
  • Path overlapping: favors the fact that closest paths from different player

bases to others overlap

slide-80
SLIDE 80

Example: RTS Map Generation

  • Search method:
  • Multi-objective genetic algorithms
  • Can optimize based on all the different functions at once:
  • Return maps that achieve different balances of the different evaluation

functions

  • User selects the best one
slide-81
SLIDE 81

Example: RTS Map Generation

When is PCG performed? Content Degrees of control Determinism Technique Online Optional Purely random Stochastic Constructive Offline Necessary Control vector Deterministic Generate & Test Control vector here is the number of bases, resources and mountain formations desired

slide-82
SLIDE 82

Example: Galactic Arms Race

[Hastings, Guha, Stanley 2010]

slide-83
SLIDE 83

Example: Galactic Arms Race

  • Design Space Representation:
  • Parameters of a particle system
  • Evaluation Function:
  • Interactive: depending of long much do players use each weapons
  • Search Strategy:
  • Evolutionary algorithm.
slide-84
SLIDE 84

Example: Galactic Arms Race

When is PCG performed? Content Degrees of control Determinism Technique Online Optional Purely random Stochastic Constructive Offline Necessary Control vector Deterministic Generate & Test

slide-85
SLIDE 85

Search-based PCG

  • Uses techniques coming from AI (heuristic or local search)
  • Algorithms take much longer to converge than constructive
  • nes
  • Has the potential of generating novel and creative designs,

whereas constructive methods would only generate what they were designed to generate

  • Active field of research
  • Most active subarea is that of story generation (covered next

week)

slide-86
SLIDE 86

Outline

  • Student Presentation:

“From Abstraction to Reality: Integrating Drama Management into a Playable Game Experience”

  • Student Presentation:

“Computational Approaches to Storytelling and Creativity”

  • Student Presentation:

“STORYEVAL: An Empirical Evaluation Framework for Narrative Generation”

  • Introduction to Procedural Content Generation
  • Constructive Methods for PCG
  • (Brief Introduction to Hill-Climbing algorithms)
  • Search-based PCG
  • Project 3
  • Project Discussion
slide-87
SLIDE 87

Project 3: Procedural Content Generation

  • Add procedural content

generation techniques to a game engine.

  • Use the one of the three

game engines we have used for projects 1 or 2: Starcraft, S3 or GraphicIFEngine

  • Choose whether you want

the system to generate maps/rooms/story

slide-88
SLIDE 88

Project 3: Procedural Content Generation

  • Determine exactly the extent of what you want to be

procedurally generated:

  • Given a story, generate maps?
  • Given a story and a high-level map, generate rooms?
  • Given a map and rooms, generate a story?
  • Etc.
  • Pick a PCG technique (search-based, constructive, etc.)
  • Experiment with the result:
  • Is the generated content better than the original one?
  • Was it cheaper to generate?
  • Are the games with content generated procedurally as fun as the
  • riginal one?
slide-89
SLIDE 89

Project 3: Procedural Content Generation

  • Ideas:
  • Room generation: use constructive techniques to generate new

layouts for the mansion. Constraints: there is a set of objects that must be there

  • Map generation: use constructive/search-based techniques to

generate the outside map (mansion, bar, etc.) stay the same

  • Map generation in S3/Starcraft: use constructive/search-based

techniques to generate new maps

  • Unit generation in S3/Starcraft: use search-based approaches to

generate a new kind of unit/building in S3

  • Rule-generation: use search-based approaches fine-tune the

balance of power between the different units in S3 (hitpoints, damage, speed, etc.)

  • Plot generation: use constructive/search-based techniques to

generate optional sub-plots in the game

slide-90
SLIDE 90

Outline

  • Student Presentation:

“From Abstraction to Reality: Integrating Drama Management into a Playable Game Experience”

  • Student Presentation:

“Computational Approaches to Storytelling and Creativity”

  • Student Presentation:

“STORYEVAL: An Empirical Evaluation Framework for Narrative Generation”

  • Introduction to Procedural Content Generation
  • Constructive Methods for PCG
  • (Brief Introduction to Hill-Climbing algorithms)
  • Search-based PCG
  • Project 3
  • Project Discussion
slide-91
SLIDE 91

Project Discussion

  • Project 1:
  • Questions? Technical Problems? Assistance?
  • Project 2:
  • Questions? Technical Problems? Assistance?
  • Project 3:
  • Questions? Technical Problems? Assistance?