你好,请选择
语言:
关闭

游戏设计限制

本文介绍了为 Decentraland 设计游戏时需要考虑的一些要点。诸如跟其他场景的邻接和 LAND 的去中心化所有权等因素使得 Decentraland 成为一个独特的领域,有必要重新考虑很多以前游戏中的设想。

例如,你必须明白,Decentraland 与其他游戏平台不同,Decentraland 游戏并不是空中楼阁。您无法控制相邻场景中的内容,并且您无法控制某些细节,如玩家的头像或者他们从其他游戏中带入的道具等。一方面这为激动人心的更多可能性打开了大门,另一方面也要求您以不同的方式去思考游戏机制。

目前主流游戏跟 Decentraland 最接近的是 Roblox,社区用户生成的内容可以成为其他人探索、玩耍和互动的聚会场所。 但 Decentraland 与 Roblox 不同,它并不是通过各个不相关的体验菜单进入,而是通过物理探索所有彼此相邻的地形的场景来展现。 Decentraland 还利用区块链来管理土地、头像、资产等的所有权。

我们正在不断改进 SDK,因此在 Decentraland 向最终用户开放之前,将来也有可能会解除以下的某些限制。

场景边界

你的游戏场景必须完全构建在 LAND。 对于小场景,想想足球游戏,即使玩家能够走出比赛场外,但在有限的空间内相关的互动游戏规则是不变的。用户可以走出场景的边界,但属于场景的任何资产或实体必须保留在场景中。

走出场景的用户,场景只有在可见范围内才会继续渲染。如果他们走得太远,就会完全停止渲染。

您还可以构建一个游戏,该游戏遍布在几个不为玩家所知的不连续的土地,让探索世界其他地方成为游戏玩法的一部分。

用户道具仓库

目前没有供用户可以在场景之间存放游戏物品的道具仓库。可以使用以下备选方案:

  • 您可以将道具信息存储在场景本身中,并将其关连到每个用户的以太坊地址(这可以用作持久 ID)。但这些信息只能从您的场景中读取。
  • 使用外部自定义存储,并在所有场景间同步。这是一个更强大的解决方案,可以承载大量更多用户。它还可以将对此道具数据的访问权限扩展到您或其他人拥有的多个单独场景中。
  • 使用区块链中的通证来处理物品的所有权。

  在获得游戏物品时,作为特殊通证存储在用户的以太坊钱包中。当拥有通证的用户走进您的场景时,在游戏中您的场景可据此授予用户某些特性。

  其他场景也可能以不同的方式响应相同的通证,使得游戏之间存在有趣的互动。

  使用区块链存储道具物品的缺点是所有交易都有一定的用户成本,并且时间上不是立即的。在下面的专门部分中阅读有关区块链的更多信息。

在未来的版本中,用户将拥有他们随处携带的道具仓库,包括链上和链外资产。

移动体验

在未来的版本中,我们计划在 SDK 中添加 移动体验 的功能。这将成为用户离开您的场景并移动到其它虚拟世界时游戏玩法的一部分。 例如,用户可以从您的场景中带走一个雪球,走到另一个场景,然后将雪球扔给另一个也玩同一个游戏的用户。

用户可以根据需要打开或关闭移动体验。

请记住,用户可能在您的场景中使用其他人的移动体验,这增加了用户间如何互动的不可预测性因素。

游戏持久性

Decentraland 是一个持久的世界,用户可以随时访问你的场景。场景没有启动也没有结束阶段,所以你应该设计这样的游戏机制,在任何时候都允许玩家走进来参与或走出来。

你的场景可能需要一个重置机制,将其设置为初始状态,但应注意不要中断正在玩游戏的玩家。

同步场景状态

目前,除非手工实施,否则不会在玩家之间共享场景状态。这是构建场景的最简单方法,但它不符合社交体验。

在 SDK 的未来版本中,默认场景将在用户间点对点共享状态信息,至少共享部分场景数据。点对点方式具有不需要服务器的优势,但是它可能导致明显地延迟,因为用户有可能网速较慢或地理位置很远。如果当前场景附近没有用户,那么场景在下次加载时将重置为默认状态。

您也可以托管自己的服务器来存储有关场景的信息,并让所有玩家保持同步。这样可以确保用户具有良好的连接速度,即使没有用户靠近也可以保持场景持续运行。这样,网络延迟将和任何其他大型在线游戏差不多。

在涉及有价值的游戏物品交易时,使用托管您自己的服务器是一项推荐的安全措施,因为点对点连接是将信任置于承担服务器角色的其它用户上。

注意:在将来的版本中,我们将提供有关如何实现自己的服务器的代码示例。

游戏时间

使用点对点连接的游戏应该考虑到用户之间可能存在延迟并且不应该依赖于不同用户的快速操作。我们建议开发基于回合制的游戏,或者主要基于玩家与环境互动的游戏。

对于玩家间的操作反应时间至关重要的游戏,如第一人称射击游戏,您应该使用自己的服务器,作为场景中所有玩家间的实时判定。

场景中的玩家

在 Decentraland 中使用以太坊钱包地址识别玩家。此钱包作为用户拥有的所有通证相关联的持久 ID。

无法限制 Decentraland 中同时有多少玩家。与许多其他游戏可能会把不同的游戏会话托管在不同的服务器中不同,Decentraland 中所有玩家共享一个 Decentraland 实例。

您需要记住,在任何给定时间都有可能有几个玩家在您的场景中。他们中的一些人可能路过而没有参与游戏。要确保游戏机制不会因此轻易中断。

场景的游戏循环不能直接影响用户,场景对用户的行为采取了被动的方式。不过也将有例外,例如可以移动用户的电梯或汽车。

