Mar 20, 2007 11:02
I don't know if I've mentioned it before, but I've been a lead programmer at Obsidian for some months now, maintaining the ongoing support for NWN2 that we released last year. Sometimes I found myself wondering why it was I couldn't seem to get a grasp of every part of the NWN2 engine. Being unable to comprehend every aspect of the engine has been mildly frustrating because it's not what I'm used to.
Back when I was working on ProtoMUCK, especially near the end of things, I knew most of that code inside and out. I could usually identify roughly what function a bug would be in just by having someone describe the bug, and using either basic debugging tools or no tools at all, I could track it down and fix it.
I realized this morning it has a lot to do with the sheer scope of the two different projects.
ProtoMUCK has 156 files of source code, many of which are about 1500 lines or less, and the longest weighing in around 6000 lines of code.
NWN2 has 17,500 files of source code, many weighing in around 10,000 lines of code and some files reaching 40,000 lines of code, and that's not counting the dozens of .dlls also included as middleware in the project. No wonder I can't get a grasp on everything in this project.
Flipping through the ProtoMUCK source this morning while trying to figure out why some behaviors I was testing weren't matching up with what I expected, I couldn't help but miss working on smaller projects like that. With NWN2, it's hard for me to evaluate the feasibility of a new feature without going around and asking several different programmers their opinions of it based on whatever sub-section of the engine they happen to be knowledgeable in. I miss being able to just drop stuff into Proto in an evening's time after having a flash of inspiration strike that same afternoon. I think I need a small-scale side project to tinker on on the side to balance against the headaches of working on such a behemoth project.
-Akari