Okay let’s look at aerobraking. This is a way to get free ∆v for deceleration We’ll look at the principle and then talk about its utility. First recall our gravity example but I’ll add an atmosphere to the planet.


Now the atmosphere is a source of friction and friction reduces your velocity. As you bang into gas molecules, you slow down. We can treat this as a third vector in the system, opposing our direction of travel (our initial velocity vector).


Back when we were first talking about vectors, we said that you add vectors by arranging them head to tail and finding the hypotenuse. This was a lie, of course, as all science education advances by correcting the lies told in earlier lectures. In fact you just connect the last head with the first tail, like so:


Oops. I crafted this example without figuring out ahead of time what it would do and it looks like this atmosphere is too dense for our maneuver! When science fiction stories talk about a “degrading orbit” this is what they mean if we’re being charitable: eventually atmosphere will drag you in if you’re too low.

However, that doesn’t have to be a crash! That could be a landing! In which case we saved the atmospheric vector from our ∆v resources. We totally meant to do that! Of course that’s not what that diagram represents since that enormous vector is our velocity and it does not look like a safe landing speed. Or angle. But that’s the principle and however much additional ∆v we have to spend to land safely, it’s reduced by the amount of drag provided by the atmosphere.

So let’s consider a hypothetical interception scenario — you are fleeing through space and the cops are after you. You have, let’s say, 7 units of ∆v and spend 2 planning a course to a safe planet. It’s months away and you’re committed and you now have only 5 units of ∆v. You’re saving some for slowing down at the far end — you need 3∆v to make orbit at your destination.

You: 5∆v

The cops spot you and match your course with 2 ∆v of their own. They have fast interceptors (high thrust for tactical corrections) but less reserves so let’s say they start with 5∆v. Now they have 3.

You: 5∆v

Cops: 3∆v

You spot the cops on your infrared telescope and track them for a couple of days, identifying their planned intercept point. You have a bunch of options. You have more total ∆v and if you know this you could burn more than they can afford to to change your course and correct back. If they spend any more than they have they won’t have the ∆v to slow down and stop somewhere to refuel. But if they aren’t tricked and don’t burn, then when you correct back they will still be on target.

You could also fake a course to a totally different location, spending maybe 3 more ∆v leaving you with 2. If the police correct for that they will be totally committed (they won’t be able to slow down so they are clearly going to try to kill you in a flyby and then count on other cops to save them from leaving the solar system) but you have some spare.

You: 2∆v

Cops: 0∆v

Maybe it’s not enough to make orbit around your original destination — you’ll be going too fast. But if you’re equipped with heat shields for aerobraking, you can steal 1∆v from the atmosphere and get the 3 you need to make orbit despite going way too fast!

Or maybe you won’t slow down! Maybe you’ll steal 1 ∆v from slingshotting your destination on order to head somewhere completely else!

You: 3∆v

Cops: 0∆v

Finding spare ∆v in the system geography is how you exceed your space craft’s specifications, and it’s a skill your character might have. Yes, we’re almost talking games now.

Since this is science fiction, what other sources of ∆v might be lying around a high tech industrialized star system?


Okay so now we can talk about delta-v (∆v from now on because it looks cool) in a larger context. We can see from the last post that the thing that really matters in space travel is how much you can change your velocity before you run out of gas. And I’ve talked previously about orbital mechanics. Let’s tie these together. First a diagram I have lifted from a much more detailed article about the topic at Wikipedia:


This is a map of the solar system from Earth to Mars assuming you are travelling using orbital transfers — that is, you don’t care how long it takes and your plan is to burn just enough to enter the orbit of your target eventually. Exactly which way you point and how long you travel depends on many factors that are largely out of your control — at a given time with a given rocket you have essentially one choice.

The numbers on that map are not distances but rather costs in ∆v. And this is why ∆v is the critical resource both tactically and strategically in Diaspora Anabasis: it’s the only resource that matters for planning. Everything else is roughly fixed. Everything you might do to influence travel is going to boil down to changing your ∆v resource or cost.

So to get from the surface of the earth to Low Earth Orbit (LEO) you need to go 9.3 kilometers per second faster than when you started. Soak that in. Notice that almost every other transfer is somewhere between cheaper and vastly cheaper. This is why starting your trip on a planet is so incredibly expensive and why space and low-gravity-planetoid bases are essential to industrialized (and certainly private) space travel: this is an unnecessary expense that dominates everything.

If you have a space craft with 11km/s ∆v in resources, you can reach orbit and sit there. If you built the same ship in orbit, however, you could go to Mars with resources to spare. LEO is 2km away. Mars at its closest is 56,000,000km away. It’s 20 million times more efficient to travel with orbital transfers from Earth orbit than it is to orbit the Earth. When people talk about how hard it is to go to Mars and how we so handily went to the moon remember that: those Mercury and Gemini project orbits were actually the very hardest part of the whole endeavour. Everything after that is vastly simpler.

Now what if you don’t use orbital transfers? What if you want to spend less than 18 months to go to Mars? Well, you spend more ∆v. You can speed up any orbital transfer by burning harder at the start and burning again at the end to slow down. It changes the path of the transfer substantially — you’ll get there faster because you’re going faster but also because you’ll take a physically shorter path — your lazy elliptical arc will straighten as you dump reaction mass into the fire. But it costs twice as much because you have to slow down at the end.

