Kinship

Six Ages is a game about clans and kingdoms and world-shattering events. But it’s also a game about people. In the first game, “Ride Like the Wind,” you watch (and help guide) some characters pass through their youth to adulthood, and possibly even to old age.

The second game, “Lights Going Out,” is no different. It goes a step further by presenting characters who are related to each other more directly than belonging to the same family.

I have friends who raised their children otherwise, but I think in most families, children don’t refer to their parents by their given names. So the bug report complaining that this can happen made sense. Here’s what the line of script looked like (<a> is a placeholder, filled in with a character’s name):

[Diplomacy ≥ 4] The Wheels have more to worry about than what <a> thinks of them. [1]

If this advice was given about the advisor’s mother, it would feel out of place or even rude.

Another example has the advisor directly talking to someone who might be their elder:

[Default] I’m sorry, <i>. [3]

How to deal with this? In many events, we have advice specific to various characters, such as the king and the prince. But this situation could happen with a number of people, and that felt cumbersome (as well as potentially blocking useful skill-related advice in favor of character-specific advice).

We could simply live with this, since it’s pretty rare (we only noticed an example this week) and doesn’t impact game play. But it does weaken the idea that your advisors are real people who behave in complex ways. So I decided to add a few special properties to our scripting language. Those lines of advice are now

[Diplomacy ≥ 4] The Wheels have more to worry about than what <a.relative> thinks of them. [1]

[Default] I’m sorry, <i.relativeDirect>. [3]
Advisor says, “The Wheels have more to worry about than what my mother thinks of them.”

If most characters give the advice, the placeholder <a.relative> is still the name. But if the speaker is related to the person in question, it will be filled in with something like “my mother” or “my son.” The second form, when one character talks to another, essentially drops the “my,” so the complete sentence could be “I’m sorry, Father.”

This is a pretty specialized substitution, but it’s something that’s really only practical because the game uses its own scripting language.

Year In Review: 2021

RIP Stan LePard

Unfortunately, Stan LePard, who composed the music for Six Ages: Ride Like the Wind and King of Dragon Pass, passed on unexpectedly in February. Stan was great to work with and created some wonderful music for the games.

I just learned that there’s a GDC scholarship in honor of Stan.

Lights Going Out

The team has been pushing to complete the second Six Ages game. Obviously, we didn’t get there in 2021.

But Robin Laws did finish writing the interactive events, including a second batch suggested by QA. There’s still a chance we’ll need a few more, but this means that the design focus is now tuning, not creating.

Since the writing is done, we know pretty much all the art the game needs, and are now working in a variety of styles (depending on what’s being illustrated).

We’ve been testing the game all along (an advantage of creating a sequel that can use the same core code), and that’s been accelerating this year. As before, it’s a mix of making sure each response of each scene works, making sure the game works from start to finish, and making sure that the game is challenging and fun. QA also verifies bug fixes to make sure they actually fix things, and don’t introduce other problems. (The past couple weeks have had some good examples of why that’s important…)

Ride Like the Wind

While our focus has been the second game, we have been fixing some bugs in the original. There were also some issues that only affected iPad or iPhone, so we ended up taking some time and making an App Store update.

The Future

We’re not going to ship a game before it’s really done, but I’m hopeful that we’ll be able to release “Lights Going Out” next year.

And maybe start a new game.

Hyalor’s Law

There was recently some discussion about legal cases on our Discord, so I thought I’d share the legal system I wrote up. The idea was to have a coherent system that was different from Heort’s Law, as shown in King of Dragon Pass.

Originally, we were governed by Yelm’s Law. But we had to leave the Law Tablets in Nivorah. Hyalor gave us a new set of laws that we could apply outside the city, and while on the move.
 
The law makes sure you and your kin will be compensated for aggression or theft. Crimes like murder, defamation, and injury have a customary payment in horses or cows, depending on the level of harm. Grazing on someone else’s pasture is a form of theft, and also has a customary compensation. Theft is usually made right by paying an equal value. If the compensation is significant, like for a killing, it may be paid over time.
 
