Tuesday, August 25, 2015

Time Compression Minus Space Compression

I love base-building games. You may have noticed.

But I have a big problem with them: every base-building game reduces characters to a cog. They exist to do a job. The individuals are played down, the base played up. I want a game where the characters are more important.

A core feature of base-building games is time compression. This allows the base to progress faster than life, which is obviously something you want. There are three ways of time compression.

One way is lifestyle compression, AKA space-time compression. This is like The Sims: each character in the base has things they do over the course of the day. They wander to and from various rooms or facilities, use them for a specific amount of time, then move on according to a compressed schedule.

Lifestyle compression normally exaggerates the cost of space. It takes 10 minutes to walk 10 feet in the Sims, so you're strongly rewarded for literally compressing your space. An ideal room in that game might be a large, many-cornered room where all the furniture is right by the door, so nobody ever has to actually walk across any of that space. It's not uncommon to mix rooms together to try and put functional furniture close to each other even though it would be a disaster in real life.

You can blunt this effect by having the characters teleport rather than cross space as the timer ticks, but this is rare and largely considered immersion-breaking. Keep this in mind, because it's related to my solution.

Another method is lifestyle trimming, AKA schedule compression. This became common in Flash and mobile games, and can be clearly seen in games like the mobile Fallout game about managing a vault. This compresses time by simply trimming away all the other things people might do. They are always at work, always in the classroom, whatever you have assigned them to do, they are always doing it. They don't need rest, they don't need food breaks, they don't have a personal life. They are cogs.

This method is great for not compressing space, allowing you to build your base more freely. But it has the side effect of destroying any semblance of personality: the people in your base are simply mechanisms to make the rooms function. You can try to assign them personalities in your head, but once you have more than about 7 of them, that tends to fall aside.

The last method is lifestyle chunking, AKA turn-based/phased scheduling. This is pretty rare, but the basic idea is that time progresses in chunks. This has the uncompressed space of lifestyle trimming, but leaves people's personal lives intact enough that they can have personalities and be remembered as unique individuals by the player.

This method is pretty rare because it's normally done using a turn-based approach, and that's fallen out of favor in recent years.

I'd like to describe a variant of this method which uses a real-time approach. I've designed and paper-prototyped a game, and it might be a fun illustration of how these three approaches are far from tapped out.


You are in control of freighter space ships, traveling vast distances. Each mission lasts months, years, or even decades - although you can have several ships running missions concurrently if you want.

This is the statistical heart of the game. How long is your trip? How many supplies did you bring? How fast/efficiently can you reuse or regenerate supplies? Food, water, clothes, 3D-printer goo, multipurpose electronics, entertainment supplies, luxury goods - all are worth considering as missions get longer.

This foundation drives the rest of the game, giving the player an easily understood baseline to work from. If you want to save mass, put in a water purifier that recycles most of your water. In the beginning, a 90%-efficient recycler works great. But as your mission length stretches to years or decades, you're willing to pay out the nose for a 95%, 98%, 99% efficient recycler. Maybe even have a crew member that is especially good with them to wring out every last possible percentage.

This is a natural growth. Simple, foundational limitations that urge the player to design a base to more efficiently push back against them. Each pushback is a little more complexity on the base building and management side of things. This is a "slow-cycle" gameplay, and is perfect for putting on some medium- or fast-cycle play on top. IE, managing the crew.

But a little more about the slow-cycle gameplay:

Each ship can be designed at least partially by you. This is a base-building game, after all. The ship chassis is set in stone: all you can do is choose what rooms go where. And, in many ship designs, some of those rooms are also set in stone.

The key trick in this Newtonian (no-light-speed-limit) universe is that the space ships are all designed around the same concept: accelerating for half the journey, then flipping and decelerating for half the journey. This produces an almost constant "gravity" towards the engine of the ship, and to minimize damage from interstellar particles, the ships are all classic 70s cigar shapes.

This is not just flavor. The interior of the ships reflect this approach, and every ship has the same three "decks". At the very top of the ship, where nose is narrowest, are the living quarters. Below that, the ship begins to widen, and you have the communal space/off-duty area. Below that the ship gets wider yet, and you have the on-duty areas like engineering, 3d-printing facilities, laboratories, bridge, etc.

That's just the nose of the ship: below that is a huge space for cargo and engines and whatever. But that space just exists statistically: you only care about those top three floors. On-duty, off-duty, and downtime.

And there's the secret. Rather than chunking our lifestyles by time, we're chunking them by floor.

When you look at the on-duty floor, you see your whole crew busy at work at their stations. No matter how many days pass, they work work work work work.

But if you pop up to the off-duty floor, you see your whole crew busy with their secondary tasks. Cooking, cleaning, eating, playing games, drinking together, going to lessons, exercising, etc. While they may move between these stations sometimes, they never leave this floor. You can watch them have their off-duty life continuously. Of course, this is just a view: they are also still working, there's no work penalty for watching them hang around off-duty.

If you pop up to the downtime floor, you see them sleeping and getting up and going to bed and trying to eat breakfast and stuff. Again, you can just watch this forever. They are also working and off-duty at the same time.

This three-view split allows you to easily handle whichever floor you want whenever you want.

The on-duty floor has a minimum of personality. Your characters are basically cogs, keeping the ship running. This floor has the most rooms in it since it's the widest area: in the starter ship, there would be a circle of 8 wedge-shaped rooms with stairs running up the middle. Later ships might have multiple circles, or half-circles, or other interesting configurations, but it's always circle-based with the same wedge-shaped rooms.

