Monday, September 10, 2018

Character-Driven Game Design

Well, another day, another trailer.

These days, a lot of video game teasers and trailers are animated shorts with no relation to the gameplay. Today, League of Legends posted a teaser about an energetic, funny space ship crew and asked you to join up.

Of course, it's not an energetic, funny space ship crew game. It's League of Legends, meaning it's a MOBA - a plodding arena combat genre known mostly for toxic team play. In short, not energetic, not funny, not character-driven.

This is not a one-off. Virtually every major action game has been releasing character-driven shorts of extremely high quality and pretending it has something to do with the game in question.

It reminds me of the old days, when the cover art sold the video game. Except, of course, the cover art would be some Vallejo painting and the game would be eight pixel high sprites jumping from platform to platform.

Given the response I and many others have to these teasers, it's clear there is an interest in high-energy, cinematic, character-driven experiences.

But no games like that ever seem to come out.

Let's talk about it!

Hangin' Out, Havin' Ourselves a Parrrrtaaay

There are games with strong characters. For example, Telltale-style adventures. However, you can't really "hang out" in those games. The narratives are character-driven, but the games are narrative-driven. This is a bad fit for me: I care a whole lot about the characters I'm hanging out with, and the distraction of being told to uncover some ancient secret while fighting off invading ninjas just weakens the experience.

There are games where you can hang out. For example, open world RPGs. However, while you can hang out in the world, you can't really hang out with the characters. They're programmed to only really respond to specific world events. Worse, semi-open RPGs like FFXV or Dragon Age often ruin the hangingoutness with dull filler and melodrama in equal measure.

But I mod games. A lot.

A modded party member has the disadvantage of not being in the core event structure. They aren't introduced in some blazing cinematic, and they don't have loyalty quests.

This means that the modded party member has to make their presence known during normal play.

A lot of modded party members tell stories, crack jokes, sing songs, and randomly comment on anything and everything the game has to offer. This ends up making them feel more real than the core party members, at least if you're the kind of player that randomly wanders the world and never bothers progressing the plot.

We script characters to respond to world events. When we have control over the world events, we script them to perfectly match the specific events we've created... but that's a flaw. We need to get out of that habit if we want to let the player hang out with them. Because hanging out isn't specific.

There are lots of games with "specific hangouts". For example, chatting at the camp fire in Dragon Age, or private actions in Star Ocean. But these are tightly scripted events that are a facsimile of hanging out rather than actual hanging out. They're expensive to make and limited to play, and I think we can do better.

Structural Issues

We think about hanging out as being unstructured, but the truth is that it is very structured.

In order to interact with a character, you need a medium of interaction. A task, basically. Most tasks have a set of progressions that can be used to move the hangout along a fun path.

For example, if you're drinking in the bar with a fictional friend, what happens? Maybe they get drunk. Maybe you get drunk. Maybe they start a bar fight. Maybe someone at the bar recognizes them, and then something unfolds. Maybe they get hungry for real food and you change locations. Maybe someone else you know walks through the door and the dynamic changes. Maybe you look for dates.

Alternately, if you're playing video games, there's a lot of flexibility as to what game you play, whether you switch games, who tries hard or not, who wins or not, whether you start betting, whether people start getting way too into it, etc.

These progressions are at the heart of "hanging out", and they are also at the heart of how a character can express themselves.

Each character in the game can prefer different progressions. They don't need to be completely unique: a lot of characters can get drunk at the bar. But if the progressions go on for several elements, you'll see their uniqueness start to manifest: person A gets drunk and starts a fight, person B gets drunk and hits on everyone, etc. These are small, simple things to talk about, but this is the heart of how hanging out has to be approached: there's a task, and different characters want to progress or change the task depending on their personality, mood, etc.

This spectrum of progressions allows the characters to contextualize the event as they see fit, and to recontextualize a generic event ("at the bar") with a specific in-character event ("picking up guys" or "getting shit-faced") based on what progression they want to see.

Adapting to Existing Games

For example, in Skyrim you might be wandering the world map with Lydia, your dull, dutybound housecarl.

Skyrim has progressions built into its systems and maps. If you're wandering outside picking flowers, you'll run into options to fight monsters, go into dungeons, see wonders, change biomes, get rained on, go from day to night, find an ore resource, find a town... these are all perfectly valid progressions.

By understanding what progression Lydia wants to see while on the world map, she can make comments about what's going on. For example, if she sees a bear, she might say "that bear might threaten travelers, maybe we should drive it away."

This would be different if she saw a monster in a dungeon, where it's not a threat to a city. She might say "some skeletons ahead, I wonder if we can get around them." Or, if she sees a monster in a town, she might flat-out rush to attack, to protect the people of the city.

By allowing her to decide what the current context is, she can choose what progressions she'd like to see. This gives her dialog a lot more vitality than simply yelling "yahhh!" and charging at any monster you find.

However, this is still very shallow. Since Lydia has only dialog and the player has only action, it's a lopsided mess where it's difficult for the situation to progress in any meaningful way. In the end, it boils down to Lydia making comments on what the player chooses to do, just like in later games such as Dragon Age.

The simple fact of the matter is that hanging out is collaborative. Lydia can't really collaborate with the player in the gameplay as it exists.

Stop, Collaborate and Listen

One thing we can do to make this more collaborative is to let the player give dialog responses. However, I don't think that's a good approach, as it will lead to very repetitive interactions as you hang out over and over.

Instead, I would prefer to do the opposite: let the NPC offer action plans.

When Lydia says "that bear might threaten travelers..." two action plans might pop up and be selectable. "Take it out, I'll support you" and "let's ambush it, follow my lead" might be the two options (with the third 'ignore' option implicit). These are represented as dialog, but they're not simply dialog: they're functional plans. Not only do they determine Lydia's behavior, they can also embed bonuses: Lydia gets an attack boost if you tell her to take it out, and a stealth boost if you say you'll ambush it.

Moreover, these plans are excellent at advancing several progressions at once. Not only is Lydia advancing from "outdoors" to "defending the roadways", but she's also advancing along her "Lydia, stealthy supporter" or "Lydia, front line knight" character progressions. She may also progress on her personal opinion of you if you do particularly well or poorly, although remember that all such progressions are temporary. You'll hang out again some other time, and things will unfold differently.

These action plans can offer things the player literally can't do without the NPC, as well. For example, Lydia might say "oh, this is such a rich iron vein. Let's claim it for the city!" at which point you'll have the plan to claim it for the city: something you cannot do on your own, or with another character. Other housecarls might also be able to do it... but for other cities.

This combination of factors will hopefully make the player want to participate in these collaborative plans.

Save and Load Contexts

One technique that can help us add depth to the characters is to allow contexts to be shelved and readopted as necessary.

Our instinct might be that Lydia following us around is Lydia hanging out with us, and the whole day is one "hangout session". But that leads to problems, because the context might not progress at all. The player might literally gather plants for three hours straight, and Lydia's constant talk about what she'd like to do will get repetitive and futile.

Instead, she can simply shelve an intended progression when it falls through.

So if Lydia says "that bear might threaten travelers..." and the player doesn't engage, Lydia won't follow that up with "that skeleton might threaten travelers" and "that treant might threaten travelers". Instead, that progression is on hold.

However, if the player does engage an enemy on the world map - pretty much any enemy - Lydia will be able to instantly pick up the progression. "You'll never threaten another traveler!" she barks as you smash down a mudcrab or whatever. From there, she's in her "cleaning up the wilderness" context, which can be built any way the devs want. Maybe one progression is to attack stronger monsters. Another, less preferred branch is to attack weaker monsters. Monsters in another biome. Monsters marked as 'evil'.

This context is active, so Lydia won't say "that bear might threaten travelers..." because she's not in that context any more. Instead, she might see a bear and say "let's clean up this forest a bit!" in an attempt to progress along the biome path of her "cleaning up the wilderness" context.

Of course, once the hangout period ends (spending a certain amount of time in another major context, like in a city or a dungeon), the contexts can reset and she can start over.

This isn't an ideal solution, but it effectively allows you to script character events that unfold naturally and opportunistically as the player plays, rather than being segregated into their own quest lines.

Parties, not Companions

Probably the easiest way around the collaboration difficulties is to have more than one companion. If there are several NPCs, they can discuss and banter. This is something Dragon Age does well, but primarily by using random snippets.

We can choose to anchor the banter to contextualized progressions, instead. As an example, if you're wandering Fallout 4 accompanied by both Piper (reporter) and Curie (science robot), they'll both contextualize the wandering and have directions they want it to go. You get a sense of this in Fallout 4 as it stands: they have a variety of generic comments on situations you might encounter.

But by allowing them to comment to each other, you can build up a sense of progression even if the player ignores their preferences.

For example, if you find a few talkative ghouls, Piper might say "hey, we should get their story!"

If the player chooses not to do that and walks away, rather than something like "PIPER -2 FRIENDSHIP", Curie can disarm the situation with an excuse like "We cannot be distracted by such tings, we have important tings to do!"

Of course, the player avatar could theoretically also say that kind of dialog, but the player might not be thinking the same thing. The player might be thinking "sure, give me a second to raid this treasure chest first", which is very different from the dialog claiming it's something that won't happen.

If a third party says the dialog, being wrong is acceptable and can give rise to more complex lines of progression.

For example, if you do go back and talk to them, it's relatively easy to have remembered the original dialog, and now have different dialog. This can be quite generic. For example, as you approach, Curie might say "I remember zees people", then Piper can say "Now do we have time?" Or, if you're now just adventuring with Piper, she might say "hah, now that Curie's not around, we can do some snooping and scooping!" These are fairly generic dialog lines that can be deployed in a lot of different situations.

If we consider hanging out to be a task with a variety of progressions, then we can again run multiple contexts at the same time. We're progressing this specific subquest. We're progressing Piper's "search the wasteland for news" context, which may lead to her wanting to go home and write about it. We're progressing Piper and Curie's relationship with each other - again, it must be stressed that it's a hangout context, not a permanent progression. We're progressing Curie's "focus on the science" context.

By having many contexts which can be progressed, shelved, and activated at the same time, we can make the experience as character-cohesive as possible. From the player's perspective, it doesn't matter which context gets progressed next: they all have Piper acting like Piper or Curie acting like Curie, and for reasons that make sense.

It will require a bit of effort to create the engine to do this, though. You'll need to figure out the right generic dialog to switch or resurrect contexts, just for starters. It's not something I've seen done before.

New Hangouts

This is all about adapting the concept to existing games, but the truth is that we don't need to do that. We can make new games.

If they're intended to allow for this kind of thing right from the start, there's no struggle to make sure all the metadata you need exists or all the conversations have to work within some specific fiction: it's all designed from the ground up to work.

Moreover, it allows us to radically reduce the amount of content and gameplay we need to support, because this context-centric approach can use much smaller amounts of gameplay to accomplish the same thing. Rather than gameplay strongly relating us to the world, the gameplay is more about collaborating with a friend.

For example, you could decide to hang out with someone and spend the afternoon assembling ships in bottles. It's basically a minigame, but it's made much more interesting because there's a character-driven progression in play. The actions you take affect what the other people do, and what they want to have happen. Doing well at the minigame may be a bad idea... or, rather, doing well at the minigame may not involve actually building the ship in a bottle.

Hanging out and making ships in a bottle is not just about the progression of the task of ships in a bottle.

We've already talked about longer-term contexts like "Lydia's stealthy follower progression". Well, the whole point now is that the event progression is more about the personal contexts and progressions that our friends are going through. Rather than having one preferred contextual progression, the progression they want from this event is influenced by the progressions they want from their other, personal contexts.

You've going to have very different "ship in a bottle" minigames depending on whether your friend is drunk, angry at her parents, mourning the loss of a friend, nervous about a piloting test, or embarrassed that you found out she likes a terrible TV show. The progression of the minigame is not the point: the point is the progression of her personal contexts, as expressed through the progression of the minigame. Hell, she might even play the minigame without the player's input at all - the player can just watch.

We can spread this idea even further, into the world's overall state. Her personal context affects how well she can fly the ship, or how aggressively she fights. Whether or not there's actual gameplay involved with those or if it's just some flavor dialog, it will convince the player that there's a world and stuff happening.

One possible example leading towards this would be Dragon Age 3, just the parts where you decide who to send where, and for what purpose. You could hang out with someone, and then when you send them on a mission, they get better or worse results depending on how they feel. Their personal context will then be altered by the mission they just went on, so it's a good time to hang out with them again...



Anyway, those are some of my thoughts.

What do you think?

Wednesday, September 05, 2018

A Sense of Place

So, I really like games with a sense of place. Some days, I think it's the most important part of a game, more important than how the game actually plays.

But only some days: the vast majority of games don't give me any immersive sense of place.

I asked around on Twitter, and nobody chose the same places I did. They all had very different priorities. And it's clear that game devs share their priorities - especially clear, given half the respondents were game devs.

What they mostly liked was a sense of scale. Mostly cities with epic vistas and large scales.

I sure do like pretty cities, but that's not what keeps me coming back to a game year after year. I'd like to talk about what I like in cities and towns, try to nail it down so that I can build it myself.

So, let's start: one video game city that keeps luring me back is in Bloodlines.

It's not big. It's not beautiful. The design is blunt and uninspired. It has no redeeming qualities as a city or a piece of art.

But... I keep replaying the damn game, and a big part of that is how much I enjoy being in the city. There's a little fizz beneath the city that instantly smashes me into the game and keeps me there.

I think that's a good hint. Since there's not much distracting epicness, I can focus on the one thing I want to see more of, even though it's just a fizz.

Pace in Place

In most games with cities, the cities are subordinate to the wider gameplay. The city might host missions or objectives, but living in the city is not an objective.

There are games where the city is the main gameplay. For example, in Crackdown. Surprisingly, this seems to be even worse for my little fizz: it reduces the city to a mechanic.

The experience of being in the hubs in Bloodlines is different.

You are living in the city. Or... unliving, I guess.

You're existing in the city.

Your struggles in the game are simply struggles to continue living in the city. You end up fighting dangerous battles against ridiculously overpowered enemies, but the point is that, at the end, you'll get to go home and take a nap and then tomorrow you can maybe visit your friend downtown. Even the end boss is literally chosen by you deciding what kind of city you want to live in!

Over the course of your adventure, you establish a life in the city, with friends and coworkers and maybe someone to date.

You also get to know the city a bit better. Although exploring the city isn't really the point, you do explore it while you roam around trying to make a life for yourself. There are plenty of things to find - a few topological secrets, like the back entrance to the the pub. A few new people with new missions, such as Ash in the cemetery or the truck vendor that wants you to clear out a parking lot. A few areas that are locked and you'll have to remember later.

The pace of discovery feels right to me. In many video game cities, you explore to find random treasure baubles scattered around. But in Bloodline's cities, you search to find new people with fun new missions, new shortcuts, new locked doors you'll unlock later. You never feel like you came here just to get a mechanical reward: if you go into the back alley, you won't find $5 in a treasure chest. You will find a skeevy guy that wants you to clear out a parking lot.

In a theoretical modern remake, you might feel compelled generate these missions on the fly. But you'd have to be careful: the point is to make a life for yourself. When I clean out the parking lot, the skeevy guy not only gives me a reward, but becomes a better vendor. If you were randomly generating missions, you'd still have to make sure the rewards are about better living... and I don't need more than one skeevy guy selling me stuff.

If you look at the missions in these cities, nearly all of them are about living in the city. Either getting you established, or making the city safer for you, or making friends and allies.

Even though all the NPCs are barely functional weirdo jerks, they somehow become your barely functional weirdo jerks. Mission after mission, day after day.

Counterexample

The most obvious counterexample is Stardew Valley, or any similar game. They are about building a life, but in the most mechanical way possible. You literally build your life: more farmhouses, more crops, more ore, more machines. But the town is not really part of that.

The NPCs are rigid and inflexibly forced into your life. You cannot be allowed to alienate the shopkeep because there are no other shopkeeps. You cannot work for or against the mayor, because there are no other factions. There are few NPCs, and they largely exist to fill specific roles in the gameplay. Dating is the exception, but usually you can only date NPCs with no critical role, and therefore they have no actual place in the town. Moreover, you can typically only date one of them.

Although you can make friends, there's no particular change in the way the game feels, or your lifestyle.

This doesn't mean the games are bad. It means those games aren't what I'm talking about right now.

Extending That

If I were to imagine a game where this little fizz was turned into a torrential waterfall, we would need to punch the Bloodlines up without Stardewing it.

A big part of it is that the city is largely not interested in you. They don't like you, but they don't dislike you, either. If you want to make a place for yourself, that starts with proving yourself to them in their own personal corner of the city.

This is in stark contrast to most game cities, where the inhabitants are intended to pull the player into the game world and narrative. The NPCs in a normal game might welcome the player, or be hostile until a plot point, or they might just talk incessantly about whatever the main plot element in the area is.

These are all the wrong choice if you want to feel like you are making a life for yourself.

This doesn't mean they can't do those things. But the main purpose is make the player figure out how this person fits into their life in the city. Maybe the player decides they're a threat and sabotages them. Maybe the player needs their friendship... for now. Maybe they want to date this person, or just want them around as business partners or something.

And, along the way, the NPCs can be welcoming or hostile or exposit endlessly. But regardless of that, the player knows this is a person that will impact their life in the city, and they have to decide what kind of impact that should be.

Easy example from Bloodlines: when you meet the two-faced bar owner, she's friendly... but you know she can't be trusted, because you haven't earned a life here. Similarly, although the anarchists are unfriendly, you know they can be turned around and made friends if you can earn a life here.

If you're considering how to structure your missions, this is a good thing to keep in mind. Not only in terms of how the initial encounter goes, but in terms of the final outcomes: the player's goal is to be friendlier, sabotage, charm, alienate - therefore, those should be the possible outcomes of the mission, rather than choosing something like a "renegade" or "paragon" ending.



The design of the city itself is also important, because living a life means being in a place.

This doesn't mean the city needs to be beautiful or epic, but rather that these NPCs need to have lifestyles and locales. They have their life in the city, just as you want to have. By choosing who to rely on in what ways, you get an echo of these lifestyles.

This was one thing that really, really worked in Bloodlines: all the NPCs were vampires, meaning they literally don't have day jobs. Whenever you meet them, they're doing whatever they've decided to dedicate their life to, and that includes the lifestyle they've chosen. From the poolhall relaxation of the anarchists to the overly formal, excessively expensive meetings with the town boss, none of the vampires are ever portrayed as simply filling time with sleeping or working a day job. They are always living their life. Unliving their death. Whatever.

Contrast this to games like Fallout 4, where the only thing that defines your settlers is their day job.

Establishing a lifestyle is not something which has to be scripted. It would be relatively easy to randomly generate NPCs with specific lifestyles and specific methods of fitting into your life. But it would be difficult to randomly generate them in the right variety: NPCs come in packs, and often a pack of NPCs will have similar lifestyles and offerings, but subtly different ones.

If you do generate randomly, you'd need to think in terms of generating teams of NPCs rather than individuals that happen to be in the same place. There are a lot of fun scaffolds for this, such as the five-person hero team, but they'd all need to be adapted in order to make sure that the player has something interesting to gain from each one, and perhaps a reason to prefer specific members of the team over others.

All of this would need to be reflected in the construction of the city.

That in mind, the team should probably have a good time hanging out together in places that suit them. If their lifestyle together doesn't seem fun, that would poison the well: the player wouldn't be interested in fitting into their life. There's a lot of different kinds of fun: an annoying overlord can still provide a good lifestyle if the player thinks being rich and powerful looks like fun.

Near Misses

There are a number of cities that make me allllmost feel the fizz, but it fizzes out.

One set is the Citadel and your hub ships in the Mass Effect series. The first impression is very good, but it doesn't end up panning out because you aren't trying to establish a lifestyle. It's about already having a lifestyle, and getting to live it.

That's not bad! I loved hanging out with my buddies. But I never got to choose how people fit into my life. They were written in or out of my life at the scriptwriter's convenience, and that left me unable to get that fizzy feeling.

Most such modern RPGs give that same "alllllmost" feel, like Dragon Age.

Another example is The Sims. While I can choose which characters fit into "my" lifestyles, I can't get a feel for the city. Their lifestyles are encapsulated in their individual homes, and nobody is really integrated into the city.

Even if I go into the city and people are around, I know it's not really an integration. Their existence or lack of existence wouldn't change the feel of the city any.

There is one other example I wanted to talk about: Skyrim (or the modern Fallouts). These have lots of cities of varying size and shape, all stuffed full of NPCs that have opinions and lifestyles.

These cities create an itch I cannot scratch. Their characters have lifestyles and want me to help them, but doing so doesn't lead anywhere or provide me with a life in the city, because there's no reason to have a life in the city. If I decide to track down and kill the weird cultist... nothing changes.

While I do replay these games frequently, I typically spend less and less time being social in cities, more and more time doing other things. Being social doesn't really lead anywhere.

It does in Bloodlines. It always leads to a new life in the city.


... anyway, I wonder whether anyone else feels like this.

It might just be me.

Thursday, August 30, 2018

Player-Generated NPCs

Hey, let's talk about player-generated NPCs, and sending them to other players.

In order to turn player-generated content into content for another player, you need to add context and a reason to play. This isn't too hard in mechanically-oriented games, but in an RPG it's tough.

Imagine playing Fallout 4 and running across random player settlements. Most players make facilities that are focused on making the numbers go up. Recontextualizing that into an RPG point of interest doesn't work out well: you end up with a dozen nameless NPCs and a bunch of empty buildings with beds in them. Hardly compelling RPG content.

The problem is obviously in the recontextualization. The settlement was created to make numbers go up, and now you're trying to interpret it as an RPG town? There's no connection.

The answer might be to make the original context an RPG context, so the player's created settlement is RPG content right from the start.


Pushing Context In

Let's pretend we're designing a Mass Effect game: players create colonies, which are then exported and encountered by other players.

As you play through the game, you make various choices. You visit the turian homeworld. You choose whether to side with the turians or with the humans.

If you side with the turians, you receive a number of applications from turians, willing to move into any colony you make. If you side with the humans, you get human applicants.

When you build your colony, you can add any applicants you like.

When your colony is exported so other players can visit it, the game checks to see what they did on the turian homeworld. If they did the same thing, those settlers are friendly. If they did the opposite thing, those settlers are more hostile. If they haven't been there yet or didn't take sides, those settlers are just background color.

This is an extremely fast and easy way to push RPG context into your colonies, and then continue to push that context forward into other players experiencing your colonies.


Pulling Context In

In addition to this, we can use simple keywords to keep these applicants interested in similar conflicts. Those turian applicants came because you chose turians over human interests. That means they will continue to have opinions on decisions regarding turian vs human competition, or more generally turian vs any other species.

If you visit the Citadel and side with a turian shopkeep over a human shopkeep, the turians back at your colony will compliment you for it, gain loyalty, become more effective citizens. If you choose the human shopkeep, the turians in your colony will be a little annoyed and rib you about it, although there probably shouldn't be any statistical punishment for such a minor event.

If you visit the citadel first and choose the human shopkeeper over the turian, you'll probably get a human applicant. Then you visit the turian homeworld, make your choice there, and your human responds appropriately.

Since it's keyword-based, events can be done in any order, and mods can be integrated smoothly.

In this way, your colonies will have a vested interest in your continued adventures, and you'll be taking your citizens' opinions into account as you journey.


Generating More Context Globally

Tying your colonies into the galaxy is important: if your colonies feel entirely isolated, that's not very immersive. So your colonists need to do more than have generic responses to keywords.

They should put their thumb on the scale.

If you visit the turian homeworld, get some turian applicants, and then get into that turian-vs-human shopkeeper conflict, your colonists should call you up to chime in.

Here's the key, though: it should be the wrong colonists.

If the colonists that actually care about turian/human competition call up, they'll try to convince you to choose the turian side again. This creates a feedback loop where you have more and more pressure on you to choose the turian side of things. With no counterweight, that's not a good idea.

Instead, you should hear from different colonists with no stake in the turian/human competition, and they should put their thumb down on the other side.

For example, since you chose turian last time, a quarian might call you up and say the turian sold them a lemon last time they visited. The idea is to push the choice back into balance.

Basically, if NPC A has a vested interest in turian/human conflict, that causes a situation where NPC B reweights the conflict to make it hard for the player to choose a side.

There will be some conflicts where the player has a particular favorite. If they really like turians, then you might need to apply quite a lot of pressure to make the choice difficult. In situations where the player doesn't seem to have much interest and are easily swayed by the third party pressure, it makes sense to create additional conflict by having your colonists come in on both sides and have a bit of an argument about it. Raises the stakes.


Generating More Context Locally

You'll need to generate a lot of RPG-context content in the colonies you build. Otherwise, the player will get stuck in a statistical, base-building mood.

RPG rewards, RPG missions, RPG context deepening, and RPG/statistical linkups are the tools we'll use.

In short, we can generate random missions when you talk to NPCs. But these missions are not the generic fetch quest blobs you're used to: we can generate much more interesting missions because we understand how these NPCs got here and what they care about.

If you talk to the turian that applied because of how you helped his people, he'll generate a mission about turian/human competition. Perhaps it's entirely local: him competing with a human colonist, or perhaps him falling in love with one. It might be partially local: for example, buying a human grabloxotl to improve potato growth speed. It might be entirely nonlocal: a lost ship he wants you to rescue.

The sides of this conflict can be weighted understanding the player's recent turian/human choices. If you've chosen humans recently, this mission is a chance to prove that the colonist wasn't wrong to trust you. If you choose turian a lot, then this is a chance to do some dirty work for the turians... or perhaps a chance to improve turian/human relations instead of keeping them pitched against each other.

The mission generation does not need to be terribly difficult - pretty basic missions will do. Instead, the key is that they generate RPG context.

One kind of context would be to reshape the local context. If it's a turian/human local competition, helping the turian makes them the boss. Helping the human does the opposite. This will create RPG context in that there's now a new social context.

Another would be to link RPG context to statistical performance. If you help the turian, his stats go up. They don't gain levels otherwise, so this is important.

Another would be to give the player versatile RPG context rewards. For example, new applicants, new colonist gear, new permits to plant potatoes on a new world...

These generated quests intend to be a change of pace from the rest of the game, letting you 'come home' to do some unwinding. So they should generally be fun and silly, rather than grinding. The difficulty or time taken is not the point: choosing a side is the point. The "body" of the mission is just there to make sure you understand what's going on and what the stakes are.


Showing More Context Locally

The most difficult and delicate part of making the colony RPG-ish is getting the player to feel like their settlement is an RPG hub.

The player will only intermittently visit the colonies, will be focused on their statistical nature, and will probably forget the details between visits. So creating local context requires A) unmistakable, easy-to-read elements, B) remote-friendly elements so their video messages create context, and C) creating context via direct interactions when the player is around. Optional, D), linking colonies together to create "global but player-local" context.

A) Easy to read elements probably involve three things: colony decorations, colonist clothes/gear, and non-player-centric interactions.

These can all be used to create NPC-specific context, colony context, and plot/conflict context. For example, if there are bales of corn everywhere, you know what the colony's doing. If someone's wearing an elegant evening gown, you know they are a socialite and that the colony has a swanky side. If a boss is reading the riot act to a subordinate, you feel one way about it, while if they're gently guiding their subordinate, you feel another way.

These decorations can be generated randomly, or they can be supplied by the player. For example, if you back the human shopkeeper, rather than get a human applicant, you get an evening gown you can give to any colonist. This isn't simply cosmetic: giving a colonist an evening gown retroactively forces the colony to have a swanky side.

Symbolism is also a factor. Different colors and building designs give different feels, and having a bunch of turian flags waving tells you right away that this a turian-focused colony. These can quickly give you an overall impression of the colony.

B) Remote-friendly elements would be elements that show up in messages. This would be character elements that show up on headshots, background elements that show behind headshots, and topics of conversation. These should be focused on reminding the player about the nature of the colony, rather than telling them about the nature of the NPC.

C) Direct interactions are things the NPCs do to each other or to the colony. Too many games slot the inhabitants into either "work" or "sleep" and that's it. It makes more sense to use animations to tell you who these people are and their relation to the colony. So rather than digging in the plant bed, it makes more sense to show them teaching someone how to dig in the plant bed, or bragging about their plant bed, or anything that gives you a stronger impression of their social role within the base. This can randomized, or, again, it can be inherited from missions in the game world.


Recontextualizing for Another Player

When it comes time to export your colony for other players (or import their colonies), it's important to keep it as interesting as possible.

Recalibrating Opinions

Probably the most fundamental element is to simply recalibrate how the NPCs treat the player by looking at how this player has handled the same choice axis. If this player chose the humans, then the turians will dislike him. This can be scaled pretty easily: by looking how severely the player has preferred the humans so far, the turians can be calibrated anywhere between mildly standoffish to instantly murderous. Most of the time, it'll fall between the two - for example, they might interfere with your missions, or lock your ship down, or try to assassinate you in the middle of the night.

Obviously, these frequently become mission content.

Final Missions

Unlike the creator, the new player is unlikely to revisit this colony. So we can go all out generating missions for this colony: it's fine to blow things up and kill colonists. In fact, it's preferable.

These missions have the same basic role as the missions we generate for the creator, but the volume is turned way, way up. If the creator chooses humans, the turian might grump at them, or maybe even leave. But if the new player chose humans, the turians will start a mission to get vengeance. This will embroil the whole colony, and may involve impounding the player ship, launching assaults, blowing up facilities...

However, in the end, it's still about the player choosing. So even in this kind of mission, the player will be expected to choose between turians and humans again. This time, it'll be something like whether to save a turian child or let it die as you escape.

Aside from the mission, the colonies should generally offer amenities - shops, etc. The player may never visit again, but they should at least be able to do normal things while they're here, assuming the colony isn't specifically built to prevent it.

Of course, if a colony is too similar to the player's choices, you can always generate an invading monster or a weird disease or something. This will give the locals a chance to show off their social nature.


Leads from Elsewhere

Another key to integrating this player-generated content into the universe is to mix it into the universe. Partly, this just involves getting leads from somewhere else.

If the colony is heavily turian, then a player will get a lead from a turian: "my family lives here, you should go visit them!" Or perhaps, if they are anti-turian, a human: "this is a turian stronghold..."

More than that, additional content can be easily mixed into friendly colonies. Recurring NPCs, threads of ongoing missions, or minor loyalty events for your companions can be interwoven into the colony. Characters that are oriented around a conflict this player doesn't care about can be easily removed and replaced with known quantities from this player's game. IE, if this player seems to not have an opinion on turian vs human, those turians might be replaced with an asari psi-broker telling you where to get the next link in the psi investigation chain.

This can be punched up as necessary by making you have to rescue them from whatever's going wrong.

Generating these missions can be as complicated as your algorithms allow, as you can see. But even if it ends up fairly simple, it should hold up.


Recontextualize-Friendly Construction

Another trick we want to use is to leverage the simulationist nature of these colonies. Because we're simulating so much, there's no need to always just offer mission-mission-mission-shop.

Like in Skyrim, sometimes you'd visit a town just to steal things. It's really fun to try and figure out how to get away with your theft.

This is similar, except we have a wider variety of simulated objectives. For example, you can change who's in charge by helping them, giving them better gear, etc - or by harassing their opposition. You can change the culture by arguing about things - for example, if you argue that the turian culture is inherently corrupt, you can sway things towards the human side of the turian vs human conflict. You can hack computers, steal vehicles, reroute credits, teach children, rearrange their defenses, get them better deals on their exports, get them better gear for their processing...

These things are all already being "weakly" simulated. We had to, in order to create both the statistical and RPG contexts in the original creator's world, and to link those two contexts together. Therefore, we can expose some of that simulation and let the player do something besides chat.

We're not talking about deep simulations. I mean, in Skyrim you steal stuff, but the shopkeeper doesn't actually get any poorer. This is the same sort of thing: we expose enough of the system to let the player interact with it, but we don't have all the pieces deeply connected, and we don't need to.


Final Thoughts

That was long.

And some of it might be a bit of a stretch.

Fundamentally, I think we can give player-created colonies a lot of RPG context by tying the people, facilities, gear, and options to your RPG adventures.

And then I think we can wire that back into the world, to make your colony part of the RPG adventure.

And then I think we can export your colony to other players, and make it part of their RPG adventure.

What's your opinion?

Thursday, August 02, 2018

Action-Oriented Escalated Bidding

I've been thinking about new kinds of gameplay for MMORPGs, because I'm not happy with any of the current styles.

I love the feel of the "personal epic" games like Star Wars Galaxies, Star Trek Online, even things like WoW. There's a lot of joy to be had in running around a world in real time. But the combat in these games is always either so clunky it's painful or so action-oriented that you have to be a twelve year old with broadband.

Thinking about alternate combat styles, one with appeal is escalated bidding.

This kind of bidding (found in poker and many tabletop games) basically allows players to judge a situation and decide whether to escalate or end the round. It's easy to balance, compelling, and naturally cinematic.

However, it's turn-based.

It's easy to come up with styles of play that allow for this kind of combat, but the turn-based nature is hard to avoid. And turn-based doesn't mesh well with the epic personal feel I'd like in my imaginary MMORPG.

I was having a hard time coming up with escalated bidding that didn't involve turns, but I think I figured it out: it's just a simple rework of existing mechanics.

For example, you're playing Star Trek. You're wandering into combat with your space ship. What's the "escalated bidding" for this?

Well, it's the same as Star Trek Online currently is... just a few small tweaks.

One critical element is range. Tiered bidding is a great way to escalate. In Poker, that would be the ante, the initial bidding, and the final bidding - but in Star Trek, it might be shields, system, hull. Rather than having distinct rounds, it's based on range.

You start off at long range, taking shield damage. You get closer, your weapons tick over into optimal range... but, at the same time, you now take systems damage from incoming shots. You get even closer, your weapons are guaranteed to deal terrific damage... but now any damage that leaks through your shields will blast away at your hull... and some damage is always going to leak through.

Conversely, if you can stay at long range, your ship is not at risk even if your shields go down. Incoming fire will scratch your hull and temporarily glitch out your systems, but that's damage that can be rapidly and completely repaired.

To be clear: as your weapons enter optimal range, you take a lot more damage. The better you can shoot, the more you get shot.

This range element adds a ton of complexity to conflicts, because your systems-damage range may not be the same as your enemy's systems-damage range. A long-range torpedo boat may be taking hull damage from a small merchant vessel while the small merchant vessel is still taking shield damage! This means the small merchant vessel's shots will squirrel through the torpedo boat's shields, while the torpedo volleys will largely splash off the merchant's shields.

Matching ranges will be a major element of what ships you use, when. Party loadout becomes a really interesting challenge.



In most bidding systems, how much you bid is also critical. But in this case, the "bid" is how close you get, for how long. Starships have position and relative speed: committing to a deep run can net bigger rewards if you come out on top... but huge problems if a lucky hit knocks your torpedoes offline. Ship headings are another, interlocked kind of bid, if each shield quadrant fails independently of the others.

Additional bidding can be done using various one-off powers. This is a classic "cooldown" setup: if you overclock your reactor for ten seconds, you won't be able to do it again for another two minutes, better make use of those ten seconds well.

Unlike current combat systems which look similar to our bidding system, the cooldown skills in our bidding system would exist to gamble on the next few seconds.

You're claiming the next few seconds will be critical, either offensively or defensively. With the range-based tiering system and quadrant-based shields, it makes a lot of sense to focus our skills on being useful shortly before or after changing range tiers - either your own or the enemy's. Fire your torpedoes when the enemy enters into their systems damage range, regardless of your current range. Pump your shields just before you change to systems damage range, since the damage you take in ten seconds will be far worse than the damage you take now.

Offensive firepower should be tiered as well, basically turning it into a set of cooldown skills. A full barrage hits hard, but takes a long time to recharge. Smaller shots recharge faster - fast enough to do more damage overall, but obviously the enemy's shield recharge and maneuvering cancel much of that advantage out. Will you do some small shots as you close, followed by a full barrage when the enemy becomes vulnerable?

This timing-based "bidding" feels more natural than any kind of shared pot or other abstraction. This also plays up the differences between different kinds of enemies with different ranges, and makes engaging multiple enemies or being part of a team a very interesting tactical opportunity. Obviously, various shortcuts also have value: a stealthed warbird decloaking right on top of you doesn't need a magic "decloak and fire" special power. Their special power is that they're right on top of you: you're at hull damage range, and at least some of that firepower is going to leak through the shields.



This combat is extremely similar to the existing Star Trek Online combat engine. The tweaks are very minor: simplified range indicators, slightly different damage model, slightly rebalanced skills. But the actual play is so similar that people probably wouldn't have to think about it very hard: they'd just suddenly be having amazing, epic fights.



This model could also be used for ground combat in the Star Trek universe, since ranged ground combat is the norm. You could just have literally all the same things.

A Klingon with a blade can rush through blaster fire: their max range is quite low, which means their range tiers are tiny. The blaster fire would just burn their armor a bit. Of course, when the Klingon reaches you, they are well within your nastiest damage range, and are guaranteed to put you down in short order.

The same basic mechanic would work for any personal combat system to some degree. A Star Wars combat system could be similar, with the light sabering Jedi naturally being similar to a Klingon. A Force-user could also take medium-range powers like Force Throw or Force Lightning. These would extend their attack range... and also extend their damage tier ranges. Someone specializing in sabers would be able to bull through Force Lightning because it's outside their damage tier range!

Even in tight combat, you could still see variations. A long light saber seems like a great choice... and it is, against anyone with a gun. But against someone with light daggers, your melee range is actually outside their most critical damage tier, meaning they can hold you off without too much danger... but you're not so lucky against them. You'd have to use combat abilities to close the range or disarm them unless you have a lot of time on your hands!

The downside of this is the bidding, since at melee ranges you don't really commit to be at a specific range or a specific angle for particularly long. To counteract that, I'd recommend using "charge" skills which push you into melee combat with a large bonus for a specific amount of time, but then leave you with a big penalty until it recycles. In this way, melee attackers would choose how much to "bid" by choosing a light, moderate, or heavy charge attack. They can also do this while already in melee combat, of course.



A tiny change to a fairly ordinary combat system: your optimal attack range is also the range you take worse damage. From there, a rebalance to existing combat approaches should result in a really interesting, cinematic challenge.

At least, that's the theory!

Wednesday, July 25, 2018

Pacing Mechanics

I'm going to write a little about pacing mechanics, although to be honest I'll probably make a video on this topic once I've worked out the kinks.

Pacing mechanics are gameplay that exists only to keep the game flowing at the right rate, and with the right traction. In theory you could argue that all gameplay is like that, but pacing mechanics are specifically for that purpose rather than to be entertaining, challenging, thought-provoking, etc.

An example of this would be in an Animal Crossing game, where you can only harvest things once per real-world day. This gives the player a specific amount of that rewarding task each day: enough to call the player back (traction), but only a small amount, so they're encouraged to do other things once they're engaged (flow).

There are three basic kinds of pacing mechanic, as far as I can tell.

The physical play mechanic, like in the Animal Crossing games.

It lures people to log in each day, or on specific days, or in specific places. For example, Pokemon Go rewards players for going to new real-world locations, or physically meeting up with friends.

This is a bit different from the kinds of energy play you often see in mobile games. Rather than providing traction and flow, most energy mechanics simply let you play until you suddenly can't play any more... unless you pay money. The traction and flow elements may still exist, but they're weak, because they're not the point.

The structured play mechanic, where players are given specific, rewarding in-world tasks to be performed on an in-world schedule.

For example, watering the plants every morning in Stardew Valley, or having to return to town to recover mana in an RPG. These tasks give you specific things you are strongly pressured to do (traction), but also can only be done for a short while before pushing you to go do other things (flow). Typically, these mechanics adjust over the course of the game and to the preferences of the player - some players love visiting towns and talking to people, others just want to shop and get back out on the field.

Something like a hunger meter in a survival crafting game is not a structured play mechanic, despite appearances. The goal of a hunger mechanic is to push new players into growing food and engaging with a core construction loop, but the actual task (eating) is not a mechanic with any traction or flow. It's simply a mechanic to guide the player into engaging in the first place - more of a tutorial mechanic rather than a pacing mechanic.

This becomes extremely clear as you reach mid/late game and eating just becomes an annoyance rather than an opportunity.

The tiered play mechanic, where players can accomplish a certain amount with the setup they have now, and then need to find new resources.

For example, in Minecraft you can do only so much with materials in your starting biome. You are pushed to dig deeper, search further for newer resources. This contains a number of staggered resource tiers, culminating in things like creating a portal to Hell so you can mine it.

This is a very common mechanic, and can be seen in every crafting game.

However, there are a lot of other ways to do it. For example, in an RPG, you need to move onto the next town to get new equipment, new story. In Skyrim, you'll eventually need to either leave the woods for the towns or leave the towns for the woods, because you'll run out of interesting things to do.

The idea behind all these tiered mechanics is that the player chooses when to leave. Usually, it happens just before they consciously realize they're bored of the current options. Players build their cool wooden Minecraft mansions, and when they start to run out of steam they naturally consider going abroad for new materials, or digging down to find some redstone or something.

A counterexample would be a game where you have 1000 gold to spend, and then have to go earn more. This is, again, just a tutorial mechanic rather than a pacing mechanic. A pacing mechanic would be "no matter how much gold you earn, there are things which cannot be bought with gold."

How you earn gold could also be a pacing mechanic.

Also, it's worth noting that tiered play mechanics can easily go wrong if you give any hint that there are a certain number of things to accomplish. This is common in RPGs: sidequests are intended for players that enjoy faffing about and moving slowly. But they accidentally sidetrack a lot of players that don't particularly enjoy that, but see them as tasks to do rather than optional crap for more relaxed players.



Let's go into detail.

Now that you understand the intent of a pacing mechanic, what makes a pacing mechanic good, or bad?

A good example of bad pacing mechanics would be No Man's Sky, even after their most recent update. It's clear that the mechanics are built around the same concepts as things like Minecraft. There's tiered materials, unlockable research, different biomes, etc. Why does No Man's Sky only charm a few of its players?

It's because the traction and flow system isn't properly set up. It's got the same basic mechanics, but they're not engaged properly.

Their version of traction is to require the player to keep topping up their tools and engines and stuff. However, this is a stick rather than a carrot.

It doesn't pull the player in by offering them rewards if they do it, it punishes the player by grinding the game to a halt if they don't do it. It's got more in common with a cash shop energy system than a pacing mechanic, even though there's no cash shop!

The traction system of other games? Well, watering crops results in incremental progress towards harvesting crops. Also, it doesn't require you to wander across a new hellscape in search of water - water is right there, you just have to do the grunt work. Returning to town to restore your MP? That gives you dozens of opportunities to power up your characters, get new quests, and so on. Also, you can adjust your battle strategies to minimize the need to do it.

There is a hint of what it would be like with the right traction mechanic, since building your bases requires quite a lot of specific kinds of materials. It would be an opportunity for me to build a giant wooden castle, steadily exhaust everything I can do with wood, then begin building a metal underwater base or something. In this way we would get a nice, tiered setup.

In addition, the upgrades are not properly integrated into the pacing mechanic. In order to buy upgrades you need to wander the world looking for buried treasure, which magically turn into treasure points which your machines magically turn into new blueprints. This isn't necessarily bad, but it's not a good pacing mechanic. There's not much traction or flow involved, and it interferes with my ability to explore the nature of having a wooden castle. If I dig up more treasures, I should probably spend them on unlocking more advanced base equipment in the next base tier, rather than wasting them unlocking the ability to build a window.

If the traction side is flubbed, the flow side is just as bad.

I think the theory was that the limited inventory space would keep you from wanting to stockpile specific resources, meaning that you would be pushed into moving forward. That could have been a good flow, but it doesn't work in practice because the universe doesn't really support that kind of motion. If the game environment doesn't support your pacing mechanic, then your mechanic won't work.

There's some promise to the idea of compressing resources down into denser, more high-quality variations of themselves. This could theoretically produce a nice loop where you harvest a lot of a given planetary resource, spend some time condensing it into an easy-to-carry variant, and then move on once you have a complete stack of ultra-dense stuff.

I think a game could be built around that pacing mechanic really easily... but NMS is not that game. Instead, it features a smattering of annoying, slightly rare materials that take up way too much of your limited inventory space and can't be meaningfully compressed. Trying to hunt down rare materials would be fine in a game with different pacing mechanics, but these mechanics actually make that task extremely annoying.

This isn't to say NMS is "bad". It does hit the sweet spot for a fair number of people. It's simply that the pacing mechanics aren't really doing their job.



Conversely, there are games with spectacular interlocking pacing mechanics, and those are well worth studying.

Stardew Valley is probably the current king of this. With at least half a dozen interlocking, adaptive pacing mechanics, it appeals to a surprisingly broad player base.

Daily energy is the most basic mechanic. High-intensity tasks like harvesting, chopping wood, and adventuring can only be done sparingly, which pushes the player to then do low-intensity tasks such as exploring, charming the townsfolk, cooking, and so on. The low-intensity tasks show the player how to unlock more efficient high-efficiency tasks, which makes a nice circle.

Daily hours is another basic pacing mechanic. You can only get so much done in a day, even if you short circuit the energy mechanic with expensive foods. This pushes you to do at least some high-intensity tasks, rather than just doing a bajillion low-intensity tasks, to make the most of your daily energy.

Tending the farm (watering, milking, etc) is a structured play pacing mechanic. It gives you a mostly-reliable task to do, and each time you do it you get a little bit of gain - whether in the form of direct goods or moving towards a harvest.

Crop management (planting, harvesting) is another pacing mechanic, and allows you to determine how much farm tending you want to live with while also juggling your daily energy.

Tiered tools (sprinklers, better axes) is a tiered pacing mechanic that pushes you to do things besides simply farm, because they making farming more efficient.

Processing (jams, ores, etc) is another structured play mechanic where it takes time to refine things and you're rewarded for efficiently returning on schedule to set up the next batch. But, like all these mechanics, it's largely player-driven: players can simply invest in more hardware if they want to get all their refining done without needing to tend it too much... or they can slack off and only process a few things, because there's not that much of a need to minmax it.

All of these systems interlock, and are supported by the structure of the game's world. Each time the player engages with one, they are rewarded (traction), but only to a certain extent, then they are pushed to do other things (flow). It's an interlocking matrix of pacing mechanics, where the player can invest in a number of different ways to change the dynamics.

It's just a spreadsheet, sure. But the pacing mechanics make it a damn fun spreadsheet.

Plus there are some minigames if you need a change of pace.

...

Those are my thoughts on pacing mechanics.

What are yours?

Tuesday, June 26, 2018

Background Mechanics

For the past few weeks I've been working on a new prototype which allows players to quickly "sketch" space ships into existence.

However, in order for the sketched ships to mean anything, there needs to be a world they exist within. A framework in which they can be judged. A set of rewards for doing well. A progression in the types of devices and hulls, and so on.

Any kind of stat-heavy core gameplay loop (repeatedly designing space ships, for example) needs a larger context.

Now, you could create a story. "The Earth Empire is expanding into deep space and oh no the Brikklebats from Klonor 5 are attacking!"

Or you could create a simple board-game-like set of mechanics. "The ship you created will manage to map sector 3 in 8 years, then you can build a colony ship..."

But both of those are missing the point.

See, when the player builds something, the point of the game is to glorify the thing they built. Whether it's good or bad, you want to make those good and bad aspects shine.

Games where you can fly the ship after you build it are good at this, because you can really feel that the engines you installed work well, or that the guns really aren't good enough, or whatever. But I don't want to make a game solely about ships that shoot at each other. The player is far more likely to build a freighter or a science vessel, and I need to glorify those... and there's not many games which do that.

I think the main feeling I want is that moment in a science fiction show where you see a ship type you're familiar with doing something in some episode. It could be a squad of Galaxy-classes struggling to fight off a Borg cube, or it could be something as simple as a rebel B-wing sliding into a docking bay alongside Luke's X-wing.

These ships are things you recognize, and they exist in the universe. Hell, they make up the universe. They have an ongoing role not just in one story, but in dozens of stories. They don't stop existing once you've rated them, and the fabric of the universe is woven out of these threads.

To make this something that works in a game environment where the players make the ships, we need to be able to tell those kinds of stories.

So... what if we make a star map that is entirely about creating story hooks?

Instead of placing facilities that make numbers go up, you place facilities that create stories.

For example, instead of placing a lunar mining facility to make your minerals increase, you might place a "mining concern" that overlaps the planet and the moon. This would create stories of strife between the lunar miners and the planetside miners. To place it, you would need to build some kind of freighter or mining ship. Then there would be an "episode" - a simple story where the emergency performance of your ship helps miners survive... or die. The core performance of your ship would determine how long the mining concern remains a mining concern: at the end of that duration, it would transition into established and peaceful infrastructure.

Basically, each turn the player might choose to place a concern on the map, and then either build a new ship class or assign an existing ship class to it. The simple, generated story it tells highlights the ship's emergency performance and livability, while the numbers attached to it at the end are determined by the ship's core mission functionality. The story can easily include arbitrary existing elements: interference from nearby concerns, ships inherited from old concerns in the area, named characters and ships from other episodes.

The amount of player control over these episodes is limited, perhaps even nonexistent, and the story quality is not important. I mean, they play the same role as an arbitrary random encounter in a combat game, they don't have to be genius.

They exist solely to take what the player has created and show it back to them in full glory. "You made this", the game says, "look how it works in this universe!"

With a side plate of "oh, remember this stuff from before? What a definitely-existing-and-not-at-all-completely-bullshit universe we have!"

... I think it might work.

What do you think?

Friday, June 08, 2018

Voxels and Architecture

A lot of games use voxels to allow players to build whatever they want.

But the key in that sentence is "they want".

What do they want? What will they want?

Obviously, players will come into the game with some ideas from outside. People are always going to try to build familiar things. But your design of the voxels and the rules of the game will influence what they want to build later on, when they start getting used to the game and wanting to push their limits.

Most voxel construction games have cubic meter voxels, which is a good size to allow people to build personal-scale architecture. It's a good balance of personal freedom of expression vs complexity.

With this scale of voxel, most construction voxels are simple bricks, then further decorated with detail blocks such as stairs, chairs, paintings, and so on. While those decorative elements do matter, the fundamental construction of the walls, floors, roof, garden - these are almost always done with simple cubes of various textures and colors.

Despite this, you can have quite a complexity of structural results. With just simple cubes, you can model anything from an ancient cave to a modern home to a huge castle to a mighty bridge. There are some constraints, though: it is quite difficult to model things like roundhouses, or anything else that is deeply non-orthogonal. Despite that, the variety of things you can build is pretty amazing, and you can do quite a few complicated architectural things like drop ceilings, natural light control, and so on.

Unlike those games, Medieval Engineers and Space Engineers have massive, 10 cubic meter voxels. These voxels are scaled way up because the things the players are supposed to build are not personal-scale: you're supposed to build huge battleships and massive castles.

However, because of the large scale of these blocks, they are usually not simple cubes. The players want more control than that.

In Space Engineers, the blocks are frequently angled or rounded, to allow for the common hull shapes you see in fiction. Because of this, rather than having many block types and varying between them, most space ship hulls are built out of only one or two block types. The player's efforts are spent entirely on switching the shapes of the blocks, and perhaps painting them afterwards.

Similarly, in Medieval Engineers, almost no construction voxels are simple cubes. Instead, they are common medieval castle shapes crammed into a 10m3 package. A curved wall. A gateway. Thick or thin stone battlements.

A very tightly-themed game, Medieval Engineers is focused almost entirely on castle construction. The voxels have been limited to specific kinds of evocative, themed shapes to help the audience build variants on the accepted theme.

In both cases, the theme is much tighter than in a game with smaller voxels. Nobody in Space Engineers is interested in building a medieval castle, and nobody in Medieval Engineers is interested in building a space ship... but in Minecraft, people frequently build both in the same world.

I'm not saying that these themed large blocks are "worse" than the unthemed small blocks. Once you get used to the system, it's easy to build huge, beautiful things in those games.

What I'm saying is that constraints matter.

When you put together a construction system, you're not putting together something in a void. You're building something that exists specifically to help players build stuff. The methods and the constraints are critical.

Even if you're doing standard small blocks, constraints and construction methods will radically change the outcomes.

For example, in Eco, roof tiles automatically form into slanted roof elements to make convincing roofs. This happens to have an edge case where, if you have a 45-degree roof, you end up with a stepped roof with a wonderful gap to let light in. Just this small foible is enough to create a whole slew of architectural possibilities. It influences what players want to build... even though it's just a small visual idiosyncrasy!

A more obvious example would be monsters. If you are playing on a monster-filled Minecraft server, your homes will have various ledges and overhangs to prevent spiders or creepers from being a problem. This creates a distinctive feel to many survival-mode houses.

This isn't really an ideal constraint, though, because it's not integrated into the game very well. For example, there's nothing preventing you from simply building a floating house. Going in the other direction, there's no real way to use the attackers in a more interesting way - they just randomly wander up. You can build traps for them, but the traps are usually coffinlike underground pits, not any kind of interesting architecture.

Redstone is also a missed opportunity in Minecraft, because it does not attempt to create any sort of architectural opportunity. You can see hints of what could be when you look at vertical redstone torch elements and such, but architects have to try really hard to force redstone into an interesting architecture.

Imagine if redstone had more interesting topological constraints. For example, what if a vertical stripe inverted the charge? What if parallel, horizontal redstone trails would damp each other, making both null unless both were active? What if redstone healed people nearby? What if it had to be regularly repaired by direct access? What if a redstone "window" generated charge by harvesting sunlight, instead of using a torch?

With a rethinking of how redstone works, you could easily see integrating redstone into your living space, or at the very least having a redstone system be architecture.

If you want less fanciful architecture, you could also include less fanciful constraints. Heating is not hard to simulate at that level, and including a heating system would inspire players to create lots of different heating and cooling arrangements that would be similar to the real world. Moreover, each biome has different patterns of hot and cold ambient temperatures, meaning more variation in houses!

Well... adding all these complexities naturally raises the complexity of the construction.

Space Engineers has a way to calculate whether a space is pressurized. However, because it's very hard to figure out why an area is failing to pressurize, this remains one of the most annoying parts of the game. Similarly, it allows for rotors and pistons, but because they are so buggy and unreliable, trying to use them is just an exercise in aggravation.

Adding complexity constraints is not always the right idea, but it becomes the right idea more often if you "work up to it". That is, if an ordinary construction by a newbie wouldn't encounter any problems due to it.

For example, if you have a structural integrity simulation, but it's gentle enough that an ordinary player house in an ordinary biome wouldn't be at risk. It's only when the player begins to try to build that megacastle on Mars that they have to start worrying about it. Or, similarly, if active redstone slightly healed anyone nearby, players could use it for that without having to try and delve into computation.

These sort of things are great fun to think of, and would definitely be more interesting to more players!

There are a lot of things I want to try to put into a construction game! But... even the smallest ones feel like they could make a game all by themselves.

For example, what about a construction game where you want birds to nest in your house? What about a game where views matter, either because people like them or because systems can only respond to threats they can see? What about a game where you whittle your starship hull instead of voxel-build it? What about a game where natural lighting is the most precious resource? What about a game where annoying extended family members are constantly visiting and you need to keep them impressed while also driving them away?

What I'm saying is: you can sculpt what you want players to want.