Java Game Programming Workshop Series

Session 1

  • Introductions
  • Intro to Java, including its strengths and weaknesses as a gaming language
  • "Hello, World!" applet with colors
  • PlayerCharacter class
  • Making the applet run an animation thread
  • Responding to key presses

Click here to run the applet.

Click here to download the code.

Session 2

  • Brief review of Session 1
    • Getters and Setters in PlayerCharacter
    • Multithreading
    • Keyboard event handling
  • Using constants to set game world bounds
  • Firing projectiles in eight directions
  • Adding projectiles to a data structure

Click here to run the applet.

Click here to download the code.

Session 3

  • Implementing inheritance for our space objects
    • ...and refactoring our character and projectiles
  • Smoothing out the firing controls
  • Managing memory by cleaning up "dead" projectiles

Click here to run the applet.

Click here to download the code.

Session 4

  • Working with random numbers
  • Making autonomous game objects (asteroids)
  • Collision detection
  • Keeping track of score and lives

Click here to run the applet.

Click here to download the code.

Session 5

Session 6

  • Review of Session 5
  • Switching screens (main menu to game screen and back again)
  • Subclassing MHActor to create player ship and asteroids
  • Workshop 6 source code

Session 7

  • Collision detection
    • Asteroids destroy player
    • Lasers destroy asteroids (and spawn new asteroids)
  • Scoring
  • Extra lives
  • Workshop 7 source code

Session 8

  • Asteroids respawn
  • Player respawns (featuring low-resolution timing)
  • Particle effects for destroyed player and asteroids
  • Sound effects
  • "Game Over" screen
  • Workshop 8 source code

Wrap-Up Session

Click here to download the game.