Tomer Gabel's annoying spot on the 'net RSS 2.0
# Thursday, June 22, 2006

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.

Thursday, June 22, 2006 6:28:35 PM (Jerusalem Standard Time, UTC+02:00)  #    Comments [5] -
Personal | Gaming
Thursday, June 22, 2006 7:36:42 PM (Jerusalem Standard Time, UTC+02:00)
You could try and locate the people who were involved. The developer is supposed to be Eric Hyman, maybe it's the guy who's responsible for this: http://www.bibblelabs.com/about.html
Good luck!
Thursday, June 22, 2006 10:17:03 PM (Jerusalem Standard Time, UTC+02:00)
The issue with completely reverse-engineering something (rather than targeting a specific functionality, like the asset handling stuff) is that it tends to offer a poor bang/buck ratio, and being the daunting task that it is, you will most likely get bored with it and move on the greener pastures.

Go for a reimplementation. You can remain loyal to the game in spite of not actually using its code - observation & deduction can get you a long way, and it’s probably far more lucrative than trying to poke around at assembly listings.

Tal
Saturday, June 24, 2006 9:49:08 PM (Jerusalem Standard Time, UTC+02:00)
Not necessarily. It's not the first time I've done this (although not at this scale), and there have been other successful attempts at this: for example, Digger Remastered by Andrew M. Jenner. It's not completely loopy :)
Sunday, June 25, 2006 6:54:18 PM (Jerusalem Standard Time, UTC+02:00)
True, but as you've mentioned in the article, this approach proved to be very, VERY time consuming :)

I guess the question is - how hardcore are you? :)
Tal
Sunday, June 25, 2006 7:07:30 PM (Jerusalem Standard Time, UTC+02:00)
3? I don't know. But you do have a point. I'll give this some more thought.
OpenID
Please login with either your OpenID above, or your details below.
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, b, blockquote@cite, em, i, strike, strong, sub, super, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Live Comment Preview
Me!
Send mail to the author(s) Be afraid.
Archive
<July 2010>
SunMonTueWedThuFriSat
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
All Content © 2010, Tomer Gabel
Based on the Business theme for dasBlog created by Christoph De Baene (delarou)