Gauntlet Project
So the classic Gauntlet (and N64 version) was one of my favorite games ever. Having at that point, spent the last several years almost exclusively coding in Javascript, I decided that it was time to refresh my C++ skills and what better way to do that then to write a multiplayer Gauntlet server?
Well, while I was testing the server, I realized that text only response data wasn’t really going to cut it, so I whipped up a hacky little client prototype in order to get things such as latency compensation and movement smoothing figured out. Great. So now I can move some characters around the screen on a few browser windows. Awesome.
Collision detection. So I went pretty cheap with this. Really no objects will be ever moving all that rapidly, so one basic point-in-box check on both the client and server later, bam! Collision works and with the prior interpolation work I did, it actually worked way better than I expected.
A more complicated game world. Who wants to run around in a 2 tone box all day? No I. The next thing to do was creating a map system. Cool, now things are starting to come together. One implementation for the client, one for the server and the wizard and archer have an interesting place to explore.
Will I ever finish the project?? Ok so everything prior to this was setup for this one point. A game server is a pretty big undertaking, even for a game as simple as Gauntlet, but what good is a server without a client? Not much...but unless you are some known rock star in the open source world or you have published a few games with at least mild popularity, people probably don’t care about you or your projects....so guess what? You get to do everything yourself.
Having a side project is, well, vital for an software engineer. It’s your resume of resume’s. It’s your mark of passion as a developer. It’s your hobby, the thing you do when you aren’t grinding away at the office all day. However, often it almost becomes a second job. You find yourself thinking “I need to do x”, “I have to make time to solve y” instead of “I can’t wait to write x feature!”.
Some may argue that a “true” programmer will never think of coding as work. Ok, well in their world, you know the same one where unicorns roam freely, maybe that’s the way things should be, but in real life, anyone who isn’t a complete neckbeard (and my beard does tend to creep down my neck) there are a lot of things to do and think about, and sometimes what starts off as a fun side project, can become another burden...something you feel guilty for not having time to work on, so you try and adjust your life to make more time for it...
Ok so maybe not everyone has ran into this or thinks this way. I for one hate starting a project and not finishing it..but really the underlying issue here is that I chose a project without fully thinking about how much effort would be needed to complete it and I feel that this is the same issue that burdens most of us, even those creating startup companies. Far too often we have an idea which seems reasonably simple at first, only to later realize “holy hell, this thing is a beast”.
The moral of the story? Unless you are locked away in your parents basement for a year and your only escape is through code, you should probably spend a bit more time thinking a project through before committing yourself to it, even if it is just a “fun side project”. Now this isn’t to say you shouldn’t challenge yourself, but be realistic with your goals and decisions :D









