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 }
	        finish{
	           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.

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

pelagia et al

Some time ago I was really intrigued with oceanic adventure. I tinkered with two games around that time, neither of which really sang but both of which still, I think, have some promise in their premise.

The first was Navigator.

The second was Pelagia.

There might be a third — there’s a way in which Polyp fits in there too.

navigatorNavigator was about modern (ish) pirates and criminals making a living on the ocean around Thailand, smuggling and otherwise getting into trouble between exotic and poorly policed coastal cities and villages. It’s obviously a rip-off of Black Lagoon but no one has ripped that off very well yet, so it’s still viable.

Maybe it’s not obvious, but the matrix I built it on is Traveller. Or bits of Traveller. It’s very much, I realized, a Traveller premise — you have a ship, there are places on a map to visit, you use your ship, the law is relatively weak. You do crimes, make ends meet, keep the ship running.

I don’t think I have anything written for it any more — my recollection of it is that I was using paper notes exclusively and so they are gone. But it’s a kernel of an idea and I don’t think the actual game was all the interesting. Just the idea. So that could easily happen again.

It definitely had a life path system because I did find this:

Choose: NATIONALITY

Choose NATURE: HUGE, FAST, SMART, or CONNECTED

      • Huge: Unarmed Hold, Armed Heavy Weapon or Melee, Finesse Intimidate
      • Fast: Unarmed Karate (or whatever), Armed light weapon, Finesse Evade
      • Smart: Unarmed Hide, Armed Thrown weapon, Finesse Hack
      • Connected: Unarmed Talk, Armed Found weapon, Finesse Negotiate

Choose PLAN: CAREFUL, LUCKY, BRAZEN, or CALCULATING

      • Careful: when unprepared you have a HIDING SPOT
      • Lucky: when unprepared you have a WEAPON
      • Brazen: when unprepared you have NO WEAPON
      • Calculating: when unprepared you have SOMEONE ELSE’S WEAPON

Write a paragraph about yourself that integrates these. Don’t talk history, talk personality.

Choose first career path, COLLEGE, MILITARY, BUSINESS or CRIMINAL. Roll 1d6 on the appropriate chart. Write a bit about that. Write your skill as an aspect but make it clear.

So yeah, pretty much what you’d expect though certainly there are some novel ideas in there. I’m pretty sure it was asymmetric too — player character simulation is not the same as environment simulation. I think it’s also one where the ref never rolls (since that goes hand-in-hand with that kind of asymmetry).

Screenshot 2020-02-29 19.55.07Pelagia I have even fewer notes on. From what I can find it looks like it dates from a period where I was still mostly hacking Fate. It’s also related to Deluge, perhaps a less or at least very differently apocalyptic. You would be people who live in these oceanic cities or villages, mostly underwater, after some event flooded all of the land masses of the world — everything you need you have to find in the ocean.

Since it’s something you bolt onto Fate, it’s mostly about the world and the technology. I never really figured out what you do. Just where you are.

I still think it’s pretty cool. If I ever figure out what characters do here I might restart work on it. If I know what you do, I can find a system for it.

polyp-titleFinally there is the very strange Polyp. In Polyp you are the strange unspecified animal avatars of a god that lives in the middle of a world composed entirely of water. Yeah, not a waterworld in the sense of being covered in water, but in the sense of being only water. This meant I could piss away hundreds of hours researching the states of water at various extraordinary pressures (which is really cool, go do that a little) even though that had little to do with the game. The important part of the game as that your cute little larval gods spent their time (your time at the table) sculpting a civilization out of the permanent ocean.

Now this game had a whole system but I don’t think it was really playable. I’m not sure I can ever find out because the only content I have is in an InDesign file and I cancelled my Adobe subscription ages ago. Maybe it was playable. You know what, since we will never know for sure, let’s just say it was awesome.

What I can recover (and this is not easy since it is also stored in software I am know longer allowed to use, but for different reasons) has this in it:

Yshtra. The water-engine of the world. She is both being and monster, machine and mind. Her name is also the name of this world composed only of water.

The history of Yshtra is one of oscillations, of waves. Over the tens of thousands of years recorded in her memory the world has been many things — civilization, wilderness, heaven, hell, destination and origin. Today it is a wasteland — the last cycle left the world deeply damaged. But you will change that. As the Polyps of Yshtra, you are designed to bring about the next great cycle though it is up to you to decide how. You are empowered with her authority: what you decide will not only be supported by Ysthra, but it will become her doctrine in the next cycle: you will start the world on a course of reconstruction and you will decide what that will be at its peak. You may also find you have sown the seeds for its inevitable decline. This is as it should be.

Of course since I was (and am) always thinking harder about the setting than the system, there is a way to generate the apocalyptic (hmm, that’s happening again too; I wonder why) starting form of the world that you will fix.

The state of life

The current state of life on Yshtra determines what your early conflicts will be about. As you progress through the oracles and tell the story of the world as it is now, codify the degree of fantasy in this reality — are you playing a science fiction game? A fantasy with relatively strict physics? A pure fantasy where physics are subservient to magic? Or will you be causing the physics to take shape as you go? When you know which you want to play, speak it out loud and write it on the map.

1. None. Whatever happened here, even if it was just entropy, it ended all life processes. The chemistry is still possible but there is nothing in the water that swims or eats or metabolizes in any way. Draw your DEATH symbol near Yshtra. Your FIRST CONFLICT could be fixing things so life can start already. Pick a new roller and roll again:

1. It’s dead cold. Solid ice. To kickstart this place again you’re going to need to start from outside the ice.
2. It’s cold. Everything has halted because the world is ice. Some warmth flows in myriad tiny crevices between the bulk of the ice, but not enough for life to sustain itself. Enough to kickstart something, maybe, though.
3. It’s warm. It’s fine. Just that nothing is running.
4. It’s hot. The upper part of the globe is water vapour and the parts that are low enough pressure to be useful are way too hot. Why’s it so hot?
5. It’s so damned hot. The world is vastly larger than it should be because of the heat. Something keeps it so hot that it’s almost entirely water vapour. Again, you might have to go outside the world to solve this one.

2. Some. There is some protozoic life here and so all of the necessary components to sustain life exist. But it can’t yet evolve and it’s not clear what it will become if it does. Draw your SIMPLICITY symbol near Yshtra. Your FIRST CONFLICT can be the jump-starting of life on a correct path. Pick a new roller and roll again:

1. It’s dark. Even the upper layers are too dark for photosynthesis and so the core life forms must do without. They live on some other energy source entirely — some heat source perhaps? An abundance of an active chemical compound? Radioactivity?
2. It’s bright. A sterilizing radiation from the sun penetrates the upper regions of the world forcing life to operate in the low-energy depths. Is something wrong with the sun? Or just the atmosphere?
3. Monoculture. There’s some life here but it’s all the same and lives in a relative equilibrium meaning there is no competition — no trigger to evolve. This world needs some change.
4. Simple. It’s just not complex enough — it’s a chemical dead-end for life. No amount of competition is going to trigger any interesting complexity. It would make a great food source for something that did, though!
5. Climactic chaos. Something external — weather, asteroid storms, solar instability, something — causes vast periodic extinctions before anything can take hold.

It just goes on like that. There is actually a ton of material here and I might reconsider it. Maybe I have enough tools now to make this one work. There’s an example of play that implies we’re working with some Hollowpoint variant here. This might be a branch of an early Soft Horizon game then.

For example, let’s say we’ve just come out of the Preparation session with the following world:

(Rolled 2 and 2): There is some simple life in the sphere of Yshtra, but the upper reaches of the water are savaged by harsh ultraviolet and worse from the sun.

(Rolled 3): The last cycle ended in disaster — a flourishing civilization damaged the atmosphere of the world (something they thought they didn’t need) and ruined the protection it provided. The sun flares at regular intervals and when it last flared, the habitable areas of the world were sterilized.

The group considers the problem and decides they can either fix the sun, fix the air, change the water so that it acts as its own radiation filter, or change the life so that it is impervious. They decide that they will bend their efforts to changing the water. As this is the opening action and there are four players, the referee rolls 8 dice: 6 6 6 1 1 4 4 3

A daunting opposition!

The players have rolled as follows:

Diisha, a Convert prime, rolls her Observe (3). She is whirling throughout the globe attempting to find more information about the water’s mineral contents and see if there is some way to use it to create a chemical cascade that will make a shield. She rolls: 5 3 4

Amal, a Deceive prime, rolls her Edit (4). She is moving through the past to find times when the water was more resilient and she will nudge some reactions to make them persistent. She rolls: 6 5 4 3

Benek, an Edit prim, rolls her Edit (5). She is moving through the past to find asteroids that were near misses that can be diverted into hits to alter the chemistry of the water. She rolls: 5 5 2 2 3

Since Diisha has rolled no sets, Amal asks to borrow her 4 since it will all make a set for her! Diisha agrees and the agree on the narration: in her travels Diisha has discovered a molecule with extra-physical properties that can be polymerized to create a floating shield on the surface of the water. It would require the presence of some magic in the distant past though. Amal now has: 4 4 6 5 3

Benek would also like a die, the 5, and suggests the narration that Diisha has discovered evidence of a huge asteroid storm in the past that grazed the planet. It would be a rich time period to mine for impacts. Benek now has: 5 5 5 2 2 3

Diisha’s remaining dice are irrelevant as she cannot be attacked since Observe was used to increase team resources.

We begin! The Widest, highest set is the Oppositions’s 6 6 6. The referee narrates: The problem is a crushing one. Time is vast and the things you seek may not even exist. She decides to apply her 6 6 6 to Amal. Amal can choose to take her hit on a 4, ruining a set, or be damaged by the attack. She chooses to take the hit and now has an Immediacy of Sticky — she is finding it hard to move in time. The sets are now:

Diisha: 3
Amal: 5 4 4 3
Benek: 5 5 5 2 2 3
Opposition: 4 4 1 1 3

Benek is next with her trio of 5s. She narrates: But in the depths of time, in that long void between then and now, there is a hope, a shower of asteroids that nearly missed. They contain elements critical to the creation of the Barrier Layer and I change the chances in time so subtly as to cause them to impact instead of miss. She chooses to take out one of the Opposition’s 4s:

Diisha: 3
Amal: 5 4 4 3
Benek: 2 2 3
Opposition: 1 1 3

Amal has the next move with the pair of 4s. She realizes she is vulnerable here and so starts by burning a trait (Justice — a facet of Yshtra that she now no longer believes in) and adds a die rolling a 6 — no help at all). She narrates: There are now minerals in the deep past with the mystical properties needed to form the shield. I nudge them together, trigger the cascade and it begins but will it hold? She takes a 1 from the opposition to protect herself.

