- 主题
- 回帖
- 0
- 精华
- 注册时间
- 2009-9-3
- 最后登录
- 1970-1-1
- 在线时间
- 小时
- 爆棚声望
-
- PGB
-
|
本帖最后由 darbra 于 2026-11-12 08:56 编辑
------------------------------------------------------------------------------------------------------------------------
注意:这是用ai对fm2010的比赛引擎进行了逆向分析,后续对fm2027等进行分析,先试试水
------------------------------------------------------------------------------------------------------------------------
先说结论:引擎里没有一个叫"主场加成"的开关,主客差距是三件事叠起来的。按影响从大到小:
1. 球迷人数:直接改球员的能力(最大)
2. 电脑对比赛的"预期":主队被高估,客队被低估(中等)
3. 裁判和边裁被球迷带偏(很小,可以忽略)
说明:我是对游戏程序做静态分析得出的,没有在游戏里批量跑几千场验证,所以数字是"按公式算出来的",不是实测胜率。
━━━━━━━━━━━━━━
【一、最大的原因:球迷占比直接改球员能力】
━━━━━━━━━━━━━━
每个球员开赛前,引擎都会给他算一个"气氛值"。算法大致是:
· 先看"支持我这边的球迷"占全场观众的百分比
· 再加一点点球员自己的心理素质、球队近期同场地战绩
· 再加一点随机数
· 球场越大、上座率越高,这个气氛值的影响就放大得越多,最多放大 2 倍
气氛值高的球员,一批属性会被临时加成。气氛值低的球员,这批属性会被临时扣除。这个修正在开赛前就算好了。
会被改的属性(共 22 个场上球员属性 + 5 个门将属性):
Crossing 传中、Dribbling 盘带、Finishing 射门、Heading 头球、Long Shots 远射、Passing 传球、Penalty Taking 点球、Tackling 抢断、First Touch 停球、Technique 技术、Corners 角球、Free Kick Taking 任意球、Long Throws 长界外球、Marking 盯人、Off The Ball 无球跑动、Creativity 创造力、Anticipation 预判、Decisions 决断、Positioning 站位、Composure 镇定、Concentration 专注、Agility 灵活性;以及门将的 Handling 手控球、Kicking 开球、Throwing 手抛球、One On Ones 一对一、Reflexes 反应。
我在代码里没看到球迷加成的:
Pace 速度、Acceleration 爆发力、Strength 力量、Stamina 耐力、Jumping 弹跳、Balance 平衡、Aggression 侵略性、Bravery 勇敢、Determination 意志力、Flair 天赋、Teamwork 团队合作、Work Rate 工作投入、Natural Fitness 天生体质。
也就是说,球迷影响的是"技术和脑子"(包括各种定位球),不影响"腿和肺",也不影响性格类属性。
几个关键规律:
· 看的是"球迷占比",不是"主队/客队"这个标签。如果中立场双方球迷各占一半,两边修正一样,没有差距。
· 球迷占比低于大约三分之一,修正就变成扣分。客队球迷通常只有几个百分点,所以基本是扣分。
· 球场越大、越满,主队加得越多,客队扣得也越多。
· 有一个保护机制:被电脑看好、心理素质高、状态好的球员,客场的扣分会大幅缩水。但客场时电脑会把你的球队预期调低,所以你更难享受这个保护。
具体幅度(引擎内部 0~100 刻度,大致按 FM 的 1~20 属性乘 5 折算):
· 主队球员:约 +5 到 +11,折算成 1~20 刻度约 +1 到 +2
· 客队球员:约 -2 到 -5,折算成 1~20 刻度约 -0.5 到 -1
· 主客之间的差距:约 7 到 16 点,折算后约 1.5 到 3 个属性点
· 这是对全队所有球员、所有上面那些属性同时生效
━━━━━━━━━━━━━━
【二、第二个原因:电脑给主队"高预期",给客队"低预期"】
━━━━━━━━━━━━━━
引擎会给每支球队打一个"预期结果档位",范围从 -4(必输)到 +4(必赢)。
· 两支实力差不多的球队,主队大约是 +1 档,客队大约是 -1 档,相当于差 2 档
· 主队档位最高限制 +2,客队最高只能 +1。就算客队实力强很多,也很难被评为"大热门"
· 实力强的客队,优势差值还会先被砍掉一半,再扣掉对手的主场加成
· 对手是主队、自己又不被看好时,客队的战术评分还会再扣一小截
这个档位会影响:
· 球队踢得多进攻
· 比分到什么程度算"满意"
· 什么时候该冒险压上,什么时候该收缩
· 球员做射门和冒险决定时的门槛
通俗说:主队更敢压上、更敢冒险;客队更容易"拿到平局就守",更保守。
这个档位对人控球队也有效,因为它会进入球员层面的决策。
注意:档位具体怎么影响战术,是我根据条件判断推出来的,没有逐条验证。
━━━━━━━━━━━━━━
【三、第三个原因:裁判和边裁(很小)】
━━━━━━━━━━━━━━
球迷多的一方,裁判偶尔会"手松一点",球迷少的一方会被"手紧一点"。主要表现在:
· 犯规的严重程度
· 黄牌、红牌、点球的倾向
· 越位线的判定
但触发概率很低。大部分裁判每次判罚只有大约 1%~10% 的机会受影响,触发时偏差也只有一点点。所以裁判不是"客场难踢"的主因。
━━━━━━━━━━━━━━
【四、实例:曼联 vs 切尔西,主客场差多少?】
━━━━━━━━━━━━━━
先说明假设条件,这些数字是示意用的,不是游戏真实数据库的值:
· 老特拉福德:满座约 75,000 人,客队球迷约 3,000 人(占 4%)
· 斯坦福桥:满座约 41,800 人,客队球迷约 3,000 人(占 7%)
· 两队声望相近,曼联略高
· 球员心理素质取中等水平
· 游戏里客队实际带多少球迷,是赛程和球场数据决定的,我没有追溯,这里是假设
■ 场景一:曼联主场 vs 切尔西(老特拉福德)
· 曼联球员:受影响属性约 +11(折算约 +2.2 个属性点)
· 切尔西球员:约 -5(约 -1 个点)
· 如果是被看好、心理强的球员,扣分缩到约 -2(约 -0.4 个点)
· 双方差距:约 13~16(折算约 2.6~3.2 个点)
· 预期档位:曼联约 +1,切尔西约 -1
· 效果:曼联压上、敢冒险;切尔西更保守,拿到平局就想守
举个例子,射门 16 的前锋:
· 在曼联阵中,实际表现接近 18
· 在切尔西阵中,实际表现接近 15
■ 场景二:切尔西主场 vs 曼联(斯坦福桥)
· 切尔西球员:约 +9(约 +1.8 个点)
· 曼联球员:约 -4(约 -0.8 个点)
· 如果是被看好、心理强的曼联球员,扣分基本归零
· 双方差距:约 9~13(折算约 1.8~2.6 个点)
· 预期档位:两队声望接近时,切尔西的主场加成大致抵消了曼联的声望优势,两边都在 0 档附近。这里受联赛数据等因素影响,只能当粗略估计
■ 同一支曼联,主客场对比
· 在老特拉福德:受影响属性 +11
· 在斯坦福桥:受影响属性 -4
· 同一批球员,主客场之间差约 15 点,折算约 3 个属性点
这相当于,曼联在老特拉福德像换了一批技术更好的球员,到斯坦福桥又像换成了一批更差的。
实战里你会看到的现象:
· 客场前锋的射门更容易打偏
· 客场传球、停球失误更多
· 客场抢断、盯人更容易慢半拍
· 客场球员更容易慌,Composure 镇定和 Decisions 决断也被压低
━━━━━━━━━━━━━━
【五、给玩家的几点建议】
━━━━━━━━━━━━━━
下面是我根据代码的推论,没有大样本验证,仅供参考:
1. 客场少依赖精细配合和远射。传球、射门、停球这类技术动作整体被扣分。
2. 客场多利用速度、力量、体能。Pace、Acceleration、Strength、Stamina、Jumping、Balance 这几项没有球迷修正,客场依然是满值。
3. 定位球在客场同样会被扣分。角球、任意球、点球、长界外球的属性都会被球迷修正影响,客场别指望靠定位球找补(反过来,主场这几项是加分的)。
4. 客场尽量用心理素质好、状态好的球员,他们受到的客场惩罚更小。
5. 球队被电脑评为"热门"时,客场惩罚会缩水。提高球队声望和近期战绩,对客场有帮助。
6. 别指望靠换战术完全抵消。球员的能力被改了,再好的战术也只能缓解。
━━━━━━━━━━━━━━
【六、给技术党的补充】
━━━━━━━━━━━━━━
· 比赛引擎版本号是 839
· 球迷修正在 sub_14BFD80 里计算,球员的 +4120 字段 = 75 - 2×支持度,再除以球场放大系数
· 在 sub_14ED750 里按 `+4120 × 50 / -100` 加到属性上,常量 50 来自 sub_158B6F0(match+741620)
· 预期档位在 sub_1489670
· 裁判偏向在 sub_15136A0、sub_1513BE0,越位判罚在 sub_14D6820
· 属性名已按引擎内部编号核对(sub_14270E0 和 sub_E471C0 两张表)。注意:网上常见的"编号-属性名"对照表用的是存档数据里的字节位置,不是引擎编号。存档属性块的第 0 字节是保留字节(几乎全为 0),所以对照表的编号 = 引擎编号 + 1,直接套用会把属性名对错。
· 显示表里没有名字的引擎编号也核对过:50 左脚、51 右脚、67 肮脏(Dirtiness)、70 稳定(Consistency)、73 大赛(Important Matches)、74 受伤倾向(Injury Proneness)、75 多面性(Versatility)。其中 50、51、67、75 在引擎代码里有明确用法,70 与 73 的先后顺序和 74 主要靠存档数据与习惯顺序推断,把握略低一些。
局限:我没有追溯客队球迷人数是怎么算出来的,也没有确认 AI 战术参数的具体方向。如果有人想验证,可以把客队球迷数改成和主队相同,再批量模拟对比胜率。如果差距消失,就证明球迷占比是主因。
基于crushw网友提供的支持进行了更新 |
|