Astra floating in the warm light of the opening cave, smiling straight at the camera
Astra, the first face you meet in Luminids. It took me far too long to look at it properly.

I’d convinced myself the opening of Luminids was basically finished.

Then I recorded it and watched it back like a new player.

Astra hatched with an expression that looked strangely smug. Her mouth sometimes didn’t move when she spoke. The camera missed most of her first reaction. And the big magical exit into the meadow looked like a teal rectangle stuck in a hole.

None of these were enormous bugs. Together they made the first two minutes feel much cheaper than the game around them.

So I rebuilt the opening. It shipped in September, and everything below is in the build now.

If you haven’t seen it: you wake in a dark cave, where an egg with a light pulsing inside it sits by a dead fire. Go near and the shell cracks, and Astra rises out and looks at you. Then she leads you through the cave to the portal that takes you out into the world. I built all of that before most of the island existed and hadn’t been back to it in months.

Astra’s face. In the first few seconds after she hatched, Astra’s eyes looked like two expressions stacked on top of each other: half-closed lids with the irises still showing underneath, plus a smile. It made her look sly, which is an odd look for someone who has only just been born. I took a still of it, wrote it down, and then spent two cycles explaining it to myself from the code. A blink overlapping another blink, maybe, or a mood stuck at partial weight, or a race in the rebind. Every explanation was plausible, and every one was wrong or only half right. I only know that because I stopped explaining and instrumented the hatch instead. Every frame of it now logs the face’s shape values, who is writing them, whether the face is being updated at all, and what the controller thinks the face should be.

One instrumented run found both causes.

The first was a bad baseline. When her face is bound at the hatch, the controller reads the mesh’s current lid position and treats that as “open”. But the hatch closes her eyes for the rise, and the bind was happening three frames into that close, so her open eye got recorded as a lid nearly half shut. Every blink and every return to rest went back to that half-closed lid, and when she smiled, the lid sat beneath the smile’s crescents with the irises showing through.

The second was that her face wasn’t updating at all. To save work across a colony of two hundred, a luminid’s face only updates when a point above its head is inside the camera’s view. During the hatch the camera is pushed in on the egg and she rises to meet it, so that point left the frame while she was the only thing on screen. Her smile was armed but never applied, and her mouth didn’t move when she spoke.

Both fixes are small. A lid’s baseline is now always zero, and a body within arm’s reach of the camera always counts as in view.

The camera was in the wrong place. With the values fixed, she still looked wrong in the recording. The cutscene pushed in on the shell and then went back to wherever you’d been looking, so she rose right past the view. Her first look, the blink and the smile all played off screen. All that stayed in frame was her chin from below, and from down there the closed-eye shape looks like half-lids with irises underneath. Same face, wrong angle. The camera now stays on her the whole time she settles, and when you get control back you’re already looking at her. It sounds like a small thing, but it’s the difference between a creature meeting your eye and one you have to go and find.

I also took out something I’d added myself: a “newborn breath” that pumped her hover into the body’s squash spring and turned her into flubber for the first few seconds. The rig’s own float carries her out of the shell now. The body animations already knew how to do this. I’d just been getting in their way.

The teal rectangle. Over one long night, the way out of the cave went through four versions: a swirling orange oval that looked like the Eye of Sauron, a flat teal rectangle, a flat teal rectangle inside a hole in the rock, and a flat teal rectangle with a voxel inlay around it that looked like a prototype. I filmed every one, and each was worse in a new way. What I wanted was obvious once I said it out loud: a square gate, framed in stone, with the meadow visible through it. The first thing you see of the world should be the world itself, through a doorway, with the light coming in.

The cave doorway seen from down the corridor, with the dawn meadow bright inside the stone arch
From the far end of the corridor. The door is now the brightest thing in the cave.

Three things got it there.

The first was the portal effect we license, which has a mode built for exactly this. It marks the inside of the gate in the stencil buffer, and anything told to draw only where that mark is shows through the gate and nowhere else. So the meadow on the other side is a sky dome carrying a panorama captured from the arrival point, drawn only through the gate, with depth ignored so the cave rock behind the gate can’t hide it. Because the dome is real geometry standing beyond the doorway, the view through the gate shifts as you move. It parallaxes, the way a real opening would.

The second was letting the effect be itself. The swirling energy is the pack’s own, forked by one line so its middle clears and its rim stays.

The third was the frame, and that was already in the game. Out in the world, portals are dressed with an ancient voxel arch we brought in with the temple assets months ago, and the camp you arrive at has one around its own gateway. The cave’s exit is now that same arch, standing proud of the rock, with an opening a little smaller than the gate so the stone hides the gate’s edges from every angle. You leave the cave through the same kind of door you’ll meet again later.

Close on the gate, with grass, water and the dawn sun seen through the stone opening
Through the gate. The sun glows rather than blowing out, and the energy holds the edge without covering the meadow.

One minute, not five. The door took a whole night because every look at it meant a five-minute film of the entire route. Eventually I stopped and built a lab: the same rig, the portal forced open in the first beat, four fixed cameras on the doorway, and a result one minute after boot. Nine labs later the gate was done, and I have no excuse for not building the lab first. If something needs looking at more than twice, it’s worth making it cheap to look at.

The ancient voxel arch seen from the side, with the stone reveal and the gate's light falling on the cave floor
From the side. The arch stands proud of the rock, so it looks built rather than painted on.

Astra goes first. The crossing itself is a swell of light as you reach the gate, a rush into the dawn, and a warm veil that lifts on the meadow. What was missing was Astra. She’d lead you all the way through the cave, then hover beside the door while you walked through it alone. Now, the moment you commit to the gate, she goes first. She flies fast from wherever she’s waiting into the middle of the gate, her light fading as she reaches it, and she’s gone into the energy before your own rush finishes. On the other side, the Astra who lives out in the world is waiting at the arrival gate to greet you. I really like this bit.

The chest and the pool. Two smaller things from the same pass. The old supply cache is now a proper item-get ceremony, in the spirit of the games a lot of us grew up on. The lid creaks, there’s a flare and a column of light, the prize rises in a burst of stars, a fanfare of harp and bells plays, a notification names what you found, and only then do you get your hands back. It works on any ceremony chest in the game, sanctuaries included. And the little fish in the grotto pool used to move as one rigid formation, because they all shared a heading. Now each one swims its own small loop, at its own pace, facing the way it’s going.

An open wooden chest with a lantern rising out of it in a column of light and stars
The first chest now gives the lantern a proper little item reveal. Completely unnecessary, technically. Much better.

What I keep relearning. Twice in one week I wrote down a cause I was sure of, and twice a recording proved me wrong before I’d acted on it: once about Astra’s face, and once about a swirl I thought was the camp’s gateway opening in the player’s face. It was the warm veil from our own crossing. Both times I’d have saved myself the trouble by looking sooner: at the thing itself, from the angle the player sees it, with a loop cheap enough that looking is never the expensive part.

The earlier version of the gate: a flat teal rectangle set into a cut in the rock, with Astra hovering beside it
For honesty's sake, here's the door a few hours earlier: a flat teal rectangle in a cut in the rock. Nobody would walk through that.

Nick