Creating Modular Powerup Systems

Modular development is a huge part of software design. Updates, Downloadable Content, Expansions, Sequels, or just continued development of a project will all see the benefit and use of modular systems.

These systems are “Modular” because they are made with the intent to be added onto or changed throughout development in order to fit the needs of the various parts of the project. You have probably seen or used concepts like this when implementing variables that utilize the “[SerializeField]” attribute. These variables allow the other developers to easily and personally customize things like movement speed or firing rate within the inspector and in accordance with any changes or adjustments that they found needed to be implemented.

So why would anyone want to make a powerup system that is modifiable? Well, that’s easy. What if the developers wanted to add in another powerup later on? Or maybe they find that the powerups you are currently using should be changed or replaced with something that works better for that game? Either way, you will need to have something set up to easily add or remove parts of your system on the fly.

So how do you do this?

Another option is to use a “Switch” statement.

But I’ll go into these in more detail in the next article. Thanks for reading, and stay tuned for more content daily!

Hi, my name is Adam Reed and I am a software engineer specializing in Unity and C# development. Feel free to scroll through and check out some of my work!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store