返回博客

物品系统、聊天和回合制对战:horizOn 史上最重大的功能更新周

发布于 2026年10月29日
物品系统、聊天和回合制对战:horizOn 史上最重大的功能更新周 借助 AI 生成

概要

horizOn 现已推出物品系统、玩家数值、成就、好友、群组、聊天和回合制对战,Unity、Godot 和 Unreal SDK 全部更新。

物品系统、聊天和回合制对战:horizOn 史上最重大的功能更新周

每一款在线游戏迟早都需要同样的几个系统。一个存放玩家所拥有物品的地方。一种不会因为网络故障而被复制的货币。只能领取一次的成就。好友列表、聊天功能,也许还有和午休时间玩游戏的人进行对战。每一个都是一个小项目,加在一起可能要花费数月的开发时间,而游戏本身却没有任何改进。

本周 horizOn 在这些功能清单上迈出了一大步。Server 1.73 和 Dashboard 1.111 带来了完整的经济和社交功能,Unity、Godot 和 Unreal SDK 都发布了新版本来使用这些功能。以下是 10 月 22 日至 10 月 28 日期间发布的内容。

游戏的服务端经济系统

新的经济功能涵盖了游戏中那些出错会真正损害信任的部分:玩家拥有什么、赚取什么和消费什么。

  • 物品和背包。 在 dashboard 中定义物品目录,让玩家持有、购买和使用物品。物品基础数据是共享的,每个实例只存储使其不同的部分,这使得背包保持紧凑。
  • Player values。 余额,比如金币、宝石或能量,以及将一种数值兑换为另一种的交易。
  • 成就。 进度、解锁和奖励。奖励通过 Player Inbox 发放,所以即使游戏在错误的时刻关闭也不会丢失。
  • 玩家统计。 计数器,比如对战场次或击败敌人数,原子性更新,可在 dashboard 中配置。
  • 带数值奖励的礼品码。 礼品码现在可以直接授予 player values,服务器拥有整个兑换过程的控制权。

为什么「原子性」在这里很重要

如果你自己构建经济系统,困难的部分不是存储一个数字。而是当请求中途失败时会发生什么。玩家点击「购买」,金币被扣除,连接断开,物品永远不会到达。或者客户端重试,奖励被支付两次。在上线后修复这个问题意味着客服工单、手动退款,以及玩家不再相信屏幕上的数字。

在 horizOn 中,购买、奖励领取和数值变更要么完全完成,要么完全不完成。SDK 保留操作的原始意图,所以连接丢失后的重试会完成同一操作,而不是开始一个新操作。

构建首个经济系统的最佳实践

  1. 从一种货币和少量物品开始。 小型目录更容易平衡和测试。
  2. 永远不要让客户端处理余额。 让服务器更改数值,将客户端视为显示器。
  3. 有意测试失败路径。 在购买过程中杀掉游戏,检查结果要么完整,要么未触及。
  4. 使用 dashboard 工作台。 当有人报告问题时,你可以在一个关联的玩家记录中检查玩家的数值、物品和成就。

好友、群组、聊天和回合制对战

社交功能在同一版本中到来。

  • 好友。 好友请求、关系和公开玩家查找,例如通过好友码。
  • 群组。 公会、战队或团队,具有成员和管理功能。
  • 聊天。 托管聊天,带有消息回执。历史记录保存在玩家设备上,dashboard 包含审核视图,所以当对话出现问题时你可以介入。
  • 对战。 异步回合制对战。玩家进行他们的回合,关闭游戏,稍后再回来。排位赛可以在中断后恢复。

回合制玩法适用于大量游戏:卡牌和棋盘游戏、解谜对战、策略游戏,以及任何人们一次玩几分钟的游戏。通信通过 WebSocket 连接运行,玩家在轮到他们时会收到通知。

与玩家进行交易、赠送和消息传递

另外三个功能将玩家彼此连接起来,也将你与玩家连接起来。

  • Marketplace。 玩家可以列出和交易物品。物品在交易期间被安全持有,如果交易失败则退还。之前对每个玩家收据数量的限制已被移除。
  • Player Inbox。 向所有玩家广播通知或发放玩家自己领取的奖励。Dashboard 具有受保护的广播视图和支持工具。
  • Shared Objects。 多个玩家一起处理的数据,带有修订检查,所以同时进行的两次更改不会互相覆盖。

Unity、Godot 和 Unreal 的新版本

所有三个引擎 SDK 都支持新功能:

  • Unity SDK 1.12 为物品、player values、成就、好友、群组、聊天、对战、marketplace、inbox 和 shared objects 添加了管理器,带有可以立即运行的示例。
  • Godot SDK 1.11 在 GDScript 中添加了相同的功能集,包括会话安全管理器和示例场景。
  • Unreal SDK 1.10 带来了类型化的 C++ 客户端和 Blueprint 节点。后续版本 1.10.3 使插件在 UE 5.6 及更新版本上加载时不会出现不兼容插件提示,将 Import Config 保存到 DefaultGame.ini,并修复独立构建的打包。

如果你使用 AI 编码助手,MCP Server 1.9 将新功能作为工具公开,从物品系统和对战到群组、inbox 和聊天审核。你的助手可以查找功能的工作方式,而不是猜测。

将项目迁移到你自己的服务器

一些团队从 horizOn Cloud 开始,后来希望自己运行后端。这一迁移刚刚变得简单得多。Dashboard 1.114 和 Server 1.75 让你可以将项目内容作为一个文件下载,而 Simple Server 1.6 可以导入它。

Simple Server 1.5 本周也获得了新功能,支持 SQLite 和 MySQL 的物品、player values、成就、统计、好友、群组、对战、marketplace、inbox 和 shared objects。聊天仍然保留给 horizOn Cloud。

其他改进

  • 访客登录。 匿名登录的默认限制现在是每个 IP 和项目 120 次,并且限制可以配置。
  • 性能和稳定性。 Server 1.75 每个请求使用更少的数据库和后端 CPU,读取和事务在数据库故障转移后可以干净地恢复。
  • 定价页面。 完整的计划比较更易于阅读,无需账户即可从主页访问。
  • 游戏活动。 顶部导航的关于组中增加了一个新的游戏活动合作伙伴页面。

如果你错过了上周的更新,关于免费计划邮箱和新注册的综述涵盖了这些内容。

在 Discord 上更快获取更新

本文总结了本周的内容。如果你想在发布的那一刻听到消息,加入 horizOn Discord 服务器。新版本在那里实时显示,通常比每周综述早几天,这是向我们提问或告诉我们你接下来需要什么的最快方式。

选择一个新功能,在测试项目中试用,并告诉我们结果如何。你可以在 Discord 上回复或在 GitHub 上提交 issue。完整的更改列表在 horizOn changelog 上。