You can think of an orbital transfer as basically matching courses with your destination (since planets are moving too). Imagine you want to catch up with a skier further down the slope than you. You can dig in the poles a little so you’re going faster and take an arcing path down the hill so that you slowly catch up, with friction equalizing your speed at intercept. It’s a lot of calculation and might need a little correction and it’s not the fastest path but it takes very little energy. That’s the orbital intercept.

Or you can drive on your snowmobile straight at your target. You’ll have to correct continuously as they move but you will arrive much sooner. You’ll also have to figure out how to slow down or you won’t be matching courses at all. That’s a “hyperbolic” intercept.

The other interesting thing on that map is the “aerobrake”. This is a way to steal ∆v from planets with an atmosphere: you can use that friction to slow down. We know that slowing down is just ∆v spent pointing backwards. So friction is free ∆v for slowing down! In the last post we talked about slingshotting, which steals ∆v from planets for speeding up. So the natural universe provides a landscape that can lighten the load and this is where strategic play will happen: we have a determination problem in that the math tightly constrains exactly how much ∆v a maneuver costs and you ship defines how much you have — so where are the player choices? What knobs can you turn to defy (rely manipulate) the math? The natural environment provides two.

We’ll talk about how the artificial environment can help next time.

moving space ships

Let’s say we have a space ship and it’s moving at some velocity. It’s not accelerating — its drives are off — it’s just drifting. There is nothing to slow it down in space (no air resistance or other interesting friction sources) and nothing to speed it up. There’s no reason for it to change direction. It’s just going to keep going at this speed in this direction forever. For simplicity we’ll use units of meters per second and consider time in 1 second increments.

We can represent this situation like so:

It just goes ON like this.

On the right is our space ship and on the left is a vector indicating its velocity. In one second, the ship will be at the end of the arrow: its length indicates how far the ship will move in our 1 second tick. It’s predicting  the future for our space ship. This will go on forever.

Now if we want to turn, we can’t just steer — there’s no surface to get traction on, no wheels to redirect our momentum. The only tools we have are rotation and thrust. So that’s what we do. We rotate and we turn on the drive for a while, adding more velocity which we represent as a second vector in the direction of our burn. We can use the vector to find out where we’ll be next: we add a vector to the end of the existing one but at the angle of our burn.

I want to turn left 40 degrees so let’s just rotate 40 degrees and burn, right?

So where will we be after our next tick? Well the trick with vectors is you add them nose to tail, preserving the angles, and then find the hypotenuse (sticking two vectors together gives you two sides of a triangle, and your new vector is the missing side of it!)

Imagine our little space ship travelling along that new line forever.


And we’ll see that with that little 40-odd degree turn and burn (adding velocity!) our new vector has us starting to turn to the left. But we are also going faster than before! And we’re not pointing in the direction we’re travelling. This, in my opinion, summarizes a great deal of what’s weird about travelling in space compared to a road vehicle — you can only add velocity, the direction you’re pointing in determines the direction of acceleration and nothing else, and you need to spend an awful lot of fuel to make an interesting change of direction. Let’s try that turn again but much more sharply.

Burn baby burn!

We’re really cranking the wheel over here! The same rules for adding vectors apply of course so we get a final vector of:

Again, we should imagine little triangle space ship forever moving in the direction of the arrow, at a speed indicated by the arrow’s length, and oriented at a sharp angle to the direction of travel. Forever.

Well that’s a tighter turn! Notice a few things. We’re totally pointing away from our direction of travel for one. For another, our vector is shorter: we’ve managed to slow down by adding velocity in a direction that partially opposes our initial vector. So now we know that the only way to slow down is the same as everything else in space travel: add velocity.

This is why in the latest rev of Diaspora we only track a space craft’s “delta-v” or its total ability to change its velocity. Everything about how it moves, how fast it moves, and where it goes depends on this value. It’s how you start, how you steer, and how you stop. And, when you’re out, you just follow that vector forever.

Well surely not forever. What if there’s a planet in the way? I’m glad you asked. Same rules.

So when you travel near another significant mass, it continuously adds a vector for you, whether you accelerate or not. So let’s say we’re passing by a planet. We have our existing vector but we also add a new one that points to the center of the mass and has a size (magnitude, we say) related to the total mass. Planets add pretty big vectors.

We just wanted to fly by this featureless planet but apparently the universe does not allow such things. Note that it’s only by happenstance that the gravitational vector touches the planet. It could be any length depending only on the mass of the planet.

And the result is:

Planets are powerful attractors! It’s going to be close.

Wow! Notice a few things here. First, you don’t fall into the planet if you already have a big enough vector. If we had a smaller (or no) vector, we’d splat on the surface. But we fall past it! Precisely choosing altitude and vector is how we go into orbit: we just keep falling forever around the planet. But that’s not what this maneuver is going to do. The other thing to notice is that we are going way way faster than before — we’ve taken a ton of delta-v from the planet itself! Since delta-v is in such short supply, this has to be a useful move! We sometimes call it a slingshot maneuver, and it’s a very common way to get real spacecraft long distances in a relatively short period of time. Let’s look at the next second in this picture.

So now our two vectors are our original vector and the gravitational vector, which points to the center of mass of our planet:

Now we are going to be going around this planet a bit but way too fast to orbit it.

Which gives us a result of:

Zoom! If you do the next iteration yourself you might be surprised at the result.

We are going even faster now! All for free! And in a radically new direction.

