Nixing the cloner for a time machine


I used to think to myself, "gosh, if only I had a cloning machine I'd make an army of myself so I could work on design, code, sounds, UI, etc. all at once! I could finish the game in a few months! And all of us clones would have the constant flow from others to keep us motivated to move forward with all the cool stuff coming together!

But now I kinda just wish I had a time machine, so i could go back in time, kidnap myself, and have that one still motivated and ready to kick ass version of me finish this last bit of work now that everything else has been kinda sorted over these long years.

I'd also use that time machine to go back in time smack myself on the back of the head for pushing forward so recklessly with code and structure things differently in my item, spawn, and various other systems. I've learned so many things the hard way. So many studios and dev teams focus so damned much on practices and standards and optimizations for code in this self absorbed, technical dick measuring contest of neck beards who have never produced a system worth a damn, with little consideration for fun or the big picture or why structuring code in a certain way allows for iteration, expandability and even ease of gutting said code. But I digress...

When you're in the moment and you're excited to be making a cool new thing, it's easy to get caught up in the moment and just quickly throw something in, "I'll clean this up later". And you bring into existance this crazy little being of code and it runs amok and it grows like a cancer and reproduces like rabbits and before you know it your game is full of tribbles, spawned of your own recklessness and hubris.

NEVER

FUCKING

PUT

OFF

MAKING

CODE

SANE

(especially when you're make core complex systems)

15 seconds here and there to not let things get out of control will save your project months in the future.

If only I had really defined what an upgrade was, and compartmentalized that thing somewhere, and created sane systems that make sense naturally for how you grab those upgrades and apply them to items and then apply them to a player.

If you don't code, this whole concept is a very foreign thing, imagine one day you were doing dishes and realized you needed soap, so you conjured this mechanism in the ceiling that would drop soap every 5 seconds, and just to the right of the sink is a heating machine to instantly dry the dishes. Then you think, hey, I can use this heating machine to also cook food! And you just go on this bizzare spree of creating anything anywhere you want with no limits because code can do anything! And you can put anything anywhere! This is so easy! Then you start cooking more advanced dishes with more things, and you spawn more hellish devices and animals and before you know it soap is leaking everywhere, into the food, and animals are choking and dying and their dead bodies are smelling everything up and preventing you from thinking of dishes, as now the dishes are piling up, and you want to get rid of that foul smell, but you can't because u need the soap which is killing the livestock to clean the dishes and now you just have one massive, terrible mess of things scattered about that in one small moment made your life a tad bit convenient. Now for the remainder of the project you will have that foul smell of dead bodies distracting you from moving forward.

Ok, I don't know what that was, but I should have compartmentalized the systems into logical chunks that simply make sense. It makes iterating on them easier, it makes removing them easier if you ever have to. I could go on and on trying to describe this, and I have done so in prior posts, but I tend to have to learn things the hard way... over and over and over again. 

When you're working in a game engine sometimes we find a "clever" way to do something, or a quick work around, then we name a function or a variable something that changes, or doesn't make sense to begin with, and over time our all these shortcuts and "clever" little workarounds all add up to create a bizzare machine that has no obvious or discernable form or process.

It really only takes a few extra moments to really think about where we put our code, about constraining logical chunks to specific areas, and mapping out the logic in a way that makes tangible sense in our brains before we really dive in and make these systems work so that others can come in and work on it, we can refactor it and make it fun, we can easily fix bugs. But time and time again I am finding that I am retarded.


Anyhow, I think there is an above 0% chance that I will get off my lazy ass and get some work done tommorow. More than anything it's my shitty code and shitty feeling of gutting tons of months of work that is stopping me from molding this now cold metal. The thrill is gone, so many times I've finishd what a thought was a cool little demo only to hit another wall, oh well. Little fear of failure, little fear of success, I don't even know any more.

None of this blathering matters, all that matters is that I attempt to finish this forsaken thing and hope it's not dog shit.

Edit: I've said it before, content is a prison, stop making so much crap before you're positive it's actually fun. I've created so much excess junk I thought was going to be fun that I will now have to painfully remove.

Quick affirmation. There's a lot of shit code in the other systems, and I don't have to think about it any more. The systems work, perfection is the enemy of progress. Be too careful and you move too slow and you lose the passion, too fast and everything falls apart, or maybe it doesn't? Gamedev is a crapshoot like anything else in life, u just gotta go at it hard and hope for the best. Some things will work out, some things won't, just keep smashing your head against the keyboard and hope the stars align.

Get SeaCrit

Leave a comment

Log in with itch.io to leave a comment.