The off-duty floor has a narrower circle that continues up from the on-duty circle, with 6 rooms per full circle. This area is about tending to crew needs, starting with food and cleaning, then up to recreation, training, etc. Where people are assigned here is a strong indicator of their personality and interests, along with creating a coherent shape to push the crew to higher levels. You may need to tweak this to keep the crew happy, as most people aren't going to want to be assigned to KP for ten years straight.

The downtime floor is the narrowest circle, with only four wedge-shaped rooms per circle. These are bedrooms, bathrooms, and lounges - places you would hang out quietly, sleep, or get ready for the day. This isn't just flavor, either, because the way these rooms are allocated changes what people have what pull in what groups.

For example, the starter ship (a single circle, classic cigar shape) has 4 downtime rooms. One is hardwired as a lounge. Another needs to be a bathroom. The other two are bedrooms, but since there's a crew of three, there's a two-person bunkroom and a one-person private room.

The captain gets the private room. By that I mean: whoever is in the private room is probably the captain, because social rank is determined by who has the better or worse accommodations. This is reflected in the interpersonal events which can happen, and in the flavor interactions that happens as you watch.

Later on you'll get ships with multiple cores. For example, a two-pronged ship might have two cores, which means 8 downtime rooms. But the two circle cores are important because each is a different social circle. People in circle A tend to hang out with people in circle A, and B sticks with B.

This is a natural and easy way to "cluster" your inhabitants. Even if you have 30 crew, you can "chunk" them in your mind by who they hang out with and what their social standing is in their group. Each player can choose to chunk them in any method they please - one player might prefer to have "A" be for the greasemonkeys that keep the ship going and "B" for command staff and pencilnecks. Another player might have "A" be for women and "B" for men. Another might choose to cram everyone into "A" and have "B" entirely reserved for lounges and bathrooms. Since you choose your crew, you can choose to have only a few people in palatial suites, or cram dozens of people into coffin bunks.

These clusters propagate to the off-duty area. When not actively assigned to a specific duty, people will choose to hang out with others in their group. You can use this to gently guide the crew - force-assign one person from group A to a classroom, and the rest of the people in group A will automatically try to go to class with them... but they will take breaks when they want to, keeping themselves from overstressing. So assign that bookworm that never gets tired of studying to the classroom, and just let the whole group slowly rank up.

This kind of base management feels pretty easy in the paper prototype, and it seems easy to keep track of even ~30 characters.

The last piece of the puzzle is interpersonal events.

I don't think these events should be simulated, at least not past a very basic level. Instead, my approach is that when an opportunity for an interpersonal event arises (random chance), you can click on it and it displays a variety of possible outcomes. No explanation as to what happened to get them to that result. You choose whatever result you want, and imagine whatever interaction you want to justify it.

The potential results will vary depending on what floor you were on when you clicked the event, the established basic relationship of the two, and how they are socially related. IE, a married couple might have different potential results than two people that have never met.

In the paper prototype, I simulated this by drawing random outcomes, but having "upgrade" notes - if a specific relationship existed, the outcome was morphed. IE "start dating" morphs into "get married" if they are dating, morphs into "have kid" if they are married, etc. With this in mind, I can choose from several potential outcomes that reflect their basic relationship, and the game doesn't have to simulate anything or know personalities or anything.

This means A) the player gets to imagine events and personalities, B) we don't have to simulate them and C) we rarely, if ever, conflict with the player's vision.

Anyway, that's my design. If you got this far, let me know what you think. If I get some free time, maybe I'll try programming it.

Tuesday, August 18, 2015

Good Bad Game Design Pt 2

Today, I'd like to talk about construction games. But I do need to revisit the last essay on RPGs, because that has direct bearing.

I discussed good bad RPGs. Basically, open-world RPGs are often considered "badly designed" - poor characters, weird pacing, 'dull' mechanics. However, judging them by more linear RPG standards is a mistake. Open world games have different specialties and their best kinds of play are different from what we have grown used to. You can't judge them by linear standards, and liking one genre doesn't mean you'll like the other.

One of the biggest features of a linear RPG is the main quest. It's right there in the name of the genre: "linear" RPG. So you have a central rail, a quest that the whole game is hung from. This affects everything about the linear RPG: how you fight, how you get and spend resources, how you level up, who you can interact with, what you can do. With a strong core, you can create a wonderful game.

In an open-world game, the main quest is typically something you do when you get bored of goofing off.

Instead, we choose our own path. There are many tiny quests scattered around the world, and we can pick them up whenever we want. Some of them might be multi-part and pretty epic, but in general they are smaller things. Moreover, the fundamental nature of progression in the game world allows us to improve along a path of our choosing even if we don't do any of those side quests. Combined, this gives us a huge amount of freedom to play as we like.

The slack built into that kind of design also allows us to easily include mods. Since there is no core quest constraining us, it doesn't matter if we include a mod that turns all the NPCs into zombies and adds a giant volcano right where you normally start the game. Everything still "works fine".

We could polish this! We could make open world games with that in mind from the start. An environment to carve a path through, rather than a train ride to enjoy.


This is exactly the same as construction games.

In the past, construction games were mostly linear. You had levels and challenges and you built to achieve those goals. There were some games that were more open, such as Sim City, but there was no content or systems in place to allow the player to truly forge their own path. The kinds of things you could do were quite limited, even if you had freedom to do anything the game could allow.

The ur-example of a linear construction game is The Incredible Machine. If linear vs open world is a spectrum, that's pretty far to the 'linear' side.

As time went on, we became better at allowing for any kind of construction.

However, we still aren't very good at it. Our "open construction" games are a lot like the early Final Fantasy games. FF6, FF7 - these allowed you to go a wide variety of places, do a lot of things. But they aren't truly "open world", because the structure doesn't reward you carving your own path.