Diisha: 3
Amal: 6 5 3
Benek: 2 2 3
Opposition: 3

Finally Benek acts with her pair of 2s. The ancient asteroids mingle with the new reaction and parts of the world are covered for some time. But it isn’t complete and might not be permanent. The job is not yet done. She damages the opposition with a hit from her Edit: it now has an Amenable Past.

It seems this tactic will not work, but neither has it entirely failed. The polyps will need to come up with something new.

This is obviously a game that puts an enormous creative burden on the players.

Lots of apocalyptic water in there.

 

transliteration

Warning. I am not a scholar on this topic. This is information I have learned or developed myself in the course of being a nerd on the topic since before puberty. I hope my thoughts align with actual scholars but it’s unlikely.

Transliteration is the process of writing a foreign language in a native alphabet. So, for example, writing Georgian or Inuktitut or Korean (using the Hangul normally) in the Latin alphabet. Its purpose is to allow the native reader to make sense of the sound of the foreign words. To be able, possibly, to repeat them vocally, whether or not they are understood. This purpose is important to the process.

However, when I first started transliterating at the tender age of 13 using a stolen book (yes I stole from the library — I was a voracious consumer of books and my allowance was a dime a week and I was in more ways than this ethically compromised) of Greek stuff I was doing the opposite: I was looking for codes, and using the Greek alphabet as a code. Therefore to compose my native language in a foreign alphabet, the opposite of the usual purpose of the process. I did, however, invent many rules that would seem to align with more correct use.