If someone is unable to pay the compensation, then his family will pay. They are entitled to remind the wrongdoer how foolish he was, and will keep an eye on him so they don’t have to pay again. If his family gets tired of paying for a repeat offender, they can disown him. Unless another family wishes to adopt him, he is an outlaw, no longer a member of the clan.
 
We expect our leaders to be examples. If a priest or a member of the clan circle violates the law, he pays double compensation.
 
When the law is broken, one of the sides sends a delegation to the other, to try to keep the dispute from spreading. They will arrange for a court to settle the case. This consists of one judge from each side, usually elders who remember past cases. The aggrieved family will investigate the incident before presenting to the court.
 
The court is held away from the community, to avoid bias. Both sides can have advocates, who are chosen for their speaking and negotiating skills, and their good reputation. Once the judges come to a decision, the parties have the opportunity to seek a new hearing with different judges plus a neutral judge appointed by the chief. If they cannot agree to that decision, they may appeal to the clan chief.
 
Hyalor’s Law also applies when a dispute is between members of two clans. But we have no king to appeal to, and sometimes we have no choice but to balance uncompensated deaths by taking a life from another clan. We would make a formal declaration of feud, and would never do anything but restore balance.

This is inspired by xeer, from Somalia, which works in the absence of a central authority — perfect for the migration period, which was Hyalor’s main concern. The fact that compensation is central is also convenient, since it connects to the herds and goods that you’re worried about at the clan level. The clan chief’s involvement in appeals is presumably a relic of the more hierarchical Yelmic law of Nivorah.

The game doesn’t portray the full workings of Hyalor’s Law, since the idea is to handle disputes below the clan level. For example, the illustration is clearly of an appeal, since there are three judges (and the parties have involved the clan chief in their dispute). Presumably there are legal cases all the time (probably more often when clan mood is low!) but since your focus is the clan as a whole, you don’t need to worry about most of them. We only present the ones with interesting clan-level consequences.

Finally, the above are the notes that informed “Ride Like the Wind.” Generations later in “Lights Going Out” your clan may be using a different legal code.

Advice

One of the features that makes Six Ages (and King of Dragon Pass before it) unique is how it handles advice. Certainly games have had advisors before (such as Hidden Agenda or Civilization II), but in Six Ages your advisors are actual playing pieces, as well as part of the user interface. They are player agents and contribute to immersion, but their primary role is to provide information.

Advice about building a ditch

Advice is given by notable leaders you pick to sit on the clan council. As characters who live in Glorantha, they know how the world works, the customs of your culture, and what has gone on before (both the pre-game history and game events). We don’t expect you to know all the lore, because an advisor can give you a summary. They’re keenly aware of the agricultural calendar and stored food. And they can suggest actions that would be obvious to someone living in your clan.

Explanation of Wealth concerns

We leverage this to supplement the user interface. The dashboard (next to the menu buttons) gives a very brief summary of various concerns, and advisors can give a more detailed explanation. Advice on the Magic screen summarizes your temple maintenance costs. Advice for the Raid dialog will remind you about clans you’ve promised to raid. Wealth screen advice estimates your market profit and craft production.

Advice with two recommendations

In story events, advice is often associated with recommendations. An advisor may summarize the situation or try to predict the consequences of different actions, and also suggest one or more responses. Other times, they may just let you know what the tradeoffs might be, but not suggest how to resolve them.

Erkent family has little sympathy for the Dasano family

Although their job is to advise you (and carry out your decisions), your council is composed of people with personalities, which may flavor their advice. This doesn’t mean their advice is incorrect, but an advisor may tend to see only one side of certain issues. It can also provide a hint as to how well they can execute an action — a kindly character may not be ideal to try intimidating another clan, though they’ll give it their best shot if necessary.

