July 28, 2004

The Port from which it Must Start

by Nick Montfort · , 3:05 pm

I just posted a reply on rec.arts.int-fiction (Google Groups access) about how authentic a port of an old interactive fiction game should be. Roberto Grassi posted eight principles for IF porting being used in an Italian project to port IF. The emphasis is on creating, at worst, superset of the original.

This topic is not unique to IF, of course. I also wanted to mention it because of the issue of formal versus material authenticity — how can we make ports of systems not only produce the same output as the original, but do so in a way that at least recalls or is consistent with the material qualities of early interface, and is appropriate for students, programmers, and computer creatives to learn from? I didn’t really write about that issue specifically on the newsgroup, but here’s what I did write…

… the ideal for a port of any classic game, digital artwork, or other important system — if the port is being done to allow people to see what a historically important program was really like — is that the program work exactly like the original. At least, it should work as close to the original as is possible with modern hardware. So, for instance, there’s a “port” of Spacewar that is a PDP-1 emulator running in Java.

Only two changes were made from the original here, having to do with timing and the size of the ships. Of course, this isn’t technically a port, and people play this new version without special controllers on a raster display, not the original PDP-1 CRT. Still, it seems like it gives a pretty good sense of what Spacewar must have been like.

A tremendous amount of study and bot-programmer inspiration has been based on ports of Eliza; it would be a shame if these worked in a different way than the original program did, particularly if the original program was actually more interesting and provocative in some way. Again, Eliza was used on print terminals originally, not screens, but an accurate port, producing the right output, is still a big help in understanding the system.

The Inform port of Adventure is friendly to the modern player, but doesn’t support movement commands like “BUILDING” (allowed in the Fortran 77 version) and does support a lot of anachronistic, more-than-two-word commands. So, old walkthroughs may not work, and people playing Adventure may get the impression that the original game had a much more advanced parser, leading them to be puzzled about why people say that Zork was so much better at parsing.

Historical accuracy can be annoying, so there are reasons to recreate a game rather than port it. I’m working on recreating (rather than porting) an old game right now, since we have other motives besides authenticity, and it’s pretty easy to access and study the original in emulation.

Maybe it’s worth mentioning, though, that you can always start with an accurate port and then develop a friendlier, modified version based on that. It’s probably harder to do things the other way around.