Later I would spend hours transcribing Tolkein’s wildly inconsistent use of the Tengwar everywhere it was found in my copies of The Lord of the Rings, The Hobbit, and The Silmarillion. In fact I was much more interested in this bit than the stories themselves. And in examining his usage I found many of the rules I invented for myself echoed as well as the discovery that while inconsistent, his methods were not purposeless. Pedantic nerd that I was, I also compiled errata so I could tell where Tolkein was playing and where he was just screwing up. And where he was playing was revelatory as well.

So when transliterating you have a translational choice that depends on your purpose: how much of the alphabet’s power do you bring to bear on your choices? This is necessary because different alphabets have different powers. The Latin alphabet has a lot of letters that perform multiple roles and that compose (ch, sh, &c.). So in translating, say, სახლი, to Latin, there’s a lovely glottal k sound in there. The word is typically transliterated as “sakhli” using the flexibility of English usage of the Latin alphabet as well as quasi-standards to imply with an “h” that we swallow the “k” a little as we speak it. We leverage the Latin alphabet to do something it doesn’t do but that English does apparently allow us to imagine it should. We similarly use “zh” here and there to soften a “z” even though in our own language (say, “azure”) we don’t need it because we aren’t teaching pronunciation with our own spelling of English words. We’re just echoing convention.

