Vav Labs
Back to blog

Godot pathfinding / 2026-07-13 / 10 min read

Verified as of Godot 4.7 stable

Fire Emblem, Into the Breach and XCOM Movement in Godot

Fire Emblem terrain profiles, Into the Breach's telegraphed intents, and XCOM 2's action bands — three movement contracts mapped to verified Godot systems.

Three original tactical grids compare profile-based terrain costs, visible enemy intents changed by a push, and one-action versus two-action movement bands in Godot.

The direct answer

Fire Emblem, Into the Breach, and modern XCOM can use the same Godot grid and range-search layer, but they need different movement contracts. Fire Emblem combines faction phases with profile-dependent terrain costs and sequential unit commits. Into the Breach shows enemy intents, lets player actions change the board immediately, then resolves those intents in a deterministic order. Modern Firaxis XCOM gives each soldier two action points and presents movement as one-action and two-action bands.

The grid can be shared. The movement contract can't.

Compare the three movement contracts

The path query may look similar across all three games. Turn ownership, pricing, prediction, and state commitment are where their architectures separate.

Fire Emblem-style, Into the Breach-style, and modern XCOM-style movement contracts
Contract questionFire Emblem-styleInto the Breach-styleModern Firaxis XCOM-style
Turn ownershipPlayer and enemy faction phases; units act one at a time inside the phaseEnemy intents are shown, then player units act against that informationSquad phase; soldiers can be selected in a flexible order
Movement budgetA unit profile interprets terrain costs against a movement allowanceMovement allowance is comparatively simple; terrain mainly changes legality or board stateOne-action and two-action movement bands
Commit boundaryThe selected unit moves, then completes its actionPlayer actions commit immediately; queued enemy intents resolve laterConfirmed movement spends one or both action points
PredictionReachable cells and usually the chosen routeEvery visible enemy intent needs an updated predicted resultDestination, cover, visibility, and possible interruption matter
Supporting Godot layersRange + terrain profile + occupancy policy + faction phaseVisible intent queue + immediate mutation + current-state deterministic resolutionTwo range budgets + 2-AP transaction + sequential activation

What you can share safely

All three systems can read the same stable board facts: cell adjacency, authored terrain, static blockers, and current occupancy. They can also share a range solver if the query accepts a movement profile and a budget instead of reading one global set of assumptions.

Keep pricing, state ownership, and prediction outside the shared grid. If those rules leak into one get_path() function, the second game mode usually starts by adding booleans. The third starts by making them disagree.

  • How terrain is priced for the selected unit.
  • Whether a destination costs movement points or action points.
  • When a move becomes committed state.
  • Whether future actions are visible intents or hidden decisions.
  • How pushes, overwatch, and other interrupts change resolution.

Fire Emblem: terrain profiles inside faction phases

The documented baseline here is Fire Emblem: Shadow Dragon. Nintendo's official manual says that play alternates between Player and Enemy phases. It shows a selected unit's movement range in blue and says that class and terrain affect that range.

Exact costs and special movement rules vary across the series, so don't turn one game's forest table into a universal constant. Put the variation in a movement profile. The board says which terrain occupies a cell; the selected profile decides whether that terrain is blocked and what entering it costs.

The tactical movement range guide owns the budgeted reachable-cell search and path preview. Action points and terrain costs owns movement_cost_for(cell, profile) and the quote/confirm transaction. The reservation-table guide keeps pass-through, hostile blocking, and legal stopping rules explicit, while the turn-order guide supplies the faction-phase coordinator.

Weapon triangles, combat forecasts, rescue, canto, and title-specific skills sit above this movement contract.

Into the Breach: visible enemy intents and immediate player actions

Subset Games' design postmortem states the central constraints plainly: enemy attacks are shown, there is no hit/miss chance, and results are deterministic during the player turn. The official game page likewise describes every enemy attack as telegraphed.

The important state isn't a more elaborate path. It is the enemy intent and its current prediction. A useful intent records the acting unit, the attack rule, its target or direction, and a stable ordering key. When the player moves, attacks, or pushes a unit, that action updates the live board immediately. The UI then recalculates what the queued enemy intents will do from that state.

When the enemy phase resolves, the coordinator uses a declared total order and revalidates each actor against the current board. A destroyed actor can't still attack because an animation callback arrived late. A displaced actor resolves from its current cell under the game's attack rule.

The turn-order and movement-planning guide owns explicit phases, data-shaped intents, deterministic ordering, and resolution-time revalidation. When a push needs to claim a destination, the reservation layer owns that cell transition.

