02 September 2012

How Many Scenes?

A long-time player recently commented about how he had just gotten an interactive event he had never seen before. This is not as surprising as it sounds, even for a player who has had the game over a year, because many events are conditional, and the raw number is such that you won’t get each one every game. But I was curious about the exact odds.

Counting

The game calls interactive events “scenes,” which is biased towards the illustrated events. There are 1624 in total, but they aren’t all story events (scenes). They can be divided into:

code: A chunk of OSL script used to set state or conditionally trigger scenes. These have names like code_InitialTribalAgreements, fragment_BeSureToHaveElection, or code_R115MiddlingPenaltyOver. None of these have any player interaction. There are 464 of these.

news: Some sort of report, given by (or relating to) a single leader. These have no illustration. Most have no interaction, but some do give player choices. A notable subset of interactive news is heroic combat during a battle. Battle results is treated as a special case, and is shown with two illustrations. News scenes have names like news_TradeRouteEnded, news_R45aGrainHeFound, mission_EmissaryBanditAttack, or battle_HesGoneBerserk. There are 462 news scenes.

scenes: Interactive events are the core of the game. They always have an illustration, and at least one leader giving advice. They have names like scene_2Trader, scene_R194WeddingCelebration, or mission_ProposeAlliance. There are 614 of these.

quests: Heroquests are essentially a special type of interactive event, with no advice. There are 84 of these.

So there are 614 scenes defined in OSL, but it’s not really accurate to call all of those interactive events. That’s because when we designed an event, we sometimes wanted to show new advice in response to player choices, or change the background music to reflect a change in situation. This was implemented as switching to a new scene. So scene_R59TheChallenge might trigger scene_R59aChallengeResult, but that’s really just one event to the player.

Luckily, we were pretty consistent about naming scenes, and by looking for that pattern (R59a as opposed to R59), there are 70 scenes that are followups within an overall event.

That leaves 544 distinct interactive events. It’s worth noting that 28 of these are new in the iOS version (25 were in version 2.0, and one is new in the upcoming 2.1).

Calculating

But, what are the odds of not getting one of the 544? All scenes are not created equally (we kept the amount of branching in the game to a minimum, but some scenes directly depend on earlier choices), and many have specific preconditions. There’s no good way to figure that, so we’ll assume each does have an equal chance of showing up. If there are 5 random events each year, the odds of not getting a specific one each year is 99.1%. How long is a game? That can vary widely, but looking at two sagas of complete long games that are in our bug tracking system 48 to 58 years. For this quick calculation, let’s call it 53. So the odds of not getting a particular scene during a game are over 61%. Now we have to figure how many games. King of Dragon Pass is highly replayable, but even a hard-core player might not play more than 12 games in a year. The odds of not getting a random scene in a year of play are thus only around 0.3%.
A (thankfully) rare scene

It turns out the scene in question was not random, however. It related to the harvest, so it could only occur in Earth season. That means each game has over a 90% chance of not getting it, and thus he had a 31% chance of not seeing it in 12 games. Except that there was another condition on the scene, so the odds of getting it plunge even more.

(The odds would be slightly different for the original Windows version, but I’ll leave that as an exercise for the reader.)

Conclusion

So what does this analysis say? I think it verifies our design goal of replay, since you will not see many scenes your first game. (And this is only talking about events, not your responses to them.) And even if you have played a dozen games, you have a pretty good chance of getting something completely new if you play one more.

Also, our marketing copy of “nearly 500 interactive scenes” is conservative, and we should have done the math before.

7 comments:

  1. Hey it's me again.

    The original King of Dragon Pass was made over a decade ago. I am wondering if you plan to ever make a sequel.

    ReplyDelete
    Replies
    1. Things haven’t changed in the last two days: we would love to do a sequel.

      Delete
    2. I am waiting to support the sequel on kickstarter at the $100 level when you decide to try it.

      Delete
    3. I suspect you have heard about it by now, but since I was looking at this post again (for reasons related to the sequel), I thought I would mention: http://sixages.com

      Delete
  2. Someone asked the number of paintings. Taking a quick look at the assets for the interactive scenes (and the full-screen raids, which were in the same art order) I think there were 430. Again, this is for the current version.

    ReplyDelete
  3. How much of a sandbox is the game for you. Could you just ad 10 sceenes if you just happen to wake up one day asking yourself "Why dident i put this string of events in the game?"
    Would there be to many balancing issues or is it fairly open to change?

    ReplyDelete
    Replies
    1. If a new event won’t even show up in half the games, it probably can’t be too unbalancing (since half the time it has no effect). On the other hand, you’d hate for players to be hosed if they did (or didn’t) get the Dragon Treasure event.

      it’s pretty hard to imagine a scene that’s comparable with existing ones ever being a problem though.

      I’d be more concerned with story balance. Ten new scenes about an obscure daughter of Ernalda would make her appear too important for the setting. (Several of the scenes added in 2.0 were actually an attempt to play up aspects of the setting that in retrospect got short shrift.)

      Delete