So as a kid I wanted to write English words in the Tengwar, the Elvish alphabet, because what could be cooler? It’s calligraphic rather than runic and so clearly much superior to the stonecutter’s alphabet of the Dwarves. Anyway, the question is, how to use it? Consider the word “that”.

Now as a strict substitution cipher, a code, I’d use the Tengwar t, h, a, and t. Simple! But how inelegant! Let us, though baby nerd Brad, think instead like an elf. Or even better, think like a human in Middle Earth: they aren’t transliterating. They are simply using the Tengwar because they have no alphabet of their own! So would a human invent the clumsy “th” structure if they had only the Tengwar to write with? Surely they would not! They’d use the existing Tengwar for “th” and get:

Screenshot 2019-04-18 11.37.39.png

That is, a “th” glyph, a “t” glyph, and a “a” diacritic. I’d use the power of the Tengwar to get my job done. And as a consequence an elf who knows no English can effectively sound out the word.

So this is a thing that bugs me about so many fantasy alphabets: they are built to work as substitution ciphers and not actual alphabets. That is, they are just new shapes for Latin letters as used by English speakers. This is…

Screenshot 2019-04-18 11.40.12.png

Or, better…

Screenshot 2019-04-18 13.29.39.png

Alphabets for other languages evolved to support them. Languages evolved to support the alphabets. They are intimately connected. So a credible fantasy alphabet can’t just be a substitution cipher. Too naïve. It has to have its own rules that are leveraged to create a useful transcription: one in which the native user of the alphabet could sound out the word.

A human in Middle Earth, therefore, would not spell “laugh” that way because they don’t have the history of Latin alphabet usage. They don’t live here. They would spell it “laf” or possibly “laff”. But in the Tengwar. Not this, which zanily uses the Tengwar “gh” glyph as well as an “a” and a bastardized “u”:

Screenshot 2019-04-18 11.43.38.png

But rather:

Screenshot 2019-04-18 11.44.59.png

“Laff”. Using the correct symbol to double the consonant even. You leverage the foreign alphabet and the foreignosity of it is what’s important. It’s what makes the transliteration interesting. It’s why we’re here playing around like this.

