Skip to main content
⌖ OF Intel

GUIDES

OpenFront FFA: The Trapped Middle — What To Do When Your Neighbors Are All About Your Size

A v0.34 decision framework for the Free-For-All midgame position where your neighbors are about as strong as you: attack the weakest, hold and bank Gold, pick an alliance axis, or break out — priced against the v34 troop growth curve, the attack-loss ratio ladder, the Defense Post multiplier, and the betrayal penalty.

Guide Difficulty · Intermediate Published Sep 28, 2026 Updated Sep 28, 2026 Reviewed by OpenFront Intel editors #ffa#trapped-middle#midgame#growth-curve#attack-ratio#defense-post#alliance#strategy#snowball

Direct answer

You are in the trapped middle when two or more of your neighbors are within roughly 15% of your troop count and your land, and none of them is clearly the soft target, and you can see the follow-up arriving from the third neighbor before your own attack has resolved. The default move — attack the weakest neighbor at 30% — is correct only when that weakest neighbor is clearly weakest (outside the 15% band) and you are still on the rising side of the growth curve; otherwise it leaves you exposed to the third neighbor for the follow-up, which is exactly the move that makes the position feel “trapped” in the first place. The instinct to attack the nearest neighbor is the instinct that loses, because the nearest neighbor at ratio ≈ 1.0 is the most expensive per tile you can pay, and the third neighbor’s committed troops are the follow-up you did not price.

The four real moves, in the order to check them and stop at the first that is viable, are: (1) attack the weakest at about 50–60% of your current troops while your growth rate is still rising, which is the cheapest move and the right default whenever a neighbor is meaningfully below the other two; (2) hold and bank Gold (plus a Defense Post line) so the neighbors’ attack on each other decides the position, which is the right move when the two neighbors on your border are about as strong as each other and your deterrent changes which one attacks next; (3) make one neighbor an ally to collapse two fronts into one, which is the right move when one neighbor has already been weakened by fighting a third and can be allied at low betrayal cost; or (4) break out sideways to a weaker border elsewhere on the map, accepting the betrayal-penalty window if you have to break an alliance to do it. The order matters: check Branch 1 first because it is the cheapest, then Branch 2 because it costs Gold and Posts rather than troops, then Branch 3 because it costs a potential betrayal penalty, and Branch 4 last because it costs land on the trapped side. The decision is priced against the v34 troop growth curve, the attack-loss ratio ladder, the Defense Post multiplier, and the betrayal penalty — the four numbers in the version section below — and the two worked scenarios in the scenarios section apply that four-branch check to a concrete board, so you can see the move being chosen rather than just the rule being stated.

Version boundary and scope

This guide is priced against the v34 stable line, specifically the v0.34.20 tag (commit feba4a51, published 2026-09-26), which is the latest non-TEST release as of the check date. The v0.34.20 release body covers lobby and naval-render hardening only, so no gameplay-rule or formula change was introduced between the v34 line’s structural releases and this tag; the numbers below are carried forward unchanged from the v34 base. The four numbers that carry the decision are:

Numberv0.34.20 valueWhat it does to the trapped-middle call
Troop growthtoAdd = (10 + troops^0.73/4) × (1 − troops/maxTroops) per tickYour per-tick troop gain falls as you fill toward maxTroops; holding still is a losing default because your curve is below your neighbors’ while they are on theirs
Per-City troop cap+250,000 per City levelThe land-grab side of the trade: each City you take or defend shifts your maxTroops, and a trapped-middle position is a position on this ladder
Attack-loss ladderwithin(defender/attacker, 0.6, 2) × (0.463 + 0.0039 × defender-per-tile)At ratio ≈ 1.0 (same-size neighbor) the per-tile attacker loss is in the flat middle of the window, so a same-size attack is the most expensive per tile you can pay
Defense Post×5 damage, ×3 speed within 30 tilesThe term that makes the hold-and-bank branch viable: a middling player holding a border can make the neighbor’s attack unattractive cheaply
Betrayal penaltydefense ×0.5, speed ×0.8, 30sThe price of the “ally then break” move; the window is short but it is the cost of the axis-of-alliance branch
Large-attacker bonus(100k/tiles)^0.7 above 100k tilesRewards holding a larger position over time; the mechanical reason a successful sideways break-out gains an attack-side edge against the now-weakened neighbors