Many other games are more truly open world. Sure, recent games like Fallout 3, Skyrim, etc. But also archaic games like Wasteland, Fallout 1, etc. The difference is not technology, it's design.

These games are structured to reward doing things however you want. The progression system is open enough that you can progress in any direction. The world is designed to offer quest fragments to you no matter where you wander. The world is structured "lumpily", so you can switch between different gameplay experiences by simply moving around - wandering the wilds, delving dungeons, or talking in towns. The player chooses which kinds of things they want to do when, and how they want to do them.

Although FF6 is a fantastic game, it isn't open like that. There is momentum built into the game, both in terms of how your stats progress and how the world quests progress. Although you can "go anywhere", there is no contiguous reward chain for going wherever you want, and there's not really much variety in the kinds of approaches you can take.

Anyway, that's where we are with open construction games.

Games like Minecraft are open construction games in the same way that FF6 is an open world RPG. You can go anywhere, build anything, but the universe isn't configured to reward you for it. Normally, the community is responsible for rewarding you for building things. That's a different topic for another day, but the point is that we can design the game itself to shoulder some of that responsibility.

Space Engineers is a bit more open than Minecraft, largely because it has more construction pressures that you can choose to optionally enable. You can choose exactly how much inventory space should be multiplied by. Whether guns need ammo. Whether power is unlimited. Whether you have to weld blocks, and how fast. Whether engines damage nearby blocks. Whether blocks can be damaged at all. Whether stations can be shaken free. Whether there are enemies, and how many, how often, how close. How safe the world is from natural catastrophes.

In addition to those environmental factors, the universe also allows you to tackle specific engineering challenges as you see fit, both large and small. Pressurized environments? Renewable energy? Docking allowances? Interior defenses? Cryo chambers? Medical bays - wired or unwired? Turrets? Mining? Refining? Natural gravity? Planets? Cars? Tools allowed or banned? Jetpacks allowed or banned? All of these can be tackled in any combination.

The way construction and use can be decoupled offer additional challenges. You can build something in creative, but intend it to be used in survival. Or perhaps it was planned in creative, and you use a blueprint to slowly manufacture it in survival. Or maybe it was created in survival right from the start, painstakingly assembled block by block. The resulting ship is just a ship, but the exact method of its design and construction radically changes the experience.

There is also room for your own personal ideas - recreating a popular starship, or making a starship that's actually a challenging adventure map, or trying to make a personal ship that suits a fictional character you created. A planetary base, a floating chair, and office building - things that make no sense in the context of the game, but make sense to the players.

The freedom to approach your construction in such a wide variety of ways, with such a wide variety of goals and such a wide variety of optional challenges is very "open".

Add in mods, and it all extends even further.


Space Engineers is a bad construction game. Compared even to something like Minecraft, it is needlessly complex without adding much of value. But those judgments don't apply very well, because Space Engineers is not a survival crafting game, nor is it a linear construction puzzle game.

Space Engineers has a survival crafting element in it, but only as an optional challenge. There is power in tackling that challenge - but the challenge is not a lump sum. You can challenge it piecemeal - create a mining ship in creative, build a refinery in survival, change the inventory rules, alter the assembler speed multiple, switch back into creative...

Space Engineers isn't structured "perfectly". I don't think it pushes things anywhere near far enough, and the bugs inherent to its multiplayer wall off at least a dozen kinds of play. But you can see hints of how things could go: a construction game where you tackle challenges with a huge amount of freedom.

One thing Space Engineers doesn't have that an open-world RPG does have is continuity. It's not easy to "chain" your constructions, so there's not much sense of history or progress between builds. I would like to see a game where designs were "chained". You build a mining vessel, and then there's some kind of reward or flow to building a refinery base that interfaces with it. You build a frigate and then there's some kind of flow or reward for building a fighter or a carrier or something that travels with it.

Space Engineers cannot do this because they have more technical debt than any other game I've ever seen, and are too creaky to implement something like that. But it's certainly possible.

Anyway, I originally had a lot more to say. I wanted to talk about Kerbal, and Dragon's Dogma, and some theoretical game designs, and adding human elements... but this is the fourth time I've written this essay, so I had better stop.

Hope you found it interesting!

Tuesday, August 11, 2015

Good Bad Game Design

Skyrim is designed really badly. It's also designed really well.

For an RPG, Skyrim is hilariously bad. The characters are incredibly dull, the places are bland, the voice acting is generic to a hilarious extent, the graphics are uninteresting, the fighting is uninteresting.

Compared to non-open-world RPGs such as the Mass Effect series, Skyrim falls short on every measure.

Despite that, more people still play Skyrim than still play Mass Effect 3.

See, in that dry, generic, empty world, there is space for the player. Even in vanilla Skyrim, there is an endless variety of options. You can go in any direction, stumble across any number of little challenges, see any number of sights.

Yes, all the directions are boring. All the challenges are boring. All the sights are boring.

So why is it fun?

Something about a Role Playing Game that most people seem to forget is that the player gets out what they put in. Most RPGs have very generic protagonists. The game may offer you good and evil options, but even they are quite generic. Closed-world games like Mass Effect or Dragon Age supplement this with interesting characters: Shepard and, uh... Medieval Shepard... have no personality on their own. But you define a personality by surrounding them with characters that do. You build the personality of your hero by choosing their companions. Even if you just choose the companions you happen to like best, you are defining your Shepard as someone with a very similar personality to you.

If you offer enough secondary characters and constrain the number you can choose, you can allow a player some freedom to "put in" their personality and "get" role play out of it. Shepard has a character because you mentally justify why these party members are her favorite. You also get some characterization out of the choices you're presented with in the game, but I'd argue that the party member choice is the most compelling. At the very least, it's continuous and ongoing, rather than a one-off, so it wriggles in your brain and forces you to continually imagine how Shepard feels about how things are going.

