Space Controller GMTK Submission
My submission for the Game Maker's Toolkit 2020 Game Jam is done! It was a fun project, but I managed to keep things surprisingly under control :)
In this devlog I'm going to discuss a post mortem of my game jam experience, starting with my intial ideation once the theme was released, followed by the first steps I took to begin development, and wrap up with how I focused on a final product that I'd be happy submitting. I may even throw in some of my super special hacks that ended up looking very cool.
Ideation
This past week I had been toying with an idea around cards and fate in my head, but beyond an overarching game feeling and theme there wasn't much of a place to take that. When the game jam theme of "Out of Control" was announced, I didn't have any sudden thoughts besides that I wanted indirect control from the player to obtain the objective. My dad and I discussed some jokes on the theme where the controls for a space ship were "outside" the ship interior, which got me thinking about Asteroids and the drifty controls those ships had. Finally, I realized that my experience developing control systems for robotics could be a strength, because I've had plenty of experience with autonomous robots spinning wildly out of control. The idea for the automatic miners was born, and I started development.
Development
I started with a ship and put it in control of the player. I needed to make sure ships moved right and looked good, since that's what the game revolved around. At first I had a car based system and friction that really went against the classic Asteroids style controls and came up as a problem point during testing. I removed that behavoir to acheive free spinning ships that never stop moving, and felt like the game was a little out of control - just right for this jam. Capping the maximum speed of the ships made things managable for the player still. Next, I needed a goal, and what better goal than points? I made the default game more passive like Cookie Clicker, with no chance for failure. This was important to me because tuning control systems is hard, and the game would not be easy under a time limit or finite resources. There needs to be a way to get used to the controls, physics, and techniques without penalty. For a time you got points by pressing a button on top of the planets, but that was tedious and took up controls so I made it automatic.
The next major step was to enable the automatic miners to travel to the zones. I added a list for all of the planets the player wants the miners to go to, and the player can add or remove zones from that list. Miners will then select their next target from the list in order, and travel around the circuit. Initially, I used a binary control system where the miners would turn until facing the target, and throttle until nearby, but I soon got to the point where I needed to implement an actual Proportional Controller. I started with just basing the throttle off of the distance to the target in front of the miner and turning based on the distance to the target perpendicular to the miner, but miners would overshoot the target or get stuck orbiting them. I decided to apply creativity, and I augmented my control law using the relative velocity of the miners to the target - I didn't use a standard derivative term, although I could have. By reducing the throttle based on how fast the miner approaches towards the target, and turning to stop the orbiting (tangential) velocity, these terms provided a little extra control.
Feeling confident it is possible to actually progress with the game, I then made an upgrade system where you buy new ships and improve their capabilities. At first, maximum velocity, thrust, and turning were all ship upgrades, but by never increasing maximum velocity your ships could easily navigate from waypoint to waypoint. I needed to keep a sense of "Out of Control" so I made improving your ships responsiveness also increase their maximum speeds, requiring you to retune your ship as you make them go faster and faster.
Final touches
Saturday night I was nearing completion of these features that were core to how player's experience the out of control nature of tuning a control system, but there were a bunch of touches left that make a game feel like a game. First, I added some background effects by adding some different colored stars to the darkness of space. A simple addition with no game logic, but a very meaningful one. I also knew that I wanted sound effects - ship destruction and point collecting sounds went in (thruster sounds were cut due to conflicting with the music). The music I made was a little moodier than I think this game warrants, but I'm still happy with how it sounds. Better to have something sound good, but intense than something that sounds bad!
Interestingly, the particles around the planets are not actual particles! They have no physics and are basically just a progress bar spread equally around the outside of the planet, which makes adding and removing them easy.
The last major thing I worked on was the title screen and tutorial. The tutorial is verbose, which unfortunately coupled with the strange control scheme and inputs makes the game less accessible than I would like. I added two challenging arcade modes, the first being a timed version and the second being a finite number of ship resources. And I made the title screen look cool by adding a miner just doing it's thing - you could watch the title and be very satisfied.
Thanks for reading!
All in all, I'm very happy with how this project turned out. I likely spent a little under 24 hours total working on the game, which fits well within the 48 hour jam window. I wouldn't have been able to do this if I hadn't worked with Pico 8/Lua earlier in the summer, and I leveraged my math and robotics education well to implement the game mechanics. It was a lot of fun, and I hope you enjoy the finished product.
I've attached the Pico8 cartridge for those who want to download and tinker with the system yourself. Warning! It's messy in there.
Files
Get Space Controller
Space Controller
My project for the Game Maker's Toolkit Game Jam.
Status | Released |
Author | Zulutwo |
Genre | Simulation |
Tags | PICO-8 |
Languages | English |
Leave a comment
Log in with itch.io to leave a comment.