+ All Categories
Home > Documents > Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We...

Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We...

Date post: 14-Jan-2016
Category:
Upload: roderick-casey
View: 217 times
Download: 0 times
Share this document with a friend
22
Defining a Game CBP March 2006
Transcript
Page 1: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

Defining a Game

CBP March 2006

Page 2: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

Development Methodology

We all discuss/analyze some games

We identify OOP classes required

We negotiate some “base classes”

You extend these classes or introduce new classes to implement

your game. You sweat, and work hard to implement your game.

Your Tutor writes these classes

Page 3: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

Two Options

Isometric

Platform

Page 4: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

Isometric Tile Games

CBP March 2006tiles

Page 5: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

Isometring

CBP March 2006

?

?

? ?

?

?

?

Page 6: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”
Page 7: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

j

i

(0,0)

Screen axesx

y

Tile axes

Screen and Tile Coordinates

CBP March 2006

Page 8: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

CBP March 2006

Buildings

Page 9: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

Roads and Animations

Page 10: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

Platform Games

i

j

0 1 2 3 4

0

1

2

3

4

CBP March 2006

?

Page 11: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

CBP March 2006

Page 12: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

Platform Games

CBP March 2006

Page 13: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

i

j

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Screen and Tile Coordinates

CBP March 2006

Page 14: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”
Page 15: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

1. Tank at (i, j)

2. Remove from tile (i,j)

3. Calc vI, vJ

4. Update i += vI; j += vJ

5. Add to tile (i,j)

1

2

5

Moving gObjects over tiles

CBP March 2006

Page 16: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

ActiveTile class methods -1-

public void addTileToContents(BasicTile tile) {

contents.add(tile);

}

public void addGameObjectToContents(GameObject gObj) {

contents.add(gObj);

}

private ArrayList contents = new ArrayList();

Page 17: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

ActiveTile class methods -2-

RoadTile rTile = (RoadTile)acTile.getIfBasicTile(“CornerA");

GameObject occupied = acTile.isOccupiedByOtherGameObject(this);

bTile = (BuildingTile)acTile.getIfBasicTile(“Palace");

MagicCrystal crystal = (MagicCrystal)acTile.getIfPickup("MagicCrystal");

Page 18: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

Behaviour FSM

Event CORNER_A

State RGT

vI = 0; vJ = -1

vI = 0 vJ = 1 State UPP

i

j

Page 19: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

step() {

ActiveTile acTile = canvas.findActiveTile(i,j);

acTile.removeGameObjectFromContents(this);

int urgentEvent = boundaryDetect(vI,vJ);

if(urgentEvent == BOUNDARY) FSMPlayer(state,BOUNDARY);

if(urgentEvent == NO_EVENT){

FSMPlayer(state,event);

}

// get the active tile at this new position and add this object to it

acTile = canvas.findActiveTile(i,j);

acTile.addGameObjectToContents(this);

}

Building a Player step() method -1-

Event here from Keyboard

Page 20: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

step() {

... // check to see if we have hit a blue ball and take some action

BlueBall ball = (BlueBall)acTile.getIfGameObject("BlueBall");

if(ball != null) {

System.out.println("Red Ball talking to Blue Ball");

// set some event here to react to interacting with a blue ball

// FSMPlayer(state,TOUCH_WITH_BLUE); if it urgent or

// event = TOUCH_WITH_BLUE; if it can wait.

}

if(urgentEvent == NO_EVENT){

FSMPlayer(state,event);

}

}

Building a Player step() method -2-

Page 21: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

idle doneexploding

triggered

doExplode() doDone()

finished

triggered

doExplode()

Generates finished or triggered

Bomb class

Page 22: Defining a Game CBP March 2006. Development Methodology We all discuss/analyze some games We identify OOP classes required We negotiate some “base classes”

idle chasing

Near_plr

Far_from_plrNear_plrFar_from_plr

Gremlin class

doIdle()

doChase()


Recommended