As much as I hate to admit it, I’ve long suffered from Not Built Here Syndrome. In my defense, it hasn’t been out of any delusions that I could do better, but more of a desire to learn the underlying mechanics of functionality I need to implement. As a self-taught programmer, that sort of attitude was great when I was just starting out. I built a 2D game engine on top of DirectDraw several years ago and made several clones from it. I was so proud of myself then. Now, years later, what started out as a good thing has developed into a bad habit that extends well beyond learning.
When you find yourself implementing something for the umpteenth time, even though there are third-party libraries out there that do the same thing, but with much more testing, bug-fixing and overall development behind them, it’s time to take a few steps back and reexamine your priorities. It’s one thing to code something up for the learning experience, but once you understand the principles of it, you really shouldn’t have to do it again unless existing solutions don’t meet your requirements (or, of course, unless there are no existing solutions).
So the NBH syndrome is one of the detrimental programming afflictions I’m trying to overcome. Toward that end, I’ve spent much of the last day getting up close and personal with some existing technologies that fit well within my indie budget. These are all things I’ve looked at, and in some cases followed the development of, in the past, but never actually used. Now that I’m testing them out, I’m mightily impressed by some of them.
My ultimate goal is to make the best game I can from the concept I am developing. In the past, I wanted to do it all from scratch (in C even!). The urgency I’m feeling now from wanting to get the thing done after so much time fooling around with it has gone a long way in pushing me to try out all of this middleware. So far, I’m wondering why the hell I didn’t do it before. On the one hand, I could say that this stuff would have saved me a great deal of time had I gone with it in the beginning (though some of it actually didn’t exist then). On the other, I can say it will save me a great deal of time going forward.
I’m trying to stick to a policy of keeping these posts fairly abstract until I’ve actually got something solid to show, so no details on what I’m evaluating. I’m having a blast playing with the stuff, though!
Post a Comment