先自我介绍:ETS2 老玩家,白天跑长途、晚上写代码的那种。今天官宣一个一直在憋的项目:AnyRoad MP,基于《欧洲卡车模拟 2》的持续在线联机世界。文章有点长,但每一块都配了真实运行画面和数字,欢迎鉴定。
想做一个什么东西
玩 ETS2 想联机,现在的选择基本是:
- TruckersMP:老牌,稳,但本质是“位置转发器”。天气和时间每个人自己一套,全服没有共享的世界状态,AI 交通干脆关掉。对中文玩家来说,注册、社区、客服全是英文,延迟也不友好。
- 官方 Convoy:好友小局,8 人上限,撑不起“世界”。
我想要的是一个活的欧洲:整个服共享同一条天气时间线,锋面会移动。你在暴雨区跑货,300 公里外的队友在大太阳底下堵车;出了事故全服都知道;NPC 交通也由服务器统一模拟。设计上限是单世界一万人同服(架构目标,不做承诺),中文原生。
方向讲完了,下面是今天的主角:这个项目的四块地基已经全部跑起来了。
地基一:服务端,世界内核与广播分发
自研二进制协议(UDP) + 按区域划分的兴趣管理:每个玩家只收到自己周围的世界状态,这是万人同服的前提。已经过压力验证:
- 5,000 个机器人客户端 @ 15Hz 上报,服务端 20Hz tick;
- 广播扇出延迟 p99 = 24ms,服务端内存占用 ~20MB;
- 机器人不是乱跑的,它们沿真实车流录制的车道轨迹行驶,用来验证真实路况下的同步。
地基二:遥测管道,你的真卡车上服务器
基于 SCS 官方遥测 SDK(只读):游戏里的位置、车速、朝向实时上传服务端,再经上面的广播分发到附近玩家。这就是“看见别人”的数据来源,链路实测亚秒级。
地基三:游戏内多玩家实时渲染,看见别人的卡车
这是最难、也是最近才打通的一块:
- 别人的卡车是真引擎实体,不是浮在画面上的贴图:参与光照、有影子、会出现在你的后视镜里;
- 完整卡车 + 挂车:车架、驾驶室、轮胎轮毂、灯光配件全套(一辆车 60+ 个部件);轮子按车速滚动,挂车按真实牵引几何过弯追随;
- 多车同场实测(4 辆 × 70 部件)零崩溃;网络快照 120ms 延迟插值,平滑不瞬移;
- 每辆车是车主的:车辆外观经服务器同步,对方换了涂装,你看到的就是他换的那台;
- 别人用你没买的 DLC 车,你也能看见:客户端按需加载对方的车型。
图 1 · 远端玩家的卡车牵引三轴挂车
图 2 · 红色涂装与罐式挂车
图 3 · DLC 车按需加载(DAF)
图 4 · 挂车三轴轮组特写,轮子是会转的
地基四:网页实时地图 + launcher,不开游戏也在世界里
- 网页实时地图:卡车、天气图层实时刷新(实测 10fps、延迟 <0.6s),不开游戏也能围观这个世界。还有一个“调度台”观察位的雏形,这是我们“不开车也能玩”方向的第一步。
- launcher:玩家入口。一键启动进世界,界面零技术术语;服务器状态、公告、自动更新、排障诊断包都在里面。
图 5 · 网页实时地图
图 6 · launcher 主界面
这事怎么做的
开发节奏就是小步快跑:每天一篇开发日志,每一步都要有能跑的画面或数字才算数。最难的一段是引擎侧:ETS2 的引擎没有公开接口,为了让别人的卡车以“真引擎实体”出现在世界里,前后写了二十多个侦察版本去摸清渲染管线,才让第一辆“幽灵卡车”落地,就是上面的截图。
接下来的路线
四块地基之上,到“能玩”还有四道门,按顺序过:
- 双真人实测:两个真人、两台机器,互相看见对方开车,稳定跑住。这是“联机”二字真正成立的时刻。
- 安全与账号:车辆数据接口加令牌校验、服务端防瞬移/防作弊、基于 Steam 正版验证的账号体系。
- 正式分发:launcher 打包、自动更新、官方服务器列表。这块我们专门造了一套机制,游戏版本更新后,适配不需要玩家重新下载。
- 小范围内测:第一批司机上路,几十人规模先跑起来。
每过一道门,都会在这里发一篇进度。顺序透明,但不给日期:过门的标准是质量,不是日历。
必须说清楚的事
- 还没开测。没有下载,没有测试资格,进度以上面四道门为准。
- 还缺的:双真人联机实测、贴图涂装同步、账号系统、防作弊。都在路上。
- AnyRoad MP 是社区项目,与 SCS Software 无关联、未获其背书。届时必须持有正版 Steam 版 ETS2,不支持盗版;永久免费,没有付费功能。
开弓没有回头箭。这不是玩票的项目,它会一直做到你能下载它、开上它、在暴雨里和别人会车的那天。