Penn Siggraph Games Development Game


Published on

Presentation slides for a cell phone game currently in development.

1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Penn Siggraph Games Development Game

  1. 1. Presenting “Unnamed Game”
  2. 2. Basic Mechanics  Overhead space shooter  Control ship with arrow keys  Press fire button to fire all of your guns at once  Cells  break off as a ship takes damage  enemies are built from cells  must be directly hit to be destroyed  You must protect your brain cell – if it takes 3 hits, you’re dead!
  3. 3. Cell Types  Basic Cell  Does not shoot  Provides cover for other cells  Gun Cell  Shoots a fast projectile in one direction  Missile Cell  Shoots a seeking missile  Short lifespan  Melee Cell  Sword-like cell that must touch a cell to kill it
  4. 4. Behind the Scenes  Multiple Child tree structure for ship  Brain Cell is the root  Hitting a cell destroys it, but releases children cells back into environment Can be retrieved by you or enemy   Traversal used for most cell operations Drawing  Shooting  Collision detection  Rotation and translation 
  5. 5. Behind the Scenes  Collision Detection  Every bullet from every ship can collide with every other ship  Time-based collision needed with high projectile speeds and small cell sizes  Bounding circles used to minimize collision checks
  6. 6. Challenges Faced  Mobile Game Development  Pros: Easy to get started  Java-based  Netbeans Game Development tools   Cons: Little memory (~1-4 MB heap size)  Small screen  Awkward controls  Not completely portable among J2ME phones 
  7. 7. Challenges Faced  No floating point arithmetic  Floating point math is not on all J2ME phones  Used an open-source fixed-point library  We use 64-bit fixed-point longs With 32-bit we did not have enough precision or range 
  8. 8. Memory  Use of the new keyword was expressly forbidden without a good reason to back it up  Operations on vectors to avoid allocating memory  Pair a plus with a minus  Pair a multiply with a divide  Minimize vector normalization (slow)  Garbage collection is actually reasonably fast, but we still want to avoid using it
  9. 9. Challenges Faced  Management  Team members have other priorities (school work, jobs, etc.) Long term goals are ineffective   Members come and go  Code in small pieces to avoid losing work when a member leaves  Short jamming sessions more effective  Declare goals to reach at the end of a 5 – 10 hour session  Fosters team atmosphere  Peer coding helps members become familiar with code
  10. 10. Bugs and Hax
  11. 11. Bugs  Can keep up with your own bullets  Phantom ship
  12. 12. Hax  The fixed-point arctan2 function has a bug  Good solution – do some math and checks to compensate  Bad solution – reorder the sprite rotation array so that the rotation works anyway  Guess which one we did?
  13. 13. Future Plans  Improve collision detection (esp. for melee cells)  Work on single-player experience  Tighten up the graphics on level 3…I mean, import the rest of the sprites and get a background  Multiplayer over Bluetooth  Port to Flash (better graphics, online multiplayer)