25 January 2011

Back-Patching

A recent comment asked, “any chance the PC version will get some of the bug fixes too?”

A good question, but the answer is “no.”

The original King of Dragon Pass 1.0 was released for Windows and Mac in October 1999. Our last update was 1.7, which came out in October 2002. That’s not a bad record for updating a game. But, if we’re fixing bugs in 2.0, why not also do a Windows/Mac release?

Let’s ignore the fact that neither Windows nor Mac are what they were back then (for example, no Mac that can run Classic has been sold since 2006). More important: to make a new build without introducing a lot of risk of new bugs, it’s not a good idea to switch compilers in mid-stream. For a while, we kept machines with the old development systems, but those have since been recycled. So we’d be faced with either trying to install them (assuming a Mac that could run the 1999 version of CodeWarrior), or hoping that nothing changed in more recent development systems.

I know for a fact that the latter isn’t true. Looking through the development diary, it looks like the random number function changed subtly. (One change that would be for the better: the C++ Standard Template Library is a lot more reliable than when we had to work around bugs in Microsoft’s implementation.) Another change: the C type long is a 64-bit quantity on iPhone, where it was 32 bits on the 1999 machines. I updated the code to the modern world, so it’s no longer going to work with the old.

And the game is now different! I simplified the initial clan generation questionnaire, which means the answers have different numbers internally. Worse, there are new interactive scenes. This means that scene IDs and variable IDs are different. Which means that saved games would no longer work. That’s a big problem, because updates shouldn’t break the game. (We went to a lot of trouble with the original updates to avoid breaking saved games.)

So the long answer:

  • No ability to build without risking new bugs
  • Language/library changes risk introducing subtle bugs
  • Word length ties source code to current platforms
  • Design changes break compatibility
  • New scenes break compatibility

In theory some of that could be worked around, parts cannot. While some bugs could be fixed for the Windows and Mac release, only the iOS version can have all the new features planned. And if you want to replay the game, why not replay as good a version as we can make?

13 comments:

  1. Maybe we have any chance for android version?

    ReplyDelete
  2. Eventually that might be nice, but at the moment I don't think it could be sold (see http://kingofdragonpass.blogspot.com/2010/12/big-game.html).

    ReplyDelete
  3. Ou, thanks for link. It's really sad we can't play KoDP on our Androids. :-(

    ReplyDelete
  4. At last.

    But, one project at a time.

    BTW, Android is NOT the most popular iPad platform in most countries, I'm not sure it is even in Finland. Really there's only one tablet that matters right now. KoDP runs on (but doesn't take full advantage of) iPad.

    ReplyDelete
  5. Just coming from a fellow developer, I doubt you will ever wanna go back and do code changes, but if u ever need to there's the virtual machine option. It has its own share of problems, but can get many things right without headaches.

    ReplyDelete
  6. I understand your reasons, but I'll always wish you develop for windows too because that is what I have! :P

    ReplyDelete
    Replies
    1. Even if we were doing Windows development, it is not possible to update the Windows version.

      Delete
    2. Is there any chance of a PC version or port of the updated ios version then?

      Delete
    3. No. It would need to be created from scratch. And there already is a PC version (via GOG.com).

      Delete
  7. Okay i'm confused. As i understand it, you took the artwork, music, etc and ported them to the IOS version, and the only hard part was getting the game to actually run on that platform right?

    Wouldnt it be a relatively simple matter to move the IOS version bits to some open source software that can run on windows? You already have all the text, artwork and music, and all that can be copy pasted over. It's just a matter of being able to transfer the code as intact as possible to a windows platform right?

    ReplyDelete
    Replies
    1. No. There is nothing I know of that can run iOS code on Windows.

      Delete
    2. But you dont need to use IOS code right? As long as you have the stats, artwork, music, etc, someone could move the essential parts of the game over to another platform?

      Why not just put all the source code or important bits up for download so someone can help port it?

      Delete
    3. Anyone who would spend a year making a game that already exists would be better off making a brand new game, I would think.

      Delete