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

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


  • 99 Views
  • 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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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

10/24/2011


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


Setup
Setup

  • 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

    http://www.gimp.org


Tile set with id numbers
Tile Set with ID Numbers

0 1 2 3 4 5 6 7

8

16

24

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

    http://tilemap.co.uk/index.html

  • 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 Level1.as to use


Map setup1
Map Setup

backGroundMap = [

[26,24,25,0,26,26,26,26,26,0,0,26,26,26,26,26,0,24,25,26],

[27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27],

[29,0,28,0,0,0,24,25,0,24,25,0,24,25,0,0,0,27,0,29],

[27,0,28,0,27,0,0,0,0,0,0,0,0,0,0,27,0,29,0,27],

[29,0,0,0,29,0,0,30,0,0,0,0,31,0,0,29,0,0,0,29],

[0,0,28,0,26,0,0,31,0,0,0,0,31,0,0,26,0,26,0,0],

[0,0,0,0,0,0,0,31,0,0,0,0,31,0,26,0,0,0,0,0],

[26,26,26,0,0,26,0,30,30,30,30,30,30,0,0,0,0,26,26,26],

[0,0,0,26,0,0,0,0,0,0,0,28,0,0,0,0,26,0,0,0],

[0,0,0,0,26,0,0,27,0,27,0,27,0,28,0,26,0,0,0,0],

[27,0,0,0,27,0,0,29,0,29,0,29,0,28,0,27,0,0,0,27],

[29,0,0,0,29,0,0,0,0,0,0,0,0,0,0,29,0,0,0,29],

[27,0,0,0,0,26,0,28,0,28,0,28,28,0,26,0,0,0,0,27],

[29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29],

[26,24,25,0,0,26,26,26,26,0,0,26,26,26,26,0,0,24,25,26]

];


Map setup2
Map Setup

spriteMap = [

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,22,0,0,0,0,0,9,0,0,20,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[1,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,9,0,9,0,0,0,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,9,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,9,0,23,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

];


Using tile data1
Using Tile Data

  • TileSheetDataXML.as to store all tile data and some frame data from XML

    package com.efg.games.notanks {

    public class TilesheetDataXML {

    public static varXMLData:XML=

    <tilesheet>

    <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>

    </tilesheet>;

    } // 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 GameDemoIteration6.as


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
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


Tilebytileblitsprite as
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 NoTanks.as

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

  • 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


Iterations
Iterations

  • 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


ad