There are 8 articles in this category.

First open source contribution

Posted on 2008-03-12 21:17:17

Last week, I made my first “real” contribution to open source software. I put “real” in quotes because I’ve been releasing my own little programs as open source for the past year, but I don’t count that as “contributing”.

This contribution I’m talking of consisted of writing a new image coder for ImageMagick, so that ImageMagick can now also read DDS images. This format is quite popular for storing graphics for (primarily) Windows games, so I’m surprised that it wasn’t supported already, considering there are over 100 formats supported, most of which I haven’t heard of.

Anyway, my patch was accepted, and my piece of code is now included in the latest ImageMagick releases, yay!

(by the way, yes, I also finished The Incredible Machine last weekend!)

Posted in: Open Source, Projects

It's been a while ... SCS Minimapper!

Posted on 2008-02-15 19:08:35

Last time my blog/site has gone without a post for several weeks, I was immersed in learning to program in Qt. There’s been a gap of over two weeks again, so that might mean I’m immersed in some other project. And yes, that’s indeed the case!

I’ve made minimap programs for five citybuilding games now (Caesar 3 and 4, Pharaoh, Zeus, Emperor), and they’ve been most heavily used on the result pages of a contest site I’ve helped with. This same site is now hosting contests for Tilted Mill’s new game, SimCity Societies.

The minimap images from the in-game screenshots are so tiny that they are quite unsuitable for display on the results pages. So, a couple of weeks ago, I received an IM from the administrator, basically begging me to write a minimapper for it, even though I don’t have the game itself.

After two weeks of puzzling, with virtually no support from the developers besides a “maybe, we’ve forwarded your request for information to the publisher, but information regarding the file format will have to pass by a zillion lawyers”, and just a few saved games to get by, I figured out most of the file format. At least enough to do a decent job at creating images from saved games.

The job was considerably easier than usual because the game itself already creates two images which, combined, are the minimap, so I had a perfect example to work from. The most difficult part was reproducing this image when the two images were not available. Though it’s of lesser quality, all buildings are still visible on it.

Anyway, to cut a long story short, version 1.0 of the SCS Minimapper is available from the downloads!

C4Minimapper update

Posted on 2008-01-20 19:05:04

January seems like the month of the updated programs: I’ve released new versions of the citybuilding minimappers, and yesterday I’ve updated the Caesar 4 Minimapper as well: it’s up to version 1.3.

It’s not yet on this site though: so far it’s only been available at Caesar 4 Heaven and the Tilted Mill forums. As soon as I stabilize the source tree out (I just imported the C4 minimapper into svn two days ago), all small programs I made for Caesar 4 will appear on this site.

And this isn’t the end of the program releases and updates: I have a few more tricks up my sleeve, though most of them will probably have to wait until February.

Citybuilding minimap programs

Posted on 2008-01-17 19:54:25

After much toil, I finally released the latest and greatest version of my collection of minimapping programs yesterday!

This release adds the mapper for Emperor to the collection, and upgrades the existing three mappers to Qt, making them truly platform independent, and not dependent on the Visual C++ DLLs anymore. Hurray!

For those interested, read more about the mappers on their project page, and hop over to the download section to get a copy of them.

It's been a while...

Posted on 2007-12-20 21:57:36

No updates to the site in nearly a month… but it has a good reason!

While trying to figure out how the graphics format of Caesar 3 and other citybuilder games works, I needed a way to visualise the output. I had previously done this by writing my own wrapper around the libpng library, outputting the images as PNG, and subsequently viewing those images with an external viewer. This is getting tedious if you’re extracting some 1000 images from a graphics file…

The solution: write a GUI program for it! On Linux and Mac, I had so far only done command-line programs in C and some in C++. I have some Java knowledge but I needed the low-level inputs of C/C++ for the graphics files.

On Windows, I’ve worked with C#/.NET and C++/.NET, and with WxWidgets to create pre-.NET programs. Installing wxWidgets on Linux might have been an option. However, after seeing how “good” the wxWidgets programs from the Dutch equivalent of the Internal Revenue Service (Belastingdienst) looked like, I backed down from that.

Since I’d like this program to be cross-platform (Linux, Mac, and Windows), the second option I looked at was Qt. I first wanted to write it in Qt3 since I already have that installed for KDE. After seeing that there’s no online documentation for that anymore (it’s discontinued in favour of Qt4), I decided to just take the jump and use Qt4. I fell in love immediately, hacked together a small graphics viewer in half a day and have been toying with it ever since.

So, you might see some Qt programs appearing on this site in the new year!

Posted in: Projects

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.

Second batch of personal projects online

Posted on 2007-11-17 12:18:22

This weekend I worked on moving the minimap-creating programs for the old Impressions citybuilding games over from my private HeavenGames site to this site. Just like the widgets, you can find them under Projects. Enjoy!

Posted in: Projects

First personal projects online

Posted on 2007-11-12 18:50:04

I’ve put the first of my personal projects online: the Mac OS X dashboard widgets that were previously available on my VU site. Furthermore, I’ve added some information relating to the content management system driving this site: Helios.

Upcoming projects to be added on the projects page include:

  • Minimap generator programs for the citybuilding games Caesar 3, Pharaoh, and Zeus
  • The various utilities I’ve written for Caesar IV
Posted in: Projects