NPC Adaptation in Interactive Fiction By: Ryen Wilkins Adviser: Dr. C. David Shaffer.

Post on 19-Jan-2018

219 views 0 download

description

Genetic Algorithm (GA) a) Create random population (set of chromosomes) b) Evaluate each chromosome using fitness function c) Select best n to continue into next generation d) Perform genetic operations - Mutation - Crossover e) Repeat from b until desired fitness is achieved

transcript

THE GROWTH OF THE NPCNPC Adaptation in Interactive Fiction

By: Ryen WilkinsAdviser: Dr. C. David Shaffer

Introduction Description:

- Can Interactive Fiction (IF) take advantage of machine learning to build a more compelling story?

Implementation:- Focus on Genetic Algorithm- Limited story with learning character(s)- TADS 3 Interactive Fiction authoring system- Rock, Paper, Scissors

Genetic Algorithm (GA)a) Create random population (set of chromosomes)b) Evaluate each chromosome using fitness functionc) Select best n to continue into next generationd) Perform genetic operations- Mutation- Crossovere) Repeat from b until desired fitness is achieved

Interactive Fiction Story in which the reader interacts with

characters or items, typically impacting the story line.

Several genres exist There are several IF authoring systems:

Inform, TADS, Adrift, Quest… None include support for machine

learning

TADS 3 Dialogue Example

TADS 3 Similar in appearance to C++, Java and

Javascript. Prototype-based language. Standard object library (Adv3 library). Built in random generator. Debugging tool. Replay function. Vectors.

Incorporating GA in TADS 3 Used Object-Oriented Implementation of

Numerical Methods by Didier Besset Convert from class-based OOL to

prototype-based OOL. Deal with differences in library, random

generator, collections, iteration, etc.

Incorporating GA in TADS 3 Pre-test: Partition Problem Vector of weights. Each must be assigned to

a left or right scale. Goal is to get as close to balanced as

possible. Chromosome: Vector of 1s (left) and 0s

(right) Results: Simple test shows genetic algorithm

is capable of being implemented in TADS 3

Next Step Can I get a character in the story to

react to the reader’s decisions? Need a setting.

- Reader is a wizard trapped in a dungeon.- Discovers that he will be released from the dungeon if he can defeat a guard in a game of rock, cloth, knife.

Rock, Cloth, Knife Chromosome: Probabilities that this guard

will select rock, cloth or knife. Initial population size: 100 From reader: 5 sets of 5 rounds each Fitness: Number of sets in which the

chromosome defeats the player. (50 iterations per set.)

Compared with system where rock, cloth and knife have equal probability (uniform).

Mutation and Crossover Mutation:

- New random value.- Mutate two at a time.

Crossover: - Cross and switch multiple values across two members.- Add both.

Initial Results “Good” members were lost in mutation. Adding both crossover members could

trap algorithm when too many poor members were made because of it.

Mutation and Crossover revisited Creep mutation – Small amount added

or subtracted to a value. More even results and don’t lose “good” members.

Crossover over one value and only add a single new member.

Uniform PlayerRCK Results (50 iterations/set – 5 generations)

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Total Wins

Trial #

Rock focused player (75%)50 iterations

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Cloth focused player (75%)50 iterations

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Knife focused player (75%)50 iterations

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

25-50-25 – 50 iterations

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Me (R: 11 C: 8 K: 6) 50 iterations

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Conclusions Genetic algorithm creates better

opponents for specialized strategies than a uniform strategy, the only option built in with TADS 3.

Results can be used to create a character(s) that will seem to react to how the reader plays the game.

Second level (uniform)

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Uniform – 50 generations

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Uniform – 100 generations

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Second level (25-50-25)

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Second level (25-50-25 50 generations)

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Second Level (me)

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Second level (me – 50 generations)

1 2 3 4 5 6 7 8 9 100

50

100

150

200

250

GAUniform

Future Work Expand to a more difficult game:

- Waving Hands: http://www.gamecabinet.com/rules/WavingHands.html