This commit is contained in:
boybook
2025-12-01 20:59:16 +08:00
parent 12738a142c
commit 760c2dd9ad
5535 changed files with 21070 additions and 2021 deletions

View File

@@ -0,0 +1,15 @@
---
front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg
hard: 入门
time: 5分钟
---
# 摘要
在本章也就是最后一章中,我们将一起来再次学习作品的结构、自测、打包与发布。
- 在第一节(*认识作品结构与打包*)中,我们将一起来学习作品的结构,了解正确的作品打包方式。
- 在第二节(*使用我的世界开发工作台导出作品*)中,我们将了解如何导出我们的作品,以备他用。
- 在第三节(*在手机和电脑上调试作品和发布作品*)中,我们将了解如何测试和发布我们的作品。
本章关键词:作品 打包 导出 调试 发布

View File

@@ -0,0 +1,79 @@
---
front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg
hard: 入门
time: 10分钟
---
# 认识作品结构与打包
当我们的作品制作完成后,我们便希望将其发布到市场中供玩家们下载。因此我们可能需要了解如何如何才能正确地打包的我们的作品,防止出现上架失败的可能。
## 附加包
在上架过程中,我们的**附加包****Add-on**)被称为“**功能玩法**”。这种类型的作品具有最简单的打包方式。
一个典型的附加包一般由一个资源包和一个行为包组成,如下所示:
```json
SomeAddonRes
SomeAddonBeh
```
正确的附加包打包方式为直接选中两个文件夹,将其压缩为一个压缩文件即可。
![](./images/18.1_addon.png)
如果我们选择了他们的根目录再进行压缩,将造成打包失败从而无法上架。
## 地图
**地图**也是一种发布作品的方式,往往我们希望我们的附加包配合一张地图使用,因此我们会希望直接发布一张带有附加包的地图。
一个地图往往具备如下格式:
```shell
地图根目录
│ level.dat # 存档文件
│ level.dat_old # 旧版存档文件
│ levelname.txt # 世界名称文件
│ world_behavior_packs.json # 世界加载的行为包文件
│ world_resource_packs.json # 世界加载的资源包文件
├─behavior_packs # 存放的所有行为包
├─db # LevelDB文件
└─resource_packs # 存放的所有资源包
```
对于地图文件,我们需要使用地图根目录文件夹直接压缩。
![](./images/18.1_world.png)
比如,我们的地图根目录文件夹为`9da01770-f464-42e9-8bf4-427433b86c3b`,如图,我们将其直接压缩为压缩文件即可。
如果你在你的地图中发现了`netease_world_behavior_packs.json``netease_world_resource_packs.json`,你需要手动将它们的`netease_`前缀删去,并检查这两个文件中的`pack_id`字段是否和资源包和行为包中`header`头中的UUID一致。同时带有`netease_`前缀的这两个文件通常是没有`type`字段的,你需要手动添加`type`字段并将其值设置为`Addon`。如下所示:
```json
[
{
"pack_id" : "eefcf409-a40a-46f7-9a48-3147960a8c39", // 保证改行的值与附加包中UUID相一致
"type": "Addon", // 增加该行
"version" : [ 0, 0, 1 ] // 保证该行的值与附加包中版本相一致
}
]
```
## 纹理包与光影包
**纹理包**与**光影包**往往都只有一个资源包,不适合作为附加包上传。因此,我们需要将其直接压缩为压缩文件上传。比如我们有下图的结构。
```json
SomeRootFolder
TexturePack
```
然后我们直接对`TexturePack`右键,并将其压缩为压缩文件即可完成打包。
## 皮肤
基岩版虽然存在皮肤包这一种类的附加包但是只有国际版目前使用这种类型的包我们并不适用这种包体。要上传皮肤请准备好带有透明通道的PNG文件然后直接上传该文件即可。

View File

@@ -0,0 +1,25 @@
---
front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg
hard: 入门
time: 5分钟
---
# 使用我的世界开发工作台导出作品
在本节中,我们将学习使用我的世界开发工作台导出作品。
## 直接导出作品
![](./images/18.2_export.png)
我们在我的世界开发工作台中我们的作品上右键或者点击“更多”按钮,即可看到“**导出**”按钮和“**导出(含编辑信息)**”按钮,他们分别可以用于导出纯粹的地图或附加包,或者导出带有我的世界开发工作台工程文件的地图或附加包。这将导出一个`.zip`格式的文件。
## 导出为资源包
![](./images/18.2_export_button.png)
我们在编辑中底部的“资源管理”窗格中可以点击“导出”按钮并选择一部分资源将其导出为一个资源包。
![](./images/18.2_export_as_resource.png)
当我们选择资源后,“导出”按钮将会亮起,然后我们点击该按钮即可保存资源包。这将允许我们导出一个`.mep`格式文件。

