跳到正文
Unity · AI工具与游戏开发· 一手来源·· 18 小时前AI 评分28

Ares Interactive 如何在不等待客户端更新的情况下运营实时游戏

How Ares Interactive runs live ops without waiting on client updates

正文

Nov 4, 2026

Adam Axler - Unity

Senior Content Marketing Manager

行尸死亡:Aftermath | Swift Games 工作室 | Ares Interactive

为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

running实时游戏意味着为常量Change而构建。团队需要通过新建的事件、平衡性更新、优惠和内容来保持玩家的参与度,同时保持性能和稳定性。

Ares Interactive 运营着两种截然不同的实时游戏:棒球安打26, 由其第7局Team开发,以及《行尸走肉》的Aftermath,由其Swift Games工作室开发。棒球安打 26 与现实世界的棒球日历紧密相连。行尸走肉:Aftermath 将其实时服务建立在一个 Roguelite 基础之上,该基础可以在不打乱核心循环的情况下进行扩展。

我们与 7th Inning 的工作室头部人 Andre Taube 和 Swift Games Germany 的董事总经理 Carsten Granig 进行了交谈。他们告诉我们他们如何构建实时服务系统、管理远程内容和配置、缩短迭代周期,以及在游戏Continue演进的同时保持移动发布稳定。

棒球安打26支

围绕数据而不是客户端发布构建实时运营

Baseball Hits 26 旨在为棒球迷和游戏玩家提供一种经典棒球体验,无论何时何地,都能轻松上手,无论是短促的爆发还是更长的策略性对战。这种易接近性与现实世界的棒球决策、进度、现场事件、社交俱乐部和通信Features并存。保持这些系统是当前的,意味着将游戏视为一个不断变化的事物,而不是一个仅仅发布过的东西。

例如,如果一名获得MLBPA许可的Player在某场比赛或系列赛中表现出色,该Team可以在接下来的一周内将其展示在现场活动中。

“这种相关性水平得益于我们敏捷、数据驱动的 Server 更新以及我们的实时运营团队快速匹配正确对局的能力,”Taube 说。

该Team构建了自己的后端和实时运营管道,这样它就可以在不等待客户端发布或ServerDeployment的情况下Change事件、存储销售、优惠、奖励和匹配调整。

基础是一个自定义内容分发和远程配置系统,涵盖了超过 50 个配置域,包括玩家、事件、商店物品、奖励框、战斗通行证和其他系统。Team 通过 Admin 面板管理更改。System 在接受更改之前进行验证,服务器在无需重启的情况下几秒钟内就会采纳这些更改。

所有内容都有版本控制和记录。Team可以审查或滚动到Any先前的状态,并且可以在将更改提升到生产环境之前,针对内部测试Accounts进行分阶段部署。

事件日程安排建立ON相同的基础之上。事件、锦标赛和时间促销都有明确的Start和结束Windows。一个细分引擎处理目标定位并支持A/B测试,因此Team可以在更广泛推广之前,用一小部分受众试用新建的优惠或事件形式。

在实践中,这使得Team可以在单一周内运行多达四场事件,例如 Prime Club 和 Tower Club 事件,每个活动都有其自身的奖励玩家和相关的特色优惠。

“拥有整个技术栈在事件中间出现问题时回报最大,”Taube 说。“Team可以在几分钟内,从一个地方完成诊断问题、修复配置、补偿受影响的玩家以及向客户端推送[配置]更新的Alll工作。”

使用 Addressables 简化您的内容管理

保持内容交付和移动发布的可预测性

该Team专门为体育场包使用Addressables。应用中预设了一个默认体育场,所以时间玩游戏的玩家不需要额外Download。该Team将每座Other体育场打包,上传到Team服务Server,Playerayer员选择它时ON需下载。

TeamON最结束Devices上对每个体育场包进行压力测试,以确保其符合严格的大小和内存预算。一个共享的公共包包含在所有体育场中重复使用的 Assets,因此每个 Download 中都不会重复数据。

ON可预测性的强调也适用于 iOS Android 的发布。该Team将指定的平台的代码保持在绝对最低限度,并且两个平台共享重要步骤和提交截止日期。Team 每天创建和测试 Android 和 iOS Builds。

