Skip to content

Solids: Assemblies

Assemblies are objects that are made of other objects. Is an iron key magnetic? Yes. Is a hatchet? Well, the head is. What about a pair of jeans? Not really, unless you include the zip and the rivets (if they’re steel rather than copper).

People think of objects as unitary items most of the time, but they’re quite happy to consider them as being made up of other objects should the need arise. In virtual worlds, this poses something of a problem. If objects are made out of other objects, those objects must also be made out of other objects, and so on until you reach a point where you just have to stop. Where does that point lie? Conversely, if objects aren’t made of other objects, how do you refer to components of an object? Doors must have keyholes if they have keys, right?

By convention, virtual worlds do not have assemblies. You can’t take objects to pieces. If you need to refer to a part of an object, the part is synonymous with the object as a whole. When I can look through a keyhole, I’m looking through a door.

The reason that assemblies don’t exist is, quite simply, that the physics to support the functionality isn’t up to it. Properties are associated with objects, not with configurations of objects; if you were to associate properties with configurations of objects, those configurations would themselves effectively be objects.

For example, suppose in real life I had a wooden ladder. I can climb up a ladder. I can’t climb up a xylophone. Nevertheless, I could dismantle my ladder and use the components to make a xylophone. I can play music on a xylophone, but I can’t on a ladder. The xylophone assembly uses the same objects as the ladder assembly, but the two have very distinct properties.

Now it’s possible to hack a solution to this. You could say that “dismantle ladder” or “dismantle xylophone” destroyed the original object and created two new objects, “poles” and “nails.” You could then allow “make ladder from poles and nails” and “make xylophone from poles and nails.” Unfortunately, unless you’ve thought of it in advance, the player who tries to “make fence from poles and nails” is going to be disappointed.

In the real world, objects are only objects because people say they are. It’s just a semantic ploy to describe certain manifestations within reality. Indeed, objects don’t even have to be real: “If I had a sister, her name would be Moira;” “Nobody followed me.” People routinely refer to objects that don’t exist, and not only in terms of counterfactuals or uninstantiated variables. Whatever your view on religions, you have to admit that Zeus, Jehovah, and Vishnu are mutually incompatible beings, yet to some people they are (or were, in Zeus’s case) as real as rocks.

In virtual world terms, all objects are as real as rocks (or at least as virtual as virtual rocks). They exist because that’s how players understand their environment. However, whereas people in the real world can call upon new objects when the muse takes them, in virtual worlds this can’t happen. Objects only get the properties they’re given; assemblies can’t be granted arbitrary emergent properties depending on their construction. You can’t invent objects, just new uses for existing objects.

Virtual worlds don’t have assemblies because it only pushes the problem one degree away. At some stage, you have to stop. If you’re going to have to stop anyway, why even start? Players will try to disassemble objects, fail, have their immersion hurt, then give up trying. If the precedent of assemblies has been established, they’ll keep on trying because sometimes it works and sometimes it won’t. Each failure will hit their faith in the simulation of reality.

However, taking the same line of reasoning that I did earlier with NPCs (that is, even rudimentary AI is better than none), it can be argued that any consistent-depth implementation of assemblies is better than none at all. An axe is made of a shaft and an axehead; an axehead is made of six pounds of iron; six pounds of iron is made of two three-pound pieces of iron melted together, and so on. By defining all objects to be constructed from other objects and a limited number of recognizable resource “atoms” (which break down into ever-smaller versions of themselves), assemblies can be implemented. Although not a perfect system (every object type needs a “recipe,” so new objects can’t be constructed unless a recipe for them exists), this is a definite improvement over no assembly at all: It allows for additional gameplay, and is even better in terms of the immersion it delivers.

Nevertheless, players who try to build a glider from sails and broken barrels are probably wasting their time.