Been there, scratched that: Just a quick recap of how I made Cisquangle
I recently announced the release of Cisquangle, an old-school, fast-paced polygon-style Shoot 'em Up that gives you the ability to instantly change your ships shape and shooting mechanics to defeat increasingly difficult enemies. Since I enjoy reading background stories about how games were made, I thought I would share how Cisquangle came about.
Initial idea
Cisquangle is my second Godot game. I started development around two months ago, pretty much immediately after releasing my first game Lost Companion. At the beginning, the only thing I was sure about was that I wanted to make a polygon-styled game that gives the player the ability to change the "main characters" shape instantly on the press of a button. I played around with different ideas, all of which I abandoned due to a lack of follow-up ideas about how to make the game actually fun. A few days later I settled with an horizontal 2D Shoot 'em up, mainly because I thought it would be fun to have a spinning triangle that can shoot projectiles from all its corners as a playable character.
Triangular pain
Coding the triangle turned out to be much more difficult than I expected it to be. I was able to make it shoot, I was able to make it spin and I was able to make it move – but it took me quite some time to make all three functions work in unison. In hindsight (after getting it done and reusing part of the code for a triangular enemy) I would argue that it's actually not hard at all, at least with a basic understanding of Godot's polygon node and vector mathematics (which I didn't have at the time :D). The final result looked like this:
Field test
I added some enemies to test the gameplay capabilities of my triangle. Unfortunately, it wasn't fun at all. With a low fire rate I missed every enemy in sight, with a high fire rate I hit everything too easily. There was a sweet spot somewhere in the middle, but that only worked with slow moving enemies. A bit disappointed (but also happy about what I learned along the way), I scrapped the spinning part and adjusted the projectiles directions. Now I actually think its much more fun and useful, because it's the only shape that can accurately fire projectiles backwards.
Out of control
The rest of the development was less complicated. I added the square and circular shape with their respective shooting mechanics, created similar abilities for enemies and bosses and added backgrounds, music and sound effects. After releasing the demo, I found out that the way I implemented the input system did not work as expected: When I attached a gamepad to my laptop, the player moved much faster than intended and ended up all over the place, even when using the keyboard. The problem was that my input map had only one set of directional actions for all types of input events (key press, button press and thumbstick movement) and my code only considered the input axis and not the input strength. My solution was to create a second input system for the gamepad's thumbsticks, so that one system can't influence the other.
Early morning grenade
When I had everything in place, I started game testing, balancing and bug fixing. I was quite happy with how Cisquangle had turned out, but I always felt that a special attack was missing – some sort of last resort that helps the player when it gets a bit too hectic. I felt kind of reluctant to implement it because I suspected it to be a bit of a hassle in terms of overall game integration. One night I couldn't sleep, so I got up at 3 a.m. and decided to give it a try. Three hours later I had a working grenade and went back to bed for a quick nap before work. When I came back to the game later that day, I was happy to see that the grenade was still exploding as intended and I still considered it to be a good idea (both of which are not always the case ...). I fixed some minor bugs and added some explosion effects to the bosses to finish the grenade. It doesn't happen very often, so its very nice to see when something turns out to be easier than expected.
Final thoughts
Apart from the initial triangle disaster, development of Cisquangle was a lot of fun! I learned how to use some new Godot nodes that I haven't used before (Particles2D, Polygon2D, HBoxContainer and more), improved my skills with already familiar ones and implemented a working pause menu for the first time. Overall, I am very pleased how the game turned out and that I managed to complete it on schedule. I hope you enjoy playing it as much as I enjoyed making it. Let me know what you think!
Get Cisquangle
Cisquangle
A fast-paced polygon-style Shoot 'em Up with shape-shifting abilities.
Status | In development |
Author | Shelter Games |
Genre | Shooter, Action |
Tags | Low-poly, Sci-fi, Shoot 'Em Up, Short, Singleplayer |
Leave a comment
Log in with itch.io to leave a comment.