In an open-world RPG, parties are rarer. Games like Fallout and Skyrim technically have a party mechanic, but it's very vague, and the characters you can add to your party have almost no impact, personality-wise. Is this a weakness?

No, not at all. In an open-world RPG, you "put in" actions rather than choices. Sure, there may still be choices. Maybe those choices are critical for planting the seed of personality.

But the continuous actions of play are where the character grows and blooms. Trying to sneak through a house or barracks. Deciding to shoot from afar. Deciding to rely on your dull party member to defend you. Looking for a secret inside the waterfall. Opening a creaking chest in the dark. Reacting to the sudden appearance of a pack of wolves.

Unlike a closed-world game, these events are all contiguous. Sometimes they move faster or slower, but they are almost never The Event You Should Be Having. Your avatar is living every second of this adventure, and it is developing in tandem with your actions. You are free to do anything and, in doing anything, you are free to be anyone.

Compound this with mods that change the world, and now you have even more options.

I think these ideas are important.

"Role play" requires the player to feel like the avatar exists. One way to do that is with pieces you painstakingly create for that purpose - a bitter choice, an amazing sight, an interesting companion. Another way to do that is to simply provide a world for the player to live in.

Anyway, I was going to go on and talk about the same "bad vs good" design in other kinds of games (comparing Space Engineers and Kerbal), but I think that's more than enough for today. Let me know what you think.

Thursday, August 06, 2015

Generating Episodes with Outrage

Well, I thought about it a lot, and I came up with a new kind of game. It's a base building game - let's say it's about a space station. You build the station, manage the various pieces much like any other construction game.

But it has a second kind of play: you can drop into episodic stories similar to what you might get on a TV show set on your station. Say, Babylon 5.

The secret sauce is outrage.

Instead of health, we track how angry characters are. An episodic story starts quite simply: someone is angry about something. We have a heuristic for setting up the whole situation - plonking in a bunch of characters with simple relationships, some resources, some places. For example, maybe a genocidal ex-warlord is visiting the station in secret, in order to get surgery to change his genetic fingerprint from a gray-market surgeon.

The player created a number of characters as the "named crew" - each with stats, skills, and personality. This time, the linchpin character is the station's official doctor. He realizes who the visitor is and becomes outraged that this warlord is still floating around free, and will escape forever if the surgery is successful.

The situation can be made as simple or complex as our engine and patience allow. We can add in constraints like "in this sector, there is no warrant for his arrest and no charges have been made against him" or "there is an assassin aiming for his life" or "he has young children" or "he has a shipment of slaves" or whatever. We can add as many or as few details as we would like.

The core driving force is the doctor's outrage. It's very high - over the maximum limit. The doctor is on an in-game timer: if he doesn't act within a few hours, the player will lose control and the doctor will act as an NPC for the rest of this episode. Of course, anyone can be enraged and act out because of it, the doctor is simply today's starter.

In order to keep control of the doctor, we have to act. Actions related to the outrage's source will reset the timer, so we can keep control if we do something related to the warlord. Ideally, we would like to reduce the outrage, but that's significantly harder to do since the source is something outside of our control.

Here starts the gameplay proper. What does the player do during these episodes?

The key is to not make the player do anything. The player is allowed to take any action they want (well, that we modeled). We don't insist that the player bring the warlord to justice, or protect him from the assassin, or whatever. The only thing we do is set up a situation where if the player doesn't act, he'll probably lose a character (the doctor will go rogue due to high outrage).

ANY action related to the source of the outrage will delay the doctor going rogue, and the player can take more or less any action. This is a simple-asset 2D game, so you control the doctor mostly via menus rather than any kind of walking around, and that means you can select actions from lists in menus.

There are a large number of unique and interesting skills in this world, and each character you create has some of them. The doctor might have "contagion management" and "medicine" as two high-rated skills. These skills come bundled with generic actions: "quarantine" is one from contagion management, while "sedate" is one from medicine. In addition, the doctor's position as head doctor also gives him some authority over other doctors on the station, including the gray-market surgeon. The doctor also has a huge number of other generic actions such as moving around, calling friends, carrying stuff, whatever.

The key to all of this is that every action causes outrage dependent on how much it annoys the people affected by it. You can avoid outrage if your action is in regards to something that is already causing them outrage, but that's definitely not the case here. If the doctor decides to quarantine the warlord, he can. But it will outrage the warlord and his crew. Moreover, they will all know who they are outraged at: the doctor. This might be good, it might be bad, that's up to the player to decide.

Instead, the doctor could choose to sedate the warlord and sneak him away to some secret place. This causes substantially more outrage, but since it was done in secret, the crew don't know who to be angry at and are instead just angry in general.

The player can continue to take any action they please, targeting any character or place they please. Maybe it's time to activate the cop character: otherwise, those angry crew are going to cause a lot of trouble for the space station. But the cop doesn't know the doctor is the kidnapper, and the doctor is still boiling over with fury: he'll go rogue soon, since he's done taking actions against the source of his outrage.

Fortunately, the cop can use her 'investigate' action and look deeply into the visiting ship. If this had been done right at the start, it would have caused a lot of outrage, but in this case there is an excuse. The crew members don't get outraged - the cop is acting in regards to the source of their anger. They don't get any less outraged, either, but at least their angry actions are delayed while the cop acts on their behalf.

The doctor is also assuaged by the cop's investigation, since the source of the doctor's outrage is the kidnapping victim, and the cop's investigations naturally bring that up. So the result is that the cop gets to investigate while simultaneously pacifying everyone on both sides of the fence. A good way to have the situation unfold.