The guide does not reteach how to pick a spawn (the Tall vs Wide guide owns that decision, and the spawn choice is what most often creates the trapped-middle position in the first place), how to read a one-versus-one troop ratio in general (the Attack Ratio guide owns that math), or how to build a deterrence posture with a Silo (the FFA Deterrence Posture guide owns the perception side of the decision). This guide owns only the trapped-middle decision: given that you are already wedged between about-as-strong neighbors, which of the four moves above is correct, and how to price it with the v34 numbers. The version boundary is the line between what the guide can rely on — the v34 ladders above and the tagged v0.34.20 source — and what it cannot, which is any beta-era number, any mechanic owned by another guide, and any endgame threshold owned by the overtime guide.

Why you feel trapped: the mechanics behind the position

The trapped-middle feeling is not a random roll; it is the v34 ratio math plus the growth curve acting on a middling border. Three mechanics produce it, and each one has a number you can read on the board.

The growth curve makes stillness expensive. Troop growth per tick is toAdd = (10 + troops^0.73/4) × (1 − troops/maxTroops). The (1 − troops/maxTroops) term means your per-tick gain falls as you fill toward your cap, and the ^0.73 exponent means the curve is concave: a neighbor at 80% of your troops is growing faster per tick than you are at your current level. While you hold still, every neighbor on your border who is still on their growth curve pulls ahead of you in troop count and in maxTroops (because they are also taking Cities). The community’s “you can’t just survive” complaint is this term: a same-size neighbor who keeps growing will cross the 1.0 ratio against you within a few minutes, and at ratio 1.0 your attack on them is the most expensive per tile you can pay.

The ratio ladder makes a same-size attack the worst trade. Attacker per-tile loss is scaled by within(defender/attacker, 0.6, 2) × (0.463 + 0.0039 × defender-per-tile). The within(…, 0.6, 2) clamp means that for any defender-to-attacker ratio between 0.6 and 2.0, the loss scaling is flat — so attacking a same-size neighbor (ratio ≈ 1.0) costs you the same per tile as attacking a neighbor at 0.6× your size, but you gain far less land per troop lost because the defender is not actually weaker. The defender’s counter at the same ratio is equally expensive, which is why a same-size attack feels like it “steamrolls” you inexplicably: the ratio math, not luck, is the cause.

The Defense Post multiplier is the only cheap escape. A Defense Post within 30 tiles multiplies the attacker’s damage taken by 5 and slows attack speed by 3. This is the term that makes the hold-and-bank branch viable: a middling player holding a border with a Defense Post line makes the neighbor’s attack 5× more expensive per tile and 3× slower, which changes which neighbor attacks next. Without it, a trapped-middle player has no cheap way to make the position unattractive to the neighbors, and the default is to attack the weakest — which is the move that exposes you to the third neighbor for the follow-up.

The four-branch decision framework

Given that you are already wedged between about-as-strong neighbors, check the four moves in this order and stop at the first that is viable.

Branch 1 — Attack the weakest first. Viable when: (a) one neighbor is meaningfully below the other two (within the board read, not by guess — use the troop count and City count both, because a neighbor with more Cities but slightly fewer troops is still bigger, and the Attack Ratio guide explains why), and (b) your own growth rate is still rising (you are below the yellow zone of the growth curve). Move: send about 50–60% of your current troops at the weakest neighbor while your growth rate is still on the rising side of the curve. The 50–60% number is the community’s working heuristic; the v34 number it depends on is the growth curve, because sending troops above your growth curve’s rising side means you are paying the full per-tick cost of the (1 − troops/maxTroops) term while also paying the attack-loss ladder on the way in. If the weakest neighbor is not meaningfully weaker (all three within 15%), this branch is not viable and you move to Branch 2.

