My second foray into Game Development was an Asteroids clone called Space Rock Cleanup created in Game Maker: Studio 1.4. It features a rough UI, bad assets (both artistic and audible) created by myself, and simple gameplay (but, hey, that was kind of the point) that can be boiled down to don't touch rocks, shoot rocks. It came out to reviews of 'kinda addicting' from the small handful of friends I got to download and play it.
As I mentioned Space Rock Cleanup's inspiration is a is a 1979 Atari game called Asteroids. You play as a capital 'A' and shoot dots at outlines of asteroids to survive and score points and things have only changed slightly when it come to SRC. When you launch SRC you are brought to a title screen with not a lot of fan fare. Pushing the space bar puts the game into game mode and you are presented with your blinking ship in the vastness of a 2000 by 2000 pixel room, I mean the vastness of space. In your top left corner you see a semitransparent black box with a pair of globes floating around. This is your minimap and the globes are the Space Rocks you're tasked with cleaning up. Along the bottom of the screen is your status bar which shows your Score, Cooldown, Level, and Lives. At this point you 'place' your ship with the mouse and begin to play, flying around with WASD and shooting with the space bar. So most people would fly toward a blip on the minimap and would be greeted by a rock. Destroying this rock with the laser grants you 100 points and spawns four smaller rocks, each of these damaged rocks spawns two yet smaller rocks. Destroying these smaller rocks is permanent and the key to progressing to the next level in the infinite climb of scores and levels... there is no 'beating' this game, only getting the highest score. So get people to play and beat their scores.
There isn't really a lot to get excited about on the technical side of SRC. I made it in GameMaker: Studio 1.4, all of the art assets were drawn in paint.net, and sound effects were put together using bfxr.
The three objects within the game that did all the heavy lifting are the Game Manager, Player, and "rock family" objects.
The Game Manager watched over everything and has some 'game state' logic inside of it to control the GUI and calculate the high score for the title screen. I only used a single 'room' for this game but the game manager would have been the object to do all of the saving/loading of rooms. The game manager is also in charge of shutting the game down.
The Player processes input from the user when the game is in the Play state and uses that input to drive the space ship. 'W' and 'S' adds or subtracts speed in the direction that the ship is facing, with 'S' adding sufficient 'negative' speed for the ship to go in reverse. 'A' and 'D' rotate the ship left and right respectively, and finally the space bar shoots a laser directly ahead. The Cooldown values are driven by the Player using a counter and Alarms, which are a built-in Event in GM:S that let us run code at a specific point in time in the future.
The Rocks are spawned at a random edge of the screen by the Game Manager at the beginning of each new level, and by larger Rocks turning into smaller Rocks, and pick a random speed and direction and go that way. They each have a hit point value assigned which is reduced when the Rocks detect that they are touched by a Laser object when the number of hit points the Rock 'explodes' and either disappears for good or spawns smaller Rocks (depending on its level).
I did not do any real marketing for this game because I just wanted to 'finish' something. I made a post on facebook and told some friends I know from online forums to play it. I more or less ignored this component for SRC. Opting just to focus on the game. Looking at the Analytics tab on the itch.io page the game has been downloaded nearly twenty times (at least 5 of which were likely me).
This will definitely be an area to look to improve as I release games in the future. I actually think this part could be fun but I haven't dealt with it yet so I could be extremely wrong.
There are many improvements to be made in the future of the SRC franchise. The obvious areas for improvement is art assets and the lack of music. I am not very good at doing either of those things so those improvements would have to come from some one(s) else. Secondly, there could be more variety in the game. The only obstacle in this game are the Rocks that float in a single direction very slowly and turn into smaller Rocks before disappearing. There is definitely room in space for little enemies to fly through and try to do damage to you, bigger enemies that hunt you down, the possibility for more action is pretty much endless for the future. The interface also needs work... the Cooldown bar doesn't have a clear end point so you just have to get used to the number of shots that you can fire in a row. I brought it up time and again while I was developing and I still didn't do it: parallax scrolling! I should have added another 'star dust' background so that parallax scrolling could be implemented to make the objects look like they are really moving. An in game manual or tutorial is something that could be included in a project like this. It's a simple enough game and I walked through the controls on the itch.io page but I think it's a good thing to have some documentation in the game itself.
I could go on for hours in this section... so I wont.
Thanks for reading about (and hopefully playing) Space Rock Cleanup. I had a lot of fun making it originally and going back over it for this article. It's not the most polished or feature rich piece of software out on the web but right now... it's mine and I'm happy with it and I'm looking forward to making something new.