Complexities, secrets, hidden agendas, and time limits can all be deployed to screw the player up. That part is straightforward.

What's not straightforward is creating and modeling all the various actions that the various characters can take.

Well, it is straightforward, but it needs explaining.

Actions fall into a few basic categories. These categories can be expanded on later if needed, but the idea is the same: variations on a theme.

For example, "lockdown" is one generic action type. This includes arrests, drugging, kidnapping, quarantining, stabbing, delaying, identity chip canceling - the intent is to keep the target from performing specific kinds of actions. For example, kidnapping someone removes almost every kind of action they could take, while locking down their bank account just prevents them from taking actions that cost money. Of course, locking down someone's bank account generates a lot less outrage than kidnapping them.

Each lockdown action filters out various actions and has various acceptable excuses to prevent outrage.

Another action category is "travel". This would include walking, sneaking, driving, taking a taxi, flying a spacecar, flying a battleship, etc. Each of these kinds of travel has a different price and annoys people in different ways, as well as covering different distances with different minimum ranges and with different up-front delays. Travel can be aimed at people as well as places, so our doctor could tail the warlord by using any of these actions with a lower minimum range than his current range.

Another action category is "communicate". This is the action of sharing outrage between people in various ways, and includes gossip, complain, compliment, reassure, etc. One of the biggest issues for the player is that outraged characters will tend to gossip and complain, spreading that outrage to everyone.

Another action category is "investigate". This could include stakeouts, interviews, sensor analysis, hacking into databases, etc. Each specific action has different parameters and different targets, but the fundamental result - coming out of it with more data to act on - is the same. Having additional data can mean knowing more targets (people or places) for other actions, but it can also mean being able to "inoculate" people.

This is when you cause someone to get outraged at something specifically so you can take an action and not outrage them. For example, if you arrest someone without cause, they'll complain and spread their outrage to everyone they can talk to. But if you have evidence that they are a murderer, those people will be inoculated against it, and only people who aren't upset by a murderer will be upset by the arrest. This can even inoculate the murderer in some situations, creating wonderfully complex characters!

Another action category is "instigate". This includes blackmail, allying, fast-talking, seducing, programming, etc. The various kinds of targets that you are trying to convince, the method used to convince them, and the kinds of actions you can make them take might all vary, but the fundamental act of instigating is easy to model.

All of this results in a system where we understand the basic parameters in play and how each category of action affects them. It's up to the player whether they prefer to use stakeouts or interviews to do their investigation. Or perhaps they prefer to instigate instead of investigate. The machine is just as happy to chew on that action and alter the scenario to fit the result.

The difficulty is not the actions, but creating an interesting response to the action. If the player can stakeout or interview, what makes one better than the other? Aside from having one point more skill in one or the other, why would a character prefer one or the other?

That's where the situation needs to be complex and multi-faced. Outrage is a big help here: in trying to minimize outrage, you'll often find one or another action does best. Stakeouts and interviews create or assuage outrage at different times. Stakeouts tend to be secret, creating and assuaging outrage only with other people on the team. Interviews might create some outrage depending on the willingness of the target, but they are also more obvious, and therefore can be used to delay outrage onset by convincing people that you are acting to resolve some outrageous situation.

Combine this with the tactical situation, and you have plenty of beautiful variables. Stakeouts take time - but sometimes that's exactly what you want, if you want to be available to act the moment they do something suspicious. Interviews are fast - but how likely is it that they know something? Are you going to give away more about what you're after than they'll give away to you?

Each character you build has different specialties, but unlike an ordinary RPG, you don't travel in packs most of the time. Each character you bring into a scenario reduces the reward, so there's a lot of pressure to act independently. In addition, outrage can build up between characters and you can lose control over someone if you're not careful.

Functionally, this means you can't always choose your cop. You won't always have high skills in stakeouts and interviews. Maybe it's your systems engineer today, and you need to investigate by hacking databases or deploying sensors. Different parameters, different tradeoffs.

Now, regarding NPCs.

Outraged NPCs are active NPCs. Even mild amounts of outrage make people more difficult to deal with, but the more outraged someone is, the faster and more aggressively they'll take action. The question is: what kinds of action?

The good news is that it's easy to determine what kind of action they'll take. Just pick an action associated with a high skill. "Move" or "complain" if that turns out to be inapplicable.

The really good news is that you can make this have dramatic irony very easily. Whereas the player chooses targets carefully to try and resolve the situation, the NPCs choose whoever will gain the largest percentage of outrage.

For example, the warlord's crew is running around the station causing trouble. They consider troubling everyone, including both the cop and the doctor. The doctor is already hugely outraged, has been since the beginning. Five more points of outrage isn't even a dent. So we hear about it from the cop, who goes from 0 to 5 outrage. This pulls the cop into the story a bit more solidly - she now has a "reason" to get involved.

This basic system means that any person or place that is explicitly introduced will be cycled into the plot opportunistically. It also means that "B" plots are easy - just activate two plots at once, and they'll naturally tangle as NPC actions target the least upset people on both sides and raise the temperature to boiling. It might not even be a player character: the warlord's crew might piss off a visiting trade delegation or your captain's mom.

This is a pretty simple, straightforward system built explicitly for a low-representation game. That is, these actions don't play out in detail, it's more visual-novel-style graphics and focuses more on the results rather than the processes. In a game where 3D models have to act out every detail of staking out or kidnapping or flying space ships, this would be prohibitively expensive. But if we restrain ourselves, it's easy to model them statistically instead of physically.

That's the outrage engine I invented, and this is the shortest essay on it I could write. First time it's been less than ten pages long.