Branch 2 — Hold and bank Gold (plus a Defense Post line). Viable when: the two neighbors on your border are about as strong as each other, and your deterrent (banked Gold, a Defense Post line, or a ready Silo — see the FFA Deterrence Posture guide for the Silo side) changes which neighbor attacks next. Move: build Defense Posts along the border that faces the more aggressive neighbor, bank Gold toward a Hydro or a second Silo tube, and let the two neighbors’ attack on each other decide the position. The v34 number that carries this branch is the Defense Post ×5/×3 multiplier: a middling player holding a border with a Post line makes the neighbor’s attack 5× more expensive and 3× slower, which is enough to change the neighbor’s target selection. This branch is correct when you cannot attack the weakest (Branch 1 failed) and you do not want to break an alliance (Branch 3’s cost).

Branch 3 — Make one neighbor an ally. Viable when: one neighbor has already been weakened by fighting a third neighbor and can be made into an ally at low betrayal cost, or one neighbor is clearly not going to attack you for the next few minutes (their troops are committed elsewhere). Move: send the alliance, collapse two fronts into one, and concentrate on the remaining front. The v34 number that carries this branch is the betrayal penalty: allying with one neighbor and then breaking the alliance to attack the other is a real move, but the ×0.5 defense and ×0.8 speed window for 30 seconds is the price of that move, and you have to price it against the land gain from the concentrated attack. If neither neighbor is weakened and both are fully committed to you, this branch is not viable and you move to Branch 4.

Branch 4 — Break out sideways. Viable when: there is a weaker border elsewhere on the map (not one of your current trapped neighbors) and you can reach it without crossing two fronts. Move: accept the land loss on the trapped side, concentrate your troops on the sideways axis, and break out to the weaker border. If you have to break an alliance to do it, the betrayal-penalty window is the cost and you have to price it against the land gain from the break-out. This is the last-resort branch: it is correct when Branches 1–3 all failed, but it is also the branch most often mistaken for Branch 1 by players who think “attacking” means “attacking the nearest neighbor” — a sideways break-out is a different move and has a different land-gain profile.

The order matters: check Branch 1 first because it is the cheapest, then Branch 2 because it costs Gold and Posts rather than troops, then Branch 3 because it costs a potential betrayal penalty, and Branch 4 last because it costs land on the trapped side. A player who skips Branch 1 and goes straight to Branch 4 is usually attacking the wrong neighbor; a player who stays on Branch 2 when Branch 3 is viable is paying the Defense Post cost for longer than they need to.

Scenario A: two strong neighbors, one weaker — you can break out

Setup. FFA on Europe, midgame, about 14 players remaining. You are at 480k troops / 9 Cities (maxTroops ≈ 2.25M from City cap plus base, with growth rate on the rising side of the curve). Your two main neighbors are at 510k / 10 Cities and 495k / 9 Cities — both within 6% of your troop count, both on their growth curves. Your third neighbor (the “weaker” one) is at 380k / 7 Cities, about 21% below your troop count, and is actively expanding into a fourth bot to their north. The two strong neighbors are not currently fighting each other; both have troops committed to their own borders.

The four-branch check. Branch 1: the weaker neighbor is meaningfully below the other two (21% gap, not within the 15% trap band) and your growth rate is still rising → viable. Move: send 60% of your 480k (≈288k) at the weaker neighbor while your growth rate is still on the rising side. At ratio ≈ 380k/480k ≈ 0.79 you are inside the within(…, 0.6, 2) flat window, so the per-tile loss is the flat-middle value; you take the weaker neighbor’s 7 Cities at a cost of roughly the flat-window per-tile loss, and the follow-up from the two strong neighbors is delayed because their troops are committed to their own borders. After the take you are at ≈1.9M troops / 16 Cities, still on the growth curve, and the two strong neighbors are now your only fronts — a two-front position instead of a three-front trapped position.

Why it works. The 21% gap is outside the 15% trap band, so the weaker neighbor is a real target, not a same-size trap. The growth curve is still rising on your side, so the 60% send does not drop you below the yellow zone. The two strong neighbors’ troops are committed, so the follow-up is delayed by at least one attack cycle. The v34 numbers that carry the scenario are the growth curve (your side is still rising), the ratio ladder (you are in the flat window at ratio 0.79), and the City cap (each of the 7 Cities you take shifts your maxTroops up by 250k, so the take itself raises your ceiling).

