各位朋友们!
尽管社区里的人们分布在各个引擎中,但我仍然希望得到您的反馈,因为它对于改进我的产品和解决我们的日常工作中的实际问题是非常有用的。假设这个插件也适用于您的引擎,那么下面这项内容缺失了什么?我也在思考是否应该将其移植到Unity,所以任何反馈都是欢迎的。
30天前,我发布了Inventory_X,一个不依赖于UI的背后库存引擎——您的UI,您的规则。它处理数据、逻辑和网络在背后,并且您可以将其连接到您想要的界面。社区的反馈非常鼓舞人心,所以我又回来了,带来了第二个重大更新。
v1.2 解决的问题
当您的项目位于库存中时,下一个头痛是改变它们里的数据:消耗弹药、损坏耐用性、应用条件或状态。如果您希望它对玩家来说是实时的,并且是防止欺骗的,那么您通常会自己编写RPC、自己的验证和自己的回滚——这是一个脆弱、网络密集的代码片段,需要每次重写。
v1.2带来了 分片变异流水线,让您可以获得所有这些功能:预测、复制和服务器认证。
它包含:
本地预测与自动回滚 — 变异感知立即本地化,并且在服务器不同意时静默地进行了回滚。没有丢帧,没有手写回滚。
您决定什么被预测 — 预测是每个变异的选择(自动/不预测/服务器仅);在自动模式下,分片的策略决定了什么是安全的。确定性的动作如射击和重载被预测;您想保持严格的任何事物都会进行一次干净的服务器回合。您的规则,而不是一个全局开关。
服务器认证反欺骗 — 所有变异逻辑都在服务器上,拒绝默认。一个发送者发送“重载弹药(99999)”将被策略拒绝;客户端任意写入将在门口被拒绝。
可扩展动词注册表 — 注册您自己的变异类型(例如“转移费用”或一个自定义状态效果)从项目设置。无需重新编译插件,无需引擎更改;设计师可以添加一个动词并在蓝图中编写规则。
带来您自己的数据类型 —弹药、耐用性和条件都内置,但您可以编写自己的(重量、热量、费用、魔力…)作为蓝图结构,注册它在项目设置中,整个流水线——预测、复制、反欺骗、事件——都将自动工作。无需插件编辑,无需C++。
设计师友好 — 类型的蓝图节点(获取/修改/应用变异)让您永远不会手动操作 FInstancedStruct,并且一个无代码数据驱动的策略让您可以添加/减少/设置/限制规则。新的类型的改变事件驱动您想要的任何HUD —— 仍然UI-agnostic。
可扩展 — 零堆分配在热路径上(一把武器在60Hz时分配了零)。在100个客户端中,每个客户端预测10次弹药消耗/秒(每6帧一次),服务器延迟95%为 0.64 ms,并且由205个自动化测试支持。
这是一个完全 累加 的更新 —— 无破坏性更改,无资产迁移,现有项目保持编译不变。
引擎: UE 5.3 / 5.4 / 5.5 / 5.6 / 5.7
在UE版本5.3和5.4中,由于引擎问题,每个变异都有一个32字节的分配。下一个补丁中我将尝试修复它。对于UE版本5.1和5.2的更新将在未来几周内发布,因为在这些版本中这个问题更为严重。
如常,我真诚地希望得到您的反馈,这个更新是从思考实际痛点开始的,所以我想知道它是否与您的痛点相符。您希望这个流水线下一步要做什么?
评论 (0)