# 【SDK 7 离开 Beta 版——进行完整发布】

By [Decentraland 中文社区](https://paragraph.com/@decentraland-2) · 2023-06-08

---

_2023-6-6_

### SDK 7 的最终版本现已推出——享受新的 UI、改进的性能、最新版本的 TypeScript、扩展的外部库兼容性等等！

**Decentraland**

2022 年 7 月，Decentraland 的 SDK 7 首次发布，同时发布了 [SDK 7 宣言](https://mirror.xyz/0x85A07dC63fF774b86eEdB62563d05D72bcbE8854/QSEM-5GpA34OFKvKsCVeYJPCF0-li6Cdkp1s3PzULgs)，其中详细阐述了计划的愿景。 SDK 7 背后的灵感是让 Decentraland 的 SDK 更接近最初为该平台设想的理想化 SDK：一个作为开放协议的 SDK，用于创建 metaverse 内容——对任何可能想要采用它的平台开放——任何人都可以访问使用。

现在，经过大量艰苦的工作，包括 alpha 和 beta 版本以及来自社区的大量有用反馈，SDK 7 已准备好全面发布！按照这些[说明](https://docs.decentraland.org/creator/development-guide/sdk7/installation-guide/)立即尝试。为了庆祝，Decentraland 基金会很快将举办 Game Jam——更多消息将于 6 月 19 日发布，敬请期待！

这个长期项目需要从头开始重写 SDK 的大部分内容，以使其基础尽可能稳固。这些基础在重建时牢记三个关键原则：

*   **可用性**：使内容创建者的开发更容易，并为 [Decentraland Editor](https://mirror.xyz/0x85A07dC63fF774b86eEdB62563d05D72bcbE8854/CZFglmyJ__BNBK0ivGKe78X5DIdhS5wFZO1zMgWQRxU) 铺平道路，Decentraland Editor 是一个基于视觉的强大场景构建器（如 Builder），但仍允许完全控制场景代码。
    
*   **性能**：让玩家享受更流畅的体验，而无需将优化的全部负担推给创建者。
    
*   **可移植性**：使 Decentraland SDK 更能适应其它引擎和平台。
    

除了改进场景开发过程并使其更易于访问之外，SDK 7 还应该使在 Decentraland 生态系统上创建各种替代项目变得更加容易，提高性能，并为更强大和简化的多人游戏功能铺平道路——举个例子只是它的一些好处。获取 [SDK 7 宣言](https://mirror.xyz/0x85A07dC63fF774b86eEdB62563d05D72bcbE8854/QSEM-5GpA34OFKvKsCVeYJPCF0-li6Cdkp1s3PzULgs)中的完整细目。

新功能
---

一旦 [Decentraland Editor](https://mirror.xyz/0x85A07dC63fF774b86eEdB62563d05D72bcbE8854/CZFglmyJ__BNBK0ivGKe78X5DIdhS5wFZO1zMgWQRxU) 完成并且两者可以协同使用，SDK 7 的全部潜力将得以实现，SDK 7 本身引入了许多令人兴奋的新功能和有意义的改进，供您享受：

### 主要功能

*   改进的光线投射，包括自定义碰撞层、连续光线、各种全局和局部方法来确定方向和辅助函数
    
*   基于 FlexBox 的全新 UI 系统：使用类似于 HTML 的动态标签来构建您想要的任何 UI。新的 UI 语法包括方便的抽象，例如下拉菜单和输入框默认类型以及 9 切片。查看这个[简单的场景](https://github.com/decentraland-scenes/leaderboard-ui-sdk7)，了解它的外观示例。
    
*   由于优化了内部消息流和 UI 系统以及对可变数据和不可变数据的更明确处理，性能得到了提高。有关一些比较，请参阅本文末尾的附录。
    
*   使用最新版本的 TypeScript (ES6)：这使您可以访问更强大的功能，例如 Map() 函数。
    
*   更多的外部 JavaScript 和 TypeScript 库现在兼容并可以在 Decentraland 场景中使用，因为 SDK 不再仅限于与 AMD 打包的那些。
    

### 次要功能

*   官方支持AvatarShape组件，渲染NPC虚拟化身
    
*   所有碰撞层都可以自由分配给模型的可见几何体，或分配给其不可见的“碰撞器”几何体。
    
*   获取 3D 模型的加载状态，以确保模型已经被渲染。
    
*   将实体附加到跟随所有骨架动画的玩家的手上。
    

![](https://storage.googleapis.com/papyrus_images/506f7f695df5a0b0ad14f229a513378899b4bdd412c417298973586d6913715b.gif)

*   在单个实体中支持多个不同的按钮事件，例如，您可以使用 E 迎接 NPC，使用 F 进行交易，或使用鼠标左键击打。将鼠标悬停在 NPC 上时，所有三个选项都会出现。
    

![](https://storage.googleapis.com/papyrus_images/dc09bebfe1bf4757e97a48de1b3162b02e67c7df123f853d7db01f972532e3cd.webp)

*   修改音频样本的音高。例如，您可以使用随机微小的音高变化来使重复出现的声音效果不那么单调，或者您可以使用它来构建一个完整的音乐交互界面。
    
*   分别获取相机和头像的位置和旋转，这在第三人称相机模式下有所不同。
    
*   图像纹理和视频纹理以相同的方向映射，消除了在同一屏幕中交替使用时会发生的常见令人沮丧的问题。
    
*   SDK 7 的语法通常更简洁。如果您使用过旧版本的 SDK，可能需要一些时间来适应新语法，但它有其优雅之处，最终编辑器将能够为您编写出大部分代码。
    

SDK 7 的强大编辑器
------------

SDK 7 的主要目标是为功能强大的 [Decentraland Editor](https://mirror.xyz/0x85A07dC63fF774b86eEdB62563d05D72bcbE8854/CZFglmyJ__BNBK0ivGKe78X5DIdhS5wFZO1zMgWQRxU) 铺平道路，该编辑器仍在开发中，它将允许创作者同时使用可视化界面和代码。 [Decentraland Editor](https://mirror.xyz/0x85A07dC63fF774b86eEdB62563d05D72bcbE8854/CZFglmyJ__BNBK0ivGKe78X5DIdhS5wFZO1zMgWQRxU) 的第一个版本已经发布，它是一个有用的工具，有助于简化和简化场景开发过程——但这种简化只是开始。

编辑器的最终计划是通过拖放界面为需要的人提供完全可视化的编辑。这意味着编码知识对于场景开发来说不再是必需的，从而使所有人都可以更轻松地在 Decentraland 中进行构建。虽然 Editor 还不止于此，但它在未来几个月收到的每一次更新都会让创作者离无代码创作的梦想更近一步。就即将发生的变化而言，创作者可以期待很快创建无需代码的静态场景，尽管仍然需要跳入代码以添加任何类型的交互。敬请期待更多消息！

如果您还没有尝试过 Decentraland Editor，它现在是开发 Decentraland 场景的最佳工具，适用于 SDK 7 和旧的 SDK 6，因此请务必在下次构建时对其进行测试。在[这里](https://marketplace.visualstudio.com/items?itemName=DecentralandFoundation.decentraland-sdk7)获取它。

了解有关编辑器的更多信息：

*   编辑发布博文
    
*   视频教程
    

\*\*注意：\*\*编辑器现在有两个副本，“Decentraland Editor SDK 6”和“Decentraland Editor SDK 7”。顾名思义，每个版本的编辑器都适用于使用不同 SDK 版本构建的 Decentraland 场景。您可以在同一安装的 Visual Studio Code 中激活这两个扩展，并根据您正在使用的项目相应地使用它们。

SDK 7 之路
--------

早在 2022 年 11 月下旬，SDK 7 的 alpha 版本发布，让热切的 DCL 社区开始测试和修补它。您的反馈非常宝贵，因此感谢您对其进行测试并分享您的想法！

PatMac 的工作尤其值得一提，因为他使用 SDK 7 重写了他非常有用的 DCL-Dash 库。在旧版本中，这个库对其他创作者帮助很大，简化了一些复杂的任务。在 SDK 7 上构建相同的库也将帮助其他人抢先一步！

查询：[https://github.com/pmacom/dcldash-astar](https://github.com/pmacom/dcldash-astar)

在 SDK 7 的 alpha 和 beta 版本之间，应用了大量改进和修复。此外，一些基本功能，如视频流和 UI 单击事件，未包含在 alpha 版本中，但已添加到 beta 版本中。在有关该主题的[文档部分](https://docs.decentraland.org/creator/releases/version-agreement/)中阅读关于什么被认为是 alpha 和 beta 以及一般版本控制的基金会政策。

在最近的新消息中，2023 年初，DAO 组建了一个全新的 Protocol Squad 团队。该团队致力于两项任务：

*   发布“Decentraland 协议”所有内部运作的精炼和详细文档，包括 SDK 与平台其它部分之间的每个联系点。
    
*   构建可在其它引擎（包括 Godot、Babylon 或 Bevy）上呈现 Decentraland 的替代客户端。
    

在过去，开始这些努力是不现实的，但 SDK 7 的构建方式允许简洁的界面和更容易的扩展性，使这些项目成为可能。这些举措使将 Decentraland SDK 转变为元宇宙内容的开放协议的目标变得更加具体。阅读更多关于协议小组的信息，并在[此处](https://github.com/decentraland/protocol-squad)查看他们正在进行的工作。

亲自试用 SDK 7
----------

如果您想开始使用 SDK 7 创建场景，请下载适用于 Visual Studio Code 的 [Decentraland Editor SDK 7 扩展](https://marketplace.visualstudio.com/items?itemName=DecentralandFoundation.decentraland-sdk7)。请参阅[此处](https://docs.decentraland.org/creator/development-guide/sdk7/installation-guide/)的说明。

如果您已经使用过 SDK 7 的 Alpha 或 Beta 版本，您会发现在您迁移到最新的完整版本后会有许多重大更改。大多数问题是由微小的语法更改引起的，但您可以查看[发行说明](https://github.com/decentraland/js-sdk-toolchain/releases)中的​​完整更改列表，并相应地进行调整。

**查看以下内容以了解有关 SDK 7 的更多信息：**

*   [SDK 7 宣言](https://mirror.xyz/0x85A07dC63fF774b86eEdB62563d05D72bcbE8854/QSEM-5GpA34OFKvKsCVeYJPCF0-li6Cdkp1s3PzULgs)
    
*   [SDK 7 文档](https://docs.decentraland.org/creator/development-guide/sdk7/sdk-101/) - 在左侧菜单中查找场景 (SDK7) 部分以获得更多选项
    
*   [SDK 7 示例](https://studios.decentraland.org/resources?sdk_version=SDK7)
    
*   加入基金会的定期技术 AMA 会议，在那里您可以直接向他们的开发团队提问！在[此处](https://mirror.xyz/0x85A07dC63fF774b86eEdB62563d05D72bcbE8854/A35Q0JhJsPZqm8_7j56k1ebTuwOg6Ea7gpjX_vPJ9OQ)了解有关这些会议的更多信息，并查看[此页面](https://www.notion.so/Decentraland-Foundation-Technical-AMAs-230fcf1ca1ec4d49922744fe91e6995d)以了解即将举行的会议的详细信息。
    
*   在 Decentraland 的 [Discord](https://decentraland.org/discord/) 上，加入 [sdk7-beta](https://discord.com/channels/417796904760639509/1047643035833479230)（可能需要重新命名）频道以分享任何问题或反馈。
    

**一旦您准备好深入研究 SDK 7，就可以使用它为您的** [**World**](https://mirror.xyz/0x85A07dC63fF774b86eEdB62563d05D72bcbE8854/wdr8gmcSDV7h1plqoRqhezeEV7O2-lsT_EAku1iPUTs) **创建场景，并通过**[**#DCLWorlds**](https://twitter.com/hashtag/DCLWorlds) **在 Twitter 上与社区分享！**

\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

附录：性能测试
-------

这个新版本的 SDK 使场景运行速度比以前显着加快，让您可以为您的玩家创造更丰富的体验，并让使用低端设备的玩家在访问您的内容时受到更少的限制。

您可以在下面找到测试一个简单场景的结果，该场景专门用于测试与引擎的通信，因为这在过去一直是主要瓶颈。这个场景在每次滴答时发送数千个位置更新，因为一大组立方体产生的波浪平滑地上下浮动。场景在 SDK 6 和 SDK 7 中构建相同，使用不同数量的浮动立方体来进一步强调场景。所有测试都在同一台机器上，在相同的条件下运行。

### 16x16 立方体（每帧 256 次更新）

SDK 6：42 帧/秒

![](https://storage.googleapis.com/papyrus_images/c72ec0e07c944a942b5af301b9001fff1f602e14508e273d0ae89001121e9356.gif)

SDK 7：60 帧/秒

![](https://storage.googleapis.com/papyrus_images/1a1219f6ee5e0c9c3b93abd10e9e29aacd55b97a4a432d1f148682119f267573.gif)

改进：40%

### 32x32 立方体（每帧 1024 次更新）

SDK 6：10 帧/秒（场景损坏）

![](https://storage.googleapis.com/papyrus_images/c2aa09d89069141d2f8325bcb6f3683db79023296cd7d9c7bb76ef23e8c218d8.gif)

SDK 7：40 帧/秒

![](https://storage.googleapis.com/papyrus_images/9032c9a817e13f6593ec58a24fd18c8063d41dde6e67edc1835f93312903b02f.gif)

改进：400%

您可以在 [\-69,-27](https://play.decentraland.org/?NETWORK=mainnet&position=-69%2C-27&ENABLE_ECS7=&explorer-branch=dev) (SDK 7) 和 [\-67,-27](https://play.decentraland.org/?NETWORK=mainnet&position=-67%2C-27&ENABLE_ECS7=&explorer-branch=dev) (SDK 6) 中找到部署在世界中的这些场景的 16x16 版本以运行您自己的测试。提示：将加载半径设置为 1 以避免同时加载它们。您还可以在 [Goerli Plaza 存储库](https://github.com/decentraland-scenes/sdk7-goerli-plaza)中找到此场景的 SDK 7 版本的代码。

Decentraland 场景的另一个众所周知的性能瓶颈一直是 UI。包含 UI 的任何场景的性能始终不尽如人意，随着在 UI 中添加或更改更多元素，这种情况会变得更糟。在 SDK 7 中，此瓶颈已大大减少。使用 SDK 7 构建了一个场景，专门用于对 UI 元素进行压力测试，该场景在每一帧中都创建了很多 UI 元素，这是一种极端且不切实际的场景，其设计并不美观。在这种情况下，很难在 SDK 版本之间进行同类比较，因为 UI 脚本发生了很大变化，但可以肯定的是，如果使用 SDK 6 重现同一场景，它将无法播放。

![](https://storage.googleapis.com/papyrus_images/5b67751d8d26e15d0b69afb1e8d647e310bdeafae3c616ede63ad0c9cbd65294.gif)

此示例场景使用与之前测试相同的机器和设置，同样以 **59 帧/秒**运行。

若要在此场景上运行您自己的测试，您可以在 [Goerli Plaza 存储库](https://github.com/decentraland-scenes/sdk7-goerli-plaza)中的“dbmonster”文件夹下找到它。

**选择您常用的频道加入与我们联系，关注Decentraland(MANA)的最新动态**

**DCL基金会全球社区： 【**[**Official Website**](https://decentraland.org/)】 【[**Telegram**](https://t.me/decentralandTG)】 【[**Blog**](https://blog.decentraland.org/)】 【[**Twitter**](https://twitter.com/decentraland)】 【[**Discord**](https://decentraland.org/discord/)】

**DCL中文社区： 【**[**Medium**](https://medium.com/@decentralandcn)**】用户指南 【**[**推特**](https://twitter.com/decentralandcn)】 **【**[**微博**](https://weibo.com/decentralandcn)**】** 【**微信群**】请加微信ID ChinWaan

---

*Originally published on [Decentraland 中文社区](https://paragraph.com/@decentraland-2/sdk-7-beta)*