When it fails. If the weaker neighbor is actually within 15% (say 430k, not 380k), Branch 1 is not viable and you must move to Branch 2 — hold and bank Gold, build a Defense Post line on the border facing the more aggressive of the two strong neighbors, and let the two strong neighbors’ eventual fight decide the position. The failure mode is the player who sees a 430k neighbor, sends 60% at them, loses the follow-up from the 510k neighbor, and ends the game one place lower on the leaderboard.

Scenario B: three neighbors within 8% — you hold and the neighbors decide it

Setup. FFA on Asia, midgame, about 11 players remaining. You are at 620k troops / 11 Cities, growth rate just past the peak (yellow zone, about to decline). Your three neighbors are at 640k / 12 Cities, 655k / 11 Cities, and 670k / 12 Cities — all within 8% of your troop count, all on their growth curves. The 640k neighbor and the 670k neighbor are actively exchanging attacks along their shared border; the 655k neighbor has troops committed to a bot to their south. You have 1.1M Gold banked, enough for a Hydro, and two Defense Posts already placed on the border facing the 670k neighbor.

The four-branch check. Branch 1: no neighbor is meaningfully below the other two (all within 8%, well inside the 15% trap band) → not viable. Branch 2: the two neighbors on your border are about as strong as each other (640k vs 670k, 4.7% gap), and your deterrent (1.1M Gold, two Defense Posts) changes which neighbor attacks next → viable. Move: bank the 1.1M toward the Hydro, add a third Defense Post on the 670k-neighbor border, and let the 640k/670k fight decide the position. The v34 number that carries the branch is the Defense Post ×5/×3 multiplier: a 670k-neighbor attack through your Post line is 5× more expensive per tile and 3× slower, which is enough to push the 670k neighbor toward the 640k neighbor instead of you.

Why it works. The 8% gap is deep inside the trap band, so no neighbor is a real target for Branch 1. The two strong neighbors are fighting each other, so their mutual damage is absorbing the growth that would otherwise be pointed at you. Your Defense Post line makes the 670k-neighbor attack on you 5× more expensive, so the 670k neighbor keeps fighting the 640k neighbor. By the time the 640k/670k fight resolves, one of them is at 300–400k (down from 640–670k) and the other is at 500–550k — both now below your 620k, and you are no longer trapped. The Hydro you banked gives you the nuclear option against whichever neighbor wins that fight, and the FFA Deterrence Posture guide covers how to price that option.

Why not Branch 3 or 4. Branch 3 (ally with the 655k neighbor) is viable in principle, but the 655k neighbor’s troops are committed to the bot to their south, so the alliance does not collapse a front — it just adds a diplomatic dependency. Branch 4 (break out sideways) is not viable because there is no weaker border elsewhere on the map; the two strong neighbors are your only fronts and breaking sideways means crossing one of them, which is the follow-up attack the whole scenario is avoiding. The hold-and-bank branch is the cheapest viable move here because it costs Gold and Posts rather than troops, and the Defense Post multiplier is doing the work of changing the neighbors’ target selection.

The failure mode. The player who sees three neighbors within 8% and still sends 60% at the “weakest” (the 640k neighbor) is paying the full attack-loss ladder on the flat-middle window, taking 12 Cities at a cost that drops them to ≈300k, and then eating the follow-up from the 670k neighbor while their growth rate is in the yellow zone. This is the exact “steamrolls me inexplicably” complaint from the community: the ratio math, not luck, is the cause.

Failure modes and counter-moves

Counter-attacking the initial strike. The most common trapped-middle failure is to meet the neighbor’s opening attack with your own counter-attack at the same ratio. At ratio ≈ 1.0 both sides are in the flat-middle window of the attack-loss ladder, so the counter-attack costs you the same per tile as the initial strike and you give the neighbor the land they wanted. The counter-move is to let the neighbor’s attacking troops dry up (the Attack Ratio guide covers the troop-side of this), keep your own growth rate on the rising side of the curve, and only re-engage once the neighbor’s committed troops are spent. The v34 number that carries the failure is the ratio ladder: at ratio 1.0 the counter-attack is the most expensive per tile you can pay, so the “meet the attack with an attack” instinct is the most expensive move available to a trapped-middle player.