Substitution ciphers are fun but they are a million miles less interesting than actual transliteration. Accept no substitutes in your wacky sci-fi and fantasy constructed alphabets. Make a real alphabet, built to serve a different (perhaps literally) tongue, and wonder how you need to twist it to make it say English. Research how the Hangul works, the history of the Inuktitut which was invented only recently to support an entirely oral language. See what choices are made beyond the Latin alphabet.

Normally I’d just draw the Tengwar myself but I got lazy and used this Elvish engraving tool. Its output is Unicode (yes there’s a Unicode set for Tengwar) so I screen-capped it as it was rendered in my browser.

This post was brought to you by my patrons who rock.

 

folk aesthetics

In the philosophy of science we sometimes talk about “folk science”. Or even “folk logic”. This is content that is superficially true but unexamined — an excellent first guess and probably a sufficient first guess to survive for 40,000 years or so. It’s often wrong, but it works at an animal level and it works as a survival instinct.

Post hoc ergo propter hoc is kind of the perfect folk logic. Event A happened before B therefore A caused B. You can already smell a lot of magic here — I shook my fist at the sky and then it rained. I can make it rain! But less magic things too — they were there right before the murder! They must be the murderer! And probably right enough of the time that it gets a little easier to catch murderers. And a lot of the time it’s even right — if I plant these seed things then later corn will grow. Sure enough, that sympathetic magic works. If you bury a little piece of corn in the earth, later there will be more corn.

Folk science is an extension of this. The sun goes around the earth, for example. Obviously it does. Humans are too puny to have an effect on global climate. People of different colours are fundamentally different beings. But also more nearly true things — when you drop something it falls straight down, for example. When you accelerate you will keep going faster and faster for as long as you accelerate. There’s such a thing as simultaneity.

So this morning in the shower I was thinking about folk aesthetics: things that we find pleasing but that we find are imperfect, naïve. That produce results that are pleasing but not as pleasing as they could be. And in some cases we find these so pleasing we are almost addicted to them.

sunset sunrise sea horizon
Photo by Life Of Pix on Pexels.com

Symmetry is an easy one. We love symmetry. But a perfectly symmetrical natural image (a tree in center frame, for example) feels both pleasing and naïve. It isn’t as good as it could be. But there’s an appeal, especially in an idealized form like a logo. It’s more than simple, it’s simplistic. But something in our brain loves it and something else in our brain does not.

selective focus photography of a telescope
Photo by Susanne Jutzeler on Pexels.com

Complementary colours is another one. Why do we love blue and gold so much? Because they are opposites on the colour wheel. It triggers something we like, a simple and natural opposition. You shoot a whole movie in blue and gold and it’s visually energizing. But clearly there is a lot of colour-based mood you are missing out on. It’s a cheap trick.

Sorting like things together. We really dig this. We build addictive games around it. Get things of the same colour into a line. Hell as a kid I would spend time sorting a deck of cards because a properly sorted deck felt wonderful. We adore the purity of segregation.

black and white blank challenge connect
Photo by Pixabay on Pexels.com

Fitting things together. Another addictive game seed. In fact I think that “sorting like together” and “fitting things together” are the core elements of all successful “shit keeps falling” (thanks Joshua Schacter) games. When each successful move is accompanied by a sharp satisfying POP you have a winner. Worth millions. Because it pleases the animal.

4
Asymmetric composition by Juan Ochoa.

It’s valuable for any artist (not just visual art, but also game design, hence this discussion in this blog) to identify folk aesthetics in order to break them. It pays to find richer, deeper aesthetics in, around, and in defiance of folk aesthetics. Black and white together is a killer aesthetic. Add a single colour and it explodes. Draw the eye in a deliberate direction with placement rather than simply up and down the middle of the page. Leave like things apart, in tension. Clash a colour. Jumble things that refuse to fit together. Better, show things that should fit together that will never fit together. These things occupy our brains. We try to make them right. This makes us pay attention. When we do this we please more than just the animal. Sometimes we even succeed by defying the animal.

