用于实时多人游戏罐的低节点子网

大师晚8点热度: 3679

这是一个治理动议提案,描述了一个使用罐子有效运行实时游戏服务器的解决方案。PLETHORA团队提议,NNS应该在世界的某些地区创建低节点子网,专门用于实时多人游戏罐和其他低延迟的应用程序。这些子网将由1个节点或4个节点组成,而不是通常的13个节点的应用子网。

日期:2023-05-05, 08:22:21 UTC

摘要

我是谁                                                                                                                                            

我们是PLETHORA(@PlethoraGame),一个完全链上的数字游戏社会,通过智能合约技术的无许可魔法,可组合的社会互动可以蓬勃发展。

PLETHORA的联合创始人汤米正在提交这份提案。你可以通过他的推特验证: @tommyinvests

目的                                                                                                                                                

这是一个治理动议提案,描述了一个使用罐子有效运行实时游戏服务器的解决方案。PLETHORA团队提议,NNS应该在世界的某些地区创建低节点子网,专门用于实时多人游戏罐和其他低延迟的应用程序。这些子网将由1个节点或4个节点组成,而不是通常的13个节点的应用子网。

当成千上万的链上游戏利用相同的智能合约标准时,可组合性的力量将被释放出来。我们相信这是朝此方向迈出的第一步。

这是一个不会直接导致对IC改变的动议提案。相反,投票支持该提案表明应该开始创建地理定位的低节点子网的工作。如果提案通过,那么我们将与DFINITY和其他各方合作创建1节点或4节点的子网。

背景介绍                                                                                                                                        

为了让多人游戏有实时的玩家移动,有必要用服务器来记录每个玩家的定位。数据需要经常更新以防止玩家的滞后。在大多数网络游戏中,这需要一个<100ms的ping。

PLETHORA专注于建立100%的链上游戏,这意味着我们已经在一个罐子里建立了一个实时多人服务器。

并且我们做了一个视频向大家展示。

在这个视频中:

每隔300ms每个玩家就会向罐子更新他们在世界中的位置,

每隔25ms每个玩家向罐子查询世界上其他玩家的位置。

然后,我们估计动画状态并使用平滑技术来渲染人物在三维世界中的奔跑/跳跃。

以下是视频演示的链接:

https://youtu.be/FhBDi-mLMKs

然而,我们遇到了两个主要问题:

  1. 罐子有>2000ms的ping,是因为罐子的状态变化必须通过共识。一个子网中的节点越多,达成共识的时间就越长。这对实时多人游戏来说是一个可怕的滞后。

  2. 每个玩家每秒要发送两个罐子的更新调用来记录玩家的位置。这种巨大的呼叫量花费了大量的周期。一个子网中的节点越多,更新调用就越昂贵。

通过降低子网中的节点数量,我们可以减少运行实时多人游戏罐的延迟和成本。

我们想提出的另一个考虑因素是创建低节点子网,将节点分组在世界的不同区域。我们建议专门在北美、欧洲和亚洲创建低节点子网。因此,我们可以将西方的玩家路由到北美/欧洲子网,将我们的东方玩家路由到亚洲子网。这将导致从游戏客户端到子网的延迟大大降低,同时也降低了子网节点之间沟通共识的延迟。

但这些子网的安全性如何呢?

在第一次迭代中,PLETHORA的游戏中的运动将是客户端授权的,这意味着它纯粹是为了视觉目的。由于这个原因,子网可能被两个串通的节点所颠覆不是一个主要考虑的问题。没有动机这样做,是因为多人游戏的运动没有与之相关的重要游戏逻辑。对于这个第一阶段,我们认为北美、欧洲和亚洲的1个节点子网已经足够了。

在未来,我们可能会增加智能合约规则,强制执行运动限制。因此,我们可以有智能合约授权的移动,玩家可以根据他们在一个世界中的位置得到智能合约逻辑的奖励。在那个时候,子网的安全可能会成为一个更大的问题。在这个阶段,我们认为北美、欧洲和亚洲的4个节点子网是足够的。

我们设计了完全在链上的游戏来平衡安全和延迟。高价值的游戏/玩家数据被存储在安全的13个节点子网上。13个节点子网中的游戏罐子可以查询低节点子网中的罐子,以读取数据并做出决定。

为什么这很重要                                                                                                                            

游戏将是加密货币的下一个主要用例,游戏经济将最终超越整个国家的经济。我们坚信,为了建立能够上升到这种规模的游戏,一切都需要完全在链上。当一个游戏完全由智能合约执行时,它为人类提供了最大的机会来改善我们的互动方式并为彼此创造价值。

当我们说100%在链上时,我们是认真的。这包括实时的多人游戏服务器。严格遵守这一严格的标准将使可组合性达到前所未有的程度,并使游戏能够通过SNS进行DAO管理。

没有其他区块链可以运行一个复杂的游戏,其巨大的逻辑和数据100%在链上执行和存储。我们需要向世界展示互联网计算机能够完成的事情。

我们对社区的要求                                                                                                                          

在这个主题中提供对该提案的反馈。

对NNS动议投接受或拒绝票。

随着动议的推进,参与技术讨论。

额外周期成本的计算                                                                                                                      

让我们计算一下切换到4节点子网的成本节约。这些只是估计,实际数额将取决于在入口信息中发送多少字节。

如果我们每秒为每个玩家发送2个更新调用,那么每小时大约有7.2K个更新调用。

在一个13个节点的子网中,7.2K个带有位置/旋转/刻度/动画数据的更新调用大约需要19B个周期。

让我们假设在一个13个节点的子网中,24小时内有10,000名同时在线的玩家。

在一个13个节点的子网中,这将花费大约3400T周期。大约每天4530美元或每月13.6万美元。

如果我们对一个4个节点的子网做同样的计算,将花费大约1046T周期。大约每天1415美元或每月42433美元。

如果我们对1个节点的子网做同样的计算,将花费大约262T周期。大约每天354美元或每月10629美元。

正如你所看到的,节点越少,周期的成本就越低。随着游戏规模扩大到数百万用户,这将变得越来越重要。

在减少子网的节点数时,计算延迟比较困难,但我们预计也会明显减少。

论坛帖子                                                                                                                                      

开发者论坛:https://forum.dfinity.org/t/proposal-create-a-3-node-subnet-for-real-time-multiplayer-game-canisters/19612

8YearGangDao点评

ICP的愿景就是100% on-chain,但是受限于网络共识的局限,很难做到非常快的响应速度,但对于实时多人游戏而言,位置的更新对于速度要求非常高。想要实现实时位置更新减少子网节点数量是可行的办法之一,但我们认为最低仍然需要4个节点来维持最低的安全要求。

投票

Yes

声明:本文为入驻“火星财经 专栏”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
本内容旨在传递行业动态,不构成投资建议或承诺。