<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Engineering on Coyote Time</title>
    <link>https://blog.jonmikeys.com/categories/engineering/</link>
    <description>Recent content in Engineering on Coyote Time</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 17 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.jonmikeys.com/categories/engineering/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Octrees for Faster 3D Pathfinding</title>
      <link>https://blog.jonmikeys.com/posts/octrees-for-faster-3d-pathfinding/</link>
      <pubDate>Thu, 17 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/octrees-for-faster-3d-pathfinding/</guid>
      <description>Build a smaller 3D navigation graph by giving open space large octree cells and reserving fine detail for obstacles, then run A* over the free leaves.</description>
    </item>
    <item>
      <title>Unity CullingGroup: Stop Updating What the Player Cannot Notice</title>
      <link>https://blog.jonmikeys.com/posts/cullinggroup-for-smarter-object-management/</link>
      <pubDate>Sun, 13 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/cullinggroup-for-smarter-object-management/</guid>
      <description>Use Unity&amp;rsquo;s CullingGroup API to turn camera visibility and distance bands into practical simulation budgets for crowds, effects, spawn points, and world objects.</description>
    </item>
    <item>
      <title>R3 and Reactive Programming in Unity: Use Streams Where Events Start to Fray</title>
      <link>https://blog.jonmikeys.com/posts/r3-reactive-programming-in-unity/</link>
      <pubDate>Fri, 28 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/r3-reactive-programming-in-unity/</guid>
      <description>A practical look at using R3-style reactive streams in Unity without turning every button click, timer, and gameplay signal into architecture theater.</description>
    </item>
    <item>
      <title>Unity CLI and GitHub Actions: Run Edit Mode Tests on Every Push</title>
      <link>https://blog.jonmikeys.com/posts/unity-cli-github-actions-edit-mode-tests/</link>
      <pubDate>Sun, 23 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/unity-cli-github-actions-edit-mode-tests/</guid>
      <description>A practical Unity CI starter: install the Unity CLI, add a tiny Edit Mode smoke test, run it locally, then wire the same command into GitHub Actions.</description>
    </item>
    <item>
      <title>Memory Arenas in Game Code: Fast Scratch Space, Not a General Allocation Strategy</title>
      <link>https://blog.jonmikeys.com/posts/memory-arenas-in-game-code/</link>
      <pubDate>Tue, 18 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/memory-arenas-in-game-code/</guid>
      <description>How I use arena allocators for frame-local scratch data, why they beat per-object frees, and why they are not a replacement for pooling or the GC.</description>
    </item>
    <item>
      <title>API Programming Through HTTP: The Rules I Lean on in Game Code</title>
      <link>https://blog.jonmikeys.com/posts/api-programming-through-http/</link>
      <pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/api-programming-through-http/</guid>
      <description>A practical guide to calling HTTP APIs from game code without making retries, auth, or failure handling a mess.</description>
    </item>
    <item>
      <title>Zero-Allocation LINQ in Unity: Keep the Query Style, Lose the Garbage</title>
      <link>https://blog.jonmikeys.com/posts/zero-allocation-linq-in-unity/</link>
      <pubDate>Mon, 10 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/zero-allocation-linq-in-unity/</guid>
      <description>A practical look at LINQ in Unity, where the allocations come from, and when a zero-allocation alternative like ZLinq is worth using.</description>
    </item>
    <item>
      <title>Native Collections and Burst for GC-Heavy Projects</title>
      <link>https://blog.jonmikeys.com/posts/native-collections-and-burst-for-gc-heavy-projects/</link>
      <pubDate>Thu, 06 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/native-collections-and-burst-for-gc-heavy-projects/</guid>
      <description>A practical way to move hot data off the managed heap with NativeArray, NativeList, jobs, and Burst without turning the project into DOTS cosplay.</description>
    </item>
    <item>
      <title>Event Buses in Unity Architecture: Keep Systems Talking Without Tight Coupling</title>
      <link>https://blog.jonmikeys.com/posts/event-buses-in-unity-architecture/</link>
      <pubDate>Sun, 02 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/event-buses-in-unity-architecture/</guid>
      <description>A practical way to use event buses in Unity without turning them into hidden global state, leaky subscriptions, or another way to avoid design decisions.</description>
    </item>
    <item>
      <title>Hierarchical State Machines in Unity: Keep the Top Level Boring</title>
      <link>https://blog.jonmikeys.com/posts/hierarchical-state-machines-in-unity/</link>
      <pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/hierarchical-state-machines-in-unity/</guid>
      <description>A practical way to keep Unity state machines readable when several states share the same rules.</description>
    </item>
    <item>
      <title>Raycasting: How Wolfenstein 3D Fakes 3D With 2D Math</title>
      <link>https://blog.jonmikeys.com/posts/raycasting/</link>
      <pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/raycasting/</guid>
      <description>A practical rewrite of Lode&amp;rsquo;s raycasting tutorial, with the same core ideas and images explained in cleaner prose.</description>
    </item>
    <item>
      <title>Cancellation Tokens in Unity: Stopping Async Work Before It Outlives the Scene</title>
      <link>https://blog.jonmikeys.com/posts/cancellation-tokens-in-unity/</link>
      <pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/cancellation-tokens-in-unity/</guid>
      <description>A practical follow-up to async in Unity: how cancellation tokens keep loading flows, delays, and background work from hanging around after the object is gone.</description>
    </item>
    <item>
      <title>Mirror Multiplayer, Part 1: Authority First, RPCs Second</title>
      <link>https://blog.jonmikeys.com/posts/mirror-multiplayer-part-1-authority-first-rpcs-second/</link>
      <pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/mirror-multiplayer-part-1-authority-first-rpcs-second/</guid>
      <description>A practical way to structure Mirror games so the server owns the rules, clients send intent, and state sync stays boring.</description>
    </item>
    <item>
      <title>Async in Unity with UniTask: Waiting Without Turning the Main Thread into a Junk Drawer</title>
      <link>https://blog.jonmikeys.com/posts/async-in-unity-with-unitask/</link>
      <pubDate>Fri, 17 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/async-in-unity-with-unitask/</guid>
      <description>A practical way to use async and await in Unity without falling back to callback soup, extra GC churn, or tangled loading code.</description>
    </item>
    <item>
      <title>Benchmarking C# in Unity Without Lying to Yourself</title>
      <link>https://blog.jonmikeys.com/posts/benchmarking-csharp-in-unity/</link>
      <pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/benchmarking-csharp-in-unity/</guid>
      <description>A practical way to benchmark Unity C# code without confusing profiling, frame time, and microbenchmarks.</description>
    </item>
    <item>
      <title>Building Game UI Systems That Stay Modular</title>
      <link>https://blog.jonmikeys.com/posts/modular-game-ui-systems/</link>
      <pubDate>Thu, 09 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/modular-game-ui-systems/</guid>
      <description>A practical UI structure for games: keep screens, views, and game logic separate so menus do not turn into a knot.</description>
    </item>
    <item>
      <title>Code Smells and How to Fix &#39;Em</title>
      <link>https://blog.jonmikeys.com/posts/code-smells-and-how-to-fix-em/</link>
      <pubDate>Mon, 06 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/code-smells-and-how-to-fix-em/</guid>
      <description>A practical look at common code smells and the small changes that keep game code easier to read and maintain.</description>
    </item>
    <item>
      <title>Dependency Injection in Unity: Stop Letting Objects Hunt for Their Own Tools</title>
      <link>https://blog.jonmikeys.com/posts/dependency-injection-in-unity/</link>
      <pubDate>Sun, 05 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/dependency-injection-in-unity/</guid>
      <description>A practical way to make game code easier to test, refactor, and reason about.</description>
    </item>
    <item>
      <title>Using the Observer Pattern in Games</title>
      <link>https://blog.jonmikeys.com/posts/observer-pattern-in-games/</link>
      <pubDate>Sun, 05 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.jonmikeys.com/posts/observer-pattern-in-games/</guid>
      <description>A practical look at the observer pattern, event buses, and why game objects should communicate without dragging the whole scene graph into the conversation.</description>
    </item>
  </channel>
</rss>