View File

@@ -0,0 +1,117 @@
---
front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg
hard: 高级
time: 15分钟
---
# 在手机和电脑上调试作品和发布作品
在我们开发完成作品后,我们往往需要进行**调试****Debug**),消除漏洞,然后才能**发布****Release**)。在本节中,我们将一起学如何调试和发布。
## 调试作品
我们可以通过电脑开发版和手机开发版来调试我们的作品在两种平台上的运行情况。其中,两种开发版的调试目标又稍有不同。
### 电脑开发版的调试
我们的电脑开发版是一个开发构建,因此我们可以在电脑开发版上使用与普通的发布版中不同的功能。大多数功能是用于方便开发者进行调试的内容。
#### 设置中的调试选项卡
![](./images/18.3_debug.png)
我们打开设置,可以看到与常规的发布版本不同,我们的开发版中多出了几个新的选项卡。”**调试**“选项卡用于开关一些用于常规调试的功能;”**UI Debug****UI调试**“选项卡用于开关一些专用于UI的调试功能”飞行调试“用于测试一些微软远程发放的灰度**处理包****Treatment Pack**)和**进度****Progression**),这不在我们的使用范围之内;”**Automation****自动机**)“是用于配合国际版的行为树而开发的自动机系统,亦不在我们的使用范围之内。
我们将关注点放在”调试“选项卡中。调试选项卡的最上方的三个功能对开发非常有用。
![](./images/18.3_dev_console.png)
“**显示调试控制台按钮**”可以使游戏的左上区域出现一个控制台按钮,按钮该按钮后就会出现一个**开发控制台****Dev Console**),我们可以在游戏的任意时刻在其中输入命令,控制游戏。事实上,即使我们不开启该按钮,我们也可以在游戏中通过``Ctrl+` ``的方式开启开发控制台屏幕。
“**调试器中的断言中断**”和“**断言显示一个模式对话**”皆用于控制**断言****Assertion**)的表现。由于我们是开发构建,我们的游戏可以触发相当庞大的开发人员在源码中设置的断言。开发人员在程序中的某些位置做出相信该位置的某个判定应该为真的假设,如果该假设在程序实际运行中被推翻,该位置将抛出一个**断言失败****Assertion Failure**)。如果我们将程序绑定到了调试器,那么断言失败可以在调试器中显示,否则,我们便需要特殊的弹窗来显示。这里“断言显示一个模式对话”选项便允许当断言失败时弹出一个**模态对话框****Modal Dialog**)。而通常而言,开发人员希望断言失败时可以阻止程序继续运行,同时在调试器中查看为什么会失败,这一行为被称为程序的**中断****Break**)。事实上,我们作为普通的开发者一般而言并不需要断言中断,因此“调试器中的断言中断”处于关闭状态即可。
我们在附加包开发过程中,稍有不慎就也会经常遇到源码中预先设置好的各种断言失败。因为断言失败的信息在普通的发布版中不会显示,只会在开发构建中向我们展示,因此这类错误都有可能成为我们开发的隐患。有效利用断言失败提示的信息将可以极大地方便我们对附加包进行测试。
在调试选项卡中再往下看,我们将看到**功能旗标****Feature Flag**)区域。功能旗标是一系列可以通过仅仅一个开关就影响一些底层功能的选项。我们可以妥善利用这些功能旗标以方便我们的开发。
![](./images/18.3_debug_2.png)
离开了功能旗标,剩下的便是普通的调试选项区域。其中我们将重点介绍**调试HUD**,即我们常言的**调试屏幕****Debug Screen**)。
#### 调试屏幕和ImGui
![](./images/18.3_debug_hud.png)
**调试屏幕**是一套方便开发者进行调试游戏内容的屏幕,通常可以通过设置中的调试选项卡打开。当然,调试屏幕也可以通过快捷键`F3`和`F4`向后或向前滚动。
![](./images/18.3_imgui.png)
**ImGui**是一个使用了第三方ImGui库制作的游戏内测试界面具有丰富的功能。具体的ImGui功能请查看<a href="../../../mcguide/30-测试/00-ModPC开发包介绍.html#_3-顶部菜单栏" rel="noopenner"> 开发指南中的ImGui部分 </a>。有效利用ImGui将帮助开发者更快速地制作和调试模组。
#### 开发者命令
![](./images/18.3_command.png)
**开发者命令**是开发构建独有的方便开发者进行调试的命令。开发者命令具有相当多的功能,妥善利用开发者命令也是高效开发的重要组成部分。
#### 内容日志
![](./images/18.3_content_log.png)
![](./images/18.3_content_log_screen.png)
**内容日志****Content Log**)可以通过设置打开,也可以在游戏中快速通过`Ctrl+H`来打开。内容日志是各位开发者接触最多的一种日志类型。虽然内容日志的输出程度并没有断言错误那么底层,但是依旧是不可或缺的具有重要参考价值的日志之一。
### 手机开发版的自测
手机自测需要手机开发版启动器来启动,启动器可以在我的世界开发工作台顶部“**开发者内容管理工具**”一栏中的“**测试版启动器下载**”。相比大家在第一章中便已经下载过了。
手机开发自测需要大家提交自己作品进行审核。当处于“审核中”的状态时便可以进入手机开发版找到自己的作品并下载自测。手机开发版自测的主要目的并不是为了寻找逻辑错误,而一般是用于寻找设备适配性错误。通过手机开发版的自测,我们可以对我们的模组在手机上的运行情况知根知底,从而方便我们之后正式发布作品。
![](./images/18.3_current.png)
如果我们的作品在发布提审时进行了定价,那么我们需要在我的世界开发工作台中找到该按钮点击申请测试货币,否则将出现在手机开发版中无法购买的情况。
我们还可以通过我的世界开发工作台中的“调试工具”进行手机开发版的测试,具体方案可以参见<a href="../../../mcguide/30-测试/1-使用调试工具进行手机和电脑端调试.html" rel="noopenner"> 开发指南中的相关文章 </a>
## 发布作品
最后,我们便是要发布我们的作品了。我们的作品有两个主要的发布途径,分别是通过**网页版的开发者平台**和**我的世界开发工作台的“管理”选项卡**。他们都叫做“**开发者内容管理工具**”,界面也大同小异。接下来我们通过我的世界开发工作台中的内容进行讲解。
![](./images/18.3_release.png)
![](./images/18.3_upload_page.png)
在我的世界开发工作台中,我们有两种发布方法,分别是右击我们的作品直接“**发布**”,或者是在“管理”选项卡中点击“**发布新资源**”发布。
![](./images/18.3_upload.png)
进入发布页面后,我们需要填写一些基本的资源数据。
![](./images/18.3_credit.png)
如果我们的作品不是原创,请务必上传授权说明和证据的图片。
![](./images/18.3_payment_type.png)
我们需要选择正确的**付费类型**,一般而言,我们可以根据我们的作品实际情况选择对应的类型即可。
![](./images/18.3_gameplay.png)
在选好付费类型后,下方的**资源类别**的主要类别也一并选好了,我们需要选择正确的次要类别。
![](./images/18.3_content.png)
接下来我们需要填写作品的介绍和更新日志。
![](./images/18.3_pic.png)
作品的配图也是尤为重要的,我们需要根据要求上传指定大小和分辨率的各种图片,方便我们作品的宣传。
![](./images/18.3_video.png)
最后,如果我们的作品有配套视频,我们也可以<a href="../../../mcguide/35-上架与入驻/课程06-作品视频格式导出与规范.html" rel="noopenner"> 上传视频 </a>来加强宣传效果。
点击右上角的“**立即提交审核**”即可进入审核环节。在此期间,我们便可以进入手机开发版进行自测,发现可疑错误并及时修正了!在审核通过后,我们便可以择期正式发布我们的作品了!
至此,我们的附加包便告一段落,如果开发者想了解更多详细的信息,可以点击官网上方的“**[开发指南](https://mc.163.com/dev/guide.html)**”和“**[API文档](https://mc.163.com/dev/apidocs.html)**”,了解更多有关开发的更深入的知识与内容!