A story- and atmosphere-heavy spellcasting RPG, heavily based on Ural mountain folklore.
A Christmas Ghost Story
What do you do the night of Christmas Day? When all the presents have been unwrapped, the food eaten and the visits made? There's an old tradition, predating M.R. James and Charles Dickens, and even the author of Gawain and the Green Knight. I think we should bring it back: The telling of ghost stories.
Cantwell had never taken the time. Another version of her would have assumed that she knew what a ghost was. The present Cantwell was rarely the type to bother with abstractions. What a ghost was cost her no more concern than the question of what a friend was. Were either real? Her friends demonstrated fealty on the right apps and were present in person when circumstances required. This sat comfortably enough in place of a definition. Likewise were ghosts considered by some influential people (and what other kind existed–meaningfully existed?) to be a thing one could accept as “real.” Our alternate Cantwell would have said that a ghost was what remained when a person had otherwise died. They symbolized the inevitable loss of beauty and influence that preceeded the grave by so many years (for those who couldn’t contrive to go out on top) but were otherwise nothing more and much less than a person on this side of the ground. The thought of meeting a ghost hadn’t crossed Cantwell’s mind since she had been very, very small, and understood very, very little.
This Cantwell, the present Cantwell, got by with surface glosses in place of understanding. Understanding was a thing that lived in a stillness she simply didn’t inhabit. She felt naked without a constant crush of attention from all sides, like some deep sea chamber that would rupture if brought to the surface.
It came to pass, however, that she found herself in just such an unaccustomed stillness passing the canal opposite Christiansborg. Her devices were as silent as the unseen water below. Given their use during the day’s brief sunlit hours, this was not mysterious, though car headlights somewhere in view would have been more usual. The silence ate at her much more than the darkness and the cold. Thoughts echoed that didn’t feel like hers.
She was not precisely in her right mind, if one can ever be said to be. An unsettled mind is usually crosscrossed between past conditionals and possible futures, in Cantwell’s case none more than 48 hours in either direction, but hers was also occupied with several alternate presents where others had granted or withheld one thing or another.
Cantwell had a place and time to be, and was hating it as much as the remainder of the present void. The city could be any city of sufficient cachet to her; she didn’t speak the language and didn’t care to, for they spoke hers. Places were backdrops, set dressing. The bare black stage around her was growing intolerable. It was, in fact, the longest night of the year.
There was another, opposite her. A ghost.
Continue reading “A Christmas Ghost Story”A Morning, a Night
“Midnight Mass” on Netflix
Some of the monster elements are a bit conventional so far, but on the whole another horror triumph limited series from Mike Flanagan.
Leaf Motion
Hashtag Organized…

Solus: 2.5D Character Control & Footprints
The protagonist (we never came up with a name for her) moves along a 2D plane in a 3D environment, with generally realistic platforming movement inspired by Flashback: The Quest For Identity. The system uses the Unity physics engine, manually controlling the character’s momentum to create grabbing and climbing, and adds quadratic drag for “crunchier” falling per Bennet Foddy’s 2015 GDC lecture. I started by modifying an existing character control script, the final system ended up a complete rewrite.

Character interaction is controlled with Layers. If an object has a Collider and is in Layer “Walkable,” the protagonist can traverse it, including ledge grabbing when appropriate. Rope climbing is the same, only with Layer “ClimbableRope.” (Wall climbing was also implemented, but cut for time.)
Want to play with it? You can download the Unity package here. Feel free to use the controller scripts & prefab setup for whatever you’d like (but not Anastasia Jacobsen’s cute character model please!)
Footprints are based on the method used in Röki. At the animation frames of the walking and running cycles where the foot first makes contact with the ground, an animation event is called with a boolean indicating left or right foot. A Projector Prefab with a Normal Map Texture is then instantiated at the location of the foot’s Bone. The Prefab has its own script, which fades the Normal Map out over 10 seconds, and then self-deletes.
The Solus demo is available on to download and play on Itch.io (Mac & Windows).
Solus: Lighting Up the Desert
Anastasia Jacobsen’s concept for Solus is an attempt at a semi-hard-sci-fi take on Alex McDowell’s “Planet JUNK” collaboration. The Earth has somehow stopped rotating, creating a 6 month summer/winter cycle and migrating the oceans away from the equator.

In the demo, the player journeys down into the sand-buried remains of a skyscraper looking for water. For visual interest (and irony) I suggested the Futurist city of Brasilia which went over well with the team: Niek Meffert, Anastasia Jacobsen, Rosa Friholm, Ida Lilja, and myself. I was Technical Artist and Lighting Designer. (Solus was the first of two Planet JUNK collaborations. Many lessons learned were later applied to Shrooms.)
Solus uses Unity’s High Definition Rendering Pipeline (HDRI), allowing a wide variety of realistic volumetric effects—the simulation of light’s interaction with microscopic particles suspended in air, like smoke, water droplets and dust.
Topside, the lighting is very simple. There’s a Directional Light (sun) and not much else. Fill lighting is created by Global Illumination from the skybox. Blowing sand is created with the Unity VFX Graph. A number of post-processing effects are added, including Bloom, Tonemapping, Color Curve adjustments (for a more cinematic “desert” look) and a custom sparkle shader in the brightest areas. A faint volumetric Fog pervades the scene, to create a dusty atmosphere. Slightly behind the main plane of action, a second “thicker” Fog Volume is added, faded from bottom to top, to make the background distances appear greater and create a Bryce-like height fog effect.
The underground lighting is primarily driven by a Point Light attached to the character’s lantern. The Volumetric Fog is thicker, increasing with depth into the buried skyscraper. An extremely bright Spot Light shines in through the entrance, volumetric and colored bright blue to contrast with the warmer lantern light. A similar, very narrow bright blue Spot Light shines down from the top of the first elevator shaft, as if a tiny stab of sunlight were blazing in through a chink in the roof. Farther down, mushrooms glow with an eerie green Emissive Material, casting light onto their surroundings via covert green Area Lights.
The theatrical darkness demanded that a final Light be added, to only be activated while editing the scene—literally named “Work Light.”
The Solus demo is available on to download and play on Itch.io (Mac & Windows).



















