Michael Pidde

Simplifying for Clarity

I've taken some time lately (after a hiatus) to detour into a small program that requires the bare minimum functionality in order to work through some mechanic problems in Boreal Darkness. It felt like I was wading through too much unrelated code trying to debug certain problems. The actual problem and pathway towards a solution were getting obscured by other pieces of game code that weren't inherently related. Some of this is due to poor design choices (you don't know what you don't know until you find out the hard way). Some of it was due just to negligence; it's sometimes easier to keep momentum on a large scale project by making "todo" items when you get stuck and circling back around later to address them when you're in a better frame of mind. Then you can keep plowing forward on the things that you already have a grasp of how to build/fix/refactor. The unfortunate reality of this is that instead of retaining the semblance of clarity that you already had around the problem domain, you're quite possibly losing all of that context in the down time, and the process of ramping back up can be worse feeling than having fought through the problem in the first place. In a similar vein, if you're not struggling through problems to find elegant solutions (or just damn ugly solutions that still compile and lead to a shippable product), how much are you learning? It's fallacious to think that you're not learning if you're not struggling, but how much more can you learn through struggle? It's often the difference between theory and application. They both have their place, but the former tends to be trumped by the latter in real life.

Back to the point, I created a bare-bones program to work out the kinks in player movement on a grid. I still have some more work to put in (you can see the initial jerkiness in movement in the gif), but I've now figured out a core mechanic for this variety of game and can move forward adding more clutter on top of this working prototype.

Code Stats

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C++                              1             46             12            342
DOS Batch                        2              3              0             19
-------------------------------------------------------------------------------
SUM:                             3             49             12            361
-------------------------------------------------------------------------------