Monday, July 20, 2015

Life in a Game

So, after Space Engineer's recent disastrous update, I switched back to Rimworld for a while.

Rimworld is coming along nicely. You can build complex bases, set up your citizens in complex ways. There's a lot of fun to be had, especially when you start laying on the mods. But there is a big weakness. I can't blame it on Rimworld: it's a weakness in all base-building games.

The problem with these games is that nobody lives in your bases.

OK, I know there's, like, 30 people living in the base according to the game. They wander around, have their little tasks. In Rimworld they even goof off or chat. Still, none of them actually feel alive. They don't form relationships. They don't have hobbies. They don't do things with each other, have friends, have enemies. They don't have lifestyles or emotions, at least none that are differentiated in any significant way from anyone else. They have a lot of stats, but who cares?

As the number of people in your team goes up, their individual stats matter less and less. Instead, how they contribute to the operation of the team is what matters. It doesn't matter whether person A is marginally better or worse at farming, it matters whether they can play the farming role, and whether they should be a focused farmer or someone who helps farm when the workload gets rough but has other jobs the rest of the time.

What's the alternative?

There's a reason the Sims was popular: it allowed players to feel like their little avatars were living a life. The tools used to do this were simple: a familiar scenario (working and cohabitating) with clearly defined roles, lifestyles, relationships, optional goals (having kids, ranking up, collecting meteors, etc), attention retention (everyone needs to be clicked on sometimes), and personality proxies (appearance, clothing sets, certain personality traits).

Let's talk about each of the techniques individually, and then let's talk about how to shape your game to allow for them.

Personality proxies are the most problematic, because they bring in the most from outside the game world. We'll have to talk about them in detail later, but the short version is that you have to be able to tell who is who. If you have more than four team members, having slightly different names and icons isn't going to cut it: you need a dense representation of who is who, along as many axes as possible. Not just physical appearance, but voice, animations, fashion, mannerisms, personal possessions, and room decoration.

Lifestyles are technically a personality proxie, but it's worth mentioning them as a distinct group because these interact with the world, or at least the timing of things. Lifestyles are specific habits, inhibitions, and judgments not shared by the rest of the group - for example, one person might obsessively collect statues, one person might be the only person on base that smokes weed, one person might only work at night, one person might dress in finery get offended if someone else looks shlubby.

Lifestyles are powerful because they are behavioral elements. However, these should not be chosen willy-nilly. When we talk about how to do personality proxies, we'll be bringing these up again.

Evocative scenario: A familiar scenario is a way to allow the player to hook into the game world. Almost everyone has struggled to work a day job, had roomies, eaten pizza, invited people over, etc. This familiar setting can have any characters inserted into it, since living with Spock and Captain Kirk in a tiny apartment is hilarious.

But, again, this brings in a lot from outside: "familiar" scenario assumes it is familiar. Similarly, while it allows the player to import characters they already have an attachment to, it isn't very good at differentiating random characters. Everyone has to live, eat, participate in daily life. You can put Spock into an apartment, but someone as interesting and evocative as Spock cannot arise from an apartment. There's no room for his characterization.

Because of that, if we're focusing on random characters, we need the exact opposite. Rather than a familiar scenario, we need an evocative, unfamiliar scenario that will allow characters to establish and continually re-establish a strong personality.

Clearly defined roles are important to allow people to distinguish themselves at the most fundamental level. The wider the disparity of roles, the wider the variation between the characters. In The Sims, you have the breadwinner, the housemaker, the children, the skeezy roomie, and so on. You also have all the details you drag in from your expectations: the annoying roomie, the tidy roomie, the control-freak roomie. It's two axes of roles: one aligned with the core gameplay (time/money), one aligned with personal interactions with shared resources.

If we're generating characters randomly, we need to have roles that offer us powerful differentiation. We slot the character into a role and suddenly they come alive. The green thumb luddite is facility manager? We suddenly have an explosion of expectations about how the facility will function and how they will interact with other characters even if none of that actually happens in the game.

The difficulty is getting a breadth of roles. You can't simply use social status, because a simple numeric rank isn't evocative enough. Instead, think of each role as "which core task do they do, when?"

In The Sims, you don't really have "breadwinner A, B, and C", you have one person that wastes their life working in an office, another one that does arts from home, and maybe a third that works part-time at night but still keeps their days largely free. These roles each interact with the core scenario in a different way, at a different place and time. In addition, the people that don't work aren't simply "not working". Each has a role within the function of the house and life in general. One is a child, one is raising children, one is studying for college, one is a housekeeper, one is a social climber, etc, etc.

It's not that the breadwinner has a higher social rank. It's that everyone has their own approach to some set of core tasks.

If we can somehow break the core tasks into two completely distinct groups, it gives everyone two roles, which is even better.

Optional goals are a powerful tool to pull the player into the game world. These are things which take quite a while to accomplish in full, but have numerous small steps you can take along the way. By choosing to dedicate characters to these goals, the player can set up their own story arc and create numerous opportunities for the other characters to get involved peripherally.

The Sims is full of these. You're always working towards something. Whether it's ranking up your day job, improving your skills, or raising your kid, there's always a task you've chosen to do and it's working towards a long-term goal you've chosen to aim for.

Optional goals are incredibly important for distinguishing randomized characters, because they give the characters a Want. When a character wants something, they come alive. In a randomly-generated team, every character having a Want would get confusing and muddled, which is why I think it's best to allow the player to assign these wants by aiming for specific end goals. Even if the character doesn't understand that they are aiming for a specific end goal, they will continue to perform the step-by-step actions towards that goal at the player's command, and therefore act as if they do understand and are aiming for the end goal.