Calling out Alakorde for a slur

Sometimes those personalities clash, and you’ll see advisors talking to each other. Here’s the code for one such exchange:

[Relandar Priority] The Buzzard People should try harder to fit in. [4]
[Erissa Priority AND RelandarOnRing] <r>, the correct term is not “Buzzard People,” but “adoptees.” [5]

Characters sometimes have other human relationships to each other, particularly since the Six Ages games are multi-generational.

Getting all this to work well can be a tricky balance. In a scene, we try to make sure that you get the information you need to weigh the responses. This usually relates to the skills of your advisors. Balancing the Seven Families usually comes down to Leadership, so we try to make sure you get the best possible Leadership advice. Gauging relative military strength is the Combat skill, but if nobody on the circle has a high enough Combat ability, you won’t be shown that insight. Sometimes an event relates to a specific leader, or the god they worship, in which case we mark that advice as being higher priority. Most advice is context-sensitive (e.g. you’ll be reminded if your herds are getting low), and sometimes these sorts of conditions are also considered as priority advice. A character might give different advice depending on whether or not they’re the clan chief, or what family they belong to. On the other hand, there’s no need for two people to remind you that clan magic is depleted.

It’s also tricky in that what advice you get not only depends on the situation, but who you have on the circle. If none of them worship Elmal, you won’t get any Elmal-specific advice. If two of them happen to hate the Wheels, you might get that twice. Sometimes someone else has already given the useful skill advice, and an advisor’s traits don’t match any personality advice. There are actually two levels of fallback advice to help make sure everyone has something interesting to say. Since situations when advisors will comment to each other are rare (the circle needs two or even three characters with a particular personality or religion), we try to give these priority.

“I have good ideas for fighting broos”

It’s worth noting that each chapter has somewhat different aspects to determine advice. Several generations after the events of “Ride Like the Wind,” it might not make as much sense to be concerned about your ancestral home, and more sense to worry about new threats. And the political situation within the clan is different.

Right now a major QA focus as we develop “Lights Going Out” is to scrutinize the advice and make sure it makes sense. If a recommendation doesn’t match what a character suggests, it might seem like a minor bug, but it actually undermines the entire idea of useful advice. Your advisors don’t know everything and they may be biased, but they aren’t stupid. There are also opportunities for advice specific to characters that might not have existed when a scene was originally written.

To summarize, I advise that you read the advice.

Year In Review: 2020

TL;DR: We’re still making games.

COVID-19

The global pandemic hit all of us. Fortunately none of the team fell ill, though family members did, and there were several exposure or symptom scares. And while the team is distributed and work from home, that’s not the same thing in the middle of a pandemic, and when can’t really go anywhere else.

And of course we weren’t able to have occasional face-to-face meetings at conventions — or see fans.

Lights Going Out

Art by Ellen Barkin

We’ve been working on the next Six Ages game. “Lights Going Out” will let you continue the story of the clan you guided in “Ride Like the Wind” (though you can start a new one from scratch). Perhaps 3/4 of the events have been written and coded (with games like these, it’s hard to know exactly how many there will be, since we often add more towards the end, to fill in missing bits). And about half have been exhaustively tested. This is far enough that it’s now possible to play a significant chunk of the game without running into missing parts. Well, that’s what I tell myself, and then QA files bugs about missing parts.

Thumbnail by Jan Pospíšil

The exact art requirements are similarly hard to know in advance (since those new scenes may require new art). But I think well over half of the scene art is complete.

We just started thinking seriously about the endgame — what constitutes “victory” in a story game. Polishing and coding this is on the schedule for January.

There’s still too much uncertainty to talk about a release schedule, unfortunately. But it’s now far enough that we can start thinking about tuning, and testing the game as a whole instead of just in pieces.

Ride Like the Wind

Although most of the development effort has been on the new game, they share the same game system, and some “Lights Going Out” bugs are common. And we’ve been fixing bugs as players report them.

