15
EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

Embed Size (px)

Citation preview

Page 1: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

EGGG: Automated programmingfor game generation

J. ORWANT

PRESENTED BY HANFENG CHEN

MARCH 25, 2015

Page 2: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

Introduction EGGG: the Extensible Graphical Game Generator

EGGG is a program that generates programs◦ Define the rules of games◦ Rules are rendered into real computer games

The games generated by EGGG should satisfy◦ Simple game description◦ Efficiently create games with relatively large size◦ Easily generate variations◦ Be portable◦ Easy to modify

Page 3: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

Game Categories and Descriptions

Classify games according to the following attributes:

1. Frenetics (timed)

2. History (record)

3. Synchrony (order)

4. Movement

5. Topology (shape)

6. Board (surface)

7. Pieces (items on board)

8. Compartment (barriers)

9. Genre (theme)

10. Information (communication)

11. Referees

12. Endings (goal)

Page 4: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

An Example - Poker game is poker

turns alternative clockwise

Discard means player removes 0..3 cards or 4 cards

if Ace

Fold means player loses

2..6 players

….

game is <rules>

…. Game Description

Page 5: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015
Page 6: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015
Page 7: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

How does EGGG know that poker is a game of rounds?

Decide that poker is a game of rounds by heuristics.

1. The game has levels.

2. The game has a particular solution.

3. The game has no hands.

4. The game has hands, but the hands contain more than 13 pieces per side.

5. The game is played on a grid with more than 25 squares.

Heuristics

Page 8: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

A New Game - Deducto A logical game

Played on a 5 x 5 square

Each of the 25 squares is either black or white

It has levels

Each level has a secret rule

The goal is to determine the rule

Rule level 1: at least half squares are white

The game is described in 42 lines of EGGG

Page 9: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

VoteYes, if you think you understand the rule in levels

VoteNo, otherwise.

Page 10: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

Easy to Create Variations

Tetris

SideTetris

TwoPlayerSideTetris

Bouncetris

BounceFast

SquareBounce

Pong(A classic video game)

Page 11: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

Implementation Inspired by the Programmer’s Apprentice and METAGAME

EGGG is written in Perl and the generated games are Perl programs

Data structures to store properties of games

Documentation is generated for both developers and players

Page 12: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

Game Components A generic minimax procedure

subroutine: enumerate_moves()

A generic static evaluator subroutine: score_board()

A generic library of opening movesThe steps of playing games are save on EGGG global repositories

Strategies Predict human players’ actions Analyzing strategies with hidden Markov models A dozen of simple strategies are included in EGGG Generating hypotheses, making interesting moves and probabilistic bluffing

Page 13: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

Rock-Paper-Scissors

EGGG can predict

your next choice by

the move histories.

Page 14: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

Other Functionalities Multiplayer games

No spatial meaning Each player has his or her own side of a grid or canvas The orientation is fixed

Generating TCP/IP networking code port 10900

Page 15: EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015

Conclusion Given brief description of a game, the EGGG creates a graphical game written in Perl

However, rules should be specified

It is not a generic solution for creating games, but the reusable components enable that the EGGG is a productive tool

The EGGG provides a quick and easy way for the game design