Now, reality doesn’t actually progress in one second increments, so to find our actual path of travel we’d need to start looking at smaller increments. Do the vector addition every tenth of a second, every millionth of a second, refining and refining the path. This would be calculus, and we would see our actual path is a smooth curve. But the principle is the same and the result we care about is the same: we can steal velocity from planets.

In space all you can control is the change in your velocity, but you can steal velocity from planets. Another time we’ll talk about stealing negative velocity.

a note on gaming

This post is not about a game. You could game this way — it’s easy to see how you could do that, using counters or miniatures. It’s already been done too — Traveller, Triplanetary, Mayday, and even in 3-dimensional space in Vector-3. It’s not news for gaming. But my game targets people who don’t know the physics and maybe don’t care about it, but need a context to understand the design decisions that are based on physics. I will be leaning heavily into abstraction but you need to understand what you’re abstracting first.

soft horizon style guide

File_002Back when the VSCA was a business I thought I’d like to offer other writers the opportunity to make their own Soft Horizon games. New planes with their own themes that use the same rules, but interpreted through the lens of someone other than me. I really think the intrinsic diversity of Soft Horizon themes would be well served by a diversity of authors. Now, since I didn’t really take the business end seriously enough this never came to fruition (though it came close and there is at least one brilliant near-built plane out there).

Now that this isn’t a business I’d like to offer up the style guide. This was a kind of contract but of course that’s no longer necessary, so all the shalls should be read as shoulds. And I won’t publish or lay out or illustrate with you unless it seems like huge fun. If you do choose to make a Soft Horizon game and follow the spirit of the style guide here, we’ll have an anthology of wildly diverse but linked game, a psychedelia of shared space generators. And that would thrill me. I would love it if you at least POD produced it (which is damned near free to do — no risk at all) so I can have a shelf of books in this vein one day. And maybe I’d string them all together, with your permission, into a fat crazy book we can all wonder at.


Keep tone conversational and idiomatic: let your authorial voice out.

Provide illustration notes as comments in your submission in case we get around to finding an illustrator. Better yet, illustrate it yourself. Your artistic talent isn’t relevant.

You should recommend or produce at least five illustrations.

Use gender neutral pronouns or sentence structure unless the setting demands distinction.

Whenever considering sexuality, write in diversity.

Whenever considering gender, write in diversity.

Whenever considering “race”, write in diversity.

Whenever considering disability/ability, write in diversity.

Be political; don’t be shy. These planes can be metaphors. Should be.

If swearing moves your narrative along, swear like a motherfucker.

Write as much as you need to develop your idea: there is no word minimum nor maximum.

Providing a map may indicate that your text is too specific. Providing a way to create maps indicates that your text is supplying the table with tools to create rapidly and in context.

That is a general statement disguised as a specific one.


Write a custom introduction


Re-write SYSTEM section in your voice keeping the system materially identical but replacing examples with setting specific examples.

Do not change the METHODS list as characters need to be portable.

Do not change the RISKS list though absolutely change examples to mate with your setting.

Do not change how wounds and debt works unless the change is ADDITIVE (adds new options and does not change or delete old ones) and CONTEXTUAL (clearly adapts the material to the new setting).

Do not change how progression works unless the change is ADDITIVE and CONTEXTUAL
Do not change the ref’s role (especially the GM moves) unless the change is ADDITIVE and CONTEXTUAL.

Whatever you add to the system:

  • The ref NEVER rolls in a resolution process
  • There are NEVER flat modifiers (+1, +2, whatever) to the rolls

Be aware that failure and risk realization are an engine that makes this game easy to ref. If you reduce the failure rate too much the game will stall. And it has to survive progression as well.


Organize and explore your setting any way you like. It is not necessary to keep the organizational structure of the setting section in any other SH book.

Ensure that there are ways to develop places and people with a minimum of referee effort.

Lean on ORACLES, simple short text open to interpretation. Give the player something to create from rather than creating for them.

Sell your theme not you details. The players will bring the detail.

Ensure that the SETTING section ends with a note on the Soft Horizon and how your setting links to it.


Re-write to suit your setting.

Try to keep to the power scale established in THE KING MACHINE but you do not need to be strict about it.

The DENIAL mechanism needs to be retained.

Ensure that you have developed a way to start the game with the player characters together and working towards a shared goal or mission.

Re-use the association rules if you like; modify as needed.

Find a novel element of your setting to bake into character creation. For KING MACHINE it’s simply that racial differences are real: different apes are distinct and visibly different species and have mechanically distinct features. This is only interesting if that’s not the case everywhere. It’s especially nice if it’s ONLY the case there. In SAND DOGS the distinction will be a sort of life path system a la Traveller. Find another way to alter character creation such that you get the same basic end result (number and type of dice to distribute) but get there another way, delivering some new feature to character background or play or both.


Re-write to suit your setting.

Keep the note on fronts and preparation but tune to you setting and voice.

Add any sections necessary to guide a ref in your setting (such as the “dealing with inconsistency” section in King Machine).

Modify the ref’s cheat sheet to meet your needs.


Entirely your space.



One of the core components of Diaspora Anabasis is stress. When you want to improve a rolled result, including helping someone else improve theirs, you take stress. But stress is not an inert hit points track you run out of. Stress is intended to minimally model, well, stress. This turns out to have pitfalls I hadn’t anticipated.

Your first point of stress leaves you agitated. It’s easy to get rid of. You work out, talk out your problems, take a vacation, and so on. All the things your friends tell you to do when you’re freaking out actually work because you’re not all that stressed. Being agitated doesn’t even warrant a FACT on your character sheet. No problems here.

