Or when is “too much” too much?

In my head, I had picture guns circling the player, bullets firing from him. Each gun would be unique, and it would look cool. However, I also wanted you to have many guns shooting at once. You’re a robot after all, and you aren’t limited to two guns. When I added a second gun, it looked cool. To hand cannons each firing at its own target was pretty awesome. But when I added a third gun, it started looking messy. It started looking confusing. And I wanted you to carry even more weapons.

It occurred to me that as the player, you wouldn’t be paying attention to your guns. Rather, you’d be paying attention to the bullets and enemies around you. This meant that all those guns I was showing on screen were only useful for distracting you. Instead of having a clear understanding of where you were, there were these big guns spinning around you.

When I removed the visual representation of the guns, things became much easier to read on the screen. It was helped when I also gave the enemies their own unique bullets. Your bullets were blue, so you could see them, but they weren’t asking for your attention. The enemy’s bullets were brighter and they seemed larger. Now, instead of having too much going on, I could focus more on dodging and attacking.

Removing Assets and Work

The result of this is I won’t use gun assets in the game, it won’t fill up the scene, and as a result, I’ll probably not need to do as much work creating art for every gun. Instead, I can invest that time into creating the bullets you are firing, and coming up with more of them.

The real lesson to take away from this is to make sure that if something is on screen, it has to serve a purpose. The guns served no real purpose. You aren’t aiming your weapons, so you don’t need them to indicate where you are pointing. You are using all your weapons all the time, so you don’t need to see what you are holding at the moment. The only reason I added them was because you shoot from a gun, so obviously you’d have a gun. But we don’t need it in the game on screen.

So, I’m going to have to take a pass at everything I create and ask myself, what does this serve? And does it serve multiple purposes? Is it providing value? If it doesn’t, we should be able to remove it.

Enemy Colors

During this time, it also occurred to me that I should attend to the colors of the enemy. The squid monsters I have stand out, but the robots are blue. The same color as you. While I don’t necessarily think I need to change the robot’s color at this time, it made me think about camouflage. Enemies that are colored in certain ways can be hidden in plain sight. They don’t stand out. The key here is to know that you are doing that. And the enemies should still be easily distinguishable from a distance. The difference is that you aren’t drawing your attention to them. So while I’m not going to change anything now, as I design more enemies, I’ll do so with color in mind.

What does that mean? Visibility becomes an attribute. If an enemy has lots of strengths, making them easily seen is one weakness. If an enemy is relatively weak, with low health, and relies on sneaking up on you to do melee damage, making them less noticeable is one of their strengths. Again, the idea here isn’t to make the enemy invisible, only not to go out of my way to draw attention to them.

For people with color blindness, I’ll have to pay attention to what colors I pick, or at least handle this in color-blind modes, but that’s a long way off.

Playing with Shaders

I spent some time playing with shaders and built a simple app that lets me mess around with shaders. It was fun and reminded me it’s easy to build simple things like this in Godot. It helps me explore the different systems. The lesson here is to not be afraid to create new projects for the purpose of just exploring a certain aspect of the engine.

I released the project on GitHub. There are no expectations of anything. It’s merely there for testing purposes. However, you are free to explore and use it as you see fit.