Game Design Deep Dive is an ongoing Gamasutra series with the goal of shedding light on specific design features or mechanics within a video game, in order to show how seemingly simple, fundamental design decisions aren't really that simple at all.
Who: Scott Brodie, Lead Designer & Programmer
In 2010 I left Microsoft Game Studios to found Heart Shaped Games. Hero Generations was the first game I focused on, and the early version was selected as an IndieCade Finalist. However, after a year of mostly solo development, and a brief (and commercially unsuccessful) web release of the prototype, I put the game on the shelf and focused on a new original design, the multiplayer CCG Highgrounds.
Fast forward to the beginning of 2014, and I decided to take what I learned from making Highgrounds and try to build a better Hero Generations. I ran a successful Kickstarter for funds to finish the game in April 2014, and it enabled me to bring on a proper team of Artist Dominic Sodano, Musician Andrew Riley, and part-time Producer Patrick Shaw to make the polished game I had always intended. The new version was just released on April 10th on Steam, OUYA, and Humble Store.
What: Generational systems in Hero Generations
Hero Generations revolves around a core system of character death and creation. Your Hero ages 1 year with each step they take, and the player must seek out a mate before they die to create a child with.
An early sketch of the world map at play in Hero Generations
That child is then procedurally generated (functionally and visually) based upon the properties and behaviors of the two parents. The initial inspiration stemmed from a few places:
- The desire to see more of the outcomes of procedural systems in games: there are a lot of games that let you create characters, and have deep systems for letting you customize them. Inevitably though, you usually end up only experiencing 1 or 2 instances of the possibility space. I wanted to make a system that at its core let you see the thousands of possible permutations of characters that the system could create over time.
- The surprise of putting two things together: As a core game “toy”, it was incredibly fun to take two things, and imagine what the result of a combination of those two would become. That loop of imagining the outcome, seeing an unexpected and surprising result, then imagining how that iteration would combine with something else seemed like fruitful ground for a full game.
- The desire to remove the pain of permadeath in roguelikes: Permadeath is fantastic for creating high stakes / tense / meaningful experiences. I wanted to create games with that same meaning, but that were more accessible and less punishing. The generational idea seemed to allow you to start fresh with a new character, while still feeling like you were able to keep enough of your past characters qualities (traits, heirlooms, and world buildings) that it didn’t feel like a huge loss.
- Force long-term thinking: While this is a major theme of the overall game, I wanted the impact of your choices to directly influence how your next character was created as well. For example, knowing that choosing a warrior’s life likely means your offspring will be given warrior traits (for better or worse) adds interest to the core game choices. If the character generation system didn’t take your past actions into account, you would likely always optimize towards your current character’s needs.
It was with this mix of goals for the system that I started prototyping.
Here were some of the considerations given to each of these components of the generational system throughout development. [I also want to call out the early collaboration done with my good friend and design mentor Daniel Cook of Spry Fox. In the early stages of design, Daniel and I met often to talk through the design issues with the generational system and game in general.]
The biggest challenge with designing the character system was deciding what properties to REMOVE. In a way, the overall game is a “life simulator” and because of that similarity, it was easy to think of RPG-stat-like things to add. Some examples of cut character properties:
- A wisdom stat – a value used in determining view distance and building capability.
- “Research” progress of various games and technologies that could grow and wane the more you spent time on them.
- A popularity/attractiveness stat (how often you hung around a town influenced its mates appreciation of you, and could carry over generations).
- Growth curves – year-by-year transformations of your wisdom and health based upon your parents stat change over time. (this was kept but paired down to more finite “milestone” moments)
- Size – A value that represents the physical growth of the character.
I eventually reduced the character properties to 4 key variables:
- A strength stat that represented general physical growth and power.
- Gold - that represented your ability to make change to the world.
- Lifespan – a general “years left” counter.
- Fame - a general status measurement you could compare against other players and AI heroes
The result of focusing the stat sheet to such a small set was that you ended up with deeper interactions, and you saw more drastic consequences to your actions, because everything is connected. For example, losing strength meant:
- Losing out on attracting high level mates who wanted strong heroes.
- Unable to follow paths blocked by strong NPC heroes.
- Unable to complete quests, like pulling the sword from the stone.
This type of change had the ability to cause your entire line of future characters to chart a different path then you originally planned.
Traits & Mating
To make “putting two characters together” interesting forever, it was important that we not completely strip down the complexity of the character. One area we could keep complexity was in the look and feel of the characters. Our final rig has some 25 configurable parts, which can be varied in color and pattern. I initially had created a very crude prototype using code from an old game (The Beggar) where you could hit a button and see a new design appear for the look and feel of the simple, blocky characters. It was enjoyable enough to make me want to explore it more.
The other area I kept complexity and interest was with a set of special abilities called traits. Traits have a huge variety of effects (ex: “Warrior – 25% boost to strength in combat”, “Haggler – 30% more gold earned from selling items”), and give each character more flavor. We eventually sorted out that it was better to have fewer traits per character (we landed on two), but allow the traits to have a lot of complexity to them. So it was easy enough to understand, but still allowed for there to be surprising character designs to emerge through the pairings of different trait types.
Deciding What Gets Lost & What Persists
The other main trouble spot was handling the transition of properties and traits from one character to the other. At first we tried to follow nature: traits and stat bonuses from each parent were thrown into a hidden RNG and a new character was given to you.
This did not go over well. Players were mad that they didn’t get to keep a trait they worked hard to acquire in the last generation, and felt as though the game had taken something from them.
To solve this issue, we did two things:
- Gave players agency in choice, even if faux: inheritable traits and bonuses were put onto cards that were turned over, and players were given a set number of turns to flip over cards. The chosen cards were applied to the new hero. Simply making the players do the blind picking made them feel ownership over the choices, and players started to blame themselves for bad picks instead of the game.
- Gave players some information: the totally blind approach worked fine, but players complained that it still felt too random. To solve this, we gave players a bunch of ways to gain information about where cards they wanted lived on the board. For example, some traits you can earn have the effect of flipping over the location of certain card types; others can change the board so that it contains more lifespan bonuses, thus making the outcome of choices more predictable.
This “flip card game” approach became its own fun activity and still allowed us to keep the surprising variation quality of the design we wanted.
The game is still freshly released, so I am still sorting out if these design choices ultimately were the best path. I can completely imagine a version of the character system that has more variables and complexity to it, that would still be just as fun.
A lot of these choices stemmed from my original target of the web audience (the game originally started out on Facebook, but the final release is a heftier single downloadable game on Steam, OUYA, and our website). But I think the overall set of choices has lead to the experience I wanted, and the system has yet to get tiring to play with, even over 5+ years of development.