Schmasteroids
An Asteroids clone written from scratch in C++
Schmasteroids is my first little baby game project (except for StoryCircles, which I don’t really count). It’s an Asteroids clone with graphics that attempt to be reminiscent of the vector display in the original arcade game.
Note that it is in a pretty playable state but may very well still have bugs! It is also not quite as well optimized as I’d like it to be. Also, it is currently only available for Windows. Linux and Mac versions are in the works but on the back burner, possibly permanently. If for some reason you’re dying to play it on one of those platforms, let me know!
That said, it’s available to download (for Windows) here.
The source code is currently available on GitHub here.
Notes
-
I wrote Schmasteroids from scratch in C++, depending only on the standard library (the Linux and Mac versions that are in progress do use SDL however). I was heavily inspired by Casey Muratori’s wonderful Handmade Hero series in this undertaking.
-
The graphics (in the current iteration at least) are rendered in software, and required heavy use of SSE intrinsics to run at reasonable framerates. This was a super fun educational experience and design challenge. I’d like to eventually write a version of the renderer using OpenGL or Vulkan, which would run much faster, but that wasn’t my educational goal at the time. Hopefully I’ll get around to it some day.
-
Another fun aspect of development was getting the music to sync with graphical elements. I made the sound effects and music as well.
-
I’ve never reached the ending of the game (it does have one). It gets ridiculously difficult pretty quickly. If anyone manages to finish it, I’d love to hear about it.