Friday, April 22, 2016

Variables, Stats and Endings (The Sea Eternal)


The Sea Eternal uses a lot of complicated story variables, and a lot of them have effects on the story, but most of those variables aren't stored in the stats page, because the variables are small or complicated, or don't neatly fit into a perfect status. To that end, I kept most of the story elements hidden. Here are some examples of the different variables and how I used them.

Independent / Respectable + Bold / Patient

I used a limited number of number stats, creating a 2-axis measure of personality: Independent/Respectable and Bold/Caution. These stats tracked how players approached and solved their problems and, towards the end, determined which endings were available to players based on the personality they had been creating. For example, would it make sense for someone Respectable to suddenly support a rebellion? Maybe, but they'd support it very differently than someone who was more Independent. I didn't moralize any of the player's actions with a Good/Evil track, just kept track of the ways they solved problems.

In a way, the lack of a Good / Evil track was made easier by the fact that I never gave players ridiculously evil options (because it just wasn't that kind of game). I never gave players the choice to be racist or transphobic, or murderous serial killers. I think it was fair to keep the content clean in a game that deals with more inclusive themes.

I implemented hidden affection trackers for some of the NPCs to track how well the player treated them. I specifically kept them hidden because for those interactions, I wanted to give players the freedom to choose what felt right for them instead of trying to maximize affection or something like that.

I didn't implement many more stats past that because I wanted to leave a lot of the nuance of the story up to players. How does the player feel about the different factions, different NPCs, what are they optimistic that they'll be able to achieve, do they feel their desires are reachable? Keeping the stats page simple gave the player room for their interpretations to shine through. After all, it's a story written by me as the author, most of the ultimate meaning and connection comes from the player, and I wanted to give them space to fill that in for themselves.

Affection Variables

I wanted to make player agency and choice first and foremost in the gameplay: I wanted to make sure that players felt free and comfortable choosing options that made the most sense to them, that didn't necessarily agree with the feelings of other NPCs. But I still wanted a world where NPCs would react to player choices, would remember if the player had mistreated them.

Mechanically, I programmed this as an affection system that started out at a 10-point maximum and would take a hit whenever the player chose an action that was personally disrespectful or showed clear disinterest. Then certain reactions had a threshold they had to hit for them to succeed, or else the NPC would react more coldly towards the player.

This made a good system for accurately tracking a friendship that understands philosophical or idea differences, but does not tolerate mistreatment, but it makes a very poor variable to show on the stats screen. After all, the typical player will maybe only hit this bar once or twice in the whole game, and that's confusing why it doesn't move more often if it's being tracked.

For a very long time, I didn't show any variables for NPC affection at all, but that didn't sit well with me either. I wanted a system that told players how their choices were impacting their relationships. I actually ended up using a system that shows affection with text that changes with player actions. The text often has alternate lines based on previous player actions. I also ended up sometimes changing the affection text in response to actions, even if those actions didn't change the NPC affection numbers. These represented the sort of actions that friends may disapprove of, but understand eventually, or understand that you two are just different people. Doing this kept some of the system invisible to the players, and I think that's an okay way to approach different NPCs who are supposed to be viewed as full people, instead of just affection counters that players are trying to impress.

Using text instead of affection bars to represent NPC affection was a very complicated system, since it required custom responses for different paths in each scene, but it did a much better job of conveying the complexity of the NPC affection system.

One-off Variables

I used a lot of variables in small ways to tweak some dialogue or different interactions. These variables weren't necessarily important to grander choices the player had made, but were just there to keep the game flowing and well-paced, or feel consistent.

For instance, the first time the player steps out of the water, wherever that happens, they are treated to an elaborate description of that action, and then a variable tracks that this elaborate description is no longer necessary. Any other time the player gets out of the water, they get a shorter description.

Another game flow example is in minor changes to choice paraphrases. Sometimes choice variables would change after players learned new information or advanced the conversation. For instance, a choice line would change from something like “Leave empty-handed.” to “You have enough. Leave.” after the player had collected at least 1 item. It would have been easy to just consolidate both options into a single choice: “Leave.” but showing the progression communicates that the game is flowing just as the player thinks it will.


Barring some finer resolution details, most players should be able to reach a resolution that they want, that's satisfying. Players are given a choice in how they want to deal with issues that are larger than them, larger than any one individual. Some finer resolutions are stat-restricted, but mostly those stats decide the "how" of the ending, rather than the "what."

And this game has a lot of different endings. Both the ending and several scenes leading up to the ending have some fairly serious branches, really giving the player control of the endings that matter the most to them. Players can feel satisfied that their endings are unique to their choices and reflect what they care about most.

Having all this branching means that there's a lot of content that not all players will get to experience, which is typically a worry for designers, but there is a benefit to many players missing chunks of content. Playthroughs have more opportunities to feel unique. Each actions feels more satisfying, with players knowing that their actions and decisions matter. And that larger narrative helps carry the player through those different continuities.

This is on top of a shared narrative that is (almost!) always resolved, one way or another. The shared narrative helps give the game consistency and a sense of closure that tidies up issues that the player may or may not have gotten to.



  2. This comment has been removed by a blog administrator.