Luckily, there haven’t been too many of those, so I’ve held off on making a lot of updates. Plus, just making a release takes resources, and QA has been less available thanks to COVID-19. But I do expect a bug fix release next year.

Future

Last year, I mentioned prototyping a new game. A combination of events led to a digital prototype. There might well be a game there, but it’s still a side project to have in reserve.

Not Branching

Although people sometimes describe Six Ages (and its predecessor King of Dragon Pass) as “choose your own adventure” games, they are definitely not branching narratives. Choices do lead to other choices, but not along a predefined path.

Branching content can give the player a lot of choice, but even if you have only two choices for each decision, you can end up with a huge number of paths. And you’ll be creating content for pathways that will only rarely be visited. There are a variety of techniques creators use to deal with this. Six Ages and King of Dragon Pass address the problem by not turning their decisions into branches.

I’ve written (and spoken) before about how KoDP and Six Ages avoid the combinatorial explosion of branching by providing a political-economic framework to give your choices context and meaning. The narrative is broken into what we call “scenes” (they can also be called “floating modules” or “storylets”). Scenes are often picked at random, though with conditions to make sure they’re relevant or interesting. Typically they’re written to work in any situation. For example, a neighboring clan wants something from you. Whether they’re unfriendly or your allies makes a big difference, as does whether you can afford to pay what they ask (either in wealth or relations with other neighbors). Your response affects relationships (turning down a request has the potential to end an alliance), wealth, or internal politics (your own people have opinions too). This gives an implicit connection to the next scene (we lost a friend, we’re broke, people are grumpy, etc.). Essentially, most scenes connect to other ones—less directly than by branching, but more flexibly. And it’s easy to have more than two choices, to give players a wider range of action.

One way scenes connect seems rare in narrative games: a choice may trigger another scene at a later date. Plenty of story games have a time element (either by each choice advancing a clock, or treating time loosely and advancing the clock when conditions are met). The multi-generational scope of Six Ages means we can run a followup scene a year (or more) later, after ten player actions and another batch of scenes. For example, if you claim poverty, your neighbor may tell you they’ll be back next year. This is arguably a branch, since you made a choice and it leads to a repeat of the event. But intervening events may have changed the context, or invalidate the followup (for example, if a feud breaks out they won’t be back with a friendly request). It’s much more an emergent narrative than a branching story.

Diagram showing connections between scenes and responses

Six Ages does have scene sequences that are pretty close to a standard branching narrative. These tend to be a lot more complex for the QA team to test, since all the possible paths through the set need to be traversed. This is the chart that Jess made to track how a 6-scene sequence worked. The lines of flow are mostly implicit connections—choices in the second scene can impact your choices in the third or fourth scene, etc. They aren’t branches—in most cases, previous choices don’t preclude possible responses. But they’re distinct paths that provide context.

Our writer, Robin Laws, just finished writing another set of related scenes for Six Ages: Lights Going Out. I just finished coding them (into our OSL scripting language) today, so QA hasn’t had a shot at them. But I did my own chart to help with coding, and hopefully with testing. (This one just shows scene flow, not individual responses.)

Sketch showing how scenes might flow

Without the direct branching of “If you attack, turn to page 24,” sequences like this make use of state variables to keep track of what happened previously. This is hardly unique to Six Ages. All the scripting languages I’m familiar with let you do that. This sequence seemed particularly variable-heavy, however. I counted 25 variables that coordinate between 8 scenes. Some of this is for narrative continuity (what we learned and who we learned it from), tracking how often something has occurred (it may not be possible to do it again, or it may impact how easy a course of action is), which leaders were prominent in a previous scene, or magical effects. Not surprisingly, there’s an additional variable that can relate your decisions here to scenes that aren’t part of this set.

The goal of all this is to tell an interesting story that emerges from multiple player choices (not just story choices), unfolding after multiple game years. Almost as important, if you replay the game, you can make different choices for a different story—but even the same choices can give a different story, because the events can take place in a very different context.