Sending above the growth curve. A second failure is to send 70–80% of your troops at a same-size neighbor because “they look weak.” The ^0.73 exponent means that dropping your troop count below the rising side of the growth curve means your per-tick gain falls faster than the send rate, so you are paying the growth-curve cost and the attack-loss ladder cost in the same move. The counter-move is the 50–60% send cap: enough troops to take the target, few enough that your growth rate stays on the rising side. The v34 number that carries the failure is the growth curve: a 70% send at 480k drops you to 144k, and (10 + 144k^0.73/4) × (1 − 144k/2.25M) is a per-tick gain that is a fraction of what it was at 480k, so the send itself slows your recovery.

Breaking an alliance without pricing the penalty. A third failure is to ally with one neighbor to collapse a front, then break the alliance to attack the other without pricing the 30-second ×0.5 defense / ×0.8 speed window. The counter-move is to price the penalty against the land gain from the concentrated attack before you break the alliance: if the land gain from the concentrated attack does not cover the 30 seconds of halved defense and cut speed, the move is not worth it and you should stay on the hold-and-bank branch. The v34 number that carries the failure is the betrayal penalty: 30 seconds at half defense is enough for the now-betrayed neighbor to take a City from you, and the cost of that City (250k of your maxTroops) is the price of the move.

Holding still as a default. A fourth failure is the one the community calls “you can’t just survive”: holding still while the neighbors stay on their growth curves is not a neutral move, it is a losing default. The counter-move is to treat the hold-and-bank branch as a time-limited position: hold for one or two attack cycles at most, and if the neighbors are not fighting each other (i.e., your Defense Post line is not changing their target selection), move to Branch 3 or 4. The v34 number that carries the failure is the growth curve: every tick you hold still is a tick where your (1 − troops/maxTroops) term is below your neighbors’ terms, so the stillness itself is the losing move.

Mis-reading the weakest neighbor. A fifth failure is to read “weakest” from troop count alone. A neighbor with more Cities but slightly fewer troops is still bigger, because the City cap (250k per level) is the term that sets maxTroops and the growth curve is priced against maxTroops, not current troops. The counter-move is to read both numbers: a 430k / 10-Cities neighbor is bigger than a 480k / 8-Cities neighbor, because the 10-Cities neighbor’s maxTroops is 500k higher. The v34 number that carries the failure is the per-City troop cap: the 250k step is large enough that a 2-City gap is a 500k maxTroops gap, which is the difference between a real target and a same-size trap.

Mode and map adjustments

FFA is the only mode where this guide applies. Team modes (Team Deathmatch, Team Domination) do not have the “trapped between about-as-strong neighbors” position in the same form, because the team structure changes the ratio math: your team-mates absorb the follow-up attacks that would otherwise be pointed at you, so the trapped-middle decision is replaced by the team-coordination decision the FFA Midgame Strategy guide covers. If you are playing a team mode, the Attack Ratio guide is the closer fit for the troop-side of your decisions, and this guide’s four-branch structure does not apply.

Map density changes the trap band. On dense maps (Europe, Asia, Pangea with 20+ players) the 15% trap band is the right threshold, because the neighbors are close together and the follow-up attack from the third neighbor arrives within one attack cycle. On sparse maps (Africa, the large open-water maps) the trap band widens to about 20–25%, because the neighbors are farther apart and the follow-up is delayed by the distance, so a neighbor at 20% below you is still a real target for Branch 1. The v34 number that carries the adjustment is the growth curve: on a sparse map you have more time on the rising side of the curve before the follow-up arrives, so the 50–60% send cap can be pushed to 65% on sparse maps without dropping below the yellow zone.

Homogeneous maps favor the hold-and-bank branch. On maps with no natural chokepoints and no obvious weak spawn (Asia, Pangea), the hold-and-bank branch is more often the correct default, because the neighbors are about as strong as each other by construction and the Defense Post line is the cheapest way to change their target selection. On maps with a clear weak spawn (a corner with only two borders), Branch 1 is more often the correct default, because the weak-spawn neighbor is genuinely weaker and the follow-up is delayed by the map geometry. The v34 number that carries the adjustment is the Defense Post multiplier: on a homogeneous map the Post line is the only cheap asymmetry you can create, so the ×5/×3 term is doing more of the work of changing the position.