Gnoll is agitated but has a process.

Your second point of stress gives you a compulsion. You write this in as a FACT on your character sheet: this is a true thing about your character that you are expected to incorporate into play. Your character keeps coming back to the topic related to their stress, even when it’s not appropriate to the scene. You are worrying something over and your compulsion is a signal that you are in distress. Getting rid of it requires getting away from the thing causing you stress. That can be hard in a space ship a million miles from actual air.

Your third gives you bad judgement. Again embodied by a FACT, your character is now bad at making choices about or related to something. Maybe you are becoming too careful. Maybe too daring. But your choices relating to your FACT are not the best choices. They instead are focused on whatever you’re stressed about. Clearing this one requires that you make a substantive change to your situation. In our game the captain of the vessel gave up their captaincy. So it has to be a big change.

Your last step of stress is withdrawal and at this point all of the other characters should be worrying. You need professional help and the support of your allies to clear this.

What I didn’t anticipate is how much this impacts the players. It can actually be quite upsetting.

One reason, of course, is because someone is telling you how to change how to play your character. Players rightfully buck at this. It’s one thing to be asked to narrate a limp because your leg is broken, but for some reason (and I say that not to diminish it but to express that I don’t fully understand it) it is way harder to take on a real-seeming psychological change. I suspect this is because of the way the human brain handles pretending things: when you pretend an emotion, your brain probably simulates the emotion just by running the mechanisms that actually evoke the emotion with with a little simulation flag set so you don’t forget you’re pretending. Bottom line is that pretend pain doesn’t hurt but pretend emotions do, to an extent depending on the person, cause you to genuinely feel.

twitguy-hiresThat up there is two reasons of course: we don’t like being told to play our pretend personalities differently, and feeling real bad feelings can really feel bad.

The other thing that gets in the way is that you are basically asked to play your character sub-optimally. You’re expected to deliberately make bad decisions. Since we’re playing a game, there is a desire to solve problems correctly and bask in the glory of victory. Deliberately failing is genuinely hard for a lot of people. I put myself in that camp.

When this last came up we talked it out and found a way forward that addressed as much of these as possible by making sure the player still felt like they had authority (but were handed some creative parameters) and agency and also that they wouldn’t be made to feel badly in a way that they didn’t want to feel bad. Talking it through was a big deal for me both to identify just how much of a minefield this thing is and also to resolve it or at least set us up for success in the next session.

Anyway here’s a draft of my rules text relating to this issue:

Stress can be very onerous on players. It asks you to play suboptimally and at the same time engage the game material in a way that is designed to emulate the real effects of stress on humans. At the extreme end of the track it asks you to act in ways that may upset yourself and others: your character will be withdrawn, upset, and making bad choices. Here are some ways to handle it. Please use these in addition to your preferred safety tools (X-Card, Script Change, and so on).

    • Don’t do it. Skip the facts. The stress system is not as powerful this way, which would be the point of not using it. If it upsets you, just don’t use it. It’s not more important than your fun.
    • Discuss it. When a character gets into the deep end of stress, take some time offline to discuss how to engage the new facts in ways that are not too upsetting. Part of what’s upsetting is that the rules are telling you how to play your character which most people are resistant to, but if you discuss how you want to play it, you can make it your own.
    • Help the stressed. If everyone pulls together to help the stressed character it can relieve the difficulties that this brings. It also makes great scenes and clears the stress! Everyone wins.

ray tracing

When I was just a scamp in my 20s I used to ray trace high resolution (320×200) 24-bit colour depth images on my 286. Don’t panic, I had a 8087 math coprocessor in there so it went super fast. A day or two per image.

Now you might very reasonably wonder what renderer you could get in those dark days in the 80s. What sort of interface would you have available? Surely Blender wasn’t around yet, right? AutoCAD 3D maybe?

In those days we cranked out images with POVRay.

POVRay is what is known as a “constructive solid geometry modeller”. Whereas these days (and even a lot of those days) we render meshes of triangles and use a surface normal function to fake the reflection of light rays into curves (yes, a modern rendered sphere is actually a mult-faceted gem and the renderer lies to you about its smoothness), a constructive solid geometry (CSG from now on) modeller uses primitives like spheres, cones, cylinders, boxes, and toruses that are described by their analog functions. So no impure faceted surfaces (unless you want them). Your light ray returns are pure. You are not being lied to.

The difference to the eye of course is uninteresting. But there’s a lot of joy in purity for some nerds, like me. Hell when gaming I don’t even like the d10 because it’s not a Platonic solid.

But what can you do with such appropriately named “primitives”?

Just about anything, as it turns out (though partially because one of your primitives is a bicubic patch but that’s for another time). The reason you can do plenty is because of the “constructive” part. If you know set theory you probably know what’s coming. Because in addition to placing cubes all over the place, you can perform constructive operations on them.

So, for example, you can take the intersection of two objects — what’s left and therefore rendered is the volume that exists only in both shapes. Or the difference: take a sphere and cut chunks out of it with boxes and cylinders. Or the union of course, just gluing them together. With these functions you can do an enormous amount of work before you even get to the tricks of texturing and colouring and finishing. Here’s what I’m working on right now with what is really the same POVRay I used in 1988.

asymptote small
That Jupiter image is a JPL image enhanced by the amazing Sèan Doran. I licensed it from him for use in Diaspora Anabasis a while ago and it sits nicely here. The ship is from our current Diaspora game — that’s the Cinderella.

