Keep It Simple



No singular system is too complex in SeaCrit, but when you have several mechanics overlaying each other and each of those systems interact in a multitude of ways, it can quickly get out of control. The random bug that hit yesterday was a bit of a wake up call: parts of my combat system are overly complex and I need to get in there and simply things while making it clear through debugs what is causing fish to do things.

To that end today i'm going to gut the "hesitation" system. This Hesitation system was meant to give enemies that mini stun effect when you hit an enemy in an action game that allows for combos. It's not fun when you're whaling on an enemy, and they're able to just attack you back. The entire point of the engagement is that you get the first hit in, which stunlocks the enemy which allows you to get ahead, it's kind of the core mechanic of any fighting game, that first hit is the opening that declares a winner allowing them to execute a combo chain. But it can't last forever, otherwise you would just dash in and finish off an enemy with no trouble at all.

The problem i'm experiencing is I created 2 different systems, hesitation and stun, which essentially do the same thing, but with little nuances. A stunned enemy will not move at all, and turn yellow, a hesitating enemy will still be able to move. Each system deals with too much stuns or hesitations in slightly different ways, and it's just so much fluff and unique systems for essentially the same effect.

So I thought about it for a minute and the answer seems so clear now, we'll add a new mechanic called a mini stun where we play a unique particle system to show this affect has triggered on an enemy, and instead of removing enemy movement when stunned, we will make it so the higher the stun value, the more the fish is slowed, effectly making mini stuns the same as before, but without endless tertiary systems all doing their own unique thing and muddying the combat.

This will make these combat mechanics more dense, and mean that when I improve and polish this system, it will globally improve both mechanics (which should have been just 1 from the start). It also means less edge cases and just an overall better game.

The more I do this gamedev stuff, the more I see the importance of keeping everything very simple, of creating mechanics that are organic and simple, but still deep in their play.

Oh, almost forgot. I'm also going to be gutting tertiary mechanisms that allow for fish to become more and more immune to stuns and the now gutted hesitations. There was just so much bloat here, and I found myself hating these mechanics, I never knew why stuns were lasting long sometimes and not long other times. As developers we have this reluctance to want to undo what we did. It's a bit sunk cost fallacy combined with this sense of but it works! I spent all that time on it and it finally came together and there are no bugs! We see our game as this laundry list of features that work and don't have bugs, and removing a feature means your game isn't as good right? You're that much further away from having a completed game!

"Your game is not done when it has everything it needs in it, it's done when you've removed everything it doesn't need."

This statement is true on so many layers it's like an onion. The expanded features and edge cases are a parasite that will endlessly suck the life out of your project. They will make better features less robust, they will cause you to not want to work on your game, they will create endless edge cases that will haunt you forever, they will muddy the conveyance of gameplay mechanics and make your game not as fun as it could have been.

I find myself obsessing about the end game far too early. "Oh I can't let stuns affect all fish that will make the game too easy! What if a player can stunlock a boss fish forever!" And then I go off and i create tertiary code within these core systems that are just as complex as the core system and the variables balloon and the functions balloon, and everything becomes muddy and then one day you go to work on the game and you think to yourself... Ugh, I want to work on combat systems but that damned hesitation system doesn't make any friggin sense and nothing in combat goes how I expect it to.

Well, we learn a little more every day. There are much more exciting things  I want to get to, but this has been driving me nuts and I just want it cleaned up and out of the way. I could blather for pages about the other things that need doing, the game is coming together fast, I feel a bit of a quickening as I get better at this stuff and learn hard lessons about what to do and what not to do, what's fun, what's not fun.

Health has been rocky as of late. I'm going to try fasting and see if that helps me feel better, hibernated for 9 hours today and feel a bit better than yesterday, so that's good. Good enough to get some work done and that's what matters, hope it holds up.

Time to get some light exercise and get to devin'. One inch at a time, we're getting there.

Get SeaCrit

Leave a comment

Log in with itch.io to leave a comment.