The AI characters would run to a spot, stop dead, fire their weapon, then start running again. It looked robotic. Like they were following a checklist instead of actually fighting.
The problem wasn't the actions themselves. It was the timing. Real combatants don't separate "moving" and "shooting" into neat little boxes. They do both in relation to each other. A soldier advances before taking a shot. A retreating fighter keeps firing while backing up. Someone pressing an advantage moves after landing a hit.
That insight led to ETacticMovementType, a system that defines when an AI moves relative to when it acts. It's a small thing, but it completely changed how combat feels in Chain Crisis.
Where This Comes From
Military doctrine has been thinking about this problem for centuries.
The U.S. Army's Infantry Rifle Platoon and Squad (FM 3-21.8) breaks tactical movement into three categories based on timing: movement before contact, during engagement, and after contact. It's not just theory. It's how soldiers actually train. And it turns out, it's also how you make AI that doesn't look like it's running on rails.
The Nine Movement Types
Hold
HOLD — No movement during action
[AI] ─────────────── ⚡ ACTION ─────────────── [AI]
▪ ▪
(same position) (same position)Hold — Stay put while acting.
Sometimes the best move is no move at all. When you've got good cover and a clear shot, you plant your feet. Massad Ayoob talks about this in Combat Shooting. A stable firing platform makes a huge difference, especially for precision weapons.
In Chain Crisis, Hold is for the big, deliberate abilities. Sniper shots. Charged attacks. Anything where stability matters more than mobility.
Before-Action Movement
BEFORE — Movement completes, then action executes
[AI] ──── MOVE ────> [AI] ═══════ ⚡ ACTION ═══════
▪
(new position)
├─── movement phase ───┤├───── action phase ─────┤Advance — Close the distance, then act.
This is "closing with the enemy," the bread and butter of infantry tactics. The Marine Corps Infantry Tactics manual (MCRP 3-10A.4) describes it as movement that gets you into range while staying ready to fight. You finish moving, establish your position, then engage.
We use Advance when an ability needs close range. The AI gets into position first. If it loses line of sight on the way, it pathfinds around obstacles before acting. No more characters trying to shoot through walls.
Retreat — Back up, then act.
Here's something people get wrong about retreating: it's not running away. Clausewitz wrote about this in On War. A tactical retreat is about gaining advantage, not fleeing. You move to better ground before you engage.
Retreat is for abilities that work better at range. Area effects. Long-range attacks. Things that need some breathing room.
Cover — Find cover, wait for a shot, then take it.
This is classic marksman behavior. Move to a covered position, wait until you've got eyes on target, then fire. The Ranger Handbook is big on this. Always prioritize covered routes.
Cover creates patient, deliberate AI. The sniper who waits for the perfect moment. It feels very different from the twitchy spray-and-pray you see in most games.
Flank — Get behind them, then strike.
Flanking is ancient. Sun Tzu was writing about it thousands of years ago in The Art of War. Attack weak points, hit from unexpected angles. Modern doctrine agrees: flanking beats frontal assault because you're exploiting blind spots.
Flank makes AI that actually maneuvers. They'll circle around to your back before attacking. It's especially nasty for melee enemies.
During-Action Movement
WHILE — Movement and action happen simultaneously
[AI] ════ MOVE + ⚡ ACTION ════> [AI]
▪
(new position)
├────── both phases overlap ──────┤Push — Advance while attacking.
This is assault movement, closing distance while keeping up fire. Infantry Rifle Platoon and Squad calls it "movement to contact." The difference from Advance is subtle but important: you're moving and shooting at the same time. Constant pressure.
Push creates aggressive AI. Shotgunners who keep coming. Melee fighters who close the gap while swinging. It feels relentless.
Backpedal — Retreat while attacking.
The fighting withdrawal. You're backing up, but you're not done shooting. The Marine Corps calls this "breaking contact." You maintain suppressive fire while creating distance.
We originally called this Kite internally (like kiting in MMOs), but Backpedal is clearer. It's for ranged characters who want to maintain their distance advantage. They'll shoot while backing away, never letting you close the gap.
After-Action Movement
AFTER — Action executes, then movement begins
═══════ ⚡ ACTION ═══════ [AI] ──── MOVE ────> [AI]
▪ ▪
(start pos) (new position)
├───── action phase ─────┤├─── movement phase ───┤Pursue — Act, then close in.
This is exploitation, pressing your advantage after a successful hit. Doctrine says you follow up to prevent the enemy from regrouping. Don't let them recover.
Pursue creates hunters. After landing an ability, the AI moves in to finish the job. It keeps the pressure on.
Withdraw — Act, then back off.
Tactical disengagement. You've done your thing, now create some distance. This is different from retreat. You're not moving to a better position before fighting. You're creating space after.
Withdraw is for abilities with long cooldowns or recovery times. Fire off that big attack, then get out of range while it recharges. Smart positioning, not panic.
Why This Works
The whole point is that different movement timings create different combat personalities.
A character using Push feels aggressive, always in your face. Someone using Backpedal feels slippery, maintaining distance. A Cover user feels patient and deliberate. Same AI system, completely different feel. All from changing when they move.
It also handles edge cases better. If a Push or Backpedal character loses line of sight, they reposition toward the target to reacquire LOS while keeping up the attack. If an Advance character loses sight, they pathfind to reacquire the target before acting. The timing rules handle the complexity.
And for designers, it's modular. The same ability can use different movement types depending on context. Aggressive stance? Use Push. Defensive stance? Use Cover. The combinations create variety without needing to code every specific behavior.
The Technical Bit
Under the hood, these are behavior tree branches. Each timing category has its own logic:
- BEFORE: Finish moving, then execute
- WHILE: Move and execute simultaneously
- AFTER: Execute, then move
The behavior tree enforces the timing at runtime. Designers pick a movement type, and the system handles the sequencing.
References
If you want to dig deeper:
- U.S. Army FM 3-21.8: Infantry Rifle Platoon and Squad. The foundation for thinking about movement timing.
- MCRP 3-10A.4: Infantry Tactics. Good coverage of movement to contact and fighting withdrawal.
- Clausewitz, On War. Still relevant for understanding tactical retreats.
- Sun Tzu, The Art of War. The original source on flanking and weak points.
- Massad Ayoob, Combat Shooting. Practical perspective on stable firing positions.
- Ranger Handbook. Excellent on covered movement.
These aren't academic citations for credibility. People have been thinking about combat tactics for a very long time. No point reinventing the wheel when you can learn from what works.