That’s still a work in progress, as I say, but largely complete. Just needs some work on lighting and colouring.

But what, you ask, does the interface look like? Is it at least better than Blender?

Well hell yes it is. While there are third party interfaces that glue on to POVRay (which is super easy as you’ll see in a sec), the input into POVRay is a descriptive language. Like my other love, PostScript, POVRay uses a scene description language: you just type your description of the scene into a text file and then drive the renderer over it. Your image falls out the bottom.

That “just” is a little flippant. Here’s the code for the crew module of that ship:

#declare cabin_xlate = -25;

	  merge {
	     difference {
	       sphere { <0, 0, 0>, 2 scale <2,1,1> translate <cabin_xlate,0,0> }
	       cylinder { <-28,1,1>, <-24,1,1>, 0.3 }
	       cylinder { <-28,-1,1>, <-24,-1,1>, 0.3 }
	       cylinder { <-28,1,-1>, <-24,1,-1>, 0.3 }
	       cylinder { <-28,-1,-1>, <-24,-1,-1>, 0.3 }
	       box { <-23,10,10> <-23.1,-10,-10> }
	       box { <-25,10,10> <-25.2,-10,-10> }
	       box { <-28.5,10,10> <-28.6,-10,-10> }
		difference {
			sphere { <0, 0, 0>, 1.95 scale <2,1,1> translate <cabin_xlate,0,0> }
			cylinder { <-28,1,1>, <-21,1,1>, 0.3 }
	       	cylinder { <-28,-1,1>, <-21,-1,1>, 0.3 }
	       	cylinder { <-28,1,-1>, <-21,1,-1>, 0.3 }
	       	cylinder { <-28,-1,-1>, <-21,-1,-1>, 0.3 }
			texture {
				pigment { Black }
		object { plate translate <cabin_xlate,0,0>}
		object { plate rotate <90,0,0> translate <cabin_xlate,0,0>}
		object { ring translate <cabin_xlate,0,0>}
	     cylinder { <-25,0,0>, <-24.8,0,0> 2 }
	     cylinder { <-24,0,0>, <-23.8,0,0> 2 }
	     #declare store_texture = texture {
	     			normal { ripples 1 scale 0.2 }
				pigment { color rgb <0.2,0.15,0.1> }
	     			finish {
	     				ambient 0
	     				diffuse 0.2
	     	#declare fasten_texture = texture {
	     		 pigment { color rgb <.2,.2,.2> } 
	     		 finish {
	     		 	specular 0.8 roughness 0.001
	     		 	reflection { 0.4 metallic }
	     	merge {
	     		sphere { <-20, 0, 1>, 1 texture {store_texture} }
	     		torus { 1, 0.1 translate <-20,0,1> texture {fasten_texture } }
	     		torus { 1, 0.1 translate <-20,0,1> rotate <90,0,0> texture {fasten_texture } }
				merge {
	     		sphere { <-20, 0, -1>, 1 texture {store_texture} }
	     		torus { 1, 0.1 translate <-20,0,-1> texture {fasten_texture } }
	     		torus { 1, 0.1 translate <-20,0,-1> rotate <90,0,0> texture {fasten_texture } }

				merge {
	     		sphere { <-20, 1, 0>, 1 texture {store_texture} }
	     		torus { 1, 0.1 translate <-20,1,0> texture {fasten_texture}}
	     		torus { 1, 0.1 translate <-20,1,0> rotate <90,0,0> texture {fasten_texture}}

				merge {
	     		sphere { <-20, -1, 0>, 1 texture {store_texture} }
	     		torus { 1, 0.1 translate <-20,-1,0> texture {fasten_texture}}
	     		torus { 1, 0.1 translate <-20,-1,0> rotate <90,0,0> texture {fasten_texture}}
	     	merge {
	        cone { <0,0,0> 0.2 <-40,0,0> 0.001 rotate -45*z rotate 90*x translate <-25,0,0> }
	        cone { <0,0,0> 0.2 <-40,0,0> 0.001 rotate -45*z rotate 180*x translate <-25,0,0> }
	        cone { <0,0,0> 0.2 <-40,0,0> 0.001 rotate -45*z rotate 270*x translate <-25,0,0> }
	        cone { <0,0,0> 0.2 <-40,0,0> 0.001 rotate -45*z rotate 0*x translate <-25,0,0> } 
	        texture {
	           pigment { color rgb 0 }
	           finish {
	              ambient 0
	              diffuse 0.2
	              specular 0.9  roughness 0.0001
	              reflection { 0.6 }
	     texture {
	        pigment { body_pigment }
	           ambient 0.0
	           diffuse 0.3
	           specular 0.9 roughness 0.001
	           reflection { metallic 0.4 fresnel 1 }
	    translate <-4,0,0>

Yeah okay that makes my “just” seem like a bit of an over-reach. But besides the nerdy joy I experience writing any kind of code, I adore the precision of this: things go exactly where you want them because you tell the machine exactly where it goes. No nudging of objects in the modeller’s mesh preview. No snapping to grids. Everything goes exactly where you say you want it. It gives me a rush every time.

Now I don’t expect anyone else to get off on this, but consider: this renderer I’m running is essentially the same today as it was 34 years ago. A few little features go in as processing improves (though it hasn’t been updated in some time now) but the renderer is basically complete. I can render a file (if I had a floppy disk drive) from 1989 without change. That’s like getting a WordPerfect file to load (and I was TODAY years old when I learned that WordPerfect actually still exists so bad analogy, Brad).

Anyway, I’m not trying to sell you on this dinosaur but rather explain the little joys I get from using it. The naked code, the purity of concept, the precision, and, of course, the nostalgia.

Here she is at 320×240 by the way. Some things do get better.


Viruses are amazing.

We tend to break the world into things that are alive and things that are not alive, but the boundary between those two categories is mighty blurry. And the problem is that any definition that includes viruses in the “alive” category probably also includes many substances that are clearly not what we meant. Possibly even things that are not organic. In fact, if a virus is “alive” then your definition of alive probably includes some machines and even software. When we call self-replicating parasitic/malicious software a virus we might be more literal than we intend — the two are really not that different.

Not a Cornavirus. This is a mechanized view (by me!) of a T4 microphage — a virus that eats some kinds of bacteria. Same concept, cooler shape.

So a virus is basically a protective shell with some chemically active locations that contains a bunch of RNA. A kind of incomplete strand of DNA. That RNA is enough information to replicate the virus if you’re near the necessary component molecules and can find some replicating machinery. That is, as a virus, you have the instructions for replicating yourself but no factory. In fact the virus has no metabolism at all — it’s really somewhere between a machine and a highly differentiated chemical compound. It doesn’t breathe, it doesn’t eat, it doesn’t shit. It doesn’t use energy in any complex fashion. It’s just a complicated bit of matter, relatively inert.

But it’s not inert chemically. Its exterior has chemical probes that detect specific locations on its prey and exploit those locations — strictly chemically, mind you, though under a powerful enough microscope the line between chemical and mechanical also gets blurry — to penetrate the prey. This chemistry, once the reactions are complete, also cause the RNA to enter the prey. Let’s stop calling it prey: the prey is a particular kind of cell. Viruses are pretty specific in that there are only a few or even one kind of cell that each is equipped to assault with its chemical boarding grapnels and breaching charges.

Once the RNA is injected, the prey cell does all the work. And again, this is mostly chemistry: RNA reacts with other molecules present in the prey to start and complete a production process. Your own cell’s machinery, which are supposed to be for making more cells, use these alien instructions to make viruses instead. And the instructions for making a virus, this alien RNA, includes the instruction to make more RNA and put that in the new viruses. This is mind-blowing (to me at least) because this is all chemical. It’s just a machine that does what it does and someone slips it a new set of instructions and suddenly the machine is making more instruction-slippers complete with more instructions. But there’s no intent because there’s not even a metabolism let alone a brain or even a nerve. This little monster is a machine. Just a machine.

It’s not even a cell, really. It’s just a box with auto-grapplers and breaching-charge-chemistry, a chemical valve, and a ton of strips of instruction code.

Why does that even hurt you? A couple of things about this attack are a problem for you.

One of course is that energy you spend making viruses is energy you are not spending fixing and reproducing cells that are good for something.

Another is that the empty shells float around in your body and they aren’t supposed to be there. Viruses fill you up with virus-garbage. Imagine you are the sea and virus husks are plastic six-pack holders and shopping bags.

And of course once your immune system figures our there are invaders it starts all the anti-invasion processes, including inflammation, expulsion (coughing, sneezing, puking, and other horrible -ings), and fever. If your immune system is hard at work and the viruses aren’t dying then you are busy spreading the virus uselessly and also being slowly killed by your immune response since you can’t survive a very high fever for long. Your body really hopes the elevated temperature will kill the virus before it kills you. It’s a gamble and the evidence that it usually works is that it’s what we do and we’re not extinct.

COVID-19 likes fairly specific cells in your lungs. Its grappling hooks and breaching charges only work on those cells. That’s why the symptoms are respiratory and specific to the lungs. A cold attacks a more common set of cells throughout your respiratory system including your sinuses which is why those symptoms are broader. Those cells are also more resilient or less necessary than the ones COVID-19 targets. COVID-19 likes cells that are really important for breathing and also really bad when the region is inflamed (since that adds pressure and fluid in your lungs and as anyone who has breathed a beer knows, fluid does not belong in lungs).

But your body does learn to hunt these things. When you recover you don’t recover because the virus is tired — it will replicate, exponentially, until all of your targeted cells are dead from exhaustion if it can. But you build attack cells that can change their chemistry over time until they successfully target and destroy this invader. Once you have a successful breeding pool of attack cells, they hunt and disable the viruses. And your body remembers this, so next time you see the same virus, you are equipped for defense. Unless the virus changes even a fairly small amount, in which case you might have less or even no defense again, just like the first time.

Your attack system is not very responsible though. They just fuck up the attacker and move on. You still have all the virus-garbage to get rid of and so are still to some degree symptomatic until you shed all that garbage.

Viruses are machines. If they were much larger they would literally be mechanical, but at the scale they exist, mechanism is chemistry. But it’s not metabolism and thinking of them as alive blurs categories to the extent that “alive” starts to lose meaning.

We are under attack by a hegemonic self-replicating swarm.

Viruses are science fiction.

rules fluidity in an imagined space

Role-playing games are notorious for rules fluidity: players modify the rules to suit their immediate needs to such an extent that there is often a special rule granting this authority. It may even be a sufficient (though not necessary) feature to categorize something as a role-playing game. I won’t try to sell that point here, but think about it.

So why? Many bemoan this, wanting rules that satisfy all table needs. Many celebrate it, pointing out that this is where the fun is (where the game becomes a game about designing the game you’re playing, which does sound fun).

MapIn general an RPG explores an imaginary space. A space the size of the world or larger sometimes. And the behaviour of this world, no matter how weird, is intuitively understood. We might all understand it slightly differently, but we do have a private understanding. We can easily imagine the way things that are not described in the text would or could work. So the private world of the RPG is effectively as complex as the real world, but it gets explored piecemeal — it doesn’t exist somewhere in whole cloth but rather as you imagine a new part of the space you easily imagine how it must operate.

So now you want rules to govern how this space is explored.

Let’s call the imagined space a BARN.

Let’s call the rules a PAINT BRUSH.

You want to paint the barn. You need to pick a paint brush, The brush, however oddly, must also be fun.

Okay, so you love detail work (a fiddly combat simulator, say, with lots of kinds of polearms meaningfully differentiated). You want to use a double-ought brush. A tiny brush. You can never paint the whole barn with this. That’s fine, you just give permission to the end user to paint whatever bit you left blank however they want. If they enjoy painting, everyone wins. Well everyone who likes detail painting anyway.

But let’s say your goal is to cover the barn. You don’t want to leave any space for the end user to paint. But your imagined space is huge and complex. What are your choices?

You can broaden your brush — abstract your system to the point that you get enough coverage to credibly cover your barn. It might be a little sloppy in places, but you can have a reasonable expectation of coverage. Now your detail painters are still going to get in there with their fine brushes and elaborate and touch up the moulding and so on, but you can’t stop them. You achieved your goal of delivering a painted barn. And depending on how much work you can do you can go anywhere from a 3” brush (pick a system that suits that!) to a paint roller (again I invite you to imagine what game I’m thinking of) to a spray gun. I bet there’s even an experimental explosive painting device out there that paints not only the barn but much of the surrounding countryside.

You can also constrain your barn. This happens a lot in some design spaces: declare we are not going to even think about the barn. We are only interested in the door. Anything outside the door is not part of this project. And then pick a relatively fine brush and paint a perfect door. There are lots of games in this category.

When we say “why are RPGs like this” we aren’t really talking about RPGs. We’re talking about some category of RPG or even some category of player talking about RPGs. And consequently we’re talking about a fairly specific barn/brush case or expectation. But in reality there are many ways to paint that barn, with and without requiring the rules-creative input of the end user. We have to think of handing the end user the brush as an option any RPG should consider — and then accept or reject.

The important thing about game design to me is not doing it one way or another. It’s doing whatever you do deliberately. Everything should be intentional in your text. There may be unanticipated (emergent) properties to the game, but everything you write down should have a goal. Including, possibly, the goal of offering design space to the user.


players making shit up

The further your game world drifts from the real, modern world the more you have to let players make shit up.

Here’s my logic.

20180516_171517Universes are crazy big. Douglas Adams tried to tell us how big and didn’t come remotely close. Universes, however, that obey our physical laws at least have a set of truths that you can draw on. A set of premises. How gravity works, how fast light goes, what’s in the periodic table of elements, and stuff like that. And so, as a player, there is a significant fraction of the universe that you can manipulate safely (game-safe I mean). If I see a plausible orbital maneuver in the way the ref has laid out a space, well, I can probably do it. There are touchstones and they are myriad.

I think sometimes we forget just how much shared knowledge we have.

I used to play a lot of games set in my home town of Vancouver. One of the chief advantages to this was the touchstones — you could hide in that place you know, the culvert under the highway up near Kelly’s place — and you weren’t making that up as a player: that place exists. Most of us knew it. Many of us secretly drank there on Friday nights. So most of the play space is known and does not require mediation. It’s just real.

Science, if it works in your game, is like that contextual touchstone but writ large. We all know (and can expect and therefore manipulate) how gravity works, what air pressure does, how things behave at very low or very high temperatures. I don’t need the ref to fabricate any of it and imagine the burden if I did!

Now as you drift from real places in a real universe the amount of information needed to manipulate the environment increases and very very rapidly. There are millions of pages of material written about how this world works. Maybe billions. Your fantasy world, however, has only the tiniest fraction of that content: a practically non-existent amount of material. Frankly no one, even the originator of the fantasy world, knows much of anything about it compared to the content available from the real world.

But you should know. Your character lives in this world and is aware of a similar volume of data that you have by living in the real world. Your character knows about the equivalent of that culvert under the highway and thousands of other truths that know one has every thought to write down or map out. It would be an impossible task.

We mediate this by putting a ref in the hot seat. The fewer the touchstones, however, the more of a burden this becomes on the ref. And the less reasonable it is for them to mediate it — they don’t know either, we’ve just given them the authority to invent it.

I’ll suggest then, that the more your world deviates from reality the more benefit you’ll get from letting players make up their own details. As ref just nod and follow along. If you can’t pre-fabricate all of the details of the world then this will give you two significant advantages: you’ll get a world that’s the product of four or five peoples’ creativity rather than one (it’s nowhere near what went into the real world but it’s five times better than investing the whole problem in one person) and your players will be able to smoothly “recall” facts and even manipulate them without the awkward “was there some place we used to hide as children maybe” — useless roll — “yup there was a culvert under the highway” exchange.

Once you get used to that you can let them manipulate. For example, games rarely if ever examine exactly how magic works (mostly because it always results in contradictions in detail and so it’s best glossed over — magic basically can’t work so don’t look too close). If I’m playing an ancient wizard who’s researched it forever, though, then I expect to have some detailed hypotheses about the underpinnings of magic and a good deal of experimental evidence for it. And I will want to bring that to bear.

img_20170907_133639When I do, I want to imply vast knowledge I don’t actually have. Consequently it’s probably best if I just make it up. “I’ve studied fire magic all my life and I am certain that it is not simply brought into being as that would violate the third law of thaumaturgodynamics. Magical fire must therefore come from somewhere. I postulate that it comes from the plane of Elemental Fire and that therefore it must create a path. I think we should try to track this Efreet by trying to identify this path.” Now I’m not narrating my success, but I am saying a lot of facts about the world that no one ever ever wrote down in advance. Those facts should not be subject to mediation. The ref should greedily note them and start crafting complicated implications. And yet there is resistance to this kind of player participation in world building.

The map of your fantasy world is basically completely empty other than the gross geography. I highly recommend inviting anyone who’s found a blank spot to fill it the fuck out.

formalizing the art of invention

A lot of my refereeing is intuitional. I ad lib. I come up with one idea or image and then follow it around. When this happens in a game it works for me, but one of the things I need to do to make a game work for someone else is formalize these processes. Reveal them to others so they can reproduce them.

The problem is, of course, that I just do it. I don’t have a system.

But this is nonsense — I do it the same way every time. There must be a system. I just haven’t looked at it closely enough. So I’m going to go through a premise and lay out my thought patterns as a hierarchical choice tree. Someone else can use this as a jumping off point for their own exploration of the same premise. For a lot of game design this is the heart of it (for me): watching myself ad lib and then formalizing that.

Premise: you have a space that has not been explored (a slipstream that connects an unknown or forgotten system). You might not be familiar with Diaspora: a slipstream is a wormhole that connects two systems. There aren’t a lot of them — clusters in Diaspora are only a handful of connected systems.

Screenshot 2020-03-02 17.33.09

So in this cluster we have a link from Cando to…what? It starts out unknown! At some point the players are going to want to go there though, so…what’s there? Quick! There’s a session in twenty minutes?

Here’s what I would go through. At the top level, I explore the big questions.

  • Why did no one know about the route before?
  • Who’s there?
  • What’s there?

And then I cascade. For each I ask more questions. And then again. Until I get to some answers. And I might ask more questions.

  • Why did no one know about the route before?
    • It’s new
    • It has been deliberately hidden
    • It recurs
    • It was destroyed but has re-emerged

Once I have a nice set of possibilities, like say:

  • Why did no one know about the route before
    • It’s new
      • Why did it suddenly show up?
        • Local astronomical change
        • Change in the astronomy of the new side
        • New technology reveals it
        • Technology on the other side has suddenly allowed them to visit us
    • It has been deliberately hidden
      • Who hid it?
      • Why?
      • How was it revealed?
    • It recurs
      • When was it last here
      • How do we know that?
      • What causes it to oscillate?
        • Astronomy? Maybe a distant binary?
        • Technology? Did someone or something do this deliberately?
    • It was destroyed but has re-emerged
      • Who destroyed it?
      • How?
      • Why is it back?
      • Is it stable now?

I pick a path. That’s the plan. Here’s the whole tree:

  • Why did no one know about the route before
    • It’s new
      • Why did it suddenly show up?
        • Local astronomical change
        • Change in the astronomy of the new side
        • New technology reveals it
        • Technology on the other side has suddenly allowed them to visit us
    • It has been deliberately hidden
      • Who hid it?
      • Why?
      • How was it revealed?
    • It recurs
      • When was it last here
      • How do we know that?
      • What causes it to oscillate?
        • Astronomy? Maybe a distant binary?
        • Technology? Did someone or something do this deliberately?
    • It was destroyed but has re-emerged
      • Who destroyed it?
      • How?
      • Why is it back?
      • Is it stable now?
  • Who’s there?
    • Are there humans there?
      • Yes: may connect a whole other cluster, different colonist cultures
      • No: did there used to be?
        • Yes: dead failed colony
          • What killed it
          • How long ago
          • Is it still here?
    • No: new territory
      • Intelligence?
        • Yes: aliens, alien cultures
        • No: used to be but no longer
          • Dead civilization
          • Reclaimed by nature or ruined?
        • No: example of pristine location, no penetration by intelligence. What’s awesome? What’s horrible? It has to be DIFFERENT. No one has EVER been here.
  • What’s there
    • Nothing. What the hell? How is there a slipknot to nothing?
    • A normal system
    • A normal system with something anomalous
      • Black hole
      • Neutron star
      • Giant artifact
      • Evidence of ancient civilization
    • A very not normal system
      • Impossible orbital arrangements
      • Planet sized artificial structures
        • Bigger?
      • An artificial star
        • How do we know it’s artificial?

This can be used at two levels. At one level, it’s a thought process you can adopt in its most general form: ask a few big questions, answer them, and let the answers raise more questions. That’s one kind of mind’s tool.

If you are not comfortable with something so unbounded, at least in the context of this game, you can literally use this tree. I only used a fraction of it and even if you pick the same things I did, you probably won’t present them the same way I did. And your players won’t be arriving with the same baggage mine did. It will be different.

And of course this could be further formalized into a randomized oracle.

With the process laid bare, you can choose the level at which you want to ad lib and still benefit from someone having blazed a path for you. Happy trails.