Maybe a new beginning?
Well, this has been quite the journey — even to the point of writing this up now, it’s still been a tough experience.
Guess this is where we’ll start, from the beginning, and hopefully move on to better ends…
This devlog is going to be a look back through the notes I saved while working on Patch Odyssey.
If anything, it contains helpful notes and ideas for what game development is, what it isn’t, and mostly what “not-to-dos” to be honest. Either way, enough with dreary dark clouds, here’s the round-ups: 💡
So, what does this even mean? Especially the “PatchMethod” bit?
Well, that’s the thing with this Final Major Project. I leaned in to my strengths, primarily the ones honed by years of programming experience. So a lot of the work that’s gone into the project is mostly </code-speak>.
Plus, it was also a bit of intuition that a Games Design course should include its students designing games in it. Of course, this project was making a game. The difference between the two can sometimes be painful.
Anyhow, it says what it does on the tin. It makes functions run *faster by “inlining” them (whatever that means for now…) so that function calls don’t have to slowly but inevitably lag your applications. Lots of caveats here, but as a C++ programmer familiar with its own “inline”, I figured the relationship to C# was relatively one-to-one.
Next task!
Another case of premature optimization (which is otherwise fine for learning), where I begin to fall into the trap of over-estimating my capabilities with fairly unfamiliar tools to me and invest way to much time in the challenge of overcoming it.
In this case, it was C#’s features and how it contrasted much of what I had learned in other programming languages. For scripting Patch Odyssey in this newer language, there was much to learn, and unlearn.
Specifically, this skips checking overloads to “==” to make null comparisons faster.
Apparently “saves on typing ‘#nullable enable annotations’ in every script”?
Oh, you poor thing. Here you thought you were outsmarting the effort you dug yourself into by discovering more yet unknown and learnable features?
Welp, like it implies, I found the “more customizations” button and went for that instead of… y’know, developing the Final Major Project? Sheesh, let’s hope the next one is gamedev-related?
Seems I’m a sucker, here (it’s on the previous version now). A sucker for learning, that’s for sure, but still sucks nonetheless.
Let’s skip forward past the next one, then. 💨👟
Ah, here we go.
As much as I’ll be the first to bash on myself looking back in hindsight, I’m still happy with how much of a developing experience it was (in both senses of as a person and as a coder).
It’s because stuff like this sticks around. Years (even decades) of honing one’s craft to be as truly expressive as they want to be, to slowly but surely acquire the mastery need to… Where were we, again? Sorry, must’ve been taken away by the point.
Beat for beat though, I liked completing this mini-task for my Final Major Project because it was a healthy challenge of my pre-existing skills and it’s something I can take away as a thing one would consider smart. Effective for polishing a well-made assignment, no. but well done all the same.
In this case, memory is re-used instead of constantly jumped around, is all.
It was at this point the language was becoming second-hand to me, and maybe with some outside perspective on my progress, it would have been easier to stare away from this rabbit hole.
But down to Wonderland we go! 🐇
Little tid-bits like this, coupled with other unrelated responsibilities were the straw that broke the camel’s back here. Finding out new ways to go fast, without actually going anyway for myself — *sigh…
Indeed. Niche technical edge-case makes things go vrroom much faster…
I. AM. SPEED.
Not to knack on people’s pension for improving performance with their software, but there are clear limits, and this post-mortem in disguise may yet reveal that — or maybe I should better learn how to keep to a schedule 😂
Alright.
Now you have an idea of what my work on Patch Odyssey was truly like, and what the rest of this devlog might look like with that in mind.
Onto the next proof of evidence, my fellow logicians: 🪄