Damage rules, objectives, and the wider puzzle design remain outside this movement contract.

Modern XCOM: one-action and two-action movement bands

The XCOM 2 manual gives each soldier two action points. A blue outline shows where the soldier can move for one AP; a yellow outline shows the two-AP dash range. Overwatch then introduces a separate interruption rule when an enemy moves within line of sight.

This is the modern Firaxis baseline, not a statement about every XCOM game. The 1994 original used granular time units. Jake Solomon has explained that the newer move-action model made squad plans more direct than the old accounting system.

For a Godot implementation, query the reachable set at the one-action budget and again at the two-action budget. Don't assume the second query must literally be 2 * first_budget; abilities, traversal links, and the game's own movement data may define those allowances differently.

The range-search guide owns those reachable sets. The AP transaction can represent a move priced at one or two actions, but its Fire Emblem-style entered-terrain ledger is not the XCOM payment model. Sequential soldier activations belong to the turn coordinator.

An exact XCOM-like game also needs elevation, cover, visibility, traversal links, concealment, and interrupts. Those systems affect movement decisions, but they aren't squeezed into this comparison as unfinished code.

Which contract should you prototype first?

Pick the row that contains the project's actual uncertainty. If the risk is terrain pricing, a telegraph prototype won't answer it. If the risk is whether three visible enemy attacks remain readable after two pushes, a larger movement map won't answer that either.

Choose the smallest prototype that tests the movement system's real risk
What you need to validateStart withWhy
A first complete tactical movement loopFire Emblem-styleOne faction phase, one active unit, range preview, confirmation, and occupancy form the smallest complete baseline.
Telegraphs, displacement, and predictable consequencesInto the Breach-styleThe board can stay small while you test visible intents, prediction updates, and deterministic resolution.
3D positioning, cover, visibility, and reaction fireModern XCOM-styleMovement depends on several additional systems, so stabilize the grid and coordinator first.

Proof for the shared Godot layers

These are correctness receipts for the individual layers, not evidence that the named games were reproduced. This comparison ships no combined source project and makes no benchmark claim.

Public verification for each supporting movement layer
Contract claimOwning implementationPublic proof
Budgeted reachable cells and path previewTactical RPG movement range9-check receipt
Profile-dependent terrain cost and atomic AP spendingAction points and terrain costs13-check receipt
Destination ownership and displacement conflictsPrevent two units moving to the same tileMachine-readable receipt
Explicit phases, intent ordering, and playback gatingTurn order and movement planning15-check receipt

Frequently asked questions

What is the difference between Fire Emblem and XCOM-style movement in Godot?

Fire Emblem-style movement uses a unit profile to price terrain inside a movement allowance, usually during player and enemy faction phases. Modern XCOM-style movement gives a soldier two action points and displays one-action and two-action movement bands. Both can use the same range solver, but they charge and commit the selected move differently.

What movement system does Into the Breach use?

Enemy intents are visible before the player acts. Player movement, attacks, and pushes change the live board immediately, the prediction is refreshed, and the queued enemy intents later resolve in a deterministic order. The engineering weight sits in intent prediction and resolution rather than weighted terrain.

Does XCOM use per-tile movement costs like Fire Emblem?

Modern Firaxis XCOM presents one-action and two-action movement ranges. The selected band spends one or both AP. Fire Emblem-style movement instead lets a unit profile interpret terrain costs while reachable cells are calculated.

Can one Godot grid support all three movement systems?

Yes. Share board coordinates, adjacency, terrain facts, blockers, occupancy, and a profile-aware range solver. Keep terrain pricing, action budgets, intent queues, commit timing, prediction, and interrupt rules in separate contract layers.

Should a Godot tactics game use AStarGrid2D or a navmesh?

Use an explicit grid or graph to own cell-based tactical legality. A 3D game can still use a navmesh or traversal helper for local presentation, but it shouldn't silently redefine which cells are legal or affordable. The AStarGrid2D reference covers the grid API, while the grid-versus-navmesh guide owns the broader choice.

Which tactical movement system is easiest to prototype in Godot?

For a first complete movement loop, start with the Fire Emblem-style baseline: one faction phase, one active unit, range preview, confirmation, and occupancy. Start with Into the Breach-style rules when visible intents and displacement are the actual design risk. Add the modern XCOM cover, visibility, and interrupt stack after the grid and turn coordinator are stable.