But simply defying these things does not work. You need to deliberate. But this is how you get from folk wisdom to wisdom.

Yes there is a subtext.

These posts happen because of my patrons, who are each and all awesome.

artist highlight: juan ochoa

I am a pretty bad art director. I don’t really know what I want. It’s in my head but, you know, there are a lot of layers of translation between my brain and someone elses. My instinct, though, is to trust that part of being an artist — like a real artist, a pro — is not just translating my idea but also bringing all that creative talent to make my idea theirs. To have them develop the concept into something much better than what was in my head anyway.

2019-03-22 (1)
Juan and his cat Art Supplies. I believe he has another name, but also is clearly an art supply.

Juan Ochoa helps me get over that hurdle and preserve my desire to see another artist get creative: he works interactively at the concept level to get things not just right, not just as good as I wanted, but the multiple of what he wants and what I want. His method makes us both better.

I first asked Juan to collaborate with me on a project that didn’t wind up developing into anything, although we did still have some cool concept art come out of it. This was Swallowmere, a fantasy sequel to the VSCA’s Hollowpoint. It has a ghastly web page. I apologize. Here are some bandages for your eyes.

So the premise was, the world of That RPG We All Played When We Were Kids, a Tolkienesque fantasy of elves and humans and dwarves and whatnot, but a thousand years later. A modern, technological fantasy. Reservoir Dogs meets Lord of the Rings, say.

demureIt didn’t finish but it created a lot of fun text and art and that was when I first got into Juan’s process. Pictures, text chat, live video, whatever he can get his hands on to bring you into the process. Now if you don’t want that, that’s cool, he can churn out to spec and not bug you about it. But if you do want it, if you want to collaborate rather than just direct, he’s all in.

After Swallowmere I asked him to do a cover and some character art for my space opera project Elysium Flare (which did complete!) In the end I got so into making the art myself — and this was his fault, since working interactively with him let me steal some essential techniques for digital illustration — that the book wound up largely in my own style. Nonetheless, critical landmarks in the book are perfectly his.

Shamayan FINAL.pngJuan lives in Bogota, Colombia, where it is notoriously hard to get him paid, get him mail, and other things we take for granted elsewhere. But it’s also a place where he can afford to live on his art (provided we hire him a-plenty), eat great food, drink amazing coffee, and keep an adorable cat. He occasionally ships me some coffee along with a cake of panela, a kind of cake of unrefined cane sugar which you chip off into your coffee. If you chip off too big a chip you just eat it because it’s still rich with molasses and other good pre-refinement stuff.

Juan has worked for plenty of folks in the industry already — you’ll see his work everywhere once you notice his distinctive style. And yet he remains humble (to a fault), affordable, and approachable. He has portfolios all over the place but this is the only one I think is current.

I love working with Juan. I feel like I get smarter every time we interact. I have recently asked Juan to work on a mini-project with me that I’ll expose at a later date. It’s not a game, just a…thing. Promotional thing, for sure, to bring attention to Sand Dogs (which is releasing within the next week), but also just a thing. A little delight. An amuse yeux perhaps.

complicaion02.jpg

 

expensive toys

My business, the VSCA, is in a very privileged space. It’s not for me to talk about whether someone elses pricing scheme is good or bad, just or unjust. It is certainly all those things. So let’s just look at some things that are certainly true and wonder how much we care. You get to decide how much you care for yourself.

Monte Cook Games pays a decent wage to their writers and artists. Far above the indie norm.

A hundred bucks in one outlay is too much money for some people to pay. They cannot afford to buy this game (Invisible Sun) even in digital only form.

A hundred bucks does not seem to me to be out of line with my personal rule for pricing: generate the same profit in print as in digital. It just tells me that MCG is making about eighty bucks per unit on the print version too.

Big price-tag games are not new. Hell I would love to own that monster box Ogre release but there’s no way I could justify the price. I still have to pay off the stair elevator chair thing my wife uses to get to the bathroom since she can’t walk. But there are lots of things I can’t afford. I usually talk myself into believing I don’t want them. Same as everyone. Pfft, Lambourghini, where would you even drive one in this city and expect to use its performance?

