Showing posts with label bugs. Show all posts
Showing posts with label bugs. Show all posts

04 October 2013

Scene Contest Winners

While the Scene Contest has been over for a while, I’ve been remiss in noting the results of the voting.

We became aware that the game had some serious issues when running under VoiceOver under iOS 7. Everything used to work fine, so this took some investigation. I think the most likely explanation is that Apple fixed some VoiceOver bugs, and King of Dragon Pass had been dependent on the earlier incorrect behavior.

It appears that we’ve fixed the issues, and recently submitted version 2.2.2 to Apple for approval. So, the belated announcement:

Cooking Contest
Congratulations to Lysander Xen, who created “Let’s Pretend!” This was the clear favorite, with 51% of the votes cast at Pocket Tactics. It features interesting art and kids getting into trouble.

Runners up were Chris Gardiner’s “The Porridge Fiend,” “Tag-Along” by John Doe, and Tasos Lazarides’s “While You Were Away.”

Now that we’re no longer focused on compatibility issues, we will start obtaining art, fully detailing, coding, and testing Lysander’s winning scene.

We are likely to add other scenes as well, because so many were good.

Thanks to Pocket Tactics for hosting the contest, and to everyone who voted. And most importantly, to everyone who created a scene.

15 August 2012

Bugs

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.

25 October 2011

Our Newest Ring Member


One of the features in the latest update (version 2.0.4) is a new advisor. Like many in the game, the art is based on a real person. In this case, it’s one of our beta testers, Liana Kerr.

We’ve been blessed by a number of helpful and perceptive testers, willing to spoil their potential fun by playing a buggy copy of the game. Since they’re all volunteers, I added to the pool of beta testers as the game got closer to release. Even a game as repayable as King of Dragon Pass will eventually become jaded, and I wanted fresh eyes. (I did however take a number of testers who had played the game before, figuring that a gap of 10 years would make a difference. And these players could tell me if it was still true to the spirit of the original.)

Unfortunately, something went wrong with our bug tracking system, and I can’t get exact counts of how many bugs each beta tester sent. But even without exact statistics, I know it’s Liana. Although she was an old hand, she dove in, and played seemingly endless games, trying out different approaches, and sending all sorts of reports.

Her enthusiasm was remarkable for someone who had already played the game a lot. Here in her own words is her introduction to the game:
“Back in 2001, when my boyfriend and I were at college, he gave me King of Dragon Pass for Valentine’s Day. (Reader, I married him.) I would have enjoyed it well enough if it had just been a clan simulation based around cattle management, exploration and battles, but the sheer amount of random events and notifications, the focus on mythology, the gorgeous artwork and exceptional writing kept me playing it for years, until I thought I had quite played it to death. Even then, every so often I’d still have the urge to build up a happy little Peace clan swimming in cattle and trade goods!”
Once the game was released, I began working on VoiceOver support, so that blind players could enjoy the game too. There were a few bug fixes in that build too, so I sent it to my stable of testers (plus some blind players). You can imagine my surprise when Liana decided to try the game using VoiceOver! Not only that, but she continued sending insightful feedback that helped make the game more accessible.

This was so over the top that I wanted to do something special to say thank you. I asked our iOS artist, Jani Lintunen, if he could create one more set of advisor faces, and he graciously agreed. Since this was to be a surprise, Jani had little to work with. (By contrast, when Stefano Gaudiano did associate producer Elise Bowditch and myself, we gave him photos of our parents.) But he nailed it. Liana says, “The picture of her when she’s old looks very much like my mom, but older (and my husband thinks it looks like my mom’s sister). It’s really eerie!”

Many testers helped make this game more fun and less buggy. I was lucky to get their help. And lucky Liana was willing to play yet again. Thanks again, Liana, and maybe some day I can arrange a visit from Cragspider…

24 August 2011

Release Candidate 2

Last time, I said that creating a release build “might introduce subtle bugs.” Sadly, this turned out to be true.

Any sort of change can introduce bugs, which is why towards the end of a project, the bar for fixing bugs gets higher. In this particular case, it turned out that the debug logging had an important side effect, which  masked a bug that could occur when one (but not more than one) of your clan leaders died of old age.

In some ways the bug was minor (reporting “he” instead of “she”), but you get to know your leaders, so this really stood out as jarring. Anything that breaks the fantasy is important.

I also wanted to do a little more tuning of the economy, and fixed a few low-risk typos.

Like I said before, having more than one release candidate is common. You hope otherwise — the idea really is that you are happy with the quality and could release the build — but it’s not cause for alarm.

So, RC2 is going out to our testers, and I still think a September release is likely.