<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>stafford williams</title>
    <description>asteroid-logistics dev</description>
    <link>https://staffordwilliams.com/dev/</link>
    <pubDate>Sun, 01 Nov 2026 10:13:19 GMT</pubDate>
    <lastBuildDate>Sun, 01 Nov 2026 10:13:19 GMT</lastBuildDate>
    <generator>Astro</generator>
    <item>
      <title>asteroid-logistics: Freighter countdowns, log indicator, per-building stories</title>
      <description>&lt;p&gt;Freighter polish and a log indicator, then a tidy-up of the Storybook building stories.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Per-spaceport freighter countdown timers&lt;/li&gt;&lt;li&gt;Freighter speed debug controls&lt;/li&gt;&lt;li&gt;Log count indicator in the top bar&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Storybook building showcase split into per-building stories&lt;/li&gt;&lt;li&gt;Single selection atom for all entities&lt;/li&gt;&lt;li&gt;Type-safe branded building IDs&lt;/li&gt;&lt;li&gt;Log buffer cleared on reload&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Freighters skipping their departure countdown&lt;/li&gt;&lt;li&gt;Log clear race condition&lt;/li&gt;&lt;li&gt;Spaceport click area&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2026-w10/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2026-w10/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: Game CLI, freighters and spaceports, ships modal, custom tweens</title>
      <description>&lt;p&gt;A CLI now lets me or an agent drive the running game from the terminal, and freighters started hauling cargo from new spaceports.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Spaceports spawning freighters with a behaviour state machine&lt;/li&gt;&lt;li&gt;Find button pans to a ship from the ships modal&lt;/li&gt;&lt;li&gt;Ship scuttle command&lt;/li&gt;&lt;li&gt;Traversable CLI query methods&lt;/li&gt;&lt;li&gt;&lt;code&gt;ShipOrbit&lt;/code&gt; tests&lt;/li&gt;&lt;li&gt;&lt;code&gt;asteroids&lt;/code&gt; CLI controlling the running game over HTTP&lt;/li&gt;&lt;li&gt;Ships modal and icon-based top bar&lt;/li&gt;&lt;li&gt;Production progress bar in the building HUD&lt;/li&gt;&lt;li&gt;Selecting a mine reveals its resource regions&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Custom tween engine replaces GSAP&lt;/li&gt;&lt;li&gt;CLI rewritten in TypeScript with Commander&lt;/li&gt;&lt;li&gt;CLI throws on silent no-ops&lt;/li&gt;&lt;li&gt;Building selection unified through &lt;code&gt;BuildingManager&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Auth errors and debug state saved&lt;/li&gt;&lt;li&gt;Ships persist across asteroid regeneration&lt;/li&gt;&lt;li&gt;Hotkeys blocked while typing in inputs&lt;/li&gt;&lt;li&gt;Save menu handles loading states&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Mine mask crash on load&lt;/li&gt;&lt;li&gt;Freighter HUD, landing, thrust and pathing bugs&lt;/li&gt;&lt;li&gt;localStorage quota overflow&lt;/li&gt;&lt;li&gt;PixiJS deprecation warnings&lt;/li&gt;&lt;li&gt;Ships orbiting a stale centre&lt;/li&gt;&lt;li&gt;Ramp-down animation killing landing thrust&lt;/li&gt;&lt;li&gt;Mine region artifact when regions were hidden&lt;/li&gt;&lt;li&gt;Menu close button hover shape&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2026-w09/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2026-w09/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: Save persistence, Firebase cloud saves, ship jobs, meat production</title>
      <description>&lt;p&gt;Games now save locally and to the cloud, ships can take delivery jobs, and new production chains arrived.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ship delivery jobs hauling resources between asteroids&lt;/li&gt;&lt;li&gt;Firebase auth and cloud saves&lt;/li&gt;&lt;li&gt;Curl-able world dump endpoint&lt;/li&gt;&lt;li&gt;HUD load progress&lt;/li&gt;&lt;li&gt;Game persistence across browser sessions&lt;/li&gt;&lt;li&gt;Chem lab and bioreactor buildings&lt;/li&gt;&lt;li&gt;Culture vat and slab cutter meat production&lt;/li&gt;&lt;li&gt;Active recipe shown in the building HUD&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;UI migrated to MUI with the Exo 2 font&lt;/li&gt;&lt;li&gt;Ship build button moved into the factory HUD&lt;/li&gt;&lt;li&gt;Dump output includes resource buffers and ship jobs&lt;/li&gt;&lt;li&gt;Proportional resource allocation between competing buildings&lt;/li&gt;&lt;li&gt;Mines rejected where they&apos;d pierce the asteroid edge&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Landing pad reservations and landed ships lost on reload&lt;/li&gt;&lt;li&gt;Buildings lost on cross-machine save and load&lt;/li&gt;&lt;li&gt;Thrust vanishing on return legs&lt;/li&gt;&lt;li&gt;Region labels misplaced on concave polygons&lt;/li&gt;&lt;li&gt;Ship selection on landing pads&lt;/li&gt;&lt;li&gt;Angled liftoff after reload&lt;/li&gt;&lt;li&gt;Incorrect mine resource percentages&lt;/li&gt;&lt;li&gt;Production and mine HUD regressions&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2026-w08/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2026-w08/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: ShipManager split up, simpler managers</title>
      <description>&lt;p&gt;A complexity-reduction pass across the game&apos;s managers, chiefly breaking up &lt;code&gt;ShipManager&lt;/code&gt;.&lt;/p&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ship landing, spawning and transitions extracted from &lt;code&gt;ShipManager&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Mouse, fog of war, building and asteroid managers simplified&lt;/li&gt;&lt;li&gt;Shared local-to-world coordinate transform&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2026-w07/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2026-w07/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: Grouped Game facade, BuildingManager, phantom ship fix</title>
      <description>&lt;p&gt;The state architecture refactor wrapped up with a grouped &lt;code&gt;Game&lt;/code&gt; facade, plus a couple of ship and habitat bug fixes.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Dump world data debug button&lt;/li&gt;&lt;li&gt;&lt;code&gt;ShipManager&lt;/code&gt; tests&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;Game&lt;/code&gt; slimmed to a thin grouped delegation layer&lt;/li&gt;&lt;li&gt;&lt;code&gt;BuildingManager&lt;/code&gt; extracted from game operations&lt;/li&gt;&lt;li&gt;&lt;code&gt;Game.ts&lt;/code&gt; facade with asteroid, building, ship and build mode groups&lt;/li&gt;&lt;li&gt;Migration planning docs removed, architecture doc updated&lt;/li&gt;&lt;li&gt;Simpler asteroid rendering and lifecycle management&lt;/li&gt;&lt;li&gt;Slower asteroid rotation&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Phantom ships from a reconcile race&lt;/li&gt;&lt;li&gt;Habitat basements piercing the asteroid boundary&lt;/li&gt;&lt;li&gt;FPS drop from rotation triggering re-renders&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2026-w06/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2026-w06/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: State migration to atoms, ship animations module, slimmer entities</title>
      <description>&lt;p&gt;Mostly refactoring: game state now flows to the React UI as plain serialized snapshots through atoms rather than live game objects.&lt;/p&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ship animations moved to a dedicated module&lt;/li&gt;&lt;li&gt;Animated drill depth transitions&lt;/li&gt;&lt;li&gt;Ship routing, probes and production moved into the facade&lt;/li&gt;&lt;li&gt;Entities slimmed down, driven by the operations layer&lt;/li&gt;&lt;li&gt;Asteroid and ship state data types replace inventories&lt;/li&gt;&lt;li&gt;Buildings serialize state snapshots for the UI&lt;/li&gt;&lt;li&gt;HUD reads game state through atoms&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2026-w03/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2026-w03/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: Production system, HUD split, GameOperations facade</title>
      <description>&lt;p&gt;Production buildings arrived, followed by a big architectural refactor that put a facade between the React UI and the game engine.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Unit tests for habitats and mines&lt;/li&gt;&lt;li&gt;Production recipes with progress bars&lt;/li&gt;&lt;li&gt;Algae tank, block former and centrifuge buildings&lt;/li&gt;&lt;li&gt;Per-building and per-asteroid inventories&lt;/li&gt;&lt;li&gt;Destroy button with confirmation modal&lt;/li&gt;&lt;li&gt;Asteroid debug pane with state dump&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;GameOperations&lt;/code&gt; facade between React and the game engine&lt;/li&gt;&lt;li&gt;Game code moved under &lt;code&gt;src/game/core/&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Old E2E tests and callback bridge removed&lt;/li&gt;&lt;li&gt;Vitest config merged into Vite config&lt;/li&gt;&lt;li&gt;HUD split into asteroid, building, ship and level components&lt;/li&gt;&lt;li&gt;Zoom-independent region labels&lt;/li&gt;&lt;li&gt;Translucent mine mask in region view&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Mine hole left behind after destroying a mine&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2026-w02/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2026-w02/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: Mines and Voronoi regions, probes, building selection, habitat controls</title>
      <description>&lt;p&gt;A busy holiday week adding mines, probes and drilling on top of Voronoi resource regions, with selectable, controllable buildings.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Habitat build up, build down and demolish controls&lt;/li&gt;&lt;li&gt;Toggleable landing pads&lt;/li&gt;&lt;li&gt;Toggleable FPS counter&lt;/li&gt;&lt;li&gt;Pointer glow and ships debug panes&lt;/li&gt;&lt;li&gt;Probe factories that launch probes to expand fog of war&lt;/li&gt;&lt;li&gt;Mine drill depth controls with extracted resource percentages&lt;/li&gt;&lt;li&gt;Building selection with details in the HUD&lt;/li&gt;&lt;li&gt;Mine buildings that reveal resource regions beneath them&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Circular asteroid field&lt;/li&gt;&lt;li&gt;Camera zoom-out limited to the revealed area&lt;/li&gt;&lt;li&gt;Shared button and menu styles&lt;/li&gt;&lt;li&gt;Shared selection behaviour across building types&lt;/li&gt;&lt;li&gt;Voronoi-based region generation&lt;/li&gt;&lt;li&gt;Borders hidden between same-resource regions&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Selection glow animation and click feedback&lt;/li&gt;&lt;li&gt;Asteroids disappearing on hover&lt;/li&gt;&lt;li&gt;Click targets across buildings and entities&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2025-w52/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2025-w52/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: Resource regions, Playwright screenshot test, auto-zoom on start</title>
      <description>&lt;p&gt;Groundwork for mineral discovery: resource regions generated across asteroid surfaces, plus visual regression testing.&lt;/p&gt;&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Resource types with two region generators&lt;/li&gt;&lt;li&gt;Resource regions overlay and debug panel&lt;/li&gt;&lt;li&gt;Playwright asteroid screenshot test&lt;/li&gt;&lt;li&gt;Auto-zoom to the first asteroid on startup&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;.nvmrc&lt;/code&gt; pins the Node version&lt;/li&gt;&lt;li&gt;&lt;code&gt;selectAsteroidByName&lt;/code&gt; moved to its own state module&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Build mode breaking after zoom-to-asteroid&lt;/li&gt;&lt;/ul&gt;</description>
      <pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2025-w51/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2025-w51/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: Building placement, ship factory</title>
      <description>&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-13&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-12-08&amp;quot;&amp;gt;Dec 8&amp;lt;/time&amp;gt; building placement &amp;lt;span&amp;gt;v0.13&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Set up VS Code launch configuration for debugging.&lt;/p&gt;&lt;p&gt;Zoom now centers on the current selection or cursor position rather than the viewport center - much more intuitive. Fixed selection box strokes to render correctly at all zoom levels.&lt;/p&gt;&lt;p&gt;The big feature was the building placement system! You can now place structures on asteroids.&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-14&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-12-09&amp;quot;&amp;gt;Dec 9&amp;lt;/time&amp;gt; ship factory &amp;lt;span&amp;gt;v0.14&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Added a README to the project. Set up the browser to open automatically on dev server launch.&lt;/p&gt;&lt;p&gt;Fixed ship visibility when fog is disabled and fixed fog resize when the window resizes. Added ship factory buildings with orbit exit debugging - buildings that produce new ships!&lt;/p&gt;&lt;p&gt;Improved the orbit system: buildings now show their exit points, ship orbits update when clearance changes, and the orbit entry calculation is shared for pad takeoff. Tuned thrust behavior - reduced thrust during liftoff rotation and added thrust ramp-down on orbit entry.&lt;/p&gt;&lt;p&gt;Fixed a janky issue with multi-ship transitions. Split WorldDebug into separate panels for better organization. The ship factory now has a proper build queue system, and ships reinitialize correctly when asteroids regenerate.&lt;/p&gt;</description>
      <pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2025-w50/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2025-w50/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: Multi-selection, landing pads, fog of war and HUD</title>
      <description>&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-6&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-12-01&amp;quot;&amp;gt;Dec 1&amp;lt;/time&amp;gt; cleanup &amp;lt;span&amp;gt;v0.6&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Cleanup day. Removed the refactor checks that were getting in the way, deleted old unused scripts, and reorganized the debug systems. Moved PathDebug into a dedicated path directory and WorldDebug into a world directory.&lt;/p&gt;&lt;p&gt;Cleaned up dependencies and quieted down the test output. Much tidier codebase now.&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-7&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-12-02&amp;quot;&amp;gt;Dec 2&amp;lt;/time&amp;gt; architecture improvements &amp;lt;span&amp;gt;v0.7&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Added style linter rules to Biome for consistent code formatting. Refactored the pathfinding code into proper modules and renamed files to match their export names.&lt;/p&gt;&lt;p&gt;The big user-facing feature today was ship selection and click-to-navigate. You can now click a ship to select it, then click on another asteroid to send it there. Also made it so each asteroid spawns with its own ship.&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-8&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-12-03&amp;quot;&amp;gt;Dec 3&amp;lt;/time&amp;gt; MouseManager and multi-selection &amp;lt;span&amp;gt;v0.8&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Created a &lt;code&gt;MouseManager&lt;/code&gt; to centralize all mouse handling - selection, panning, zooming, and clicking are now in one place. Moved path interaction into it as well. Right-click on an asteroid now moves selected ships there.&lt;/p&gt;&lt;p&gt;Did a bunch of renaming for clarity: &lt;code&gt;SavedPairsManager&lt;/code&gt; became &lt;code&gt;SavedRoutes&lt;/code&gt;, &lt;code&gt;GameViewport&lt;/code&gt; became &lt;code&gt;GameManager&lt;/code&gt;. Replaced all hardcoded colors with the open-color palette for consistency.&lt;/p&gt;&lt;p&gt;Fixed several bugs: multi-ship movement on right-click, ship snap-back at end of path, and clamped zoom/pan to world bounds so you can&apos;t scroll into the void.&lt;/p&gt;&lt;p&gt;Refactored Asteroid into its own directory, extracted path animation and geometry helpers, and added jscpd for detecting duplicate code. Made ship pathfinding async with a cached graph for better performance.&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-9&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-12-04&amp;quot;&amp;gt;Dec 4&amp;lt;/time&amp;gt; selection fix &amp;lt;span&amp;gt;v0.9&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Fixed ship click behavior - clicking a ship now properly deselects others instead of adding to the selection.&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-10&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-12-05&amp;quot;&amp;gt;Dec 5&amp;lt;/time&amp;gt; CI/CD and landing pads &amp;lt;span&amp;gt;v0.10&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Cleaned up unused methods and tweaked member accessibility modifiers in the code. Set up Netlify for CI/CD deployment - the game is now live on the web!&lt;/p&gt;&lt;p&gt;The main feature was the ship landing pad system. Ships now have designated spots to land on asteroids, with proper entry point calculations for approach. This makes the docking feel much more intentional.&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-11&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-12-06&amp;quot;&amp;gt;Dec 6&amp;lt;/time&amp;gt; controls and visual polish &amp;lt;span&amp;gt;v0.11&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Added full keyboard support - arrow keys and WASD for panning, Q/E for zooming.&lt;/p&gt;&lt;p&gt;Visual improvements were the star of the show today. Added a parallax starfield with subtle glow effects in the background - really sells the space vibe. Added hover glow for selectable items so it&apos;s clear what you can interact with.&lt;/p&gt;&lt;p&gt;Ships got a lot of love: they now rotate toward their target on liftoff, have thrust particle effects during flight, ramp down thrust when arriving at orbit, and the orbit-to-path transition is smoother. Also optimized the orbit path to landing pad routing.&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-12&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-12-07&amp;quot;&amp;gt;Dec 7&amp;lt;/time&amp;gt; fog of war and HUD &amp;lt;span&amp;gt;v0.12&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Implemented fog of war! Used a smoke effect with soft noisy edges that looks great. Added a debug tool for revealing fog and an animation that reveals from the edges. The fog panel has a reset button for testing.&lt;/p&gt;&lt;p&gt;Added a HUD system using Jotai for state management. Asteroids now display their names, and selected ships show in the HUD. Fixed ship selection stroke rendering gaps and clamped keyboard zoom to stay within limits.&lt;/p&gt;&lt;p&gt;Did some deployment fixes - trailing slash redirects, renamed the page title, and switched to relative base paths for assets.&lt;/p&gt;</description>
      <pubDate>Sun, 07 Dec 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2025-w49/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2025-w49/</guid>
      <category>asteroid-logistics</category>
    </item>
    <item>
      <title>asteroid-logistics: Project genesis, stations, orbits and pathfinding</title>
      <description>&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-1&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-11-24&amp;quot;&amp;gt;Nov 24&amp;lt;/time&amp;gt; project genesis &amp;lt;span&amp;gt;v0.1&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Today I kicked off the Asteroid Logistics project. Started with the basic scaffolding - got the initial project structure in place, added a viewport system for handling the game canvas, and integrated Tweakpane for debugging controls.&lt;/p&gt;&lt;p&gt;The main focus was getting asteroids rendering properly. I implemented the core asteroid entity with configurable radius and rotation. Added interactivity so you can click on them, and then expanded to support multiple asteroids in the world. Feels good to have something tangible on screen already!&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-2&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-11-25&amp;quot;&amp;gt;Nov 25&amp;lt;/time&amp;gt; zoom fix &amp;lt;span&amp;gt;v0.2&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Quick fix today - the zoom functionality was broken and needed some attention. Not glamorous work but necessary.&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-3&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-11-26&amp;quot;&amp;gt;Nov 26&amp;lt;/time&amp;gt; stations and orbits &amp;lt;span&amp;gt;v0.3&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Big day! I added landing stations on asteroids and implemented an orbit system so objects can circle around asteroids. This is the foundation for how ships will approach and dock.&lt;/p&gt;&lt;p&gt;Also set up the verify script for code quality checks and added the first ship entity. Left things in a work-in-progress state with some rough edges to polish later.&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-4&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-11-29&amp;quot;&amp;gt;Nov 29&amp;lt;/time&amp;gt; pathfinding deep dive &amp;lt;span&amp;gt;v0.4&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Massive session today. Fixed a blank screen bug that was preventing asteroids from generating on init, then dove deep into the pathfinding system.&lt;/p&gt;&lt;p&gt;Added debug visualization for paths which was essential for debugging. The path finding went through several iterations - fixed external tangent line calculations, corrected arc directions, improved the algorithm with proper tangent points. I extracted a dedicated &lt;code&gt;tangentPathFinder&lt;/code&gt; module to keep things clean.&lt;/p&gt;&lt;p&gt;Also added persistence for debug pane values (finally!), set up a commit message validation script, and created slash commands for the dev workflow. Added test cases for the pathfinding edge cases I discovered.&lt;/p&gt;&lt;p&gt;Ships can now transition between asteroids which is a huge milestone!&lt;/p&gt;&lt;p&gt;&amp;lt;h2 id=&amp;quot;v0-5&amp;quot;&amp;gt;&amp;lt;time datetime=&amp;quot;2025-11-30&amp;quot;&amp;gt;Nov 30&amp;lt;/time&amp;gt; arc tangent pathfinding &amp;lt;span&amp;gt;v0.5&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;&lt;p&gt;Continued the pathfinding work. Implemented &lt;code&gt;arcTangentPathFinder&lt;/code&gt; for smoother curved paths. Added persistence for path debug points and save/restore functionality for debug pairs.&lt;/p&gt;&lt;p&gt;The big improvements were internal tangents support, precomputing the tangent graph for performance, and making pathfinding async so it doesn&apos;t block the main thread.&lt;/p&gt;&lt;p&gt;Simplified the orbit system by replacing elliptical orbits with circular ones - less realistic but much easier to reason about for pathfinding. Removed the Dubins path approach in favor of the arc tangent system.&lt;/p&gt;&lt;p&gt;Added ship transitions between asteroids with GSAP easing for smooth animations. The transition now has a pre-tween to the path start, smooth orbit-to-path transitions, and ships can be interrupted mid-flight. Also added a station visibility toggle for debugging.&lt;/p&gt;</description>
      <pubDate>Sun, 30 Nov 2025 00:00:00 GMT</pubDate>
      <link>https://staffordwilliams.com/dev/asteroid-logistics/2025-w48/</link>
      <guid isPermaLink="true">https://staffordwilliams.com/dev/asteroid-logistics/2025-w48/</guid>
      <category>asteroid-logistics</category>
    </item>
  </channel>
</rss>