Relationships are also valuable, but, again, they should be used to help the player differentiate the characters. Rather than randomly forming relationships, it is generally better to allow the player to choose which characters get along in which ways, because the player is forming a personal memory of these characters and relating them on purpose.

Not all relationships are simple vanilla romances. Ideally, a flexible relationship engine will allow the player to create the range of complex human relationships. The game doesn't have to understand exactly what a "rival" is or exactly how a "love triangle" works, but it should allow the player to drive these defined relationships around while creating a pretty reliable framework to hang them on.

A fun option is to create optional complications in exchange for some kind of bonus. Rather than forcing person A to fall in love with person B, you can give the player the option of allowing it in exchange for a level boost to those characters. Let the player choose whether to let that interfere with their carefully-laid plans or not.

Attention Retention is a trick used to keep characters in the player's memory. Once you have more than about four characters, some of them will necessarily become background characters. To prevent them from fading out of the player's mind and become cogs in the game's machinery, you need to draw the player's attention back to them once in a while.

There are a lot of ways to do this, but my favorite is to add a "token" to each player every time period. When a player activates a character for some kind of social interaction, the tokens can be used to level up. Therefore, background characters will sometimes jump into the foreground and level up dramatically, which is a fun way to do it.


Now. Let's talk about the first and most important way to make generated characters interesting: personality proxies and lifestyles.

This needs special attention for a lot of reasons, but let's start with the basics.

When we build a character in a game with defined characters, we design the characters to reflect their personalities. Every aspect of their appearance, voice, mannerisms, fashion, animations, possessions, and even room decorations reflect their personality.

However, random characters do not usually have that setup. That's because if you try it, you'll end up with incredibly offensive and limited stereotypes. Instead, most devs use personality traits that aren't related to your physical appearance or fashion choices. It's less limited, but it's also much harder to distinguish your characters. Moreover, the "colorblind" approach is not a whole lot better, as it assumes the universal culture is your own.

The thing to consider is that most games with defined characters have those characters resonate with their life situation. That is, they are who they are because of their own culture. For example, Tali is a really bad stereotype, but she constantly interacts with and resonates with her situation. You are asked to understand why she is who she is, rather than just treating her as a given. Even the blue bisexuals that want to bang you have a lot of culture and society and general baggage that tries to make them more interesting than their stereotype.

Most of the time, rather than having each species stand in for a kind of human, we've started to have each species stand in for a kind of lifestyle or situation. It would have been easy to make the Krogan a literal stand-in for native Americans, and the Qunari as stand-ins for Russians. Instead, they went the other way and carefully made them not stand-ins. Mostly.

It's not a flawless approach, but it's generally pretty good. The idea is to create artificial situations, artificial cultures and societies. Each one represents some core concern in your universe's fiction.

An easy example is Dragon Age, which chose to make its elves a destitute amalgam of every oppressed minority they could think up. The elves don't represent a specific human culture, but they do resonate with the idea of oppression. Dragon Age has a lot to say about oppression and the nature of power, so having a tentpole species represent one corner of that idea was a pretty good idea. We can argue about how it fell short, but it is fundamentally a pretty good idea.

Rimworld doesn't have any deep fiction to it, but the game mechanics suggest specific human concerns. People within a few hundred miles of each other can have radically different technologies and resource levels, meaning that disparity is tremendous. You have the technology to build a fully self-sufficient base in just a few months, except for the waves of attackers that come to steal your things. So disparity is tremendous and violence is common. Life is cheap, technology is cheap, everything is cheap.

It would be relatively easy to come up with cultures that anchor these concepts. Your crew could easily come from those cultures, which would allow them to have a lot of baseline opinions and an easy-to-understand personality. Moreover, you could have each culture be visually distinct.

Not as in "these guys are brown, those guys are pink". Differentiation should be chosen more carefully. If everyone is human, differentiate mostly on things any human could choose to do: fashion, accent, behavior, tattoos, hair dye/cut, equipment, room clutter, etc. The idea is to give the player strong audiovisual clues as to the situation and personality of the characters without implying anything horrible on accident.

Rimworld would have a particularly difficult time of it, though, because the characters are so tiny and indistinct. I would probably add larger portraits to help with that, but another option is to allow the characters to alter their surroundings. For example, a character might have a dominant color scheme, and everything they own (including the things they wear) is automatically recolored to it. They might leave specific kinds of clutter in the places they hang out. They could even have flavored footsteps - different timbre to represent how they move. There are a lot of ways to make the characters more distinct, and you should try them all.

Of course, not all of them should be about distinguishing which fake culture the person is from. A lot of them should be related to that person's personality, instead.

Now, about lifestyles.

Lifestyles are an extension of this idea, but are active. They are habits, inhibitions, and judgments. These allow a character to interact with other characters and with the operation of the group in general.

Personality proxies as discussed above are largely passive, and are intended mostly to help players remember who is who. But lifestyles push. This is when the characters start to come alive a bit: by interacting with things and people in specific ways, you can get a resonance.

Someone's personality is largely defined by how it resonates with their situation. A lot of that will happen in the player's head or in the lore of the universe - "people from faction A have been oppressed for centuries by-" done, we know the basis for their behavior. But sometimes we want to see that resonance come into existence in the game world proper.

This is extra powerful in a base-building game, because you can arrange the base to cause different kinds of situations depending on the lifestyles of the people within it. If someone insists on always wearing the best finery, a dusty, overheated base will be a nightmare for them.

The critical thing about lifestyles to remember is that it is for the player's benefit, not the characters'. Every lifestyle exists to resonate with something else the player controls, whether it's another character or the base itself. Because of that, lifestyles should only resonate with what the character can control, and they should resonate on-camera.