August Update

I don’t have to tell anyone that this has been a strange year. I don’t know if I can really blame 2020 on the lack of blog posts, however. Some of the progress is hard to show, and we want to have a few surprises when the next game comes out.

The COVID-19 pandemic did impact things. We’re pretty sure one team member caught it but had almost no symptoms (and at a time when there wasn’t any testing to confirm it). Otherwise there hasn’t been any direct impact, since the team is distributed and people work out of their homes. But that is still very different when other family members are now doing that too, or you can’t leave your home. So we’ve all been affected.

An Orlanthi magician is about to hurl a lightning bolt

Despite that, work on the next game, “Lights Going Out,” has proceeded. Currently, 317 scenes have been written and coded. Two thirds of them have been exhaustively tested. (For comparison, “Ride Like the Wind” ended up with 364 scenes.) Most of the non-scene writing hasn’t started, though there are currently two rituals running. (One of those may need to be reworked.)

We have a lot of great art. I don’t know quite what our target is here (since a lot depends on the not-yet-written scenes). But more has been completed so far this year than in 2019.

Although most testing has focused on individual scenes (the “trees”) in isolation, we have done some QA based on just playing (the “forest”). I think you could play for 13 years before running out of yearly content. So while it’s not at all balanced yet, the basic game still works fine.

A shaman sits with her drum, spirits swirling about her

Although the basic game is the same, different things matter. The game takes place generations later, so factions other than the Seven Families are important. And you’ll possibly be interacting with the supernatural in different ways. Plus, the supernatural will impact you in different ways. I’m in the middle of tweaking the map for this.

And speaking about both games, you can indeed load a game you won and continue it. A number of factors are brought forward. At least one was something that we hadn’t originally planned for. (You can certainly play “Lights Going Out” without having won or even played “Ride Like the Wind,” though we hope it will be a richer experience if you have.)

As I mentioned in December, we’ve also been prototyping some ideas for a different game. As I write, its fate is unclear. For what it’s worth, as a separate project it hasn’t affected the “Lights Going Out” schedule.

Unfortunately, that schedule still isn’t solid. It’s taken longer to get here than I’d like, but I think we have made considerably progress during a challenging year.

Word Gets Around

In Six Ages, your relationships with other clans are vital. The game tracks a number of factors for each clan, including how much they like and respect you, any slights they hold against you, and whether they have a formal alliance or feud.

These factors are all dynamic. They’re adjusted not only when you interact with a specific clan, but also when you do something that is likely to be newsworthy and spread to other clan. For example, in one event a combat hero can gain the respect of a clan and its neighbors. This OSL code handles that:

otherClan.fearsUs += 40
otherClan.likesUs -= 40
# all clans adjacent to otherClan .fearsUs +=20
a = AdjacentClans(AllClans, otherClan)
foreach c in a {
    c.fearsUs += 20
}

Other events have even wider impact (this one on all Rider clans):

# LikesUs+=3 * q (all Hyaloring otherClans)
h = HyaloringClans
foreach c in h {
    c.likesUs += 3 * q
}

But these are just numeric values. As Sin Vega discovered in her attempt to play as a petty jerk, your deeds can earn you a more specific reputation:

“We are known for our rudeness”, says the lawspeaker later that year. It’s nice to feel appreciated.

“We are known as backstabbing weasels”, says the lawspeaker at Sacred Time. I might have gone too far this year.

These reputations reflect a suggestion (case 8801) from our QA lead Liana Kerr, who wanted a way to give players a stronger connection to their clan.

Behind the scenes, there are a number of trends or events that you can become known for. A single act of mockery towards guests won’t give you a valley-wide reputation for rudeness. But they accumulate, and if you keep at it, sooner or later this will be the most significant thing you’ve done. By the same token, attacking your allies is a shocking breach of tradition and protocol (not to mention good sense), and that gets everyone’s notice. Over time though, any of these can be less notable in people’s memory if you no longer do them.