因为大多数内容是数据驱动的,所以实时日历不需要与 App Store 的审核时间紧密耦合。

客户端的设计也基于这样一个假设:每一次 Server 调用都可能失败。

“对于实时游戏来说,默认情况下将每次 Server 调用视为不可靠,”Taube 说。“构建客户端,确保缓慢、掉线或无响应的服务Server永远不会破坏Player体验。”

该原则也适用于设备支持。该Team使用设备模拟器来检查其支持的所有屏幕尺寸和分辨率的UI覆盖范围。Unity Profiler 被广泛用于在游戏玩法中查找性能问题。Team 还在一系列物理 Android 和 iOS Devices 上测试性能回归,包括有 Wi-Fi 和没有 Wi-Fi 的情况。

对于 Taube 来说,移动团队应该尽早确定其设备策略。

“尽早对设备支持制定一个稳健的架构计划,尤其是ONAndroid上,因为硬件和OS版本的碎片化才是真正的风险。”

构建行尸走肉:事后,以便实时系统可以独立演化

棒球安打 26 是根据现实世界的体育日历构建的。行尸走肉:Aftermath 有一个不同的实时服务挑战:在不破坏其底层 Roguelite 体验的情况下增加新的玩法。

这款动作角色扮演类Roguelite将玩家置于行尸走肉的世界中。他们生成由瑞克·格莱姆斯、达里尔·迪克森和米歇恩等幸存者组成的队伍,并在实时战斗中与大量的行尸和其他敌人作战。在每次运行之间,玩家解锁幸存者和齿轮,关卡它们,解锁技能并生成他们的底部。

“从本质上讲,我们想创造出一些能够捕捉到行尸走肉的持续危险和艰难抉择,同时提供您期望的Roguelite的重玩性和进度,”Granig说。

实时服务ON此基础上增加了挑战和约束,Plus联盟、合作事件和Leaderboards榜等社交系统。

从Development角度来看,我们构建了这款游戏,以便这些系统可以独立演进。这使我们能够在不打乱核心RogueliteLoop的情况下Continue扩展实时体验。

行尸死亡:余波

将第十个实时功能做到像第一个一样便宜发布

Swift Games 没有从头开始重新构建其实时服务基础。它从其之前的实时标题 Heroes vs Hordes 开始。存储、Economy、Authentication、Analytics、远程配置和云保存系统被视为成熟技术,而新的Roguelite核心是单独原型设计后,再合并到该基础上的。

任何预期每周Change的都设计为无需客户发布即可Change。设计师在电子表格中编写内容和平衡,然后将它们作为远程捆绑包Publish,每个捆绑包都带有其支持的客户端版本印章。

数据保存是使用迁移链进行版本控制的,因此实时更新永远不会使长期玩家孤立。时间来自服务Server而不是设备,因为事件和定时优惠依赖ON它。

权衡是,实时功能不仅需要设计成可以切换开启,还需要设计成可以安全地切换关闭。

“这就是让第十个实时功能和第一个一样便宜的秘诀,”Granig说。

该游戏主要使用GameObjects和NVIDIA PhysX。Entities 和 Burst 是用于移动敌人的 A* Pathfinding System 的保留项。

对Development来说,更重要的是作用域依赖关系注入。该游戏有四个嵌套的上下文:根、保存游戏、主屏幕和游戏玩法。每个上下文都对其所创建的内容和清理工作负责。

这意味着一个现场事件可以被构建为一个安装程序Plus一个连接到上下文的配置文件。When该上下文关闭时,其Assets和订阅也会随之GO。

Team 也将 UI 与逻辑分离。商店或优惠可以作为一个纯粹的 C# 类存在,可以在不启动引擎的情况下进行测试,而设计师则直接使用配置Assets。

在实时数据和游戏资产之间划清界限

在行尸走肉:Aftermath,Addressables 管理内存和加载,而不是远程内容交付。二十九个组应于单个Features,它们加载和卸载的方式与游戏的情境非常相似。

