Shiner is a turn-based strategy game where you learn every attack that gets used against you. It uses ludonarrative harmony to tell a story about cycles of abuse. Shiner is currently available on Steam for free!
Check out the Trailer:
I was responsible for everything other than audio on this project, so art, animation, programming, and game design were all my jurisdiction. The primary focus of the project was telling an emotionally cathartic story using narrative design.
On Ludonarrative Harmony:
To start, I want to acknowledge that a lot of different people have a lot of different words for "ludonarrative harmony." It's my term of choice per the 2016 thesis and academic paper "Designing for Ludonarrative Harmony" by Lauryn Ash, which is the first reference to the concept that I've seen in academic writing (at least as it pertains to game design). I've also heard people say "ludonarrative resonance" and "ludonarrative fit" to describe the same idea.
But what is it? Put simply, ludonarrative harmony refers to instances of a game's systems supporting its narrative, and vice versa. My goal with Shiner was to evoke ludonarrative harmony as much as I could, within reason. Here are some of the ways I did it:
When you get hit by an attack, you learn that attack. This represents how we can learn damaging behaviors from others.
The importance of consent is a key pillar of Shiner's narrative. The gameplay reflects this by requiring you to ask before initiating battles.
Shiner is a game about getting hurt. In the menu screens, the protagonist gets punched when buttons get clicked.
NPC's personalities are based on the attacks they know, as are their relationships with other characters. For example, Skrimpo and Sharpnut are friends because neither one has a kit that's capable of harming the other from a gameplay perspective.
Wally and Cal:
One of Shiner's biggest case studies in ludonarrative harmony comes from the interaction between the characters Wally and Cal:
In Shiner, you learn all the attacks of an opponent when you beat them in combat. Certain characters (like Wally) block doorways, and you need to beat them in order to proceed.
When you first encounter Wally, it's pretty apparent that you won't be able to beat them with your current kit. They have a buff called Snowfall that fully heals them at the start of every turn. That wouldn't be too bad if they were one-shottable, but they also have a massive health pool.
The player is faced with an impassable wall of ice - how can they beat it? Hopefully their brain will jump to Cal, the character made out of fire.
Cal has an attack (that you can learn) called Fireball - it deals damage and applies some stacks of the Burn debuff. Burn loses a stack when an enemy would heal, preventing them from healing! So yeah, Fireball is a hard-counter to Wally's infinite healing strategy.
Shiner's combat system takes a lot of inspiration from Pokémon, and these encounters are a deconstruction of the weakness/resistance system through the lens of ludonarrative harmony. What beats ice? Fire! But not because I say so, because the mechanics dictate that it does. I'm proud of this little interaction, it's basically a microcosm of everything I was trying to do with Shiner.
Shiner's Biggest Design Challenge:
In order to talk about this, I need to lay some groundwork. So as we've covered, in Shiner you learn new attacks by beating opponents and learning all of their attacks. Each zone is comprised of multiple opponents, with usually 1 especially tough one blocking a door. Opponents within a zone can be fought in any order. The conceit of the game is figuring out the right combo of moves to take to each fight, to learn more moves, ad infinitum. This leads to an extremely complicated design question:
How much synergy should the attacks in an individual opponent's kit have?
The obvious answer might first be "all the synergy," because isn't synergy good? But the core system of Shiner is learning attacks from multiple different enemies and finding cool ways to combine them. Therein lies the problem - if enemies have synergistic kits by default, the player will be robbed of the experience of discovering those synergies themselves. But the kits can't have no synergy, the game is trying to be ludonarratively harmonious after all.
What I ended up settling on was that I wanted to have a moderate level of synergy within enemy kits (to get the player inspired), but have the most exciting synergies come from combining different enemy kits together. An example of this is with the character Bouncer, who has 2 attacks:
Muddle: Debuffs your opponent so they deal half damage.
Bounce: Deals 2 damage, plus 2 more for each debuff your opponent has.
These attacks have moderate synergy - using Muddle first boosts Bounce to a 4-damage attack. It's easy for the player to realize that Bounce could be used to a much greater effect than it's being used here - multiple different debuffs or debuffs that apply multiple stacks at once are both ways to take Bounce to its limits. This kit opens the door for the player, but it's up to them to walk through it.
So that's the answer I arrived at: Show the player a little synergy, but give them the freedom to discover a lot of synergy. If you don't show them any synergy, they might not have the push they need to start rolling on their own. If you show them too much, they won't get to experience the immense joy of putting it together themselves.
Shiner is free on Steam at https://store.steampowered.com/app/2338850/Shiner/