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?

6 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. Android Market maximum App cap is 4GB now so that would not be problem anymore.

    Android Market also works in Finland these days and there is over 500 000 new android devices activating eatch day making android post popular iPad and Smartphone platform and also fastest selling platform.

    Need for Java for development to Android is still there but Android provide very powerful APIs for game developer for graphics, sound and user interface.

    ReplyDelete
  5. 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
  6. 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