作为场景的拥有者,您无法强行将违规用户推送或传送出场景。但是,您可以在 signaling 服务器中将用户列入黑名单。您还可以在场景代码中实施黑名单,并拒绝向列入黑名单的用户提供某些服务。

场景内容限制

建立的场景,要特别注意代码的效率。 Decentraland 需要在 Web 浏览器和移动设备上运行,用户在遍历虚拟世界时需要渲染多个场景。

您还应该尝试保持场景轻量化。与其他在大型开放世界中可以方便地重复使用相同纹理和资源的在线游戏不同,在 Decentraland 中,每个场景都可以拥有自己完全不同的资源。当用户浏览多个场景时,他们应该能够以合理的速度下载整个场景内容,包括纹理、声音文件等。

因此,我们已经施加了一些限制来防止过度使用计算资源。有关这些限制的详细信息,请参阅场景限制

访问场景

** Decentraland 设计有道路和公共广场**,无论其他人在上面建造什么内容,所有这些可以保证能轻松访问到地图的各个部分。不与任何道路或广场相邻的土地都有被邻近场景围住的风险,尽管我们期望大多数场景都是可以步行而过而不会阻挡其他场景。

新用户将在地图中心的创世纪广场开始他们的体验,他们也可以先学习教程,然后探索世界。

用户还可以手动键入具有 Decentraland 地图中特定坐标的 URL 以到达目标位置。 您还可以共享指向具体坐标的 URL 链接。

请记住,如果让用户在一个被隔离或低于地面的位置开始体验,那将不是一种愉快的体验。为了避免这种情况,您可以在场景中定义可以安全进入的特定位置。

在未来的版本中,用户还可以使用带有进入点、热门位置列表和朋友位置的地图快速导航世界。 SDK 还将允许可以在场景中添加可传输到世界其他地方的传送点。

用户界面

用户在进入 Decentraland 时看到的默认 UI 是最基本的。当用户在您的场景中时,您可以向该 UI 添加额外的元素。

目前,UI 元素必须使用像平面和 sprites 这样的界内对象来组合,需要通过自定义来实现。

SDK 的未来版本将支持工具包并包括具有实现 UI 小部件的更简单方法。

输入控制

您的游戏控制应限于基本动作,指示和点击。我们支持手机和虚拟现实控制器,因此我们不能假设每个人都有键盘。

当前版本的 SDK 仅支持一种类型的点击,但未来的版本很快将支持两种类型的点击,其中一种可能设为跳跃。

头像

目前,用户只能在一组默认的头像中选择。这些头像在虚拟世界任何地方都保持一致。

在 Decentraland 的未来版本中,可定制的头像将是可能的。用户将可以在市场上购买作为以太坊通证交易的自定义头像。

用户还可以制作和销售自己的头像。这同样最终也适用于可穿戴物品和头像表情。

用户之间的沟通

用户可以互相聊天。除了使用基本的运动控制之外,目前头像无法传达肢体语言。

在未来的版本中,将还可以进行语音聊天,并用他们的头像进行跳舞或皱眉等手势。 他们还可以在他们的头像上方显示一个临时表情符号来表达自己。 用户还可以显示他们拥有的通证,以便其他用户可以看到它们。

游戏通知

目前没有跨场景通知系统。任何需要在当前场景之外显示通知的游戏都必须使用外部服务来实现它们。

在 SDK 的未来版本中,场景外的通知可以由移动体验中的脚本处理。

使用区块链

在 Decentraland 中区块链用于存储有关所有权的信息。目前主要指土地所有权,但它也可以用于游戏物品、可穿戴设备、特殊头像、表情和用来代表某些游戏特权或游戏访问权的通证。

区块链不用于存储游戏状态、用户位置或需要实时更改的任何内容。

LAND 和 MANA

参与虚拟世界用户不需要拥有任何土地。实际上,绝大多数用户都没有土地。用户头像和他们拥有的 LAND 通证没有任何直接关连。

进入 Decentraland,用户不需要拥有以太坊钱包或 MANA 通证。如果您的游戏玩法很大程度上依赖于拥有通证,那么您将把大多数玩家排除在外。免费增值游戏类型可能是适合两个用户群的理想方式。

其他 NFT

您可以使用特殊的不可替代通证(NFT)来表示游戏物品、自定义头像或可穿戴设备。如果用户拥有其中一个通证,您的场景可以以不同方式对其进行响应。

阅读此博文中有关NFT的内容。

游戏内交易

您的场景可以支持区块链交易,供用户购买或赚取通证。

区块链交易不是即时交易,它们需要验证时间,并且以太网交易中需要费用,所花费的时间和费用取决于网络的当前使用情况。

Decentraland 正致力于创建一个侧链,能够比以太坊网络更快、更便宜地处理交易。这种侧链将会是游戏内交易的理想选择,因为交易更接近实时且成本非常低。主要的以太坊链仍然会被推荐用于需要更高安全性、更昂贵且需要更长时间的交易。

用户必须始终在其以太坊客户端上明确批准这些交易。例如,使用 Metamask 时,Metamask 会提示用户在处理之前确认每个交易。

用户还可以签署一份合同,该合同自动批准特定地址或某些条件所请求的交易,以避免在要求用户批准交易时中断用户。

您还可以使用智能合约根据自定义条件处理交易。例如,用户可以对游戏结果下注,这样一旦得出结果,自动发生相应的付款。

作为安全措施,我们不建议在点对点托管的场景中执行游戏内交易。因为点对点连接将信任放在承担服务器角色的用户中。

要在场景代码中实现与区块链的交互,必须使用与以太坊网络交互的外部库。 SDK 的未来版本将提供一个自定义 API,可以用更简单的方式使用这些功能。