29 August 2012

KoDP 20K

Some more good news about the game: we have now sold over 20000 copies on the iOS App Store. When we released the game almost a year ago, we really didn’t know what to expect in terms of sales. King of Dragon Pass is a unique title from an indie developer, which are usually two strikes against it. But I think this counts as success. Most copies were sold when the game was fairly new, but it has continued to sell.

Worldwide Sales
Along with yesterday’s release of the original Windows version by GOG.com, the game has now reached a much larger audience than it found when it came out in 1999.

To celebrate this achievement, as well as the game’s upcoming anniversary (the iPhone version came out on 7 September 2011), the game is on sale in the App Store for $2 off, for two days only.

28 August 2012

Download King of Dragon Pass

We’re delighted to announce that the original King of Dragon Pass game is now available as a digital download, thanks to Good Old Games.

We have long wanted to provide a way for players to download the game. (When it came out in 1999, it was distributed on CD, as the most practical way to distribute 450 MB of data.) Back in 2006, we actually had a signed distribution deal (with another company). However, we were unable to rebuild the game in such a way that it didn’t require a CD, and still worked correctly. The fact that we were using a development system that had been discontinued in 1998 didn’t help.

Good Old Games took a different approach. I don’t know exactly what they did, but I assume it was some sort of patch. They do this sort of thing all the time, so they’re obviously good at it.

So if you can’t play the updated iOS version of the game, or are just interested in the game’s evolution, you can now buy the Windows version from GOG.com.

15 August 2012


Like any large software product, King of Dragon Pass is not perfect. We wish it were, so we track bug reports and try to fix things when we do an update.

When we created the original game, we had a quality assurance team to find bugs. We also relied on beta testers. For the iOS version, we don’t have a paid team, and Apple limits the number of outside testers. So we have to rely on players to do much of the bug finding.

Today, a blog comment read “the game seems to be crashing often.” My first thought was “no, it doesn’t!” The second was “that’s not a very good report.” But then I thought, “what if it is crashing more often than I think it is? If so, I want to fix it!”

I remembered that Apple makes crash logs available to developers. Normally, if an app on your iPhone crashes, a log is saved on the device. When you synchronize, it’s copied to your computer. And if you’ve given the OK, it is also sent to Apple. (I believe only when you synchronize, though I’m not sure of the details.)

This is especially handy because Apple will combine duplicate reports. When I logged into iTunesConnect and checked, the top 3 crashes accounted for 71% of the reports. I grabbed these.

The logs by themselves aren’t very useful. They include a stack trace which shows exactly where the crash occurred, but only in numeric form. They need to be symbolicated — cross-referenced against the symbols (typically method or functions) of your app. For this to work, you need to save the symbols with each build. Luckily, when you make an archive to submit to the App store, the symbol table is saved. Unfortunately, Apple’s development tool Xcode is terrible about symbolicating. In fact, I was only able to symbolicate about half of the logs. Luckily, I could get one log from each of the top three crashes. And they all pointed at a method in my AdviceView. In one of them, the call stack included showQuestDialog, so I started showing advice and opening and closing the Quest dialog. Sure enough, I got the crash. From there it was pretty short work identifying what was going on (it was a message sent to zombie object, one that should have been dead). And easy to fix.

So this story has a happy ending, and one that makes me glad I’m an iOS developer and a lot of the work was done for me. (Bigger software developers often create a similar infrastructure themselves, to capture crashes in the field.)

But the moral of the story is: we can’t fix bugs we don’t know about! The 2.0.5 build has been played since February. Nobody mentioned anything until now. Please let us know about problems! http://a-sharp.com/kodp/bug.html explains how to send a report from the game itself. (This won’t do anything with crashes, but you can email bugz «at» a-sharp.com with the reproduction steps, and we can send back the somewhat picky details of finding the logs on your computer.

13 August 2012

iPad in Beta

Last month I mentioned that we were still converting screens to use final iPad-sized artwork. That process is complete, and the game has gone out to a number of beta testers, to make sure everything is good on a variety of devices and versions of iOS. (We’re making a universal release, so the same game still needs to run properly on iPhone and iPod touch.) We’re testing here too, and have been squashing a number of bugs.

It hasn’t been in testing long enough to have confidence in the code quality, but things look pretty good so far.

As a developer, most of my testing consists of looking at specific parts of the program (either something I just changed, or to investigate a problem someone else has reported). But I finally got a chance to play a complete short game from beginning to end. This did reveal some issues that needed to be fixed. But it also felt like the game is finally on its native platform. You hold the iPad much like a book, and this meant that King of Dragon Pass really felt like an interactive story (and less like a computer game).

The iPad layout was actually constrained by not having artwork at any higher resolution than you see here. But the results are that text never covers artwork, and you almost never have to scroll. The text is super crisp (on a new iPad) and the iPad screen is bright and gorgeous, so the art looks great. It’s all a really good experience. And as you can see, we don’t need to hide the extra information (the list of clans was behind a button even on the Mac/Windows version), and the manual is available from within a scene.

So if you don’t have an iOS device and want to play King of Dragon Pass, get an iPad.