"And now for something... completely different..." - Monty Python
I came to a conclusion tonight, and it's a conclusion I don't necessarily like, but a conclusion nonetheless. I'm going to have to accept the fact that I don't have time to write for a while.
For the past several articles, I've been pushing the COTC deadline by an extreme margin. The articles may not take long for me to write (I average maybe an hour or two on each one, three or four tops if you include the time to write the code as well), but even though it's a small amount of time, it's time that I'm unable to set aside until right at the last second, and these days it's getting harder and harder for me even to find that last second (if you guys haven't read COTC's neighbor column, "Behind the Curtain" by Matt Gilbert, do so... when he talks about time disappearing en masse, he's not kidding. I haven't worked less than 80 hours a week in a few months now, and the people I care about outside of work barely know I'm alive. It's the price you pay in this business).
So, the next article after this one (i.e. number 16) will be the last COTC for a while, and the end of this series. Right now my attention is on DNF (there's only two programmers on this project, and it's a big project), and I need to keep it that way. However, when I started this series I did make a promise that by the end of all this, we would have a game. Not necessarily polished, but a game nonetheless. That was a promise, and I don't intend to go back on that promise. So the next article will have just that... a game. It may be small, but it'll still qualify (albeit in a cheesy, shareware-esque, i-wanna-clone-that-cool-atari-game sorta way My guess is I'll probably implement something along the lines of breakout/arkanoid, but with a gameplay twist or two to make it at least somewhat interesting. In terms of implementation, the codebase already has virtually everything needed to implement this kind of game, so you can almost think of it as a slightly larger, playable (and hopefully a least a little entertaining) sample program.
Although the series is being cut short, I think we've covered a lot of ground for a small column like this. We've gone through basic Windows program setup, user input, an archive file system, some resource management, an in-game console, basic 2d graphics, sound support, and some vector math. That's like 8000 lines of code right there. Already I've had people telling me about how they've been working with the code not just as random samples, but as the core of a real framework that they can build on. Considering this is a column for an online magazine, I don't think that's too bad.
So, consider this a preliminary signing off, at least for a while. I intend to bring this series of articles to at least a respectable close, and that's what the game next time will be for... to fulfill what this series set out to do and bring things to a conclusion.
Now, this will not be the end of COTC altogether. When it returns (which may be a while, possibly not until later in the year), I'll start the column's second series of articles. This isn't just some "I think I'll write again sometime" thing, but a relatively solid statement that the column will be able to resume at some point. Even though my available time may be nonexistent now, it goes in waves, and soon enough I'll have that time back again. While this series' goal has been a game, the second series' goal will be somewhat different. Related, but different. Don't worry about that now though; I'll explain when the time comes.
Anyway, now that I've given everyone advance warning, I want to get some feedback from you guys (I know there are a lot of you) about how you think the column has worked out so far. What have you liked about it? What haven't you liked? What do you think has been done well, and what needs improving? I'm asking now instead of next time because I want to be able to bring some of these issues up in this next article, and it'll give me a heads up on what to try and change when the column resumes. So if there's any time to send feedback, this is it.
In the meantime, I gotta get back to work.
Until next time,
- Chris"Kiwidog" Hargrove is a programmer at 3D Realms Entertainment working on Duke Nukem Forever.
Code on the Cob is (C) 1998 Chris Hargrove.
Reprinted with permission.