Remember Nuclear
War? If not, slap yourself on the wrist and go download it. Right
now, like.
One night a couple months ago (before my laptop hard drive
woes, which are nay over by the way) I found myself unable to sleep at 5 in
the morning. I figured a couple of rounds of Nuclear War would do well to
alleviate my sleeplessness; I fired the game up and after 10 minutes was hit by
a sudden inspiration. The game is turn-based, and the controls are exceedingly
simple: mouse cursor and left click. Since I was still looking for something
useful to do with my newly acquired PDA it struck me that the game would work
extremelly well on a stylus-equipped PDA or phone, and I was wondering if
someone made a version for Pocket PC devices. A quick search through Google
assured me that this is not the case, and since I had the next day off I fired
up Visual Studio and started working.
At that point I figured that a simple rewrite wouldn't do. I wanted an
identical version of the original game. Since New World Computing
is no more, I figured the chances of getting the source for a 1988 game are a
little on the slim side. At a whim, I fired up IDA Pro and started
working. A couple of days later I managed to disassemble most of the graphics
code and image decompression (LZ78-derivative)
and wrote a utility to help me extract the game assets. It features picture and
palette display, histogram and font parsing:
Interesting technical footnote: the palettes were embedded in the data
segment; I wrote a regex-based parser for IDA's assembler output for this
purpose. The palettes were in the VGA 0..63 scale, but some values are also
higher and have to be clamped, which gave me quite a bit of grief until I
noticed this.
With the game assets ripped I could proceed to write some actual code,
however this posed an interesting dilemma: I want the game to be completely
faithful to the original, but disassembling the game logic and AI is a huge
task. I originally estimated it would take a month to complete the reverse
engineering, but given that it's already been two or so months (discounting my
laptop's downtime) it seems my guesstimate was woefully inadequate. This is
where I turn to you for feedback: should I keep going in this direction (meaning
the alpha version will probably take another several months to be released), or
should I just write my own game logic and AI code, get a release out and then
proceed with reverse engineering?
Let me know your thoughts. Also, if you want to create better (higher
quality, different) graphics and music for the game get in touch -- I'm aiming
for a very spartan first release (to keep it in a reasonable timeframe), but
once I'm done with this baby the sky's the limit.