实时内容遵循一个直接基于 AssetBundles API 构建的独立管道,而不是 Addressables。包是针对每个平台构建的,然后上传,并在游戏运行时被获取。每个都包含一个哈希、一个校验和和最旧的兼容客户端版本。

Team的Rule很Simple:如果设计师想每周都更Change它,那就应该放在一个包里。如果是艺术或代码,它就属于生成。

在那个边界内,Team 仍然可以移动事件、重新平衡奖励、调整优惠、切换功能或购买行为的 ON/OFF,并运行 A/B 测试,而无需返回商店。新建的艺术和新建的代码需要生成。

“我们故意设置了那个界限,这样实时表面就足够小,When出现问题时,我们就能确定是什么改变了,”Granig说。

视觉多样性也遵循一个类似受控的方法。竞技场是手工建造的,而不是程序生成的。Team 不再复制环境,而是通过现有几何体上的材质、照明和着色器来改变其外观。该System由大约 35 个着着色器图和 10 个手写着着色器make。

“因为这些竞技场是手工建造的,我们可以帐户到Player可能看到的一切并测量All这些,而不是进行采样和祈祷。”

行尸死亡:Aftermath | Swift Games 工作室 | Ares Interactive

行尸死亡:Aftermath | Swift Games 工作室 | Ares Interactive

缩短从电子表格到实时游戏的路径

Team 的实时运营速度很大程度上来自于工具。

设计师自己编辑配置。内部导入器直接从电子表格中拉取章节、文本和奖励表,并且电子表格保持为事实音频源。

结果:如果Team发现一个线上运营或平衡性问题,它可以在大约15分钟内推送一个修复,而不是经过完整的发布流程。

构建管线也旨在缩短迭代时间。深度性能分析是一个版本切换而不是一个专门的分支,因此当开发人员怀疑出现回归时,他们可以请求他们正在处理的任何内容的性能分析版本。优化缓存和生成时间也有助ONTeam手柄其每天产生的数量构建。

因为 UI 每周都会有变动,所以 Team 依赖设备模拟器来检查不同屏幕形状的刘海和安全区域。它不能替换物理设备测试,但可以更早地发现Layout问题。

最困难的运营问题来自于Development环境和生产环境的分离。Firebase 配置被已烘焙入到生成文件中,并且 Firebase、播放 Services 密钥、Facebook 配置、包 ID、名称和图标All必须Match。

该Team最终将这些环境的责任转移到了Continuous集成(CI)中。Development和发布构建使用不同的包 ID、名称和图标,这样它们就可以ON同一设备上共存。如果Development Build连接到实时Server,则会出现游戏内Warning。When缺失配置时,上传会失败,而不是静默地针对错误的Environment。

格兰尼格说:“我们把责任转移到了 CI 中,而不是让它落在个人身上。”

棒球安打 26 | 第七局 | Ares Interactive

棒球安打 26 | 第七局 | Ares Interactive

从小处开始,尽早测试

两支队伍从不同方向得出了相同的Lesson:可持续的生命发展取决于尽早决定什么需要改变,将其与什么应该保持稳定隔离开来,并构建假设最终会出错的系统。

对于Baseball Hits 26,这意味着一个数据驱动的后端,它可以快速响应真实的棒球赛季,同时防止客户端发布、Devices 和 Server 故障中断播放。

对于行尸走肉:Aftermath,这意味着模块化实时系统、严格控制的配置和明确的边界:内容可以远程Change,而代码和艺术品在生成时就固定了。

Granig 对接近其第一个实机移动游戏(live mobile game)的团队的建议是,在围绕其构建实时服务机制之前,先证明核心体验。

准备一到三天的内容,并在开始做任何其他事情之前发布它。然后看看Next天有多少玩家回来。他解释说,如果他们不返回,任何后期内容的增加都无法挽救它。

那么再做一次。添加内容,查看第三天,然后重复。从小处Start,尽早测试,让数据告诉你游戏是否奏效。难的部分是拒绝你想要生成的每一件事,直到核心Loop被证明有效。

尝试 Unity 6.7 Beta 中的新建Features

来源:Unity · AI工具与游戏开发 · unity.com