There are thousands of games with lower production values but better play values one could own. It is hard to find out about all of them. Even most of them. Because…

…it is very hard for a producer of low priced excellent games to get eyes on their game. They can’t afford the sort of marketing available to better capitalized endeavours, they don’t have the industry heft and consequently the social media reach that these folks have. And manufacturing that reach is very difficult (and as we have seen elsewhere in the so-called “industry”, sometimes poisonous: it might not be wise to trust people who have spent a lot of energy developing social capital like that).

Kickstarter enables almost anyone to either effectively capitalize whatever project they want (including one of the scale of Invisible Sun) or fail trying. The nice thing about this is they don’t need to eat the risk unless they succeed at the Kickstarter. That’s when the risk kicks in and sometimes eats you alive. The problem here is probably that “great game designer” and “great project planner” and “fiscal genius” don’t necessarily overlap in any given enthusiastic person starting a Kickstarter. But if you do Kickstart and you do your fiscal homework, you can pay artists and writers top dollar too. And if you can’t (Kickstarter fails) then you don’t play out that risk. This is what Kickstarter is good for.

This might not be a fact but I believe it firmly: more people buy a digital product than read it and more people read it than play it. If you want to sell a lot of copies your game can be crap as long as it’s pretty and entertaining to read.

The front page of DriveThruRPG is driven by revenue not units sold. If you sell two copies a day at a hundred bucks each you will stay on the front page for a long time. Smaller entities will last hours at best, and then fall under the radar. So even if a consumer checks the site once a day, they will never see many new titles. Never ever.

Poor people deserve a good time too. In fact I’ll say they deserve it more. A lot more. You wouldn’t believe how much the oppression of living day to day with Not Enough is lifted, however briefly, by a fun time with cool people.

To my mind then there is nothing “to do” about this hefty pricing of a PDF. It’s easy to justify. It’s easy to deride. Ultimately, a business has set a price and you can afford it or not. They don’t owe you access and you don’t owe them your money.

At the same time there is a boom in insanely cheap, deliberately low-fidelity gaming zines produced by people who are only paying themselves and barely managing that. Should we also be examining that? Is that “ethical”? There are and have always been a ton of pay-what-you-want or even just free games out there that are largely invisible because the heuristics of DTRPG guarantee it and the authors are not facile at getting visibility. Should we be concerned that they pressure indie developers to keep their prices low? They do. Should we be concerned?

cops.jpg
I have never paid Juan Ochoa enough.

No, not particularly. What we should care about is that people who do work get paid for it and paid adequately. That’s pretty much it. Whether a product sells enough to stay afloat is not our problem. Pricing is not our problem. Consumer goods being out of reach is old news (and is a feature of capitalism, so changing it is a substantial project). Cheap and occasionally excellent goods being available is awesome and unusual.

There are at least two ethical actions then (and I like to talk about things in terms of what to do next — criticism without some logical next steps is cathartic but less useful): supporting lines that pay their artists and supporting lines that are single-author (since these are largely the same thing). If you tell me the rates you are paying artists and writers on your Kickstarter, I’m more likely to think about backing (depending on what you actually say). If you’re a single-author publisher and especially if you’re not using Kickstarter, I will happily highlight your project here and tweet the hell out of it, lending you my (sorry but) limited reach.

If you want everyone to be able to afford games, you can’t drive down the price of Elite Games and also support adequate pay to artists. There are a lot of talented people getting paid to make that sort of thing. You can help make already affordable games more visible, though, and by side effect put more money in the hands of artists. So they can make more (affordable) games.

That is, the solution isn’t deriding luxury games. The solution is celebrating the rest of them. Inasmuch as a solution is needed.

Oh and for heaven’s sake play your games. If you read it, yell about it, good bad or mediocre. If you play it, yell with more authority.

Yell about games.