Our explorers visit the Great Glacier

So each “known for” item has a numeric value, which indicates its significance. Visiting the Glacier is a big deal, but not as unusual as managing to defeat the Alkothi. But if you raid several times each year, the raid score will accumulate until it outweighs defeating the Hell Men. Or perhaps by then that feat was too far back to matter any longer, since the score for each item is reduced every year.

BecomeKnownFor("glacier")
An advisor says, “The clans of the valley know us for our many shrines.”

An advisor says, “The clans of the valley know us for having heroic clanfolk.”

Most of these actions are also tracked numerically through the standard relationship system (if you can defeat the Alkothi, you will gain much respect throughout the Valley), but others are a great way to reflect other player accomplishments like temple building or nurturing heroes. And the next chapter, “Lights Going Out,” will have items specific to its story. It’s a flexible system (we added several more late during development), and is a colorful and concise way to comment on the player’s story.

Year In Review: 2019

TL;DR: We released Six Ages: Ride Like the Wind for PC!

GDC

In March, I gave a talk about the design of Six Ages (and King of Dragon Pass) and how they work behind the scenes. This should be available in the GDC Vault.

PAX

We made a special demo version of the game to show at PAX West. (This gives a super-limited introduction and ends after one year.) Kitfox had a computer in their booth dedicated to this. It was great to see people actually playing the game, and meet one of the artists in person for the first time.

Update

While the game was being ported to PC, we were fixing bugs discovered by our iOS players. Originally we had hoped to make a single release, but rather than delay things, we released 1.0.8 to the App Store.

Lights Going Out

We had begun work on the second chapter, Six Ages: Lights Going Out, last year. It’s always hard to know exactly how many interactive scenes a game will need, since it isn’t until you play for a while that you know what’s missing. But assuming chapter 2 is about as complex as chapter 1, we’re about halfway through scene writing and coding. And the scene-specific QA is about 30% complete.

We don’t have any release information yet.

Port

Our goal was to release Six Ages: Ride Like the Wind for Windows and macOS in 2019. What that really meant was by mid-October, since indie games can’t launch whenever they feel like it and expect to get any attention. We needed to avoid as many similar game releases as possible, and beat the Christmas release cycle. (If we had slipped into November, we probably would have had to hold the game until 2020.)

It was a bigger project than we had expected, but Rusto came through and we did in fact release on 17 October.

Having a game on Steam has been a bit of a learning experience, since I tend not to buy my games there. I was surprised that you can buy a game you cannot actually launch. (We’re sorry that the game requires Windows 10, but there isn’t anything we can do about it.) GOG was different yet again. It was nice to have a publisher deal with many of the details.

I was a little disappointed that we didn’t get a lot of reviews, though perhaps we had done too well getting coverage of the iOS version, and it was hard for game sites to justify a second review. Plus, there really was no great release week — we came out at the same time as Disco Elysium, for example. Still, I was pretty pleased to see the Rock Paper Shotgun review.

And, we have been nominated for a few awards.

The port also gave us a way to sell Stan LePard’s soundtrack, which we had gotten requests for since the iOS release.

Future

I have no idea if the Indiepocalypse is real (since Six Ages was my first PC release), but it does seem like the publishing world is different than a year ago, and definitely since we re-released King of Dragon Pass. Although we are busy with the second Six Ages game, I think it’s a good idea to think about what might come after.

I have been making notes and trying things out. The prototype shown here won’t be the next game, since it felt boring. But maybe I will have something to share next year.

PC User Interface

We spent a lot of effort making sure that the mobile version of the game worked well on all screens, from the smallest iPhone to the largest iPad, and from the low-resolution (132 pixels/inch) iPad 2 to the super-crisp (458 pixels/inch) iPhone 11. So we wanted to make sure that the personal computer version worked equally well with a mouse, keyboard, and PC screens.

