Cis 487 game design i chapter 6 and 7
1 / 21

CIS 487 - Game Design I Chapter 6 and 7 - PowerPoint PPT Presentation

  • Uploaded on

CIS 487 - Game Design I Chapter 6 and 7. Blake Farrugia 10/24/2011. Chapter 6 – No Tanks. The next game focuses on projectile shooting using tanks. You play a green tank, killing blue tanks and gaining treasure to complete the level.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'CIS 487 - Game Design I Chapter 6 and 7' - electra

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Cis 487 game design i chapter 6 and 7

CIS 487 - Game Design IChapter 6 and 7

Blake Farrugia


Chapter 6 no tanks
Chapter 6 – No Tanks

  • The next game focuses on projectile shooting using tanks.

  • You play a green tank, killing blue tanks and gaining treasure to complete the level.

  • This game incorporates everything the book has covered so far.

  • New changes include tiles, sprite sheets, maze logic, moving enemy AI


  • The last chapters talked about sprite sheets in general, but they implemented the assets in a separate image manner

  • This chapter uses an actual sprite sheet (one full picture) to animate the player, enemies, and explosions

  • Sprites are all 32x32 pixels; the map is set up as a 20x15 grid of tiles created using GIMP

Tile set with id numbers
Tile Set with ID Numbers

0 1 2 3 4 5 6 7




25 26 27 28 29 30 31

Map setup
Map Setup

  • Each tile ID is stored a 20x15 2D array of ints

  • The game uses this information to set each tile as needed to be in the map

  • No Tanks creators used a tile map editor called Mappy to make their map setup easier

  • Arrays for map setup are stored in the Level1 class derived from Level

Map sprites and object sprites
Map Sprites and Object Sprites

  • The map itself is made of environment tiles, but object sprites are made of their own separate tiles

  • Some are in sets (idle sprite, animation sets)

  • Icons such as ammo upgrades and extra lives have their own sprites

  • Object sprites are stored in a 2D array within the Level1 class

Using tile data
Using Tile Data

  • Mappy exports code usable by ActionScript, but some work has to be done to make that code functioning

  • Mappy creates 2D arrays for to use

Map setup1
Map Setup

backGroundMap = [

















Map setup2
Map Setup

spriteMap = [

















Using tile data1
Using Tile Data

  • to store all tile data and some frame data from XML

    package {

    public class TilesheetDataXML {

    public static varXMLData:XML=


    <tile id="0" name="road" type="walkable"></tile>

    <tile id="1" name="player" type="sprite"></tile>

    <tile id="2" name="player" type="sprite"></tile>


    <tile id="31" name="blueblock8" type="nonwalkable"></tile>

    <smallexplode tiles="17,18,17"></smallexplode>

    <largeexplode tiles="17,18,19,18,17"></largeexplode>


    } // end class

    }// end package

Using tile data2
Using Tile Data

  • The GameDemo class parses and assigns tiles and creates all level properties

  • This class will be extended incrementally to build the complete game

  • Complete game is contained in

Flash region drawing
Flash Region Drawing

  • The sprite blitting used in No Tanks combines bitmap redrawing with Sprite class screen invalidation techniques that Flash does so well

  • Want to see Screen Invalidation? Right click most Flash applications and click the option “Show Redraw Region”

  • Individual object sprites (tanks, upgrades) will redraw themselves separately rather than drawing to background constantly

New level creation
New Level Creation

  • New levels are hardcoded on top of a Level class.

  • This is due to the fact that the author wants to keep all resources within the SWF and not have any external resources

  • This changes as needed, but the first (and only) level is called Level1

Chapter 7 game implementation
Chapter 7 – Game Implementation

  • This chapter focuses on:

    • AI Logic

      • Line-Of-Sight firing

      • Pathfinding

    • Individual Sprite Blitting

      • Rotation

      • Smooth Movement

Tile movement
Tile Movement

  • Tile-By-Tile movement used to be the norm for tile-based games. It’s rickety and not too pleasant to view

  • Smooth tile movement will be used in No Tanks

  • Cornering will only work when sprites are in the center of a given tile

Blitsprite as

  • A class that extends Sprite while adding frame animation functions

  • A reference of TileSheet is passed to it, and the held bitmap is redrawn individually using the copyPixels method

  • Rotation functionality is appended into this class and will be utilized by the next class,

Tilebytileblitsprite as

  • A class extending BlitSprite, so BlitSprite functionality can be used for non-tile games

  • Holds additional direction, movement, and destination logic

  • Sprites that are not environment will use this class

Game setup
Game Setup

  • The majority of the game is run through

  • A majority of the game’s setup is run through

  • NoTanks handles much of the event code after GameDemo’s initial setup

Iteration testing
Iteration Testing

  • Within the project, there are several versions of the GameDemo class

  • Each class adds new functionality and incrementally builds the entire game

  • These were general tests for successful integration of all parts of this game:

    • Sprite Rendering/Collisions

    • AI Logic

    • Movement

    • Sounds


  • Iteration 1 – adds the player avatar coide

  • Iteration 2 – add key logic to move the player

  • Iteration 3 – updates states for player moves

  • Iteration 4 – Rendering player movement

  • Iteration 5 – Adding and moving enemy tanks also divides game platform into regions

  • Iteration 6 – Game AI added for enemy tanks (targeting, movement, collisions), sounds added to game

Region tracking and chase objects
Region Tracking and Chase Objects

  • Regions are quadrants of the level that the game focuses calculations on

  • As the player moves, the contents of a given region begin to react

  • Chase Objects are managers which point a predator object towards the path of a prey object

  • Chase objects handle pathfinding/attacks for enemies