Water access changes the follow-up timing. If you have a port and a neighbor also has a port, the follow-up attack can come by boat, and the boat ride gives the attacker time to regenerate troops (the Attack Ratio guide covers the boating mechanic in detail). This means the follow-up is faster in troops than a land-based follow-up, so the 50–60% send cap should be at the lower end (50%, not 60%) when the third neighbor has a port, because the boat-ride follow-up arrives with more troops than a land-based one. The v34 number that carries the adjustment is the growth curve: the boat ride gives the attacker time on the rising side of their growth curve, so the follow-up is priced at their rising-side rate, not their yellow-zone rate.

Lobby size changes the growth-curve tempo. In a small lobby (8–10 players) the midgame arrives earlier in absolute time, so the trapped-middle position is reached at a lower troop count and the 50–60% send cap should be checked against a lower absolute troop threshold. In a large lobby (20+ players) the midgame arrives later, the trapped-middle position is reached at a higher troop count, and the send cap can be checked against a higher absolute threshold. The v34 number that carries the adjustment is the growth curve: the tempo of the position (how quickly the neighbors cross the 1.0 ratio against you) is set by the lobby’s total player count, because more players means more growth-curve competition for the same land.

When to move on from this decision

The trapped-middle decision is a midgame decision, and it has a natural end: the moment one of your neighbors drops below the 15% trap band — after a fight with a third neighbor, or after a failed attack on you that spent their committed troops — the position is no longer “trapped” and the decision collapses to a standard two-front or one-front call that the FFA Midgame Strategy guide and the Attack Ratio guide cover. The mechanical reason the position ends is the growth curve: a neighbor who was at ratio 1.0 against you and now sits at ratio 0.7 is a real target, and the flat-middle window of the attack-loss ladder has opened a cheaper side of the board for you, so the four-branch check becomes a single-branch call (attack the now-weakened neighbor at the 50–60% send cap) and the trapped-middle structure no longer applies.

The second natural end is the overtime window: the last few minutes, when the territory is shrinking and the Winning Overtime guide owns the endgame threshold. In overtime the two ratios invert — your own density is high because your territory is large and packed, and the defender’s density on the front is the number that decides everything — so the trapped-middle decision is replaced by the overtime decision, and the four-branch structure above does not apply. The endgame is a different call with different numbers: the shrinking-territory threshold, the next-30-second crossing, and the large-attacker bonus that is strongest when you are the biggest territory on the map. Running the four-branch check in overtime is the mistake that turns a winnable trapped-middle position into a lost overtime: you hold-and-bank against a neighbor who is about to take you out in the overtime window, or you break out sideways across a front whose density you should have been routing around, because the midgame numbers no longer describe the board.

The version boundary for this guide is the v34 line: the numbers above are the v0.34.20 numbers, and any future change to the growth-curve exponent, the ratio ladder, the Defense Post multiplier, or the betrayal penalty should be re-verified before the guide’s numbers are treated as current. If you find yourself stuck on a trapped-middle position for more than two attack cycles without a branch becoming viable, the position is not a trapped middle, it is a lost midgame, and the counter-move is to accept the land loss, concentrate on the weakest remaining front, and play the overtime guide’s endgame call from there. The two-attack-cycle limit is the line: it is the number of cycles the growth curve gives you before the neighbors on your border cross the 1.0 ratio against you and the flat-middle window of the attack-loss ladder makes your counter-attack the most expensive move available, which is the exact moment the trapped-middle decision stops being a decision and starts being a default you are losing. Run the four-branch check at the start of the position, re-run it after each attack cycle, and at the two-cycle mark if no branch is viable, stop running it and start running the overtime check, because the board you are on is no longer the board the four-branch check was priced against.

Related content

Continue reading
Adaptive Build Order: Spend the Next Gold on the Constraint

Use OpenFront v34.3 costs, troop growth, route payback, and stop signals to choose City, Port, Factory, defense, or a liquid reserve without copying a fixed script.