Layout

iPad and iPhone shapes

iPhones and iPads come in a pretty large variety of screen sizes. Many iPhones have a 16:9 aspect ratio and many iPads are 4:3, but you need to adapt to different shapes. For mobile, we had two main rules: always use the entire screen, and since the pixel size is constant, show more content on larger screens (i.e. cover less of the text and require less scrolling). A secondary rule was to show all artwork — it’s never cropped.

As most games treat them, PC screens are actually pretty limited in sizes. The actual pixel resolution doesn’t matter so much as the aspect ratio. Most screens are 16:9, some 16:10, and some 4:3. Other aspect ratios are rare.

All PC screens are large enough that we can show the menu and dashboard on the left at all times, like our iPad layout. And stretching management screens from the nominal 4:3 design to 16:9 generally worked well. That covers most of the three dozen screens, including dialogs like Emissary and Sacrifice.

4:3 iPad

Things got more interesting when there are illustrations (like interactive scenes). Pat Ward’s design assumed a 4:3 screen (those were the only iPads when we began the game), but I was able to add some blank space in a few places to deal with things like the 12.9 inch iPad Pro, where picture plus advisors no longer filled the screen.

16:9 PC

But significantly wider screens makes a difference. With a 4:3 aspect ratio, the text parchment covers part of the illustration. With a 16:9 screen, text can be on the side, leaving all the art exposed.

On a 16:10 screen, the text would end up too narrow if it were restricted to the side, so it will cover artwork.

Unfortunately, we ran into some layout issues with 5:4 screens. These are rare, so we violate the “fill the screen” rule and letterbox. (This is pretty common for games.)

Unlike iPad, where the larger iPad Pro lets us show more information, larger PC screens are just larger. Since text is larger, it can use more pixels, and look crisper. Other than that, the game looks the same on my 5120 * 2880 display or QA’s 1366 * 768 laptop.

Controls

Six Ages uses three custom controls: value sliders, filters to choose what’s shown (e.g. feuding or allied clans), and a similar picker to sort leaders.

Sliders don’t need a large target to adjust the value, since a mouse is much more precise, and you can click on the bar to increment or decrement.

In a standard desktop app, you’d probably use a popup menu to filter a list. Mobile UIs don’t usually use popups, which is why we had a horizontal picker. But for the PC, we went back to the default. The precision of the mouse means that this can be more compact.

We probably could have used a popup to sort leaders, but I wanted to emphasize that one control would show you different information, and the other the same information in a different order. So we kept the horizontal list.

Mouse

Rejected Knife Cursor

Most games use custom cursors, to fit the game theme. I really liked the idea of using the curved knife from the game logo, since once you flipped it, it was at the same angle as a standard arrow cursor. But nobody liked how it worked in practice. One playtester called it a “feather.” It was also unclear how large to make it. We eventually settled on a more traditional arrow, but in the colors of the knife.

Arrow Cursor

Many UI elements need a rollover state, to indicate that they will do something when clicked (and aren’t a decorative element). We didn’t need this for the mobile UI, so it was something we had to add to our buttons. (Thanks to Xin Ran Liu for working with me on this!)

Rollover is also a great way to show transient information — like a tool tip. We had a few places where you tapped to get extra information, so these were easy candidates for rollover. (Note that you want to see advice while interacting elsewhere on the screen; you click to show it, rather than have it disappear as you point to a response.)

The game has lots of scrollable lists and text, so the mouse’s scroll wheel usually scrolls. We broke this convention to support another common game convention: using the scroll wheel on the map zooms in or out.

Keyboard

Although the game can be played entirely with the mouse, it’s convenient to have a keyboard shortcut for common operations like dismissing news or picking a response. To make this work, responses are numbered.

And you can reveal an illustration behind text with the space bar.

I had wanted to let the player show advice via the keyboard, but decided not to delay the game to implement this.