http://feeds.feedburner.com/~r/mudreading/~3/233546891/three-space
Approximating three-dimensional space is an interesting challenge in a text-based game. It is very easy to create a simple, sufficient model. Complications run the risk of confusing players and piling on the work for builders. I’m going to look at a few approaches, their advantages and disadvantages, and talk about an idea that I haven’t seen used.
The standard MUD approach is to use weight as its only measure of not only weight, but also size. The capacity of a container is judged by how much weight it can contain, and a character’s encumbrance is simply their total carry-weight versus a maximum, generally derived from their various attributes.
This works well in general, and is conveniently simple, but there are a few cases that throw this system off.
First, object shape is not taken into account. In my experience long, skinny objects cause the most weirdness, as the game mechanics don’t see any reason to protest putting a spear in a belt pouch.
Second, objects that vary wildly in density can cause confusion. If a player has a bag that can carry an entire wardrobe of silk they may be suddenly confused when a 7 pound sword cannot fit inside.
I have seen a few attempts to solve the size problem. The simplest is a single “size” field, separate from weight, that is then used instead of weight when determining the amount of space taken up in a location or container. This works well enough as it represents density, but it does not help our spear scenario.
In some cases further size fields are added. In the next step we start to approximate each object as a geometric shape. With two fields, width and length, you effectively consider every object a cylinder. This works well: it is able to represent those troublesome spears, and a cylinder with equal length and width is sufficient for less exotically shaped objects.
The other approach I’ve seen is including a height, width, and length: a cube. In terms of MUDs, the difference between this and the cylinder representation is not extremely great. Generally the most important checks on size involve fitting objects through openings such a door or a chest’s lid. Since such an opening is two dimensional, the smallest dimension does not play into the calculation.
I haven’t seen an attempt to create any more complex representation of size and shape. Allowing an object to be one of various geometric shapes would be maddening for a builder, much less do any calculations with, and the advantages of this level of simulation are unclear.
I’d like to propose a different approach to shape and density. I assume this is not a truly novel idea, but in my experience I haven’t seen it done in a MUD. If you know of a MUD that does this I would be fascinated, so please leave a comment about it!
Lets assume (as I always do) that we want to minimize builder effort and have extremely consistent objects in our game. We will have size and weight, as they are both useful pieces of data, and we are going to use width and height for size, as this is a sufficient representation of shape for our purposes.
The implied field is density. Say we have an object that is 12 inches high, 6 inches wide, and weighs 3 pounds. Approximating its shape as a cylinder, the object’s density is about .0088 pounds per cubic inch. Every object will have a density, based on the builder-supplied height, width, and weight.
An inconsistency has arisen, be it a subtle one. Lets say two builders create iron swords. They approximate the dimensions and weight as best they can, and each value seems appropriate. However, the density for each object is different due to the natural deviation you would expect in such an approximation. In reality, iron, as a substance, has a given density that does not vary so much.
We can remove this inconsistency and reduce builder effort at the same time. Assuming objects have a material type (most MUDs I’ve seen do) we can attach a density rating to each material type. A quick look on Google shows me that the actual density of iron is around 0.284 pounds per cubic inch, so lets use that.
Now, we can figure out everything we need to know simply by asking the builder the height, width, and material of an item. The weight can be determined automatically.
Lets say I create a sword of height 3 feet, width 1 inch, and material iron. A little math on the game’s part tells us that such an item should weigh eight pounds. This is about what a three foot sword weighs in real life!
36 * π * .5^2 * .284 = ~8
This approach sounds good to me, and I’d love to see it used in the future. I’ll leave an open question though: What MUD features might require a more complex representation of size, and how would it be done?


