{
 "version": "https://jsonfeed.org/version/1.1",
 "title": "Fenyora blog",
 "home_page_url": "https://fenyora.com/",
 "feed_url": "https://fenyora.com/feed.json",
 "items": [
  {
   "id": "2026-09-13-sunlight-from-the-grid",
   "url": "https://fenyora.com/blog/2026-09-13-sunlight-from-the-grid/",
   "title": "Sunlight built from the grid",
   "summary": "Shadows, sky exposure, sun beams and a day cycle, all derived from the voxel data rather than a volumetric fog pass.",
   "date_published": "2026-09-13",
   "content_html": "<p>Standalone headsets do not get a volumetric fog pass, a depth read or a compositor stage in the budget I have. So instead of faking light rays with a post effect, I read them off the voxel grid, the same way meshes and collision come from it.</p>\n<h3>Four layers</h3>\n<ol>\n<li>Sun shadows. One directional light, crisp filtering to match the flat look, only the nearest opaque terrain casts. I had to raise the sun against ambient before shadows read at all; the old balance left shadowed ground nearly as bright as lit ground after tonemapping.</li>\n<li>Sky exposure. The mesher writes how open each corner is to the sky into the vertex colour. Under a roof, a canopy or a cave ceiling the ambient drops, while direct sun through a window stays bright. A hut floor is dark all the way to the door because merged quads never cross a cover boundary.</li>\n<li>Sun rays. The native core finds covered air cells whose line to the sun reaches open sky through an aperture: a window, a doorway, a skylight, a cave mouth. Adjacent openings merge into one rectangle before the beam is extruded along the sun, so a long window gives one clean shaft instead of a comb of thin ones.</li>\n<li>The day. Sun height, colour and the shafts move together over a day cycle, into a night with stable stars and fixture lights that cast their own shadows.</li>\n</ol>\n<h3>Why this matters for a building game</h3>\n<p>You will build with your hands, and light through the thing you built is half the reward. A window you cut yourself should throw a beam across the floor. Now it does, on the grid, at a cost I can afford on Quest 3.</p>\n<p>The shot above is from the teaser: those shafts on the ridge are the same beams, found where the sun reaches through a gap in the terrain. At night the same fixtures and fires light a room through their own shadows.</p>"
  },
  {
   "id": "2026-09-12-hostile-pursuit",
   "url": "https://fenyora.com/blog/2026-09-12-hostile-pursuit/",
   "title": "Hostiles that route around your walls",
   "summary": "Chasers now plan their routes on the live voxel grid, lead their target a little, and only shake you when a hit actually lands.",
   "date_published": "2026-09-12",
   "content_html": "<p>Until this week a hobgoblin chasing you through a meadow was mostly heading straight at you and hoping. Now ground chasers plan real routes through the terrain, sized for their own bodies, on the same native grid the world is built from. Wall yourself in and the route updates immediately. Knock a hole in your own wall and, yes, it finds the hole.</p>\n<h3>Keeping it cheap</h3>\n<p>The path searches share a small budget per server tick, two routes at a time with a node cap on each, and they cache waypoints between retries. Quest 3 has to hold 90 Hz with all of this running on the server side, so nothing here is allowed to spike.</p>\n<h3>Leading the target</h3>\n<p>Chasers anticipate where you are going for up to 0.6 seconds. The prediction caps how fast it thinks you can move, so a teleport or a burst of flight does not send a creature lunging at a point far from where you are. Normal walking and strafing get the lead they always did. Flanking, lunges and the per species attack patterns sit on top of this, unchanged.</p>\n<h3>Only real hits hit</h3>\n<p>Incoming damage now has one clear language: a directional edge on the side you were hit from, the sound and haptics you already knew, and a short impact pause. On desktop the camera kicks slightly. In the headset your view is never animated by a hit, because moving someone's head for them is the fastest way to make them take the headset off. Zero damage, for example a glancing blow on a shield, never triggers the feedback at all.</p>\n<p>Next on this front is giving each hostile a distinct commitment and dodge feel, so a cragjaw and a hexling do not read as the same chaser in a different coat.</p>"
  },
  {
   "id": "2026-09-11-the-whale-teaser",
   "url": "https://fenyora.com/blog/2026-09-11-the-whale-teaser/",
   "title": "Filming the whales",
   "summary": "How the 25 second ridge reveal at the top of this site was shot inside the game, and why nothing in it is faked.",
   "date_published": "2026-09-11",
   "content_html": "<p>The teaser you see looping at the top of the site is 22 seconds of a 25 second shot. I cut the first three seconds because they were the worst three seconds: a slow snowy approach before the ridge opens up. On X the full version is pinned, and the loop here starts where it gets good.</p>\n<p>Everything in it is the game. The terrain is generated from seed 824 on a dedicated save I keep for filming. The whale and her calf are the same driftwhale species you meet in play, following an authored path so the camera can find them. The glacier rays are the same sun shafts that light a hut window or a cave mouth, found by tracing from covered cells toward open sky.</p>\n<h3>What the filming preset changes</h3>\n<p>Filming asks more of the streamer than playing does, so the camera rig warms each position for 30 seconds and doubles the vista distance from 768 to 1536 metres. The frame renders at twice its width and height with 8x MSAA and is scaled down afterwards, which takes the moire out of the far terraces. None of that touches the saved gameplay settings; the headset build never sees it.</p>\n<h3>The rule about cameras</h3>\n<p>You may notice the camera never whips. My camera rules come from VR: in the headset the view is yours and I never move it for you. The desktop filming camera borrows the same manners, with cubic paths that keep velocity continuous between keys, so the reveal feels like drifting rather than being driven.</p>\n<p>The 80 second reel in the <a href=\"../../gallery/\">gallery</a> uses the same rig for five more shots, each on a different part of the world.</p>"
  }
 ]
}