Thursday, June 04, 2015

Unbounded Construction: Construction Elements

Last post, I talked about the "unbounded construction" genre. Today I'd like to hammer out some of the nitty-gritty details.

The genre requires small, modular pieces that can be combined in a lot of ways. The constraints imposed on these pieces are partly from the game (engines require power) and partly from the player ("I'm building a luxury liner!") These constraints shape and are shaped by the player's vision, and different players will choose very different constraints.

The pieces and the interface are both critical in allowing the player to build their vision.

First, component size is critical. Humans are a specific size, and therefore most of the things we care about are a similar size. It varies from player to player, but most players have instincts in line with their life experiences and media habits. That is, most players want to build something between the size of a car and the size of a mansion. Larger or smaller things are generally reserved for advanced players.

The component size reflects this.

If we're talking about voxels, the ideal size seems to be about 2/3 a meter per side: roughly a 2x2x2 foot cube. Any smaller, and it becomes annoying to micromanage the shapes. Any larger, and it becomes difficult to get the result you envision.

But that's not an absolute. Most voxel-based games have objects larger or smaller than a voxel.

Moreover, the tool you use to lay down structure matters more than the size of the modules. When we're laying out chairs and windows and desks, we want to have control over things at a human scale. But if we're laying out the house or starship or a castle, we need control over the mass of the structure. Laying out the halls and rooms and walls and floors needs to be largely painless.

In Space Engineers, the large ships use a 2.5m voxel. This is great for laying out the ship - you can lay out a mansion in space with ease. However, you are then stuck using 2.5 blocks for interior layout, which is not ideal. Their small ships use an almost ideal size for interior layouts... but is it troublesome to lay out?

Not really. The UI allows you to put down lines and fields of blocks, so the only shape that is difficult is a slanted or filled area. A slightly more advanced UI could even polish that away.

It's no wonder that "overgrown small ships" have become popular. You can get really beautiful human-scale shapes with them. The downside is that they take a lot of processor speed due to the high voxel count, but that's not really a fundamental problem, it's just sloppy implementation.

Still, it's a bit difficult to lay out the structure of an overgrown small ship. It would be better if there were a different interface for laying out structure and laying out the interior.

Apparently Keen thought so as well, because their next game, Medieval Engineers, has just that. Using the same 2.5m blocks for structure, they allow you to lay out interiors using arbitrarily sized furniture elements.

This is a promising approach, but it also has some idiosyncracies.

The first one is that the game is built around structural integrity. This unfortunately means that if you are building in "physics mode", you can't simply tear out walls to replace them with windows: the building will collapse between those two actions. Moreover, the roof is quite hard to get right, meaning that even if you lay the space out properly, you will find a last-minute constraint has made it difficult to complete your construction.

You can argue that these are good things, that they make the game more interesting. Maybe. However, the average player will take substantially longer to learn the skills required to complete a basic house. Generally speaking, that's a bad barrier to entry.

If that issue is with the "engineers" in "Medieval Engineers", the other problem is with the "medieval".

Fundamentally, medieval buildings are not space ships. The inhabitants are largely integrated into the world around them, and medieval folks spent most of their time outside rather than slouching about in their huts. Conversely, a space ship is an integrated environment that has to take care of all the inhabitant's needs all the time.

When you build a space ship or space station, you are building someone's lifestyle. The interior is where the crew will spend every waking minute, and the systems you install are what keep the crew alive as they do their tasks. Their air comes from a known source, their entertainment from a known source, their food from a known source, their health care from a known source. If you think of it, you'll have a plan for how the space ship provides for every aspect of their life and lifestyle.

But if you build a medieval house, you are building only a small portion of someone's life. Basically, that's where they eat, sleep, and store their potatoes. Maybe they get stuck inside on rainy days.

They get food from the local shops staffed by hundreds of people. They get health care from a doctor on the other side of the town. They get their entertainment by gathering in public spots with other people.

The simple truth is that sci fi settings give you an excuse to package up people's lives into STUFF. Since you can place stuff, you can place lives. You know the sort of lives people will live on your star ship because you've placed all the aspects of that lifestyle as you created the ship.

Fantasy does not give you that leverage. If you build a house, you have built only a tiny fraction of someone's life. You need to build a whole village, or a whole farm, or a whole encampment. A building is only a tiny fraction of the puzzle.

This isn't too hard to understand once you start considering it. Most of the good Medieval Engineers shared worlds are villages, and as you wander through them you see all the same pieces you would have put in a star ship as a component. The forge is its own building. The grocer's, the butcher's, the doctor's, etc.

This has huge advantages over sci fi, too. You can create a village where the butcher is also the doctor, or a village where the town teacher is married to the town carpenter, etc. Rather than a machine that is always shaped a specific way and takes up a specific amount of space, the roles of people in your village are flexible and can adapt to your vision.

But...

Medieval engineers does not have even the smallest allowance for describing people. Only buildings.

Yes, you can build a village of hunters by creating all the buildings hunters need. But you can't put even one hunter in the game, let alone describe him as living in a specific building, doing specific tasks, having a specific lifestyle, having relationships with specific other villagers...

Unbounded construction in a fantasy setting needs to allow you to construct the one thing that gives it power: people.

Once you allow for that, there's really very little reason to do any kind of complex structural simulation. Buildings exist to support the people of the village, not on their own.

So... what's the UI for placing and relating people? Is each building and inhabitants a construction that can then be slotted easily into village frameworks, or do you build the whole village at the same time, like you build an entire starship?

So many questions.

Those are today's thoughts on Unbounded Construction.

5 comments:

Unknown said...

"This unfortunately means that if you are building in "physics mode", you can't simply tear out walls to replace them with windows: the building will collapse between those two actions."

Well, to be fair, I don't think you'd want to do that even if you could temporarily pause physics. I imagine a "load-bearing window" would be a bad idea in general, even with today's building technology. :)

Craig Perko said...

That's kind of the point. The focus on the physics of the building is a big constraint.

I can tear out literally every hull block and replace it with a window in Space Engineers. It's easy and forgiving.

Unknown said...

True enough! I guess without internall pressure being modelled (or with sufficiently strong materials), a Space Engineers ship made entirely out of glass would only suffer when it came time to collide with something. But it might be a beautiful and creative masterpiece right up until then.

Isaac said...

Creating characters takes a step back from being immersive, in that I feel that many people haven't made the leap to the idea that construction games can be about more than first-person immersive construction. You have to step away from the idea that survival mode with your character vs. the game's challenges is the be-all-end-all of Minecraft-alikes. Once I realized that you could create your own challenges, or operate on a larger level, this started making more sense.

Vanilla Minecraft mostly still has the block as the largest unit of meaning, with some slight emergent effects (villagers and doors, skeleton spawners, spellbook libraries, redstone machines). Other games, like you've been talking about, have concepts of a unit larger than a block or module: e.g. Kerbal's ships still operate by modules, but it also has the concept of the overall rocket.

Now that you've laid it out, it seems like an obvious next step to have the players make their own NPCs, and use those as construction blocks. I'm a little surprised that I can't think of any games that have tried it (aside from Sims-type stuff).

Craig Perko said...

Well, you need a good scaffold for simulating them, and that's not something that exists. Yet.