Reverse engineering game formats and ethics

Posted on 2007-11-25 14:10:27

In the beginning of this year I did quite a bit of reverse engineering on the file formats used in Impressions’ citybuilding games. My main aim had been to create programs to extract the “minimap” from the scenarios and saved games, in which I succeeded (though I recently discovered a bug in one of the programs that I haven’t been able to solve yet).

Since then, I’ve learned a great deal about those file formats, way more than is displayed on my projects pages. I’ve also had a look at the file format used to store the in-game graphics, which I’ve nearly deciphered as well.

All this is fine and dandy, until people come along who wish to change things in the saved games and/or scenarios. Some requests:

  • Disable clay pit collapsing in Caesar 3 saved games
  • Change the enemy type in a Caesar 3 saved game
  • Extract terrain maps from other people’s Zeus compiled adventure “packs” for use in their own scenarios

Technically, making those changes or extracting the information is not difficult, and writing a program to make the changes won’t be difficult either. However, this is where ethics come into play: there are still contests being held for all of the games, and who knows what those “tools” will be used for when I create them? Where ends personal use and starts cheating?

So far I’ve been refusing these requests (or did not reply to them if posted on a forum), for above reasons: I do not want to encourage cheating, and I do not wish to disturb the already fragile world of unofficial game contests. Over the years, quite some exploits have been discovered whose use cannot be detected in saved games, so contest sites have to rely heavily on the user’s sense of fair play.

Normally, I’m all for openness of information, full disclosure, and so forth, but in this case I’m hesitant, certainly after one of my programs for Caesar IV was labelled as cheat tool.