ZAP (Asteroids)

From My wiki
Revision as of 02:38, 18 April 2008 by Flion (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Description

ZAP stands for Zero-G Asteroid Pop, a clone and melding of the arcade game Asteroids. It will replace the vector graphics with pixel graphics and combines the gameplay of Asteroids II. It is also going to be produced for single or dual player action.

Progress

Each week we will update our goals. We are using agile development techniques so the goals for the next week become the features we are required to implement that week. Then at the end of the week we update our progress section by posting relevant screen shots and describing our progress and whether we achieved our goals or not.

Week 1

This week was spent setting up and learning the 'SlagCore' system. Then, a state machine to control the overall flow of the game was implemented.

Screen Captures

ZAP Title Page - Not much to see yet. Just text versions of state screens.

Goals

  • Install Slag/PlasmaCore
  • Install Eclipse and Eclipse plug-in
  • Implement a control state machine

Progress

  • Slag/PlasmaCore installed
  • Eclipse and plug-in installed
  • State machine implemented. Various states are displayed by text messages on screen. The six-button controls to move between non-play states are implemented and a temporary control to simulate player death is in place. Button controls are mapped to keyboard until button API available in PlasmaCore.

Week 2

This week is for learning the 'SlagCore' graphics API and making pretty versions of the non-play screens. It will also be used to implement the core game system, without the mechanics.

Screen Captures

ZAP Title Page

Background image and uncorrected game font.

Goals

  • Implement graphic version of title, help, score, and credit screens.
  • Implement entity classes for ships, asteroids, and other objects.
  • Extend state flow to allow for 'attractor mode'.
  • Implement switch for single/dual player.

Progress

  • Background image for screens loads
  • Special font created and loaded
  • Special font implemented in Title Screen

Week 3

This week I will concentrate on the game itself; entities, movement, and collision.

Screen Captures

ZAP Game Screen

The fighter spouts blazing photon death

Goals

  • Place entities on a game screen
  • Movement implementation
  • Collision and movement modification

Progress

  • Fixed up Font file
  • Coded Title Screen animation
  • Created entity class; entities auto-update their positions
  • Placed ship entity on play screen
  • Implemented rotation both as image modifier and acceleration vector
  • Implemented thrust - causes ship to accelerate within limits
  • Implemented fast hyperspace jump
  • Implemented list of entities = the ship shoots.
  • Reimplemented control input to avoid event trapping

Week 4

This week I intend to place the asteroid entities, implement the collision routines, and add scoring. Given time, I will implement the enemy ships and special powers.

Screen Captures

ZAP Title Page

The title screen with asteroids (they are animated).

ZAP Game Screen

Actual gameplay screen with different asteroid fragments and scoring. Stage message will be removed for final version.

Goals

  • Place asteroids on a game screen
  • Collision and movement modification
  • Spawn asteroid fragments after collision
  • Keep track of scoring

Progress

  • Asteroid entities placed appropriate to level
  • Boundary drawing errors fixed
  • Collision detection implemented and boundary conditions checked
  • Collision handling for weapon/asteroid collisions implemented
  • Collision handling for asteroid/player (i.e. lives and game over) implemented
  • Scoring implemented
  • High Score saves implemented

Week 5

This week is the beginning of production cleanup and implementation of the final game mechanics. I intend to implement enemy ships - a random shooter and one that aims. I also intend to implement a shield and a smart-missile powerup. Lastly, I intend to introduce a two-player co-op mode. For production cleanup, I intend to introduce sounds, background track, and improve the look of the non-game screens. Final task will be to implement an attractor mode and interface with the game cabinet.

Screen Captures

recording setup

This is the setup for recording: Line6 BassPodXT Pro effects line in to SB Audigy. The mastering software is Sonar Home Studio.

Goals

  • Implement enemy ships and AI at the appropriate levels.
  • Implement shield and smart-missile powerups and powerup acquisition.
  • Implement 2-player co-op mode, with scoring and modify "death" handling.
  • Implement game sounds
  • Implement game background track
  • Dress look of death(initials entry)screens, high score screens, and credits.
  • Implement attractor mode.
  • Begin test and interface with game cabinet.

Progress

  • Images for enemy ships, missile, and shielded player ships created.
  • Sounds for various actions (shooting, thrust, explosions) acquired (legally) from The FreeSound Project.
  • First cut of title and background tracks recorded and integrated into game.
  • Laser and explosion sounds implemented in game.
  • Gameplay adjusted: rate of fire slower and level does not reset on ship collision; instead the colliding asteroid is removed and the ship respawned.
  • Fire button timeout implemented to prevent someone holding the button down when game ends to skip past death and highscore screens back into new game.
  • Upgraded to latest PlasmaCore version, fixed exposed code.
  • Implemented the UFO entities and placed them in game.

Week 6

Despite getting some low-priority things done last week and not some of the higher-priority tasks, it's looking good to get the game largely ready this week. I still need to implement 2-player co-op and the power-ups, but I have (just behind the wire) implemented the enemy ships. Most of the polish is implemented and the rest should be simple. Also, attractor mode is implemented except for the actual command line switch.

Screen Captures

ZAP Game Screen

The game screen with a UFO wandering through and randomly shooting.

ZAP Game Over Screen

The game over screen which now allows input of initials.

ZAP Game Screen

The game screen showing a ship sporting the shield powerup.

ZAP Game Screen

The game screen showing a ship chasing down a shield powerup.

ZAP Game Screen

The game screen showing a smart missile flying.

Goals

  • Implement shield and smart-missile powerups and powerup acquisition.
  • Implement 2-player co-op mode, with scoring and modify "death" handling.
  • Dress look of death(initials entry)screens, high score screens, and credits.
  • Implement attractor mode command line switch.
  • Begin test and interface with game cabinet.

Progress

  • Enemy ship implementation completed
  • Shield and smart-missile powerup completed
  • Some cleanup of non-game screens and sounds completed
  • Attractor mode coded, command-line switch not in place
  • Added additional lives every 250000 points

Release Candidate 1

An attempt to implement two-player seriously broke the code. However, the explosion animation was also amongst my final goal, plus a few last sound and graphics implementations. Also, I failed to implement a new font because the font supplied to me did not have a transparent background and I don't have the tools to convert the aliased pixels. However, the game was installed and tested with the game cabinet system.

Screen Captures

ZAP Game Screen

The game screen showing a frame of the explosion animation as a ship dies.

Goals

  • Implement explosion animation.
  • Implement new font.
  • Finish clean-up of screens.
  • Implement 2-player.
  • Begin test and interface with game cabinet.

Progress

  • Explosion animation implemented.
  • Final sound and graphic implementations completed.
  • 2-player mode broke code - backed out failed implementation.
  • Installed on game cabinet and attractor mode command line switches were tested.

Release Candidate 2

This will consist of the re-mapping of the key functions to game-cabinet button functions. It will also encompass the addition of the new font (as soon as it is supplied to me) and some minor tweaks to gameplay.

  • Update 4/8/08: The remapping of the keys is completed. The new font was never finalized and there are a couple of issues with the game on the Game Cabinet. The first is a crash that may be fixed once a new version of Slag/Plasmacore is available. The second is a problem with the screen switching to an odd format in full-screen when the display is using HDMI. Neither of these issues are directly related to the game code and should be addressed soon. At this point, the game is complete and playable.

Resources

http://en.wikipedia.org/wiki/Asteroids_(arcade_game)

Personal tools