GUIDES
地形系统:为什么同一支军队赢下一条边界,却输掉下一条
OpenFront 的四种地形等级、v0.34 把它们纳入的攻击公式,以及决定一次突袭是耗尽兵力还是撕开防线的具体兵力与回合计算。
地形决定了每条边界的代价
OpenFront 里每一块陆地格子都带有一个叫幅度的隐藏数字,这个数字悄悄规定了它所在的每条边界的两种代价。第一种代价是血:它决定了进攻方要夺下一块格子必须失去的基础兵力。第二种代价是时间:它规定了一块格子要花多少回合。引擎把幅度归到四种地形等级之一——平原、丘陵、山地或不可通行——每个等级都有固定的基础损失值和固定的移动成本值。平原最便宜也最快,山地最血腥也最慢,丘陵介于两者之间。不可通行地形根本不被计入:它压根无法被进攻,所以是墙,不是战场。把一张地图读成一串价格而不是形状,是唯一能把「我为什么输了这条边界」从疑问变成可在行动前做出的决定的改变。
玩家之所以会输掉「按理该赢」的边界,是因为他们在比较两支军队,而不是两块地形。一支相同的军队横扫开阔平原可能只损失四十个兵力一格、不到两回合,而同一支军队硬闯山脊,每格要多损失大约百分之五十的兵力、耗时还多一倍以上。只要防守方守住高地,进攻方就会在战斗的每一格上支付这笔溢价,守住昂贵地形通常是理性的一步,而不是你直觉里「要么核爆要么强推」所说的那种错误。本文要建立的具体习惯,就是拒绝给整条边界一个单一数字:把边界切成你真正要进攻的那一段,给那段里的每块格子标出等级,在你移动任何单位之前就把这一段估出价格。这样「我该不该在这里强推」的答案就不再是谁的军队更大的直觉,而是两套血与时间预算的显式比较——一个你完全能在行动前几秒钟内算完的比较。由此而来的纪律是拒绝给整条边界一个数:你只给真正要打的段标注一个血数和一个时间数,把地图其余部分当作背景,而不是战场。这种切分——这里打、那里忽略——把一次会赢的强推和一次在缩略图上看不错、却死在你刚跨过的某条昂贵山脊线上的强推区分开来,本文其余内容都围绕这个习惯展开。
四种地形等级,直接来自源码
幅度到地形的映射写在地图逻辑里,在整个 v0.34 分支上都稳定。一块陆地格子若幅度低于十就是平原,十到刚好低于二十是丘陵,二十到三十是山地,达到或超过不可通行幅度三十一则是不可通行。一切非陆地都是海洋,陆地军队根本无法越过,只能靠船抵达。幅度本身来自给每块格子着色的地图数据;这四种等级不是你去选的——它们在开局之前就被画进了地图,你的开局抉择就是你落在哪一种已画好的等级上、你的早期扩张朝哪里铺。正因为等级是画好的,地图本身就是游戏的第一笔地形决策,在你第一次进攻前读它不是可选的准备,胜负恰恰在这里定下。
这套映射最值得记牢,因为它把缩略图上的一块颜色变成了你可以推理的数字。如果你看到你和目标之间有一片深色山脊带,那片区域就是山地,你应当预期自己要对阵引擎能给出的最贵价格。如果你看到一条宽阔、浅色的平原地带,那就是平原,那里的边界在血和时间上确实比同一条线山地段的边界便宜。丘陵是那条有欺骗性的中间路径:它只看裸基础值时只比平原略差,但因为首府和相邻港口通常都落在丘陵上,那里实际部署着防御工事和建筑,所以一段「只略略有点丘陵」的战线往往比它的基础数字暗示的更贵。实际的读法是,永远不要把一条战线当成一个数字;你把它切成你要打的那一段,按等级给每一段估价,因为你决定在哪里打的那条线,可能就是「会赢的强推」与「会死的强推」之间的差别。这也是为什么两名玩家在同样的地图上能打出完全不同的对局:一人朝便宜的一侧扩张,逼另一人沿着昂贵的一侧来打他,而另一人躲在山脊后面,让每一次进攻都耗尽。这套映射在你的心智模型里是完全可逆的:你可以从缩略图上的一块颜色推出数字,也可以从你脑子里的数字推出地图上该看到的颜色,而这个往返中的任何错误都意味着你在移动任何单位之前就误读了地图。
v0.34 攻击公式真正在算什么
v0.34 分支重做了攻击模型,所以地形如今是更大算式里的一个输入,而非整个答案。引擎取地形的基础损失和基础移动成本,再把二者按战况缩放。防守方平均每格兵力直接进入损失项:密集的领土比同样领土分散摆放更贵,因为每格密度直接加进进攻方的损失。防守总兵力相对你进攻兵力的比值被夹到上下界之间,而这个夹取正是「不要轻敌」这一课所在。达到对等时比值被向上夹取,所以压倒性进攻每格损失更少兵力、用更少回合结束跨越;在此之下比值被向下夹取,所以一支小而绝望的进攻并不会因为小而变便宜。这个模型被设计成让你的进攻规模成为头等决策,而非无关紧要的细节。
还有一个独立的速度项。它随进攻的压倒程度增长,达到或超过对等时被夹到大约快百分之十八,落在负重之下时下降,超过二十之后对真正的绝望进攻又跌入一个深谷。这个速度项乘以地形的基础移动成本,再除以你进攻的那条边界的宽度,所以一条又长又窄的边界在同等地形和同比值下每格会被更快拿下,比一条又短又宽的更快。损失和速度最后都按大领土加成缩放:进攻方的加成最强,所以对局接近结尾、人人都有大片领土时,进攻对所有人都变得又便宜又快,这正是 v0.34 的开发者让终局更有张力的原因。要记住:地形设定下限,而比值、密度和你的领土规模决定你实际要付多少超出下限的部分。实践上这意味着同一道山脊,在领土尚小、大领土加成还没起作用的开局是一道墙,到领土成长之后的中局就变成一条可越过的线,所以守山脊的价值在一局里并不恒定——它在开局最高,那时领土小、大领土加成尚未生效。模型里还有一个大多数玩家漏掉的项,是对已掉线盟友和机器人防守方的处理:当防守方掉线或是机器人时,引擎可以把损失降低甚至归零,所以一条你绝不会对活人、密集对手开打的线,对一个掉线对手几乎免费,读「这条线到底是谁在守」和读「这条线是什么」是同一笔地形功课。
快速参考
| 地形等级 | 幅度 | 基础损失(幅度) | 基础移动成本 | 寻路成本 | 可进攻? |
|---|---|---|---|---|---|
| 平原 | 低于 10 | 80 | 16.5 | 1 | 是 |
| 丘陵 | 10 到低于 20 | 100 | 20 | 1 | 是 |
| 山地 | 20 到 30 | 120 | 25 | 2 | 是 |
| 不可通行 | 31 及以上 | n/a | n/a | n/a | 否——抛错 |
| 海洋 | 非陆地 | n/a | n/a | n/a | 仅靠船 |
这张表就是整个决策的一眼全览,最关键的两列是基础损失和基础移动成本。丘陵比平原血腥四分之一(一百对八十)、慢约五分之一(二十对十六点五),山地比平原血腥一半(一百二十对八十)、慢约一半(二十五对十六点五)。这些是任何防御工事、任何核辐射、任何比值修正之前的纯地形溢价,也是你应当背下来的数字,因为战线一出现它们就是你最先要调用的数。寻路成本这一列才是悄悄改变你地图的那一列:引擎经过山地的 A 寻路权重是平原或丘陵同样路径的两倍,所以引擎的寻路把一次越山当作大约是越平原的两倍长,哪怕格子数完全相同。
这个寻路权重就是让那条「看起来很短」的山脊对习惯数格子的玩家显得错误的东西。一条视觉上只有五格宽的山脊,寻路时当十格处理,所以只要存在一条便宜路径,引擎就乐于把你的扩张绕开它,它也会拒绝让你直冲一个实际上是山带的瓶颈。不可通行线是硬停:幅度一到三十一及以上,地形值不仅昂贵,还被定义了,当一支军队尝试进攻时引擎会抛错,所以这些格子是把地图切成区域的纯墙。海洋线提醒你,同样的边界逻辑在水上并不成立:陆地进攻根本无法越过海洋,所以一条碰到海的线实际上是两条分开的边界,而那次跨越必须是一次海军行动。把基础损失这一列当作你的血预算、基础移动成本这一列当作你的时间预算,再叠加下面几节里的乘数,你就得到这条边界的完整价格。这五行覆盖了整张陆图:你在任何地图上看到的任何一格都恰好落在这五行之一,没有第六种情况引擎会去处理。这意味着这张表不只是一份参考,而是整个地形世界的一份完整清单;背下它,你就在任何地图打开之前已经认识了它。
场景:一次在平原上耗尽的突袭
来算一个具体的数字例子,因为抽象模型掩盖了兵力规模到底改了多少。设防守方用一千兵力守住二十五格,他的平均密度就是每格二十兵力。你用一千兵力进攻,就是对等。在平原边界、对等状态下,被夹取的比值是一,大领土加成还大约在为一,进攻方每格损失大约在四十兵力上下。移动成本大约在每格一点九回合。现在把你的进攻三倍到三千兵力,打同一个防守方。比值降到大约三分之一,把损失下限拉回它的最低值,每格损失降到大约二十六——每格减少百分之四十。移动成本降到大约一点六回合,减少百分之十八。同一条边界,用三倍兵力跨越,你每格损失更少血、结束得更快,超出你实际投入的兵力总量。
这就是整个模型在单个例子里的全部教训:用一次小规模进攻轻敌一条边界,是打它最糟的方式,因为你付着每格最高的血和最慢的跨越。赢得平原战的那支军队,是明显大于那条线之前防守兵力的一支,不是刚刚多过它的一支。同一条规则还有第二个量级。如果你是那二十五格的防守方,对等数字就是你的防御:你知道一次同等进攻会让进攻方每格损失大约四十兵力、大约两回合,所以只要你守一条平原边界所花的不超过每格那数、就能打回来,进攻方就根本无法把你打穿。这种对称性正是平原成为公平地形的原因——它贵得双方都负担得起,所以平原战斗总是归结到谁兵力更多,而不是谁地形更好。打破这个假设的是密度高于本例每格二十的防守方:若他把四千人压在那二十五格上,仅密度项就会让你每跨一格多加近三十兵力,你就需要一个大得多的比值才能把每格损失压下去。实际的读法是,你几乎从不在下限打:你打的是下限加一个比值项、一个密度项、一个领土项,而每一项都是你在战前可以挪动的。更大进攻压低比值项,分散防守压低密度项,后期领土压低进攻方的终局项,所以同一条边界第十分钟的价钱和第四十分钟不一样,一个把便宜领土守在一道昂贵山脊后的防守方,可以通过让进攻方支付溢价,把一支败军变成一支胜军。比值夹取是最咬人的那部分,因为它奖励的是回报最大的习惯改变——用更多兵力强推——多于模型里任何其它输入,而且它是玩家在行动时刻完全可控的唯一输入。
场景:守住山地一侧的高地
现在把防守方放到高地上,让进攻方选择在哪里打。防守方占着一片山地边缘,幅度落在二十到三十的带里,进攻方想要其中一块。在那块山地格上对等时,基础损失是一百二十而非平原的八十,所以进攻方对等时每格损失大约在六十五兵力上下,而同一支进攻在开放地形对等只付四十几——溢价将近百分之五十。移动成本是二十五而非十六点五,所以跨越大约每格花两点九回合而非一点九——慢超过一半。防守方仅仅守住山脊就赢了这条边界,因为进攻方每跨一格都既更血腥又更慢,而防守方在身后便宜格子上的位置以正常速度恢复。防守方不需要任何额外兵力就能赢下这一局;地形替他完成了防御,这正是守高地的全部意义。
现在给那名防守方在山脊格上放一座防御工事。这座工事把基础损失乘五,所以山地的一百二十基础变成六百,对等时进攻方每格损失跳到三百兵力以上。它把基础移动成本也乘三,所以跨越时间进一步三倍。仅一座山地格上的工事就几乎让那格无法被拿下,除非一次大规模、有目的的进攻,进攻方现在必须集结一支数倍于防守军队的兵力,或者把整场战斗绕到防守方也许没守的平原或丘陵侧翼。这正是社区帖子「我怎么阻止他们偷我的领土」所问的形式:答案不是在同一条线上堆更多兵力,而是守住高地、在山脊上放工事、逼进攻方在每一格他扛不动的格子上付账。成本侧是真实的、计进决策的:防御工事不免费,它花金币和建设工具,一座你不打算守的开阔平原上的工事是一次浪费,进攻方轻松绕过它。纪律是把工事只花在你真正要守的山脊上,并去读防御工事与那些乘数,弄清那五倍乘数何时值得、何时只是昂贵的摆设。
防御工事与核辐射:作用在地形上的乘数
地形值是下限,两个效应把它往上乘。一座防御工事——当防守方在被攻格上有一座时——把基础损失乘五、把基础移动成本乘三。这是一个平面、无条件的乘数:它不关心你的兵力规模或比值,它只是把那一格变成血腥五倍、跨越慢三倍。因此一座工事的价值与它所站的地形成比例——平原上的一座把八十基础变成四百,丘陵上的一座把一百变成五百,山地上的一座把一百二十变成六百,所以同一座工事在你想守的地形上最有价值,在你想放弃的地形上最没价值。工事有射程,预设工事是地图数据的一部分,所以在你接敌一条线之前读地图上的工事,和读等级是同一笔地形功课;一条看着像便宜平原、直到你才发现防守方已在山脊上设了工事的线,是一条你还没跨就已经输了的线。
核辐射是第二个乘数,它的方向和表面看起来相反。当被攻格上有核辐射时,引擎用一个核辐射修正系数去乘基础损失和基础移动成本二者,这个系数在核辐射比值从零到一的过程中从五降到三。换句话说:干净、未被辐射的防守方地形对进攻方最贵——基础损失和移动成本各到五分——而重度辐射过的防守方地形把它降回三分之一。辐射削弱防守方,所以一条你刚核爆过的边界,或你自己为了清扫空域而核爆掉的己方侧翼一段,之后就越便宜越快能推进去。这是一个决策反转:同一条线在交战前打更贵、交战后打更便宜,所以一次核爆相对一次计划进攻的时机,比单靠地形等级所能暗示的更大地改变这条边界的价钱。还有一个更微妙的效应玩家会漏掉:因为核辐射乘数同时作用于损失和速度,被辐射的防守方地形不仅更便宜拿下、也更快拿下,所以一次安排在防守方侧翼核爆之后的进攻,可能撕开一条同样进攻放在干净地形上会打死的边界。读你如何给核爆计时,了解这个时机决策的成本侧,因为让边界变便宜的那次核爆,是它的金币成本你真正付得起、且在你需要时付得起的那次。
在第一次进攻前读一张地图
整个模型浓缩成一个习惯:在你接敌一条线之前,把这条线切成你真正会打的那些实际等级,逐一估价。看扩张与目标之间那段,说出它是什么——是一条你能压垮的宽阔平原跨越、一条落着港口和工事的丘陵带、还是一道防守方会守住的山脊?A 寻路权重让这点对你自己的寻路变得具体:引擎把山地格算成它把平原或丘陵那样算的两倍重,所以「短」的那条山路实际上是一条长的,若引擎能把你的扩张绕开就会绕开。把它变成你的优势:朝便宜的一侧扩张,把对手逼到昂贵一侧来打你,他在每一格上付山地代价的同时你守住山脊。这几乎是每一张好地图的开局一手,所以地图本身——不是你的建造顺序、不是你的第一座工厂——是这局游戏的第一笔决策。
还有一个更微妙的第二层读法,它引入了大领土加成。因为进攻方的加成最强,领土更大的玩家在终局获得更便宜更快的进攻,所以守一条防御山脊在开局最有价值,那时领土小、加成也小,随着双方都成长它略微贬值。这不意味着山脊停止计数——地形值和防御工事保值全额——但它意味着一张让你在更大领土上开局的地图,拥有一个地形 alone 无法完全抵销的结构性进攻优势。所以当你选图或读一个开局时,把守住山脊的价值和地图的领土总量相权衡,并规划好你是早点争夺便宜的平原,还是赶在对手筑起大领土进攻优势之前去接敌那条防御山脊。第一次进攻前的实用清单短而具体:说出你刚跨的那条线是什么等级,确认你的兵力大于那条线之前的防守兵力、且比他们的密度更密,查山脊上的工事,记下这条边界此刻是干净还是已被辐射。选择地图的逻辑去读地图战略指南,更大的战斗决策去读陆地战斗指南,因为地形是一条同时带有经济侧线的线的输入。
失败模式与如何反制
最常见的错误是山脊线在对等下打:进攻方投入一支大致等于防守兵力的军队、指望数字取胜,却在每一格上付出百分之五十的血溢价和百分之五十的速度溢价,缓慢失血。反制是比值那一课——要么把进攻翻倍,让每格损失和跨越时间双双下降,要么把战斗挪到基础损失是八十而非一百二十的平原侧翼。第二个错误是忽略密度:进攻方按防守军队的总数校准进攻,却不按他们的每格兵力,所以一次集中的防守让每一格都比按总数估的更血腥,进攻就卡在那段看着便宜的带子上。反制是像看总数一样好地看密度,要么把己方进攻摊到更宽的线上以压低有效比值,要么等防守方散开后再投入那波大进攻。
第三个错误是误判一座防御工事。进攻方干净地推进一条平原线,碰到防守方设了工事的那格,那座工事把八十基础变成四百、把跨越时间三倍,用一座格卡住整个进攻。反制是在接敌前读工事,绕开已设工事的山脊而非直冲,因为那座工事是一个进攻方不凑出庞大兵力就无法压过的固定成本。第四个错误是把进攻放在干净边界上、而不是放在一次核爆之后:进攻方在核辐射修正系数为最高五分时跨越防守方未被辐射的侧翼,随后防守方自己核爆以清扫空域,同一条侧翼变成三分之一侧翼,价钱在战斗中途反转。反制是把你的进攻相对双方的核爆计时,在价钱下降之后跨,而不是之前。战前纪律清单是:实际那条线是什么等级,我的兵力是否明显大于防守兵力、且比他们的密度更密,山脊上有没有工事,这条边界此刻是干净还是已被辐射。若答案凑不成一套,那是一条你该挪开的线,不是一条该硬扛的线,而最强的一手通常是让防守方为地图昂贵的一侧付账、同时你去拿便宜的一侧。
v0.34 改了什么,又保留了什么
v0.34 分支是本文每个数字的版本边界,最重要的改动是攻击模型本身的重做。v0.34 之前,地形更接近「我攻这一格会损失多少」的整个答案;在 v0.34 里,地形值变成输入,而比值、防守密度、大领土加成、叛变减益和无主之路都成了同一算式里的头等项。四种地形等级及其幅度阈值没变:低于十是平原,十到低于二十是丘陵,二十到三十是山地,三十一及以上是不可通行,不可通行幅度固定在三十一。地形值也没变:平原一直有八十基础损失和十六点五移动成本,丘陵一百,山地一百二十,防御工事一直把损失乘五、速度乘三。
新的是这些基础值如今被夹取和缩放,而不是定死的。比值夹取意味着压倒性进攻严格更便宜更快,这改变了每条边界上的最优兵力规模。密度项意味着一次集中的防守比同样总数下分散的更贵,这改变了你怎么读一座密集的首府。大领土加成意味着终局进攻对所有人都更便宜更快,这改变了守一条防御山脊在终局价值几何。对玩家的实际后果是:你从 v0.34 之前熟悉的地形值作为基线依然成立,但最优打法——更大进攻、有意识地为密度计时、把山脊相对大领土优势计时——是新的。若你来自 v0.34 之前,改变大多数对局的唯一调整是停止轻敌、开始压垮边界,因为 v0.34 模型比任何前一版都更奖励大进攻。第二个调整是停止把一条线当成一个数字、开始按等级、密度、工事和核辐射估价,因为这四个输入如今承担了平坦地形值从前独自承担的多数工作。第三个更安静的调整是给战斗计时而不只是放置:因为比值、密度、领土三项都随一局移动,一条你第四十分钟能赢的边界在第十分钟可能是会输的,而读懂这些移动的那个玩家,能守住一条他若试图在另一侧、另一个时刻去拿就会输掉的山脊。
相关内容
依据 OpenFront v34.3 的成本、部队增长、路线回报与停止信号,在 City、Port、Factory、防御和现金储备之间做选择,而不是照抄固定脚本。
- OpenFront 断线队友接管指南:零兵损失吸收失联队友的土地
Team 模式决策指南:队友断线对胜负格局的影响、何时吸收其土地免费、何时是陷阱,以及 30 秒标记与排位 2v2 规则实际改变了什么。
2026年9月23日
- 解盟时机:当 30 秒值得这笔交易时
利用 30 秒叛徒窗口、0.5 防御与 0.8 攻速减益、以及 -100/-40 的关系下滑,判断在 OpenFront v0.34 中该立刻解盟、等联盟自然到期还是续约。
2026年9月30日
- OpenFront 兼并与包围:关闭口袋而不把战线拉崩
学习用小额推进建立外部支点、完成敌方内陆口袋包围,并在占领后保留第二条可回撤路线。
2026年9月4日