For example, in Rimworld there is a trait that makes a character annoying, and anyone that talks with them gets annoyed. However, there is really no way for the player to control who socializes with who, so it takes a lot of effort to mitigate that lifestyle. If there were more tools for controlling socialization, it would be a more interesting trait.

Ideally, each lifestyle should interact with something the player can control. The more nuanced and constructive that control is, the better. A dusty, hot base can be mitigated with air conditioning, filters, and a dedicated janitor, so it's a pretty good trait... if you allow the player to do those things. But each of those things comes with another side effect, and that's the heart of this.

You ask the player to consider the characters, to work the characters into their core concerns. To choose how far to go for each character. It's a promising approach.

Anyway, those are my thoughts.

Tuesday, July 14, 2015

Characterization in Games

There's some talk about Mass Effect 4.

I remember really liking the first three, although they got worse with each release. I remember liking the characters and the feel of the universe, although it had some transparent flaws that got more glaring with each iteration. The big draw was the characters.

But now, looking back, I don't remember the characters much. I mean, I remember them - Tali and Wrex and Liara and so on - but I don't have any fond memories of them. The only characters I remember well are Chakwas and Garrus.

Why them?

Because they hung out with me.

Hell, I remember the nameless meat-head marine in the last game better than most of the characters I actually liked, because his first major scene was him hanging out with me. Sure, he was annoying, but we interacted socially.

Game designers are typically worried about bang for the buck, so the scenes they write are usually A) exposition, B) entertainment, and/or C) rewards. For example, Mordin was written for "entertaining" exposition, and even had a few purely entertainment scenes, such as his famous song. On the other hand, Liara is basically the same character written for "rewarding" exposition - she's nice to look at for the target audience, has an attractive voice, wants to date you instantly, and spouts exposition.

All of these options are aimed at the "unnamed player" - the person pushing through the game. Although in theory Liara and Mordin are interacting in-world with Commander Shepard, they're really aiming at the person holding the controller. You can clearly see that by how your responses are framed: Shepard doesn't have any strong or nuanced reactions, just a basic binary response you select from the generic menu. The scenes are aimed at the "unnamed player", not at Shepard, your version of Shepard, or you playing Shepard.

Easy way to tell? Shephard never laughs, grunts, or sighs until you say she should.

By removing Shepard from the equation, it's easy to make generic, highly acceptable events. Shepard has no nuanced response because that maximizes acceptability: if a player finds Mordin's canned, West-Wingish dialog annoying, or hates blue space babes, that's okay. Shepard can hate them, too, just select it from the drop-down list.

That said, it's no mistake that the most memorable scenes in the game don't ask you to judge anything at all. When you're shooting with Garrus, it never asks for your opinion on Garrus or on shooting or whatever. It just asks you whether you want to hit or miss. Shepard is allowed to react as Garrus' friend, and they get some very pleasant and rewarding patter going without the "unnamed player" ever stepping in to pass judgment.

That's why the scene is so powerful: it builds up an easy, rolling pace. The characters are in the right world, behaving as they really would, and it doesn't interrupt itself to ask the player what they think. At this point, if you aren't friends with Garrus, you can screw off.

It worked.

I don't know if that scene is the thing everyone remembers most from ME3. But after time has passed, it is the first thing I remember about all three games. And I replayed ME1 after ME3.

The Chakwas scene is similar. You aren't asked to judge whether you like Chakwas or not, or what you think of her talking about the old days. Instead, it's allowed to unfold gently, organically, from the two characters. The player is not involved, but because the scene is honest, they'll remember it for a long time. I can't even remember which game the scene was in, but I remember the scene.


Stop making generic protagonists. Stop asking the player what they think.

Let the player choose by doing. If the player keeps approaching Garrus, assume they like him. Give the player choice by giving them physical choice: hit or miss. Drink or leave. Hug or pat. Then let the scenes work out based on the characters. People will remember it longer, I think.

Tuesday, June 30, 2015

Medieval Misstep

A while back I tried to write about Medieval Engineers, and I don't think I quite managed it. I put it off for later.

Well, there is no later, they just ruined it. So let's talk about what was.

Medieval Engineers had no inventory system.

A construction game with no inventory system!

It felt like a good match. The medieval setting combines well with every component having a physical presence. The weight of all the stone and lumber exists in the real world, and it felt real, it felt right. Building a house requires a houseload of lumber!

You would have to hew the lumber, then put it in a cart, then drag the cart - perhaps along a road. Then unload the lumber. It was a chore, but one that felt real, and could probably have been mitigated using NPC workers (which already exist).

Moreover, staging the construction became a major, interesting challenge. Those logs and stones have to be within a few meters of the thing you're building. So if you're building a five-story-high stone wall, you need to create a scaffold, haul the stones up, and put them near the next floor.

It really felt like medieval engineering. It was a hint of a powerful idea that could have been absolutely unique.

Well, I don't know if people complained or what, but they removed that idea. Now you have an inventory.

Even at its smallest, in the demo, it shows you being able to carry around 20 sledgehammers. So, yeah, stuff your pockets full of boulders and logs, who needs staging? Who needs carts? Who needs cranes or roads or quarries?


In any engineering game, the question is: what are you engineering around? What challenges are you trying to solve?

For two weeks, Medieval Engineers had a new challenge. One I've never seen before. You were trying to engineer around your own engineering. It was a wonderful seed of an idea, and it felt so promising, matched the setting so well.

But it is important to be generic. If you're unique, some players might complain that you're not exactly like the last game they played, and you wouldn't want that. It's got to be exactly the same, down to the exact flat-slot inventory model.