Design a site like this with
Get started

Robust systems

Making Super Space Galaxy has forced me to get better at programming with Clickteam Fusion. The biggest lynchpin of my new programming strategy is robust systems that give me the results I want from simple input. Looking back, it turns out I’ve described the colouring system, galaxy map generation and the way the Doodads are placed onto the map as ‘robust’ systems. Well, they all are!

In the last game I made, Super Space Slayer 2, the weapons were all uniquely programmed, and I regret doing things this way. It limited how many weapons I could make. If I wanted to make a change to the weapons, I had to go through and change all of them.

A flexible system would have let me define many more weapons with less work overall. In fact, I found myself thinking of new weapons as I made the game that I didn’t have time to implement.

Learning from this, I gave Super Space Galaxy a thorough weapon-defining system right from the first weapon, the Pea Shooter. Sometimes I have to add to the system to get the result I want, but often an interesting new weapon can be defined into existence quite easily. Doing this has let me have far more weapons, with 32 main weapons as of this blog post. If I programmed that many individually, it’d be a nightmare to update them with some across-the-board change, but thanks to my weapon system I know I can just tweak the rules and it’ll be applied to everything at once.

I see it as setting up a machine that lets you simply ask the computer for what you want in human-readable terms. For instance, I have a system that equips a given main weapon on your ship. The input is simple; all you have to do is give it the number of the weapon from 1 to 44. The output is that the relevant weapon is equipped onto your ship, with all the settings that entails. If something goes wrong, I know that the issue is somewhere in my ‘Switch weapon’ routine and isn’t somewhere else. When I do have to work hard to fix a bug, it’s often because I’ve failed to follow this structure!

To be far-sighted like this, it helps to have done it before. I really think the programming lessons I learned making Super Space Slayer 2 made Super Space Galaxy possible. Often the second time you do something is much better than the first because you know what problems will emerge in advance. The best you can hope for is that you don’t make the same mistake twice.

As much as this is a programming philosophy, I think it will have applications outside of it too. When you want something new achieved, don’t just do what’s expedient, do what’ll get you results consistently over the long-term. Of course, you might have to suffer for a while to find out what needs a robust system in the first place!

Thanks for reading,

Kenneth Dunlop


Published by Kenneth Dunlop

Earth's Mightiest Game Designer. Making Super Space Galaxy. Previously made Super Space Slayer 2.

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 )

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

%d bloggers like this: