Tuesday, April 18, 2017

Wondrous Random

One of the problems with generating content for games is that it always feels prosaic and dull.

So generative games are seeded with wondrous details. The generative content is used as endless filler.

Let's talk about wonder.

It's certainly possible to generate wondrous things. Here's a twitter bot that generates endlessly wondrous planets.

But these aren't suitable to put in video games. The biggest issue is the lack of interaction: a video game's strength is interactivity, right?

Let's consider sci fi, since I'm a sci fi nerd. So let's talk about a few wondrous moments, whether they're interactive, and whether these moments could be generative.

When I considered wondrous moments, I realized they are all either introducing us or bidding us farewell. They are transitions. They are exclamation points. They are a hello or a goodbye.

For example, a rocket launch is amazing. It's wondrous to launch a rocket.

But if we show every rocket launch in a game, the player will get truly bored no matter how pretty it is. See Mass Effect: Andromeda for details.

Instead, we would focus on the rocket launches that take place during notable transitions. When we are saying goodbye to a beloved planet and hello to the stars, that's when we put in a loving shot of the rocket launch. Even though the player has undoubtedly seen a million rocket launches in their life, this moment is wondrous because it comes at the right moment. Just when we're saying goodbye, just when we're saying hello.

Obviously, there are also things that are rarer. Ancient obelisks. Forgotten planets. Derelict space ships. Strange aliens. The sight of your ship being split in half while you're inside it.

These also have the most impact if they happen when the player is saying hello or goodbye. Timed poorly, these amazing things will feel as mundane as having to shut off your alarm and get up for work.

As an example of this, in Mass Effect you spend a lot of time discovering new planets. It's incredibly boring. Discovering new planets is boring! ... because it's part of your daily tedium.

On the other hand, in Stellaris you inevitably discover another alien star nation. This feels surprisingly powerful, because the game leads up to it with popups about how there's no intelligent life even though you're searching for it. Things are just starting to slow down for your star nation, you're ready for a change, and then BAM - a new civilization calls. And then another and another!

There's not much fanfare in terms of selling the illusion. A few lines of text before, one extra line of text afterwards. But because it happens at the right time it feels thrilling. Say hello to a new era!

Well, half the time the pacing is off. It's not a perfect game. But when it works, it works - even without the majesty of long edits and low camera angles.

Later on, discovering a new species feels dull and pedestrian. You're already in that era, and there's no transition happening, so it's dull and pedestrian.

So... let's discuss some techniques we can use to make this stuff shine.

Understanding the Phases of your Game
Rather than discussing how to generate wondrous things, the critical thing is when to generate them. By guiding the player through distinct chunks of game, you create moments where wondrous things fit, and even mediocre wonders will play well in those moments.

The difficulty is in making the chunks feel sharp and clear. For example, in Mass Effect you might go visit the Citadel and spend three hours doing side quests. This is a phase. But there's no "punch" to the beginning or ending of the phase. Mass Effect does play a little video of you pulling out of space dock, but it's perfunctory. It has to be, because the staging isn't heavy enough for the player to put up with more.

How can we build up these phase as things that feel real and heavy?

There are two factors here: the construction of the phase and the transition moment.

Constructing the Phase
The biggest things that add weight are events and characters tied to the specific phase, with a focus on them being left behind when the phase changes.

For example, if it's a visit to The Citadel, you can have the player solve various problems... but have the characters wait on the way to the docks to wave goodbye and say thank you. This doesn't interfere with the player - the player can just run right past - but it does make the player realize they're leaving a place that they've affected.

There are plenty of other, heavier ways. For example, the player knowing they'll never return makes those goodbyes more intense. The player knowing the place is about to sink into a fiery magma pit also punches things up.

Adding play on the exit is also valid: in order to get off-world, the players have to fight through the local thugs and decouple the dock lock-down locks. When considering where to put these kinds of fights, the answer is "before the wondrous thing" - so if our wondrous thing is the launch, then we want the fight to happen before launch, not in space.

If you're creating a linear game, this can all be added in manually. If we're talking about generating content, it's clear we have to generate these heavy elements. The wondrous launch isn't the thing we have to generate: we have to generate the thugs and the teary children waving goodbye and the battered old robots throwing flowers.

We have to generate the context. The meaning.

This is something people talk about a lot, but I think they generally discuss how to create long chains of content. Our focus is different: we don't need complex, evolving narratives. We need short, punchy narratives that fit within this phase of the game and have a clear "goodbye" state.

You Say Goodbye, I Say Hello
Transition moments can be on the "goodbye" side or the "hello" side, and there can be scenes between those sides.

For example, when we leave The Citadel we can linger on our ship going through the relay and let the weight of our passing slowly roll through us. Orrrrr we can show an exciting shot of us approaching a new planet, slamming aside the purple clouds as we burn down on a re-entry.

But we can't show both.

I mean, we do show both. But only one will count as wondrous. The other will count as just a long shot.

Which one do we focus on? Well, which phase is heavier? Is the phase part of a longer chain of similar phases?

For example, leaving The Citadel is usually not a huge deal, because it's a hub world and you visit it a lot. In general, goodbyes are going to be weak from places you're revisiting... unless it's the last time you'll ever visit them. The last goodbye from a hub world is extremely strong.

Similarly, if you are leaving a world exploration phase and immediately entering another world exploration phase, the goodbye is going to be weak and you'll want to play up the new elements with a strong hello.

In theory.

Either way, it's probably best to pad some time between the goodbye and the hello. In a video game, this usually consists of world map navigation, although that's less than ideal. Useful non-phase activities such as party chatter, inventory management, and so on are probably better.

Repeated Majesties
Whether you're generating them or seeding carefully-created content, you're going to have some kind of amazing thing in your universe. You'd like it to not get boring.

An example of this is the relays in Mass Effect. Ancient technology that lets the folks travel great distances without much effort! Amazing!

But in Mass Effect they quickly become so mundane you just want to skip any scene involving them.

Why? Because they are mundane. They are part of the ordinary play of the game. They are not at a start point or an end point. They do not say hello or goodbye. They just happen over the course of your day-to-day affairs.

That's fine, to an extent. Not every encounter with them has to feel magical. But we want the player to be aware that they're playing with something potent every day. So we should try to tie our transitions to them whenever we can. Rather than showing a rocket launch, we would show a relay launch.

They become a "staple wonder", used whenever we need a wonder but don't have any specific wonder in mind.

The issue is that you only have so much space for these. For example, our ship is, itself, a staple wonder. Loving shots of our ship are also a major repeated theme. But is there room for both the ship and the relay? It'd dilute the shots if you played up both the ship and the relay in the same scene: wonders need to be punchy.

There are plenty of times when the ship can be used and the relay can't... but are there any times when the relay can be used but the ship can't?

These are the questions I want writers and devs to ask themselves when they're designing their universe. Not "are relays cool/plot-important", but "when we show cool stuff with relays, are we getting in the way of showing other, more important cool stuff?"

Please note, generative elements can work here just fine. For example, the "deep monsters" in Dwarf Fortress could easily be re-used in different games rather than regenerated from scratch each time - until you defeat this one, you won't get a different one.

Epic Generation
OK, OK, what about actually generating epic, wondrous stuff?

Well, there's a few categories of epic stuff, and presumably they'd be generated with different systems.

For recurring touchstones such as "your awesome ship" or "the bloodthirst armies of Throckwoodle", those are likely to be specified by the dev, then slotted in as appropriate. As discussed, "generating" those is more like generating a reason for you to use them.

The idea of generating some amazing scenario is also appealing. How do you generate an amazing scenario?

Well, that's a book on its own, but in general you have to remember to make the "hello" connect to the play. The deeper the connection, the better.

In general: the hello needs to tell the player why they're here.

For example, let's say you roll the dice and come up with a pirate base on a mist-covered moon. The wonder is the mist-covered moon - it feels still and epic. But the players aren't here for a mist-covered moon. They're here to tangle with the pirates.

How do you set that up? Well, you can show a shot of the pirate base within the mist, or pirates on motorcycles in the mist, or whatever. You can have an event where the pirates burst out of the mist to capture or ground the players. There's a lot of options: a battered merchant ship half-lost in fog, for example.

These are not too hard to generate, because you can largely just use category matches. The fact that it's a foggy moon is not important to the algorithm: it's just considered "MASK category GRAVITY FIELD category", and so it would have the same set of options as if you were on a smokey volcanic planet, an acidic Venus, a snowy ice moon, even an artificial-gravity planetoid covered in silver clouds.

Besides making the hello introduce the play, it's also valuable to have the play reference the hello. For example, the pirates can explain that they set up base here because the mists are an excellent cover, or they can have tactics derived from the mists, or they can have problems and keep getting lost because of the mist, or maybe they have mutant winged wolves that the mist has created... again, these aspects don't have to make too much sense, as long as they're not actively nonsensical.

The other kind of wondrous event I tend to want to create are the action-packed transition scenes where things turn. For example, your ship takes direct laser fire from the megacannon and is ripped in half with you aboard, now you're staring over a spiraling debris field struggling to get to the megacannon before you run out of air. Or there's a chase in the jungle as speeder bikes race for safety. Or you have to trick the zorgblat to smash down the walls of the alien zoo so you can escape...

These moments are dangerously close to talking about "generative plots", so we'll leave them mostly in the background for now except for one important fact:

These are transition scenes.

This is a moment when you say goodbye to where you were and hello to someplace new.

And that's considerably more important than whether they are simulated correctly or whatever.

...

Anyway, them's my thoughts. Tell me what you think.

Tuesday, April 04, 2017

Intense Gameplay Balance

Let's talk about unscripted, intense moments in a game.

Something that happens organically, as you play.

A lot of games are good at this, and it's the reason why roguelikes are still so popular. It's why Kerbal and Space Engineers have such a long-lasting following as well.

There's an adage: "failing is fun". These games rely on trying, failing, and trying again as a tight iteration loop.

I think this mixes two things. There's the tight iteration loop you get from failing and trying again, but there's also the fascinating and fun loop where you struggle to work through the realities of a situation not going quite according to plan. AKA, "plans-awry" play.

I don't think plans-awry play needs to fail in order to be fun. Struggling and succeeding is often more powerful, because it means your efforts were good enough.

For example, these days I build my Kerbal Space Program landers to survive hard landings. Those would have been failures when I was starting out, but now my landers survive because my planning has improved. That's a potent feeling: "uh oh oh noooo- whew, good thing I planned for that possibility."

I turned a failure into a success.

Fundamentally, this is about a learning curve. A player steadily plans better, sets things up better.

The "failing is fun" theory arises from a learning cliff that the devs sprinkle with glitter. It seems to me that self-directed missions can offer lower bars for success and turn this cliff into a slope. Allowing for smaller final goals, and allowing them to degrade gracefully can make failures into at least partial successes.

Thinking a while, I came up with seven factors I think turn learning cliffs into learning curves. Seven factors that make plans-awry play work.

1) Design refinement/mission arrangement. You need to be able to choose a mission and prepare for any mission you feel like doing in enough detail that you'd prepare differently for the same mission once you know more. For example, choosing different loadouts in Kerbal depending on your comfort in getting to orbit and landing on the moon efficiently.

2) Skill play. As the game unfolds, use your steadily improving skills to navigate challenges to your plan. This might be better ship handling in Kerbal, or knowing how to identify potions in Rogue, etc.

3) World state recognition. As your vision expands, you learn to plan further ahead and understand the world state at greater ranges. For example, orbital exchange windows in Kerbal, or understanding how long you have until a boss fight in the Binding of Isaac.

4) Composite/recursive planning. Allow the player to challenge themselves by trying several missions at once, or help themselves by planning a support mission ahead of time. This allows a player to adjust their plans to serve their skills: if they feel like visiting every Juul moon in one go, they can do that. If they aren't that good at fuel planning, let them send a tanker to Juul first to make it easier. Their choice.

5) Exploits/cheats. In single-player games (or friendly multiplayer), exploits and cheats are a core part of the fun. Exploits and cheats frequently turn into fun high-level challenges and opportunities. For example, the understanding that a torch holds up sand in Minecraft: torches can be washed away by water. Water can be blocked with sand. This is a basic setup which allows people to build a switch! Before redstone, it was the only way to build mechanisms, and even now, it's still used.

6) Cool factor. Allow players to do things that are cool because they are cool. Not everything has to be driven by mechanics. To this end, make missions much more open-ended than you ever expected, especially the low-level missions. For example, in Kerbal the lowest-level mission is theoretically "reach space", but it's so unenforced that people happily build slingshots and see how far they can fling Kerbals. Having a soft, unenforced fail state is a powerful tool.

7) Share-ability. Make it easy for players to share with each other. This partly includes things like screenshots and video: make it easy for players to take good-looking footage. But it also includes things like resharing blueprints, packaging up mod lists so everyone can import things without struggle, and very easy imports of levels, challenges, etc. Perhaps even automatic content sharing within some parameters.

These seven things seem to be really good at giving the player something easy to nibble on at the beginning, when they barely understand anything... and then letting the player just stretch their legs forever as they get more and more skilled. 7) is questionable, I suppose, but I definitely argue that it's part of the same concern.

Now, this isn't just theory for theory's sake.

I'm making a game. How does The Galactic Line do these things?

1) Design refinement. This is probably the most challenging for any game, because you have to come up with gameplay that makes refining your designs deep enough to carry the whole game, but easy enough that a newbie can approach it.

For TGL, I plan to do this by focusing mostly on the crew. A newbie understands the idea of putting people on a ship, they can focus on who they want to put on. They'll just choose whichever stock ship they like best.

This will naturally lead to them understanding how the crews and ships work, as they watch their story unfold. Critically, complete failure is unlikely. While chunks of ship get shut down and people start tearing their hair out, the stock ships will be well-designed enough to limp home even after a disastrous starting mission.

They'll hopefully feel the natural impulse to make their own ships, try longer missions, larger crews, etc.

2) Skill play. In TGL, the skill is mostly about optimizing for longevity by arranging the crew and ship modules. For example, when someone stresses out and something on the ship breaks, you have three options: leave it busted, repair it by salvaging another ship module, or dedicate crewmembers to massaging it into function 24/7. These options are about resource management and planning ahead.

If you do them well, you'll have "slack". You can use this to optimize hobby rooms and relationships, arrange for experience gains or career advancement, or optimizing ship modules for better performance in the next zone. This combined with the use of "redshirt" crew members gives players a lot of ways to manage things live in a skilled or unskilled way.

3&4) World state recognition/composite missions. The player will be faced with a lot of options as to what they want to do, but the most obvious pressure will be from "bounty" missions where people request specific resources from specific places. For example, "get me 30 points of astrophysics data from Beta Sirius". Those will be calibrated for the capabilities of the ship, but there's nothing stopping you from randomly gathering as much data as you want. It has some value.

Understanding how long those missions will take and what resources they'll require can allow you to do several missions at once, either in serial or parallel. If someone wants data from Beta Sirius and another person needs you to pick up five passengers from Gamma Draconis, maybe you can do them both in one run. If things go well.

4) Recursive missions. The game encourages the player to meddle with the affairs of non-space-ship folk using a simple colonization system. Hopefully this will not only allow the players to push through map choke points/extend missions, but also feel invested in the universe they're building.

5) Exploits and cheats. Not sure about this quite yet, but the plan is to make the game moddable and I'm not aiming to prevent them.

6) Cool factor. In addition to trying to let space ships look cool, a lot of the fun stuff is going to come from the way you can make custom crewmembers. As The Sims has shown, there is an impressive appetite for putting all sorts of random people in the stew-pot in different combinations. Want a ship crewed by your favorite band? Your friends? Vampires?

From the other side, colonies can also be made cool. Want to terraform a planet? Want to cover a moon in a huge city? Want to start from just one starving industrial colony on a barren world?

7) Share-ability. This one't a bit tough because it doesn't actually exist yet. The big challenge is that I'd need some kind of central database. Once I have that, automatically downloading ships, mods, stars, and world states is fairly straightforward. It's intended to be a "massively single-player" game.

In terms of making it fun to record/screenshot... I have to think about that some more.

At the end of the day, the plan for The Galactic Line is to focus on plans-awry play with a minimum of actual failing. We'll see how that theory works out in practice.

Anyway, those are my thoughts.

Wednesday, March 29, 2017

Modular Space Planes

So, in The Galactic Line, you build space ships out of modules. Therefore, I model and texture the modules, animate them as needed, and so on. It's reasonably decent.

It inevitably results in an "industrial" look. The modules get slapped together in whatever way seems best. Even though you're not locked to a grid like in many voxel space ship games, you're still working with parts that have a fixed size and shape, and their seams will always look heavy and industrial.

Moreover, repeated parts will always be the same size, so you tend to end up with straight lines and boxy profiles. This is especially noticeable with habitable areas, since you rely on door-to-door connections, and that typically means all your habitable areas have the same connection profile - leading to straight lines and flat profiles.

Most space ships that are properly designed have flowing lines, tapered elements. They feel almost organic.

That's a high bar for modular spacecraft. Flowing lines and tapers are tough to do in modules, because baking them into the modules means the modules can only be assembled in one order, and with no missing parts. No reason to make it modular, then!

I've been struggling with this as I try to make a spaceplane set, so let's talk about a few methods to make modular ships have flowing lines.

1) Algorithmic tapering

It is possible to adjust the meshes of the modules to taper according to some algorithm. You can easily make a fuselage of modules into an organic tapered shape. This has some problems, though.

First, it can't mask the seams of the modules. This means most of the modules have to have identical connectors, which radically limits the overall look. It's always going to be a tapered fuselage, just with different surface greebles representing the different parts. More complex seams are possible, but the tapering won't mask them, so you'll need to be aware of that.

Second, if the modules have interiors, it's going to screw up the tapering. A room that shrinks or grows might become inaccessible or out of proportion. If the rooms are size-locked, now you have a problem where the windows need to stay attached to the outer hull, so now there are specific sub-elements of the mesh that must be scaled at different rates to get the final taper. Interior halls twist and grow, room ceilings rise while the rest of the room remains the same size... it's a mess.

Without R&D, tapering could only be applied to non-habitable elements such as engines, tanks, machinery, etc. I don't know if that's worth the effort.

2) Masking elements

Slipping coats on the outside or shims on the inside is perfectly possible. For example, if you want your straight fuselage to take on a triangular shape, slip on a triangular bit of armor around it. Any shape can be mimicked like this, and the flow of the ship profile can be built primarily out of these masking elements instead of their contents.

One problem is precisely that: the flow of the ship is mostly determined by specific masking elements, and is therefore pretty restricted.

Another problem is that the masking elements inherently conflict with the surfaces they mask. If you're turning a straight fuselage into a triangle, then the windows on the fuselage are now, at best, recessed several meters into a concave pit. This is substantially worse if your fuselage modules have significant surface elements, such as bay windows, solar panels, machinery, or inflatable areas. Masking elements constrain what you can put on your core modules and where, meaning that they may look 'unfinished' when not masked.

It is possible to do the opposite. If you have a split body rather than a fuselage, you can slowly move the elements apart or together and fill in the interior gaps. This is a fairly robust approach, but it means you'll have twice as many parts, twice as many halls. From a simplicity standpoint, it makes the most sense to "shim" with a hallway rather than a hull part, making the core hallway widen or narrow or have gathering points to change the flow of the profile. This can work, but care needs to be taken on how the attached rooms actually attach. Otherwise it will still end up looking very linear and dull.

3) Adaptive sizing

It's possible to set up the individual elements with blend shapes or bone animations to slightly change their shape. This is fairly adaptable, since it is per-part, but it does require that the linking areas remain interconnectable. So you can't go too off-the-wall.

This can be used to taper elements, but they would all have to have the same basic taper characteristics in order to connect without big chunky seams. Perhaps more feasibly, it would allow you to raise or lower the exits, which would break up the linearity without feeling too forced and without any complex interconnectivity requirements.

Of course, you could also just make some parts have a rise or fall inherently, which would accomplish the same thing. This would force players to accept specific patterns of shapes, but it's much cheaper.

4) Painted hulls

Another option is to let the players place the rooms/modules, then adaptively generate the flowing hull. This wouldn't be too hard - a convex mesh calculation with some holes cut for the windows and panels you want to expose. However, since I haven't done it, I don't know how good the result would really be. "Shrink-wrapped space ship" seems like it might be a bad look, and you'd need a lot of smart texturing algorithms.

Even with that approach, you'd still need to use offsets to keep the habitable areas from going excessively flat.

A subset might be possible. "Adaptive surfaces" are less difficult that fully generated ones, and it might be possible to create masking elements that "melt" into the existing objects, including making way for elements that need exposing. This is a bit of a challenge, but not as excessive as generating the full hull. Also, it'd allow for a lot more control over what the ship ends up looking like

A super-easy subset would be adaptive surfaces that have shapekeys built in. The various shapekeys align with various shared shapes among the modules, allowing you to adjust the hull to fit properly. This is a big step up from simply allowing the meshes to overlap, but it does mean you'd need to have only a few, very common shared shapes.

...

Anyway, that was my very technical essay on a specific thing I'm doing.

Tuesday, March 28, 2017

What Plot Would You Write?

I'm playing Mass Effect: Andromeda, and I've been slightly disappointed by the writing. Putting aside the dialog, I'd like to talk about the wider elements.

Spoilers, but only vague ones.

The game is about a large group of colonists leaping from the Milky Way to Andromeda in vast arks, targeting a few specific worlds that seem inhabitable. They cryosleep for 600 years, and awake when they arrive.

There are some holes here that need some Unobtainium patching, but it's not a bad idea. It sets up a massive project, seals the path backwards, and isolates us from the extensive (and problematic) pre-existing lore.

However, that's not the full setup. There's a million things going on, and they all need to be explained before the story can even get started. That's not a great idea: any one of the setup elements could easily have supported the whole game without making it super-complex, and that would have made the writing easier.

Talking about how writing can be "made easier" might seem a little odd, but the simple truth is that if the scenario is set up well, writing flows well and needs less forcing. This is especially true of characters.

In a game where the player can do a huge number of different sub-plots in a variety of orders, it's critical that they feel some connection to the places and things going on. The easiest way to do this is to have the party members have some connection to nearly every subplot.

If they care, we'll care.

This is a pretty typical approach. In fact, it's the classic Mass Effect approach: in ME1 and ME2, that's how it was done. The characters resonated with nearly every scenario.

For example, Garrus was all about the nature of vigilantism. Well, so was the plot of Mass Effect! The subplots naturally had the concept come up all the time, and therefore Garrus always had something to do or say. Naturally this culminated in him trying to clean up that hellhole asteroid as Archangel, a microcosm of your whole adventure.

Wrex was the same, but about war instead of vigilantism. War was a core theme, and kept coming up. When was it good? Bad? Necessary? Out of control? Tired? Heroic? Desperate? What are we willing to fight for - no, not just fight, but go to war for? And when do we stop?

Both war and vigilantism were threaded into nearly every scenario in the game because the game was built on a single foundation, a simple setup that allowed the writers to easily explore those concepts in a lot of different ways. Although simpler, the setup for the earlier Mass Effect games was not smaller. It could support just as much play, story, and depth... just focused on deeply exploring a few themes instead of shallowly exploring a lot of them.

To put it another way: it's impossible to tell where Garrus ends and the story begins.

A good character flows everywhere they need to be, naturally, unforced.

A bad character stands to the side and watched the story go by. Even if they have good writing or voice acting or are compelling, if they just stand there, they're bad.

This is a big failure in Mass Effect: Andromeda's writing.

For example, Cora. She's a human psychic that worked as an Asari commando. This is a really interesting idea that has really powerful themes.

The actual in-game writing of Cora is clearly "Asari ark contact + conflicts with Peebee". She doesn't flow into the wider story - she's simply wedged into "her place" as a representative of a specific story element. This is probably because there's a lot of specific story elements and they don't have much thematic connection.

Cora's history working with a group of weird alien commandos and desperately trying to earn their trust? Well, that's literally what you do with the Angara. You literally work with Angaran commandos and try to earn their trust. But Cora has nothing to say about it. She's not involved.

The fact that Cora cannot live long enough to complete Asari commando training? That's fascinating, and could easily connect to things like our 600 year cryosleep, or to the Angaran elders that cannot seem to find any fresh new students. Again, Cora has no comment.

This is easily explained: the Angaran stuff is Jaal's place. Jaal does that stuff. Cora isn't involved, except for some minor flavor commentary.

This goes for every character. Jaal's thing is imposter syndrome, but he has no connection to Nexus and its leaders? Even though the thematic connection is clear? Jaal doesn't even have any connection to an Angaran port world conquered by pirates!

The lines drawn around what each character is involved in are sharp and clear.

Unfortunately, that means that for 99% of the story, Cora and Jaal just stand there. They aren't involved.

This is true of all the characters in ME:A, and I think it's why we just don't feel as much connection to them as we did to ME1 and ME2 characters. Those characters went through an adventure with us. These characters just stand nearby while we go through an adventure.

It also makes it difficult for us to care about our adventure!

In ME2, visiting the hellhole asteroid was interesting because two of our characters were deeply involved in trying to fix the place in their own way.

But in ME:A, visiting a similar hellhole is dull. There's no major characters with any significant ties to the world. They don't even get involved in local affairs - just some flavor text. Instead, your contact is some boring smuggler and a woman with a dirty face, neither of whom anyone cares about.

Even characters that should have a history with either the smuggler or the pirate queen... don't. Vetra apparently has no comment on this smuggler, despite using smugglers extensively. Peebee has no particular comment on the pirate queen, despite them both living through the same civil war on the same tiny space station!

This is because Vetra's story is Vetra's story and doesn't interact with the rest of the world. And so neither does Vetra. Peebee, too: lock her up in her own little room, no contact with the rest of the world.

Unfortunately, this means that I don't care about the pirate base. Moreover, the writers missed a chance to make me care more about the crewmembers. If Vetra was the smuggler trying to fix up the pirate world, Vetra would have a chance to impress me and spend meaningful time with me, as well as giving me a reason to care about the pirate world. But... nope. Some boring Han Solo wannabee that is also nicely cordoned off into his own little room.

Writing characters that thread through the game is not terribly hard. The fact that the ME:A characters don't even try makes me think that the writers came up with a plan to partition these elements specifically to reduce complexity - otherwise, they would have written some involvement on accident, I would think.

Whether on purpose or on accident, ME:A's partitioned storylines are a huge disservice to the world and the characters. It starves our critical crewmembers of screentime, and leaves each world feeling uninteresting and pointless.

On a writing level, there are some techniques you can use to make it easier to make the characters flow through your scenarios. A key factor is choosing a simple foundation so you have more repeating themes. IE, vigilantism explored in a hundred variations means a hundred chances for Garrus to have something to do/say.

If ME:A didn't have such a complex setup, a lot of these things would have flowed naturally as the writers searched for interesting ideas in the simpler story space.

But... the fact that they didn't do it at all, not even on accident, implies they wrote it like this on purpose. In which case simplifying the setup would not have helped.

At least, that's my theory. What's yours?

Wednesday, March 22, 2017

Character Checklist

I'd like to talk about how to write characters, especially for sci fi. There will be very mild spoilers for Mass Effect: Andromeda's first hours.

It's clear that the Mass Effect team wanted to up the representation in this game. The characters are more diverse, both major and minor. For starters, there are a number of alien lizard women that don't have breasts, pretty much a first in the genre.

Care was taken to try and slot people into "nonstereotypical" roles. For example, the religious zealot is your scientist. The butch lady is straight. It's clear they were really trying to make this feel inclusive while avoiding stereotypes.

Unnnnfortunately, they're not very good at it.

In science fiction, we're currently walking a new path. The concept of representation in sci fi is thorny, because sci fi was built around representing other cultures and ideals with aliens. When sci fi is aimed at a single group of people, that works well enough - your target demographic is the baseline, and everyone else is an alien.

This may sound reductive, but that's how it's generally been. This allows sci fi to take how the target audience treats those people, those ideas, those policies... and show it separate from the complex intertangling of the real world.

Even Star Trek, a sterling example of inclusion, did this. Although the crew had minority crewmembers, they did not represent the struggle of minorities: Star Trek was portrayed as being past that. They were representations without the real-world baggage.

Rather than include any racial tensions on the starship, the writers would put the racial tensions into a representative race. For example, making a species that is half white and half black get into racial wars over whether they where white on the left, black on the right... or visa-versa.

This works reasonably well when sci fi stories are aimed at a specific audience. But once the audience expands, it becomes clear that being represented in that way doesn't work so well. The tribulations of the Mass Effect devs have made it clear that people want to see themselves properly represented. Not as a weird alien or a paint job on a default character, but as someone with similar concerns and goals.

Basically, everyone wants a power fantasy about them.

Nobody is monolithic. Each person cares about a lot of things. This is why Mass Effect found itself with fans that weren't really represented. It has anemic racial commentary and somewhat regressive gender representation, but those people also found things they liked. Space ships, cool adventures, an epic battle, hot folks you could date...

Mass Effect clearly decided those people deserved better representation, and struggled to work in a more diverse cast. This seems to have backfired with Andromeda, whose representations are painful tokens that mostly highlight a clumsy writer rather than making people feel welcome.

To me, the problem is clear:

Representation is not one thing.

In sci fi, representation can mean "oh, we're past all the problems you're struggling with", or it can mean "oh, let's explore that concept, free from the complexities of the real world", or it can mean "oh, let's explore that with all the complexities of the real world in a new context".

Moreover, in a video game, does an NPC even count as representation? Can we say that we are represented if we are not allowed to control ourselves? Does a background character going through a personal crisis represent us if we also went through that personal crisis?

Or does it only count if we actually have control?

Whatever you think the answer is, I think it can be argued that we should try to "centralize" representation. It should be part of the player's experience, not just part of the background noise.

The obvious problem with this is that there are more experiences we want to represent than we can cram into one timeline, and many of them are contradictory. Our hero can't be everyone. They will always be an outsider to some group just by their inclusion in another group.

... none of this is new.

Sci fi has always been about including a lot of different experiences via abstraction. Normally, the experiences we want to include are coherent. They cohere around a core idea.

Our universe might revolve around the idea of right and wrong, like Star Wars. Experiences revolving around that concept naturally pop into the writer's heads and flow smoothly through the player's adventures.

For example, in the Knights of the Old Republic series, we can easily have an evil android, a 'gray' Jedi, adventures in balancing the needs of the many and the rights of the few, of balancing law and morality. These are issues which naturally arise from Star Wars' obsession with good and evil. They all integrate with the player's own story to some extent, usually through party members.

But it is more difficult to include things like race, religion, or gender. Since they are not hooked directly into good and evil, you have to force them to fit. Sure, it's evil to massacre people because of their race or religion, but there's not much to explore. It's just evil being evil because you need to send a message.

Thus the endless stream of bandits in so many games. Just evil for evil's sake. Can't think of any way to make them more interesting, because we didn't set up our universe right.

If we want to be more inclusive, we have to orient our universe around inclusive concepts. For example, the Federation is about all people coming together for a better future. Not just humans, but all sorts of aliens living their weird, extreme, exaggerated alien lifestyles.

That's not a very viable theme in this case, because there's not a lot of discussion. Race, religion, and gender in this kind of universe are just accepted. We're past the conflicts that arise from them: the answer is always "yeah, as you like, now let's go space exploring!" Or, alternately, "let's show the oppressor why he's wrong!"

This is not a situation I have answers for, but if I were writing a sci fi setting these days, I might base it around the idea of acceptance vs rebellion. Accepting people or things or situations - or fighting them. When do you side with who, and how much will you sacrifice to help people you'll never meet again and who aren't magical paragons?

When we want to add in representation here, it should flow relatively fluidly. There are endless nuances and complexities to explore - not just things like "evil people hate minorities", but things like systemic injustice, unstable societies, and the difference between accepting someone and fetishizing them.

We would be free to either lift situations wholly from our reality, or create abstracted situations that leave out the entanglements of the real world. Both would play well in this environment.

These situations would flow easily and naturally, and we would be able to write them without feeling forced or feeling like we have a checklist. I think you'd be surprised how often you would naturally write something that resonates with people Mass Effect has been struggling for years to even acknowledge.

Conversely, we would have a hard time talking about good vs evil. It'd feel very forced.

Even with this theoretical franchise, we are left with some complex questions. Can facets of humanity be represented by aliens? Do technological handwaves diminish the validity of real-world struggles? How much of our writing needs to be vetted and rearranged by people going through the real-world versions of our abstracted situations?

But I think it'd be a pretty good approach. Just need to figure out a reason why acceptance vs rebellion would be the founding principle of the universe: Star Wars has the Force, Star Trek has the Federation, dunno what I'd use.

Anyway, let me know what you think.

Wednesday, March 15, 2017

Inside-Up: Space Ship Floorplans

The Galactic Line is a game about crews aboard space ships. It has one particularly glaring challenge: the camera.

Looking at the crew of a space ship is typically done via a birds-eye view with the roof stripped away, just like how you see people in The Sims, or FTL. This approach is particularly useful in games where you also build things or manage complex facilities, because this kind of "map" view is a natural fit with arranging pieces and laying floorplans.

Originally, I had planned to have The Galactic Line feature several different cameras, including a first-person or close-third-person for realtime events. However, I think I've changed my mind. Let's talk about the drawbacks of the birds-eye view, my workarounds, and why I'm leaning in that direction again.

Floors
One of the biggest limitations of the birds-eye camera is when things are stacked. You can see this even in The Sims: when you're looking at the ground floor, you can't see people in the basement or upstairs. This keeps you from having a good overview, despite having a literal over view.

The Galactic Line uses modular construction, rather than tiled construction. You click prefab rooms and sections together. This means we can arrange our modules so that they naturally click together in a manner that doesn't have overlapping rooms.

1) Multi-layer modules (stairs, atriums, etc) give us a good control point for how ships can be arranged vertically. If these modules have doors on each floor offset from the floor beneath, then the attached modules will also be offset, allowing us to naturally stagger our layouts.

2) Use of "gray" space such as storage and life support means that a habitation module can have lots of areas we can simply leave unrendered, allowing for rooms above or below to naturally fill that space. Moreover, hallways themselves are low-priority and could be rendered softly, if at all, allowing us to stack halls over rooms without blocking the rooms.

3) Larger modules for larger ships may have a dozen rooms in one package. If we make each of those modules largely vertical, we can arrange the rooms so they don't block each other vertically. Additional ship modules will generally snap on horizontally, meaning our large modules rarely vertically overlap with other large modules.

4) Sparse modules. Using a variety of layout tricks such as arbitrary angles, slopes, and gentle curves, we can make it difficult to tightly pack our modules. These work well if the modules have a number of windows or other external-facing elements to give an excuse as to why you don't want to pack them tightly. This would be, visually, fairly unique: most settings have tightly-packed hab areas.

5) Subsystem filters rather than floor filters. Instead of looking at "deck 6", we can look at "off-duty rooms" or "engineering rooms" or "command rooms". By arranging these rooms using the aforementioned techniques, we can show a spiderweb of rooms on several floors, none overlapping. The focus on functionality means we can also see the operations of the sort we care about, rather than the arbitrary "nth floor" filter.

People
In The Sims, you can't see everyone all the time - they might be on a different floor, or just far enough to the side that they're not on screen. So there's a bunch of portraits on the screen which show their faces and needs, letting you keep track of them no matter what you're looking at.

Our situation is a bit more complex. The Sims is about a few people, and the focus is on tending moods. In The Galactic Line, you could theoretically have a crew of thousands, and the focus is on the specific event that's unfolding rather than on moment-to-moment moods.

The good news is that the event focus means we are also able to focus on only a few of our potentially thousands of crew members: the ones involved in the event.

This means we can have a manageable number of portraits, but it also means we can have a manageable map presence. We can arrange our highlighted crewmembers to be in rooms with no overlap, so we'll always have a clear view of them. We can even build an adaptive interior view which highlights only the rooms they're in, making any potentially overlapping rooms invisible unless you manually walk into them for some reason.

Functionally, this means we don't need portraits. We can use portraits for a variety of things, especially when arranging or building the crew, but for the event scenes we don't need them. You can see everyone involved. You can see what they're involved with because they're standing at a specific place in a specific room. There's no need for floating heads to pump numbers into your eyes.

Faces
The reason I wanted to go with a more personal camera is easy: this is a game about people, so I wanted closeups of people. I planned to do some camera manipulation when you get near/start talking. Get a reasonable closeup of the face.

I need this because A) faces are distinct, and it's one of the important ways crew members are unique. B) The expressions they make are a critical part of empathizing with them and their situation.

However, we don't need to rely on the player camera. There's no reason we can't have a separate dialog system, like thousands of games of all sorts. A popup of some kind that shows their face up close.

There's loads of different approaches. For example, the full-screen dialog tree vs the chatroom-style messages with faces alongside. There are a fair number of distinct options - perhaps a sidebar element that folds out to show the ship's chat room would feel right... although the faces might be too small.

Any way I slice it, there's no big problem with having a separate dialog engine. It's common.

Advantages to the Bird
Birds-eye camera has a few distinct advantages. I've already mentioned that it fits well with the construction engine. It also shows a fair number of people and the state of the ship all at a glance, which is nice.

Another advantage is the low resolution required. Because the camera never gets too close, I can use relatively low-res assets for furniture, for bodies and rooms. I don't need to have high-res assets for books and posters.

The main problem I have with the camera angle is simply that it's not very personal. Moving a pawn around on a giant board game is not very immersive. Walking around inside the ship is a hugely immersive experience that I would love to focus on, especially because the experience of being stuck aboard the ship is the focus of the game.

Well, let me know what you think.

Monday, March 06, 2017

Glowing Open Worlds

I was following some Twitter thoughts by Jake Monahan, and it got me thinking. He was talking about how open world games are inherently built to be strip-mined, discarded once you've finished pillaging them. He points out that most of the things you do that change the world (such as resolving a gang war) actually make the world less fun to play in.

This is very interesting to me, so I thought I'd analyze it in way too much detail!

First, the constraint: we're specifically talking about designed open worlds, not randomized ones. Fallout and GTA, not Minecraft.

The most obvious reason why open world games are built like this is because that's the play we have gotten used to. Killing and collecting are our focus, and both of those remove your targets from the game.

A less obvious reason is that most games are about progressing through the game. If the world is steady-state and nothing you do changes anything, there's no reason to move to the next zone. And if you do decide to move on, there's no reason to actually grapple with the next zone, you might as well just skate through as fast as possible.

So the "strip mining" is not simply a side effect of the preferred play. It's a tactic that pushes the player to move through the game at a steady pace. Different players will engage at different depths - some might spend a lot of time hunting for every scrap in a given area, others might just hit the high notes. Either way, they are steadily lured into finishing this zone and moving into the next one.

It's possible to design a constructive open world, where your gameplay makes more gameplay. However, you would need a different mechanic to lure the player forwards, or they'll never get very far into your world. They'll just mine out all the play options in the first few areas and then get bored of your mechanics.

In short, if the player isn't lured into moving through your open world, it's not an open world.

Whether it's a linear game or an open world game, as we move through the game we discard levels behind us. In a linear game, those levels are simply gone. In an open world game we can physically return to those places, shrines dedicated to our past adventures, but they are no longer part of our path forward.

...

It's worth considering replay value. In the first play-through, players usually behave fairly predictably. This is definitely worthy of its own conversation, because 'predictably' doesn't mean 'exactly the same path through the game', but it does mean that you can typically use standard tricks and layouts to pull them into a few paths you consider to be ideal for new players.

For example, in Fallout 4 you aren't physically forced to get Preston and Sanctuary, but nearly all first-time players will. After that it appears to open up and tell you to go do anything you want, but the way the map and sidequests are laid out pushes you to find a few small farms to recruit and a few bandit hives to clear. In theory you can spend a lot of time farting around this open world, but in practice they limit your available play options so that you'll get a little bored of doing that and decide to start for the city. They city features a combination of physical funnels, golden paths, and meat walls to pressure you into finding Diamond City.

The design of this is "first run" open world design, and it's not too different from a linear game. But when we replay the game, we are more familiar with the world and take more advantage of the variations.

This isn't a proper "new game+" situation, because many people restart the game long before they've beaten it. For example, I've played the first five hours of Skyrim approximately 300 times, and I still haven't actually beaten the game. Trying new paths, or perfecting your abuse of paths your familiar with, or challenging yourself with a new constraint... these are powerful play elements!

What I'm leading up to is this:

The open world we strip mined? It doesn't stay stripped.

We return to the fresh, untrammeled world again and again, whenever we want.

To me, that is the truest power of an open world, and that is what I would like to focus on when building open world maps.

... maybe I'll talk about that for fifty hours some day soon.

Friday, February 24, 2017

Foreshadowing and Layered Storytelling

Spoilers for Life is Strange and Night in the Woods. Night in the Woods spoilers are hidden behind a button (in the web version) and you can skip them.

Recently I've seen a lot of games stumble over the concepts of foreshadowing and layered storytelling. Even really good games. So let's talk a little bit about it.

This might be a bit rough, it's my first take.

Games have twists. At the end, in the middle, twists everywhere. All these twists have to feel like they make sense.... but they usually don't. They often feel like they "came out of nowhere".

There's usually foreshadowing: nobody simply forgets to set up the ending. They just... foreshadow badly.

The two most common kinds of bad foreshadowing are the accidental reveal and NG+shadowing.

The accidental reveal is pretty obvious: the foreshadowing is so blatant that it simply gives away the twist.

NG+shadowing is the opposite. The foreshadowing is so minuscule or unrelated that you can only see it as foreshadowing when you're playing the game a second time.

You might think we're on the hunt for goldilocks moments: foreshadowing that isn't too blatant, but isn't too subtle.

Not me. I say both those kinds of foreshadowing are misunderstanding the role of foreshadowing.

Let's get... hoity-toity.

The twists that stay with me are the ones that are thematically relevant.

Let's say we're writing a game about a main character struggling through a rough time in their life. The backdrop to this is a series of mysterious murders: our MC lives their life, notices murders happening in the background. At the end of the game, the two plot lines come together and there's... some kind of cool twist.

If you're a writer, you need to think about how these two plot lines support each other. They're not just two stories happening in the same place: both need to be stronger because the other exists.

The first instinct is to make them related physically. Our struggling MC witnesses a murder. Or is suspected of being a murderer. Or one of the friends is a suspect. Simply moosh the two plot lines together and then stitch things up. It works. Ish.

A good writer will think about more than that. We need the two to support each other thematically. The serial killing is a twisted reflection of our MC's internal struggle. The twist at the end is how the two separate or merge, and it reflects not the meanderings of the plot, but the slow syncing of the two themes.

...

Let's discuss and compare Life is Strange and Night in the Woods. They both have the same main character and a similarly laid-back approach to gameplay, so they're a good contrast. Since NitW is new, I put the NitW spoilers behind a spoiler block. You can skip them.

...

In Life is Strange, our main character has psychic powers. These help her to mask her social anxieties by allowing her to simply undo social interactions. Initially, her personal arc is about coping with or overcoming her social anxiety - perhaps with a highlight on the awkward fact that she's attracted to her childhood friend.

This arc is probably strong enough to sustain us through the whole game. Our B-plots each episode could easily integrate in. We can talk about Kate, who faces social execution due to a video of something that was not her fault. We could talk about Chloe, who has no 'social' because people keep leaving her and she's burning on a combination of deeply loyal raging and deeply bitter self-isolation.

These segments integrate well with our personal arc. Our worries about our own inadequacies and mistakes are shown as funhouse mirrors, blown out of proportion. Some segments are minor, like Victoria's cronies briefly admitting their own social worries. Some segments are major, lasting almost the whole game and providing a constant thematic companion - Chloe, in this case.

However, our personal arc doesn't require any superpowers. That story could be told with no superpowers at all.

The role of the superpowers is not to advance Max's arc. Max is responsible for advancing Max's arc. Instead, the superpowers are a mirror of Max's arc, showing in more concrete terms how Max is advancing, and giving us a simple tool to help tie other arcs to Max's own arcs. Think about it: if Max's powers reflect Max's place in her own arc, then naturally they'll be good at interacting with arcs that also reflect Max's place in her arc. Max's powers can be a needle and thread to stitch arcs together. They give us, as authors, a tool to make Max's arc feel palpable and clear.

Let's make it plain:

We start Max with the power to briefly rewind time, which we initially use mostly to let the player re-do awkward social moments. This gives us plenty of opportunities to cement both who Max is and who she wants to be. This basically represents Max's ability to consider other people, rather than just wallowing in herself: via retrying, she can consider how other people will react and plan her conversation accordingly.

That said, the limits are more important than the capabilities.

We can meddle with other people's lives, such as stepping in for Kate and Chloe. But we quickly learn that no matter what we say, there are things that can't be fixed with a few careful lines of dialog.

The arc of the powers reflects her own personal journey: she's just starting off, so she is pretty limited.

We slowly ramp up her powers to interacting with physical things. First with miraculous timing, then by being able to hold items while rewinding. In the real game, these are all mixed together... but we're talking about our own theoretical version, so we can separate things out.

This growing power reflects Max's interest in being better at peopling. The things she can't do with a snippet of dialog, she can do with physical objects.

It's very possible to use these powers to tie arcs to our current situation.

For example, the "Victoria on the stairs" puzzle, where she blocks our way until we pour paint on her. We can't convince Victoria with words, so we convince her with actions. In the game, this is one of the worst puzzles, since it makes so little sense, takes so long, and is immediately rendered pointless with another nonsense puzzle. But thematically, it's a good idea. A similar puzzle could have worked well.

For example, the Warren Gets Beat Up scene could have been replaced with a Making Warren An Accidental Badass scene. That would have felt awesome, and would have allowed us to take Warren down a self-destructive path for later use in a different arc.

If we really wanted to have it be a Victoria scene, why not have it be something that makes sense? Victoria's goons found Max's satchel, and are saying that nobody can be SURE whose satchel it is, and that they should probably go turn it in to the lost in found... in Pensacola.

Both of these puzzles are about situations dialog can't resolve. Both of them are about people who get things done beyond the reach of simple dialog, and about people who are also suffering from concerns dialog can't reach. In fact, we could get away with outright stating that as a throwaway line. Max sneaks up on Victoria and friends, hears them talk: "It's all just talk! If talking could solve everything, my mom wouldn't be in the hospital dying." Etc, etc.

This section of Max's arc could culminate in the second episode, when Kate tries to commit suicide. In canon, this situation is beyond Max's powers of time control, and represents a chance for Max to step up and personally resolve the situation without relying on "cheats" - proving that she no longer needs them. It represents Max closing the circle: dialog spoken from the heart is powerful enough to do what her carefully calculated superpower dialog could not do. Max has outgrown her powers.

In canon, Max's arc changes from social anxiety to heroism. More specifically, the theme becomes "how far will you go to stay with someone you love", which is also a very potent arc. I have no problem with this arc change, because it builds off of Max's earlier arc in an organic way and is completely believable.

Unfortunately, the arc doesn't follow through: the author clearly didn't think it out well enough, and the story devolves into a macabre serial killer dream. While the individual elements are written well, they don't thematically tie in with either of Max's arcs, and the whole thing falls apart. The finale does drag it back around, but only after hours of serial killer nonsense actively detracted from it.

That weird serial killer sequence? It was a twist that came out of nowhere.

It was foreshadowed, but it still felt awkward and forced, because the themes didn't line up.

Creating gameplay based on your theming is a powerful tool for a lot of reasons. First, it gives you a great lead: no matter what you're trying to do in the game world, you know how it should feel and what it should be about, so it's much easier to develop. Second, it draws the player in and keeps them in.

We can craft moments of triumph and pain that work within our arc - either our social anxiety or our heroism. Finding that Rachel died and watching Chloe crumple will gut us either way, but subtle highlights on Max's reaction will tell us whether Max is struggling to support Chloe or rescue Chloe. Those are very different feelings and players will pick up on it, especially as Max's subsequent actions struggle to do one of those things specifically. IE, are we trying to go back in time to rescue Rachel? How about to prevent Chloe from meeting Rachel? How about just supporting Chloe with hugs, pot, and ice cream? How about taking advantage of Chloe to bind her to you emotionally? All of these are valid paths which support different arcs in different ways, and develop Max in different, interesting directions.

Which direction you choose is guided by what path you want to take. And, at the end of the game, the ending sequence will be about resolving that mess.

The canon ending is: sacrifice the town for Chloe, or visa-versa?

However, there are other, equally powerful possible endings. For example: wipe yourself out of existence. Chloe's dad wasn't there cooking lunch for you, never died. Choose which of two or three Chloes is "real", and face down your nightmares of the other Chloes - it's even worse because they forgive you. Rewrite history so many times that there is no "real" Chloe, only your Frankenstein's Chloe made up of a hundred different pasts stamped together with superglue.

Those are all "heroism" endings, but there are just as many "social anxiety" endings. Solve Chloe's problems, or let her work through them? Leave Chloe straight, or just tweak reality slightly so she's your love interest? Etc, etc.

Knowing our goal allows us to build up a path towards it, choosing gameplay, puzzles, B-arcs, and supporting cast that highlight our journey. Usually this is about building up Max's vector until it is out of control, then simply pointing out that it's out of control.

I say "vector" deliberately. This isn't about letting Max use her power to stop a serial killer or whatever. That's not part of either of these personal arcs.

Technically, sure her powers are being used. But not in a way that reflects her personal journey. It's just out of desperation - and live-or-die desperation isn't part of her personal arc, not unless it's on someone else's behalf.

The serial killer arc could have worked if Chloe was the captured victim - Chloe ran off to check the grave without you, and she was gone when you arrived. It would have been interesting to let Max go off the rails trying to rescue Chloe from ever-earlier points in time, watching reality disintegrate.

But I still hold that a serial killer wasn't even needed. Max's powers are the serial killer. Jefferson's role could easily have been to narrate Max's fall from innocence in a much less murdery way, by simply being a smooth-talking pervert. This would have been useful in the part of Max's social anxiety arc where she learns that she can't really know someone by simply collecting their responses.

In the end, Max choosing whether to sacrifice Chloe or the town only makes sense if Max's arc is "Chloe and I will be together at all costs". And that can be established best by creating this universal, stitched-together flow.

That's the best kind of foreshadowing and layered storytelling to me. The two episodes spent on serial killer stuff weren't stitched in properly, and that was the game's clearest failing... despite the fact that it was technically both foreshadowed and layered.

What I'm saying is all of the B-arcs, puzzles, and twists should come out of their thematic connections to the core arc.

...

Now, how about Night in the Woods?

Night in the Woods is really good and the same length as Life is Strange, go play it instead of reading spoilers!

Well I loooove spoilers! Click here to spoil NitW!


Just foreshadowing doesn't make something feel like it belongs.

Thursday, February 02, 2017

Galactic Line Missions

The mission system in The Galactic Line is the foundation that supports the personal-level play. Missions give a reason for the ships to exist and travel, gives goals to the crew, and throws complications in that give texture to their daily lives.

Missions are built on the resource system. So let's talk resources.

The most fundamental resources are the tech level economy points. Currently called "T0", "T1", etc, these replace both generic materials and scientific research. You don't unlock a new kind of superconductor, you get a T2 economy point. And these points get spent on building colonies and space ships. Simple enough.

There are also a variety of resources used to balance the construction of ships and colonies. Things like power, administration points, etc. These create a terrain for the players to build a variety of different kinds of ships and bases in a variety of different circumstances. Mods or custom settings can easily alter the playing field here.

But that's local stuff. Why do ships run around the cosmos? Here are some small possibilities:

1) Local rare resources. However, mining or research colonies are a better long-term investment.
2) Temporary situations, such as negative space wedgies or plagues.
3) Freight. Shipping resources around.

But those are not really enough to sustain a proper mission system. They're very basic and either too boring or too unpredictable.

Instead, the most critical trick is that resources can be local.

Local resources are simply resources that are about or from a specific place. For example, if you scan planet X-9, you get cartography points for planet X-9 specifically. Not generic cartography points.

There are many facilities which convert resources. Normally this is generic resources, like a solar array converting administration points into power. But a residential block converts cartography points into colonists, and a trade center converts cartography points into investment. These conversions maintain the localness: feed X-9 cartography in, you get X-9 colonists and X-9 investments. It takes time: conversions take some time, gathering resources takes time.

If you want to build a colony on X-9, you use X-9 colonists and investments.

This means your chain is to spend time at X-9, then to spend time at a colony world (or start those conversions up and come back for them later), then back to X-9 to found a colony. This has a fair number of gaps in it that can be used by other kinds of missions, allowing for multitasking.

For example, a simpler use of local resources is scanning a sun or solar system in general. Solar readings of the star X take some time to gather. You might be able to do it simultaneously as mapping X-9, depending on your setup. Either way, those localized readings can be used in a variety of ways. For example, they can be baked down on-board, converted into generic astrophysics points over a month or two. This doesn't require you to be anywhere specific, and can therefore run in the background wherever else you go.

Astrophysics points and local solar readings can both be used on any colony with a lab to create T2 economy points. It requires either a lot of astrophysics points, or readings from a lot of different stars. Either approach will pay off in the long run, and can be used at any colony you think needs more T2 economy. Of course, it takes time. You could drop those things off at the colony you're gathering colonists and investments from, do all three missions at the same time. Or you could start the colony missions, leave a crewmember at each, and fly off to take more star readings.

You also don't have to use those mapping points to build a colony. You could convert them into T1 economy points in much the same way. So your overall methods and objectives are up to you.

This is called an "open resource chain": a variety of resources that can be knit together in a variety of ways. This allows for mods and alternate builds to integrate in at any level. The key, from the dev perspective, is that local resources create a reason for star ships to keep moving. Also, during the missions complications arise, which gives players an opportunity to have a personal scenario where they interact with a bunch of people.

The actual interface for this is via "missions". This is a dense and complex environment, especially when the player doesn't know precisely what capabilities are available in which places. Missions offer a method to organize that.

A selection of missions are offered whenever you go someplace new, by simply batching up possible resource transactions. You go to X-9, you see some missions for mapping X-9, some missions for scanning the sun or the solar system. You also see missions for refurbishing your engines, studying for promotion, and a bunch of other ship-centric missions.

You can create more missions if you wish to customize things. It involves interacting with people that represent mission options, I'll cover that some other day.

After mapping, you go back to a colony. The residential district can convert local mapping into colonists, so you get at least one mission about that... and you can choose to look for more if you want other options.

These methods allow the player to have pretty good options offered no matter where they go, and they'll quickly learn "gut instinct" mission chains when they see certain resources can be converted in certain ways.

...

Galactic Line's core gameplay is scenes where you get to interact with people in a rather open way. This gameplay about choosing destinations and missions is a setup to help that happen in a convincing way, because mission complications and alternatives offer a method to unify and connect characters, as well as give them something to care about and a background event the player cares about.

This allows us to sidestep the problem of so many continuous-interaction games like The Sims. The player becomes inured to the soft, indifferent day-to-day pressures and begins to aim at the edges of the simulation. That's why so many people try to murder their sims, or get a ghost baby, or whatever. It's also why Rimworld players tend to vivisect their prisoners.

But if every "day" the player actually plays through is centered around a specific mission complication, the player will have a goal, the characters will have goals, and everyone will have a reason to share the stage and connect with each other.

As a demonstration of this, think about The Sims. Think about those specific events where you were throwing a party. You were probably focused on your goals for the party. For some people, this might have been "drowning everyone in the pool", but for most parties it was about raising friendship ratings, providing enough food, achieving sims goals, and maybe hooking someone up. There's a drive to get the party "running smoothly".

Imagine if playing the sims was done with much lower time pressures, but you didn't play each day. Instead, you had a weekly planner and only played the days when something important happens. It's a bit like that.

In theory.

Monday, January 30, 2017

Galactic Line's Battle System

I've been vague about the battle system in The Galactic Line for a few reasons. I knew what I wanted it to include, but not how I wanted the pieces to come together. I don't want the game to devolve into yet another space ship battler. But I have worked it out now, and here's a quick description from the point of view of a commander.

Your ship and an enemy are stuck out in an asteroid field somewhere. You don't know where they are. When you zoom out, you can see a hex grid around your ship: a hex for your ship and six more neighbors. Three are above the horizon, three are below. As you rotate, the hexes do not.

As your sensors scan the skies, they pick up traces of your enemy. A bit of leftover exhaust, a bit of radiation, a glint of light. Dunno where they are at the exact moment, but we know what general part of the sky they're in, and some of those hexes darken. "Not that way". Which of the remaining hexes is the right direction? Who can tell?

Eventually it's down to two, then just one. You accelerate in that direction, trying to close. You don't have a solid lock, just a general knowledge that they're in that part of the sky.

Then lasers come crashing in, immediately blowing apart your armor and tearing through your systems. Yeah, it came from that part of the sky, but what the hell?

The sim ends and your competitor asks why you didn't launch any sensors or drones or anything.

So you start over.

This time you realize that those hexes are destinations as well as directions. You launch sensor drones into a hex, and in a few moments they arrive and begin scanning. You launch some missiles and have them wait quietly in another hex. You fire a spray of water in a direction you think the enemy might be: it turns into a cloud of ice, preventing scans from that direction from picking up your heat signature, breaking up your profile. Later that hex goes dark - the enemy isn't that way. You replace it with a pack of missiles, patiently waiting for a chance to attack.

You realize you can zoom out again. All seven hexes shrink into a central hex, and you're faced with six new, bigger hexes. Three high, three low. You send a sensor drone out into one of them, and notice it'll take quite a bit longer to reach.

You zoom out again. Those seven hexes shrink into one central hex, and a new six appear. Now you're looking at a fair chunk of the asteroid field - there's actually an asteroid in one of those hexes. Deploying sensors to it looks like it'll take half a day, and you think about setting course, but get the warning that turning on your engines will more than triple your profile.

And then you notice there's a glowing red perimeter around those hexes. Mouseover: "Enemy scan warning". The enemy has figured out you're in this volume of space, although it's obviously a pretty weak lock given the scales involved.

Now you're starting to get a handle on this. You've deployed some offensive and defensive systems, you're winnowing down the enemy's direction. This time, you get a lock first. You have to decide whether to open fire or refine your firing solutions: if you open fire, the enemy's gonna detect you pretty much immediately.

Well, you fire those missiles you set aside. The enemy shoots most of them down, but you get a much better firing solution from them and fire your own laser barrage. This time you win.

The next fight begins to unfold the same way, but when you start to get a good lock-on, you realize the two of you are within the same hex space. Your systems overlap, things become a mess, and then there are bombers on top of you.

As you progress, you learn a lot more tactics. ECM drones specifically calculate enemy scan patterns and help you avoid detection. Anti-missile interceptors. "Buzzers" that draw off the enemy sensors and incoming missiles. Sensor drones arrayed in "shotgun" lines along different scales of hexes. Weapon drones. Moving drones to new locations, or retrieving them. Radiation storms or ice clouds to mask your profile and the profile of your drones.

All of this is on top of managing your own profile. The higher your profile, the quicker the enemy will narrow down their search. You have these fancy high-tech deflector shields, but if you use them, your profile spikes so high the enemy will immediately detect you. You find out through experimentation that you're better off actually leaving them off even while you're under fire, if the range is long. A low profile helps more than a barrier.

Then you get to fleet logistics, and begin to struggle with the idea of deploying a ship to a distant hex and then having them have local hexes within that hex... and you begin to work with noncombatants and fixed fortifications, requisitioning or hacking for sensor logs, resources, triangulation help.

And that's how The Galactic Line's battles work.

Even a one-on-one, ship-on-ship battle takes place at great ranges, on a strategic map. There are moments when someone warps in right on top of someone else and a slugfest starts, but no matter how epic that feels, ships are expensive. Hugely expensive. And the people who die? They're people. Your people.

You begin to appreciate the art of getting a hard lock and then pinging the target with targeting lasers, forcing them to surrender without firing a shot. You begin to appreciate the art of convincing a local politician to get the enemy fleet to stand down.

Hopefully.

Anyway, the same system is used outside of combat, especially when scanning planets or assisting colonists.

... the same system is used for building colonies, actually. That's what gave me the idea.

I haven't settled on this 100%, but it plays well on paper. I can't really justify arcade-style action.

Tuesday, January 10, 2017

Humanizing an Empire

As you may know, I really love games where you build things. And what is the biggest thing you can build?

An empire.

When I was younger, I was obsessed with 4X games like Civilization, Masters of Orion, and so on. As time wore on, their shine wore off. These days, I still play those kinds of games on occasion, but I prefer games where I build smaller things.

The reason is simple: those smaller things are more people-centric.

Recently, games about building empires have tried to become more people-centric. Civ animates their iconic rulers with loving care. Stellaris gives you a bunch of people with personal traits and names and asks you to assign them to colonies, star ships, factions. Everywhere, people are becoming more common.

The problem is that these games aren't about people. They never were, and they can't be: the structure of the game is oriented around nation-building, not personal dramas. This means interactions are all about bowing to the will of the empire.

Games like Crusader Kings II push this as far as can be reasonably expected, tracking hundreds of distinct individuals throughout lifetimes, letting you push them into service, crush them, or exploit them. This appeals to a certain kind of fantasy, I'm sure, but it's not really very good at letting me build something that means something.

This actively interferes with my enjoyment of these games. Civilization VI isn't about building a nation, it's about beating Alexander the Great as he weirdly and obsessively declares war against you every decade for a thousand years. It's humanized to the point where I don't think of that territory as another nation - I think of it as Queen Victoria's house. Vickie's front yard.

We've been humanizing these games for eons. Everyone remembers Gandhi's words backed by nuclear weapons. Everyone remembers the personality-filled cockpit views in Star Control. But these were very shallow, passive efforts - the difference between anthropomorphic tags and being a person.

Basically, when something is tagged, you can easily slip a personality onto it and ascribe a mood or emotion behind its actions. The Ur-Quan dreadnaught fighting the Spathi? It becomes the grumpy, remorseless Ur-Quan hunting down a hilarious, cowardly Spathi.

When something is portrayed as a person, things are different. The easiest example is Stellaris: a few minutes into the game, you meet a pirate faction made up of your own species in order to inject some kind of military action into the early game. You choose an admiral for your fleet. Do you pick Sara? She has a bonus to attack and a neat haircut. Doug? He learns fast and is wearing a space baseball jersey. Veronica? She can move the fleet faster and looks appropriately grumpy.

Whichever you choose, it's a person, not just a vague indicator. Instantly, you start thinking of your fleet ops as part of their career, part of their personal story. So you go to fight the enemy.

... and they have a fleet commander, too. A person. With a unique name, unique appearance, unique powers.

You kill them. You never learn anything about them. Ironically, you never even have enough info to give them a personality. They are the same species as you, so there's nothing distinctive enough to make you assign them the personalities you give to the other aliens you might meet.

This is distracting. Players naturally gravitate towards densely simulated things. You've taught the player that individual people matter, each one is simulated and tracked independently. Then you show them a person, as dense and complex and promising as the one they chose... and just kill them. Wordlessly, effortlessly, pointlessly.

Worse, the alien species cultures are largely randomized. When you do meet an alien, the anthropomorphic tags they bear don't correlate to their actual characteristics. This turns the emotional responses into mud. You've trained the player to respond to individuals, but then refuse to let them interact with individuals. You train the player to not care about species, because their appearance is unrelated to their traits, but then force them to interact with species.

Civ VI doesn't do as many things wrong. It has very, very strongly personified nations, but they have the correct personalities and feel reasonable. Unfortunately, you can't really interact with those people. You can only interact with their nations. Even that is in a vague, impersonal way.

On the other hand...

Let's say I make a game about building cars. There's a bunch of NPCs, they want cars that suit their personalities and needs. I build them a car. They go "whoaaaa! NICE!" They go drive it. They come back. "It was great, did X really well, thanks a ton!"

The scale is small enough that it feels like a personal interaction even when I don't do social things. The response is personal, about something concrete and part of their life. The choices I make are much more centered around facets of their personality, because each NPC can have wildly different taste in cars without becoming unbelievable.

It is already much more deeply personal than Civ VI, even if the NPCs are just a doodled pixel portrait.

Honestly, even if there were no NPCs, building the car is still more personal than building an empire in Civ VI, because I can easily imagine how someone would use and enjoy the car. That's a big part of why Space Engineers is fun! There's no NPCs, no personalities, but imagining how people would live in space, use my ships - that's fun!

In my mind, 4X games can't survive in this awkward place. They will naturally have to become either more humanized... or less.

"More" seems to be the trend, so how would that go?

The two basic paths are the Civ VI path and the Stellaris path, which is why I used them as examples.

The Civ VI path focuses on a few, highly detailed, carefully designed NPCs. Further down this path lies a game where you can interact with those NPCs in more detailed, complex ways. Expanding your empire probably matters less than establishing a good relationship with your neighbors. This will generally take the focus off the militaristic side of things and play up more complex interactions.

The easiest way to do it would be to make the lands of the empire play the role of the home and body of the other ruler. Rather than negotiate with the ruler as a lump sum, you interact with specific cities or lands in a wider variety of ways.

There's not really any way around this. We can't continue having a bleak, war-focused set of interactions if we keep humanizing the other side. I already have no interest in going to war, even with the relatively weak personalities in these games today.

The other direction is to track an impressive number of people. Rather than the ruler of each nation, you track everyone. Politics constantly evolves and changes who is in what positions. The rulers of each nation come and go.

I have a suspicion this is definitely going to spawn a genre, but I don't think I'll like it much. That many people means that each person will be disposable, temporary. That's not going to scratch my itch.

At the very least, I hope all these people have personality tags, so I can easily assign them a mood and emotion as they do things. At the moment it's all undifferentiated mush, and it's very hard to establish any deep connection to the various NPCs. It'd be interesting to try to improve that connection while still having a large number of randomly-generated NPCs. Maybe use some techniques to inject personalities into the flow of the game.

But right this instant, I have a car-building prototype to create.