<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Vav Labs Blog</title><description>Technical notes from Vav Labs on Unity, Godot, rendering, product engineering, and maintaining long-lived software.</description><link>https://vav-labs.com/</link><language>en-us</language><item><title>RTS Crowd Movement in Godot: From Right-Click to Arrival</title><link>https://vav-labs.com/blog/rts-crowd-movement-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/rts-crowd-movement-in-godot/</guid><description>Build a Godot RTS move order with reachable destination slots, shared claims, partial allocation, and honest arrival states. Includes a tested 2D demo.</description><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>How to Pathfind in an Infinite World in Godot</title><link>https://vav-labs.com/blog/infinite-world-pathfinding-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/infinite-world-pathfinding-in-godot/</guid><description>Plan paths through unloaded Godot terrain with bounded implicit A*, explicit overlay state, and a measured GDScript demo.</description><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Water Depth Maps and Bathymetry in Godot 2D</title><link>https://vav-labs.com/blog/godot-2d-water-depth-maps-and-bathymetry/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-2d-water-depth-maps-and-bathymetry/</guid><description>Build a shared water depth map in Godot 4 for top-down 2D swimming and boat clearance. Includes an MIT example project and CPU/GPU checks.</description><pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate><category>Godot water</category></item><item><title>NavigationServer3D in Godot 4: Path Queries, Map Sync, and Debugging</title><link>https://vav-labs.com/blog/navigationserver3d-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/navigationserver3d-in-godot/</guid><description>Use NavigationServer3D directly in Godot 4. Query a map RID, wait for synchronization, diagnose short paths, and inspect query metadata.</description><pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>TileMapLayer Custom Data for Movement Costs in Godot</title><link>https://vav-labs.com/blog/tilemaplayer-custom-data-for-movement-costs-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/tilemaplayer-custom-data-for-movement-costs-in-godot/</guid><description>Store terrain costs in TileSet custom data, validate missing values, and import safe movement weights from TileMapLayer into AStarGrid2D.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Smooth Grid Paths in Godot: Post-Smoothing vs Theta*</title><link>https://vav-labs.com/blog/smooth-grid-paths-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/smooth-grid-paths-in-godot/</guid><description>Godot grid paths can zigzag through open space. See when Theta* is the right fix, how it differs from smoothing, and what line of sight must prove.</description><pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Large Map Pathfinding in Godot</title><link>https://vav-labs.com/blog/large-map-pathfinding-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/large-map-pathfinding-in-godot/</guid><description>Scale Godot pathfinding across large maps with region filters, bounded queries, revision-safe caches, and a measured HPA* hierarchy.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Tuning RVO Avoidance in Godot: Radius, Neighbors, and Time Horizons</title><link>https://vav-labs.com/blog/tuning-rvo-avoidance-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/tuning-rvo-avoidance-in-godot/</guid><description>Tune Godot RVO avoidance by matching radius, neighbor distance, neighbor caps, and time horizons to your agents, then verify desired and safe velocity.</description><pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Formation Movement in Godot: Stable Slots, Release, and Reformation</title><link>https://vav-labs.com/blog/formation-movement-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/formation-movement-in-godot/</guid><description>Build formation movement in Godot with a virtual anchor, stable unit-to-slot assignment, checked destinations, and deliberate release and reformation.</description><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Godot Reachability Rules: Validate a World Change Before It Traps the Player</title><link>https://vav-labs.com/blog/godot-reachability-rules-anti-softlock/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-reachability-rules-anti-softlock/</guid><description>Build Godot reachability rules that catch navigation softlocks across doors, bridges, actor profiles, quest phases, and saved games.</description><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>How to Make an Energy Shield in Godot 4</title><link>https://vav-labs.com/blog/how-to-make-energy-shield-godot-4/</link><guid isPermaLink="true">https://vav-labs.com/blog/how-to-make-energy-shield-godot-4/</guid><description>Build a reactive energy shield in Godot 4 with a holographic shader, local-space impacts, multiple hits, sustained beams, particles, and positional audio.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate><category>Godot VFX</category></item><item><title>Godot Hit Effect Not Following the Node? Fix Five VFX Drift Bugs</title><link>https://vav-labs.com/blog/godot-hit-effect-not-following-node/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-hit-effect-not-following-node/</guid><description>Fix Godot hit effects that stay behind, slide across a mesh, stretch under scale, trail the wrong way, or jitter after the receiving Node3D moves.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate><category>Godot VFX</category></item><item><title>Local Space vs World Space Effects in Godot 4</title><link>https://vav-labs.com/blog/local-space-vs-world-space-effects-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/local-space-vs-world-space-effects-godot/</guid><description>Learn when Godot VFX should follow a node or remain in the world, how to convert hit positions safely, and why shield ripples, particles, and trails drift.</description><pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate><category>Godot VFX</category></item><item><title>2D Pathfinding in Godot 4: Grid, Graph, or Navmesh?</title><link>https://vav-labs.com/blog/2d-pathfinding-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/2d-pathfinding-in-godot/</guid><description>Choose and set up 2D pathfinding in Godot 4 with AStarGrid2D, AStar2D, or NavigationServer2D, using verified grid, graph, and navmesh examples.</description><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>3D Pathfinding in Godot 4: Navmesh, Agents, and When You Need A*</title><link>https://vav-labs.com/blog/3d-pathfinding-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/3d-pathfinding-in-godot/</guid><description>Set up 3D pathfinding in Godot 4 with NavigationRegion3D, NavigationAgent3D, click-to-move, navmesh baking, and the AStar3D decision.</description><pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Pac-Man-Style Ghost AI in Godot: Build the Full Maze Chase</title><link>https://vav-labs.com/blog/pac-man-style-maze-chase-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/pac-man-style-maze-chase-in-godot/</guid><description>Build a Pac-Man-style maze chase in Godot with TileMapLayer, buffered grid movement, shared Dijkstra fields, ghost modes, tunnels, and reservations.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>A* Pathfinding in Godot and Unity: Free Starter Projects</title><link>https://vav-labs.com/blog/a-star-pathfinding-in-godot-and-unity/</link><guid isPermaLink="true">https://vav-labs.com/blog/a-star-pathfinding-in-godot-and-unity/</guid><description>Download MIT-licensed A* grid pathfinding projects for Godot GDScript, Godot C#, and Unity C#, with authored scenes and verified source.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><category>Game pathfinding</category></item><item><title>Why NavigationAgent2D Lags With Hundreds of Units</title><link>https://vav-labs.com/blog/why-navigationagent2d-lags-with-hundreds-of-units/</link><guid isPermaLink="true">https://vav-labs.com/blog/why-navigationagent2d-lags-with-hundreds-of-units/</guid><description>Hundreds of NavigationAgent2D units lag Godot through same-tick request bursts, per-frame target resets, and path_max_distance repath storms. Fix each.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Weighted Terrain Pathfinding in Godot</title><link>https://vav-labs.com/blog/weighted-terrain-pathfinding-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/weighted-terrain-pathfinding-in-godot/</guid><description>Make AStarGrid2D prefer roads over mud and swamp with verified terrain weights, correct route-cost math, safe heuristics, and per-unit profiles.</description><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Runtime AStarGrid2D Updates Without Full Rebuilds</title><link>https://vav-labs.com/blog/runtime-astargrid2d-updates-without-full-rebuilds/</link><guid isPermaLink="true">https://vav-labs.com/blog/runtime-astargrid2d-updates-without-full-rebuilds/</guid><description>Update doors, blockers, and terrain costs in AStarGrid2D without rebuilding the grid. Learn when update() is required and how to replay point data.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Fire Emblem, Into the Breach and XCOM Movement in Godot</title><link>https://vav-labs.com/blog/fire-emblem-into-the-breach-and-xcom-movement-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/fire-emblem-into-the-breach-and-xcom-movement-in-godot/</guid><description>Fire Emblem terrain profiles, Into the Breach&apos;s telegraphed intents, and XCOM 2&apos;s action bands — three movement contracts mapped to verified Godot systems.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Turn order and movement planning in Godot</title><link>https://vav-labs.com/blog/turn-order-and-movement-planning-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/turn-order-and-movement-planning-in-godot/</guid><description>Build deterministic tactical turns in Godot with explicit phases, movement intents, initiative tie-breakers, conflict resolution, and safe state commits.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Action points and terrain costs in Godot</title><link>https://vav-labs.com/blog/action-points-and-terrain-costs-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/action-points-and-terrain-costs-in-godot/</guid><description>Build Godot tactical movement where terrain entry costs consume action points, previews stay pure, confirms validate first, and undo restores state.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Rectangular and Circular Agent Clearance in Godot</title><link>https://vav-labs.com/blog/rectangular-and-circular-agent-clearance-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/rectangular-and-circular-agent-clearance-in-godot/</guid><description>Handle rectangular and circular agents on Godot grids with footprint masks, summed-area tables, radius fields, and explicit rotation rules.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Annotated A* for Multi-Size Agents in Godot</title><link>https://vav-labs.com/blog/annotated-astar-for-multi-size-agents-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/annotated-astar-for-multi-size-agents-in-godot/</guid><description>Use one clearance map inside A* to pathfind for 1x1, 2x2, and larger square agents in Godot without rebuilding the grid for every size.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>How to Move Multi-Tile Units on a Grid in Godot</title><link>https://vav-labs.com/blog/move-multi-tile-units-on-a-grid-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/move-multi-tile-units-on-a-grid-in-godot/</guid><description>Move 2x2 and larger units on a Godot grid: anchor conventions, the map_to_local half-cell trap, touched-cell checks, rotation, and ownership.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>How to Prevent Two Units From Moving to the Same Tile in Godot</title><link>https://vav-labs.com/blog/prevent-two-units-moving-to-same-tile-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/prevent-two-units-moving-to-same-tile-in-godot/</guid><description>Prevent two Godot units from claiming one tile with a small reservation table: pure previews, atomic confirms, deterministic conflicts, and reversible undo.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Godot No-Path Reports: Turn an Empty Path Into a Diagnosis</title><link>https://vav-labs.com/blog/why-no-path-reports-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/why-no-path-reports-in-godot/</guid><description>Turn an empty Godot path into a useful no-path report: system, query, reason code, evidence, next check, and copyable output.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Building a navigation debug panel in Godot</title><link>https://vav-labs.com/blog/building-a-navigation-debug-panel-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/building-a-navigation-debug-panel-in-godot/</guid><description>Build a runtime navigation debug panel in Godot 4: built-in debug toggles, NavigationServer2D stats, and a click-to-probe tester that explains failed paths.</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Dijkstra maps for roguelike AI in Godot</title><link>https://vav-labs.com/blog/dijkstra-maps-for-roguelike-ai/</link><guid isPermaLink="true">https://vav-labs.com/blog/dijkstra-maps-for-roguelike-ai/</guid><description>Build Dijkstra maps in Godot for roguelike AI: pursuit fields, shared maps for many actors, source bias, flee maps, autoexplore, hazards, and INF-safe scoring.</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Tactical RPG movement range in Godot</title><link>https://vav-labs.com/blog/tactical-rpg-movement-range-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/tactical-rpg-movement-range-in-godot/</guid><description>Build tactical RPG movement range in Godot with TileMapLayer, AStarGrid2D, terrain costs, unit blockers, reachable-cell highlights, and path preview.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Godot pathfinding addons compared: what actually exists in 2026</title><link>https://vav-labs.com/blog/godot-pathfinding-addons-compared/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-pathfinding-addons-compared/</guid><description>Godot 4 pathfinding addons compared against the built-ins: Asset Library and GitHub options, maintenance state, licenses, and the gaps left.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Why your NavigationAgent gets stuck in Godot: a diagnosis guide</title><link>https://vav-labs.com/blog/why-navigationagent-gets-stuck-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/why-navigationagent-gets-stuck-in-godot/</guid><description>Diagnose a stuck NavigationAgent2D in Godot: bake-radius mismatch, repath loops, avoidance push-off, unreachable targets, and callback traps.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>AStar2D in Godot 4: complete reference</title><link>https://vav-labs.com/blog/astar2d-complete-reference/</link><guid isPermaLink="true">https://vav-labs.com/blog/astar2d-complete-reference/</guid><description>AStar2D reference for Godot 4: points, connections, one-way segments, weights, disabled points, closest-point lookup, partial paths, and custom costs.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>NavigationAgent2D Setup and Common Gotchas in Godot</title><link>https://vav-labs.com/blog/navigationagent-setup-and-common-gotchas-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/navigationagent-setup-and-common-gotchas-in-godot/</guid><description>Fix NavigationAgent2D not moving, first-frame empty paths, early finished states, jitter, and avoidance wiring in Godot 4.7, with runnable proof.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>NavigationObstacle Avoidance vs Pathfinding in Godot</title><link>https://vav-labs.com/blog/navigationobstacle-avoidance-vs-pathfinding-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/navigationobstacle-avoidance-vs-pathfinding-in-godot/</guid><description>NavigationObstacle avoidance steers Godot agents locally. It does not make path queries reroute by itself. Use an explicit route query to prove what changed.</description><pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>TileMapLayer Custom Data for Walkability in Godot</title><link>https://vav-labs.com/blog/tilemaplayer-custom-data-for-walkability-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/tilemaplayer-custom-data-for-walkability-in-godot/</guid><description>Use a Godot TileSet custom data layer as the AStarGrid2D walkability source: read TileData, handle empty cells, and avoid navigation-layer confusion.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>TileMap to Navigation Grid in Godot</title><link>https://vav-labs.com/blog/tilemap-to-navigation-grid-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/tilemap-to-navigation-grid-in-godot/</guid><description>Build an AStarGrid2D from a Godot TileMapLayer using get_used_rect(), tile custom data, and set_point_solid(). Verified in Godot 4.7.</description><pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Stop Players from Blocking the Path in a Godot Tower Defense</title><link>https://vav-labs.com/blog/tower-defense-path-validation-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/tower-defense-path-validation-in-godot/</guid><description>Validate tower placement in Godot before the player seals the maze. A temporary blocker check, a real demo, and measured full-vs-incremental cost.</description><pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>NavigationServer2D in Godot 4: setup, path queries, and debugging</title><link>https://vav-labs.com/blog/navigationserver2d-godot-complete-guide/</link><guid isPermaLink="true">https://vav-labs.com/blog/navigationserver2d-godot-complete-guide/</guid><description>Set up NavigationServer2D in Godot 4, validate reachable paths, connect regions and links, handle sync and rebakes, and diagnose empty or partial paths.</description><pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>AStarGrid2D in Godot 4: complete reference</title><link>https://vav-labs.com/blog/astargrid2d-complete-reference/</link><guid isPermaLink="true">https://vav-labs.com/blog/astargrid2d-complete-reference/</guid><description>Set up AStarGrid2D correctly in Godot 4.7.1 with practical code and an interactive demo: update(), solids, weights, diagonals, jumping, and partial paths.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Moving 10,000 agents in Godot without the frame spike</title><link>https://vav-labs.com/blog/moving-10000-agents-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/moving-10000-agents-in-godot/</guid><description>Godot pathfinding slow with many agents? A Godot 4.6 benchmark: one shared field holds 10,000 at a 5 ms median frame where per-agent queries collapse at 500.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Why is my path failing in Godot? Nine boring causes to check first</title><link>https://vav-labs.com/blog/why-is-my-path-failing-in-godot/</link><guid isPermaLink="true">https://vav-labs.com/blog/why-is-my-path-failing-in-godot/</guid><description>Godot returned an empty path? Check coordinates, bounds, solid starts, stale grid data, sync timing, clearance, region gaps, and weights first.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Pathfinding failure modes in Godot: why no path is not enough</title><link>https://vav-labs.com/blog/godot-pathfinding-failure-modes/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-pathfinding-failure-modes/</guid><description>When Godot returns an empty path, ask which assumption failed: start, goal, blocker, clearance, terrain rule, stale data, or disconnected region.</description><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Grid or navmesh in Godot? Choosing pathfinding that survives production</title><link>https://vav-labs.com/blog/godot-pathfinding-grid-vs-navmesh/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-pathfinding-grid-vs-navmesh/</guid><description>The short answer first, then the full decision: movement model, runtime changes, scale, agent size, path stability. Current for Godot 4.6, FAQ included.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Dynamic blockers in Godot: when one tower should not rebuild the whole map</title><link>https://vav-labs.com/blog/godot-dynamic-blockers-without-full-rebuild/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-dynamic-blockers-without-full-rebuild/</guid><description>A placed tower or closed door should invalidate a region, not rebuild the whole grid. Update Godot pathfinding locally, without the full-rebuild frame spike.</description><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Quest VRC: 60 fps or 72 fps? The official docs still conflict</title><link>https://vav-labs.com/blog/quest-vrc-60-or-72-fps/</link><guid isPermaLink="true">https://vav-labs.com/blog/quest-vrc-60-or-72-fps/</guid><description>Meta&apos;s official Quest guidance still says both 60 and 72 fps. Here is why 72 is the conservative pre-submit target, and what to verify.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><category>Meta Quest VR</category></item><item><title>Flow fields in Godot: pathfinding for crowds that share a destination</title><link>https://vav-labs.com/blog/godot-flow-fields-shared-goal/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-flow-fields-shared-goal/</guid><description>When a crowd shares one destination, per-agent A* repeats the same work. A flow field solves the grid once so every agent can read the next direction.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>What is a MonoBehaviour in Unity?</title><link>https://vav-labs.com/blog/what-is-a-monobehaviour-in-unity/</link><guid isPermaLink="true">https://vav-labs.com/blog/what-is-a-monobehaviour-in-unity/</guid><description>A MonoBehaviour is the base class that lets Unity attach a C# script to a GameObject and call it each frame. What it is, its lifecycle, and when to skip it.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><category>Unity fundamentals</category></item><item><title>“No MonoBehaviour scripts in the file”: what Unity means and how to fix it</title><link>https://vav-labs.com/blog/unity-no-monobehaviour-scripts-in-the-file-fix/</link><guid isPermaLink="true">https://vav-labs.com/blog/unity-no-monobehaviour-scripts-in-the-file-fix/</guid><description>Unity&apos;s “no MonoBehaviour scripts in the file” error: check for compile errors first, then the file/class name match, then whether it&apos;s really a MonoBehaviour.</description><pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate><category>Unity troubleshooting</category></item><item><title>What belongs in an AI bug-fix prompt — and what is just 48 KB of noise</title><link>https://vav-labs.com/blog/ai-bug-fix-prompt-structure-over-volume/</link><guid isPermaLink="true">https://vav-labs.com/blog/ai-bug-fix-prompt-structure-over-volume/</guid><description>Pasting a whole scene dump into an AI assistant and asking it to fix the bug is not a prompt. It is a hope. A useful AI bug report is small and structured.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate><category>Unity tooling</category></item><item><title>Influence maps in Godot: giving a grid a sense of danger</title><link>https://vav-labs.com/blog/godot-influence-maps-tactical-awareness/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-influence-maps-tactical-awareness/</guid><description>A* finds the shortest path — even when it runs straight through the enemy&apos;s firing line. Influence maps turn a grid from a floor plan into a tactical opinion.</description><pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Unity bug reports need evidence, not folklore</title><link>https://vav-labs.com/blog/unity-bug-reports-evidence-not-folklore/</link><guid isPermaLink="true">https://vav-labs.com/blog/unity-bug-reports-evidence-not-folklore/</guid><description>Most Unity bug reports arrive as folklore: vague memory, no scene, no logs, no screenshot. Capture the evidence on screen, before the trail goes cold.</description><pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate><category>Unity tooling</category></item><item><title>Multi-size agents in Godot: clearance maps without the headaches</title><link>https://vav-labs.com/blog/godot-multi-size-agent-pathfinding-clearance/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-multi-size-agent-pathfinding-clearance/</guid><description>Godot grid pathfinding treats every unit as one cell, so a 2×2 agent routes through gaps it can&apos;t fit. Clearance maps fix it with one grid for all sizes.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>Why your Godot pathfinding causes frame spikes and how to fix it</title><link>https://vav-labs.com/blog/godot-pathfinding-frame-spikes-fix/</link><guid isPermaLink="true">https://vav-labs.com/blog/godot-pathfinding-frame-spikes-fix/</guid><description>Stop repathing when nothing changed, spread queries across frames, share one map between agents, stop allocating on the hot path. Four fixes, with tradeoffs.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate><category>Godot / Performance</category></item><item><title>Open-sourcing an old Unity game is not a button</title><link>https://vav-labs.com/blog/open-sourcing-old-unity-game-not-a-button/</link><guid isPermaLink="true">https://vav-labs.com/blog/open-sourcing-old-unity-game-not-a-button/</guid><description>Re-shipping a 2018 Unity game raised the obvious question: open source it. The real answer lives in asset licensing, archaeology, and maintenance promises.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate><category>Engineering practice</category></item><item><title>Why running TDA in real time is an unreasonable thing to try</title><link>https://vav-labs.com/blog/tda-real-time-constraints-hyperplex/</link><guid isPermaLink="true">https://vav-labs.com/blog/tda-real-time-constraints-hyperplex/</guid><description>Topological data analysis has strong offline algorithms. A 16ms frame budget is where they stop being convenient and become an engineering problem.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate><category>Research</category></item><item><title>AStarGrid2D limitations and alternatives in Godot</title><link>https://vav-labs.com/blog/astargrid2d-limitations-godot-production-pathfinding/</link><guid isPermaLink="true">https://vav-labs.com/blog/astargrid2d-limitations-godot-production-pathfinding/</guid><description>AStarGrid2D limitations in Godot: when the built-in grid stops being enough, which alternatives fit, and what dynamic blockers, clearance, and crowds cost.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate><category>Godot pathfinding</category></item><item><title>How to build a Unity Asset Store tool without exposing source</title><link>https://vav-labs.com/blog/asset-store-tools-with-private-source/</link><guid isPermaLink="true">https://vav-labs.com/blog/asset-store-tools-with-private-source/</guid><description>Private source is fine. Private evidence is where it gets awkward. How to package and sell a closed-source Unity Asset Store tool buyers can still trust.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate><category>Product engineering</category></item><item><title>URP performance mistakes I look for first</title><link>https://vav-labs.com/blog/urp-performance-mistakes-first/</link><guid isPermaLink="true">https://vav-labs.com/blog/urp-performance-mistakes-first/</guid><description>The first URP rendering checks before we blame the engine, the GPU, or the phase of the moon — overdraw, extra passes, and settings that quietly cost frames.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>Rendering</category></item><item><title>How I structure Unity projects that outgrow MonoBehaviour scripts</title><link>https://vav-labs.com/blog/unity-projects-that-outgrow-monobehaviour/</link><guid isPermaLink="true">https://vav-labs.com/blog/unity-projects-that-outgrow-monobehaviour/</guid><description>A boundary-first approach for Unity projects after the inspector stops being a filing system — separating data, logic, and scene wiring so code keeps scaling.</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>Unity architecture</category></item></channel></rss>