Introducing ZAsteroids: Full Game and Codebase

ZAsteroids, it’s 3D asteroids, but with a twist! Try keep your Ion-Cannon satellite in working order while fending off waves of asteroids. It’s also completely free. I’ve added crepuscular rays, satellite upgrades, and tributes Elite and to the guys at the MIT SPHEREs project. Dan did a wicked job with the modelling and all the graphics. This post contains the download as well as the full codebase on Github! Feel free to pull and contribute 🙂

Here’s a movie of of the game elements:

If there is free time I’ll try polish it, but I’m more focused on Little Orc Wars at the moment, and possibly seeing if I can wrap the Oculus Rift DK2 into the game. The space scene would be fantastic in stereo, and that trumps game polish. But if there’s anyone out there that would like to help polish+balance it, or put it up on Xbox/Steam/etc., I’d really appreciate the help!

Overview of ZAsteroids


  • Game engine+shaders: Sam Claassens
  • Artwork and all the stuff that makes it look cool: Daniel Gawryjolek
  • Music: Allan Purkiss
  • Some content borrowed from Zita Asteria


  • Project and language: Visual Studio 2013 Community, C#
  • Game framework: XNA 4.0 (using XNA Refresh)
  • Particle manager: DPSF
  • Supports mouse+keyboard and Microsoft Xbox Gamepad

Installing the Game

The binaries can be downloaded here!

To install:

  • Download and install XNA Refresh according to their steps (which will require you to install XNA 4.0 Redistributable)
  • Unzip game from link above
  • Run ZAsteroids.exe
  • Rinse ‘n repeat!

Playing the Game

The objective is to destroy asteroids and earn cash (the closer they are the quicker they go boom!). They’re approaching from the sun, so probably keep looking in that direction.

After some time, the satellite’s shields will be charged, and you will be able to control a drone that can repair and upgrade the satellite from outside using the cash you got from destroying the asteroids. You’ll need to fly close to the repair+upgrade locations to be able to perform the respective action (which is shown on your HUD with markers). Avoid the satellite itself, collisions will destroy your drone!

Then, the shields deplete and you’re back to raining ion havoc down on unsuspecting space boulders!


Using the Ion Cannon:

  • Keyboard+Mouse:
    • Middle of screen is zero for pitch and yaw, move away from that to pitch+yaw the satellite for aiming
    • Left mouse to fire
    • Right mouse to roll the satellite
  • Gamepad:
    • Right analog for pitch and yaw
    • Left analog for roll
    • A to fire!

Controlling the repair drone:

  • Keyboard+Mouse:
    • WSAD for moving forward+back+left+right, Q and E for up+down
    • Numpad for attitudes – 4+6 for yaw, 8+2 for pitch, 7+9 for roll
    • Space to repair+upgrade
    • Enter to skip and earn points for the spare time you have!
  • Gamepad:
    • Left analog to move
    • Right analog for pitch and roll
    • A to repair+upgrade when you are close
    • Start to skip and earn points for the spare time you have!

A challenge: I’ve tried to reproduce similar mechanics to the actual SPHERE’s, with duty-cycle based pneumatics for movement – it should be roughly close to actually flying a real SPHERE without aided control (well, I hope, somewhat close I guess). But, it’s crazy difficult to fly one without any damping. If you press TAB, you will turn off the game damping, and make the mechanics realistic (without any PID control). I will personally send $50 to whomever can get to the furthest repair point from start, and perform a repair, with those dynamics! True story 🙂 Just post a movie as proof as a comment and we have a winner…

Getting the Code

The full codebase is publicly available on Github here, feel free to pull and change, would love to see anything new you guys come up with. Do me a favour and please commit the changes back into the main repo (may need to send a request).

– Sam

One last tip: The cheatcodes are the same as in the original Wolfenstein (circa ’90s)!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s