feat:上传mcguide-开发指南部份

This commit is contained in:
Othniel su
2024-12-23 10:57:59 +08:00
parent 7292166c88
commit 0dc59fa4f0
3297 changed files with 63375 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -0,0 +1,34 @@
---
front: https://nie.res.netease.com/r/pic/20220408/28189a08-736c-43c0-aefa-003096902fc8.png
hard: 入门
time: 5分钟
selection: true
---
# Apollo介绍
### 1、什么是Apollo
Apollo是用于开发和部署我的世界PE版网络游戏服务器集群的工具。集成功能插件、负载均衡、集群管理、运营指令等功能于一体。使开发者只需专注于MOD业务逻辑开发更多玩法组件为我的世界的创新拓展带来更多可能。
### 2、Apollo的优势
1以**可视化**的形式配置并搭建**核心架构**。
2**智能**处理各种网络服操作,减轻服务器操作压力。
3官方持续维护并拓展**插件库**,无惧版本升级,让开发更为便捷。
4提供完善的**参考模板**,便于开发过程中参考。
5配套**服务器性能**以及**游戏数据**监控工具,便于运营期的分析。
### 3、Apollo工具下载
Apollo工具集成在McStudio中McStudio又名我的世界开发工作台是集成开发者启动器编辑器与开发者平台于一体的工具以下教程均是在MCStudio的基础上进行介绍。如果您还没有安装请点击[这里](https://mc.163.com/dev/)进行下载。
![下载studio](./images/downloadstudio.png)

View File

@@ -0,0 +1,17 @@
---
front:
hard: 入门
time: 2分钟
---
# 开发准备阶段概述
### 准备阶段步骤
步骤1入驻申请
步骤2开发阶段服务器申请
步骤3链接开发阶段服务器
步骤1主要是提交服务器申请资料用于进行入驻的评估建议服主提供的资料尽量详实清晰。步骤2需要提供固定IP以及秘钥发放的机器也和这两项内容密切相关。步骤3则是根据上述提供的IP以及秘钥成功链接服务器。自此服主将成功搭建开发阶段的服务器拥有了开发的核心架构。具体步骤说明详见后续第3节~第5节课程。

View File

@@ -0,0 +1,32 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/wpsC9AB.tmp.11e8ac73.jpg
hard: 入门
time: 10分钟
---
# 入驻申请
​在[开发者平台](https://mcdev.webapp.163.com/)注册成为开发者,然后登录开发者平台,在左边一列选择“**PE内容管理**”,然后点“**PE服务器管理**”,紧接着在右边点“**入驻申请**”,即可进入到申请页面。
具体的入驻流程请参考:[《我的世界》中国版PE网络游戏入驻指南](../../35-上架与入驻/课程12.1-基岩版网络游戏入驻指南.md)。
**注意:**
《我的世界》中国版PE目前支持的游戏版本有1.20、1.19、1.18,版本支持情况会随更新情况变更。
使用框架市面常用Nukkit我的世界官方会提供基岩版C++开发工具Apollo开发语言是python2.7.15
机器规格低频机是2个cpu每个cpu 20核一共40核。网络游戏通常使用低频机
论坛/官网地址:能展示服务器信息的页面地址,如没有官网,其他信息介绍页也可以。
其他信息如实填写即可,所有信息填写完毕后,回到页面顶部点“保存”,然后再点“提交审核”,最后等待审核即可。
## 提交审核并等待审核结果
PE网络服务器申请提交后一般审核周期为**15个工作日**,不管审核通过与否,最后都会用短信告知审核结果。
如果申请审核通过:官方会发放搭建服务器的**开发机**,服主需要在从分配服务器那天开始算起的**90天**内搭建出服务器,最后在正式服等待终审上架,如果超过**90天**仍未提审,则自动回收申请的开发机。
如果申请审核未通过:则需要服主进行修改后再提交,每个服主/团队有**3次**提交PE网络服务器的机会如果**3次**提交都未审核通过则以后不能再提交PE网络服务器申请入驻。

View File

@@ -0,0 +1,58 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/MobaXterm.86cdea5a.png
hard: 入门
time: 10分钟
---
# 申请开发阶段服务器
审核通过后官方人员将根据审核信息中预留的QQ号联系开发者开发者需要提供**固定IP**以及**登录服务器的公钥**给官方人员。资料确认无误之后,官方人员将发放开发阶段服务器(简称:开发机)。
## 登录服务器的公钥
- 推荐使用MobaXterm。打开MobaXterm界面Tools->MobaKeyGen
![](./images/MobaXterm.png)
- 密钥类型选择RSA密钥长度选择2048位
![](./images/MobaXterm1.png)
- 很快生成公钥对,单击下一步(需要在空白框中,持续移动鼠标,加快公钥、私钥生成速度)。
![](./images/MobaXterm2.png)
- 密钥名称自定义,输入密钥加密的密码(可以留空,但是建议输密码);
- 全选public key文本框中的内容复制到记事本另存为fuzhu_public.pub。温馨提示不要直接通过Save public key按钮获取公钥否则将导致机器远程连接无法进行
![](./images/private3.png)
- 需要保存两种格式的私钥分别用于SSH连接以及McStudio连接
1点击Save private key保存私钥文件名建议包含private比如fuzhu_private.ppk。
![](./images/private4.png)
此私钥用于SSH连接举例如下
![](./images/private1.png)
2生成MC Studio使用的RSA私钥文件
![](./images/privatersa.png)
- 其中,**公钥**用来存放于服务器中与私钥校验,需要在[入驻](../../35-上架与入驻/课程12.1-基岩版网络游戏入驻指南.md)时上传,**私钥**文件自己保管好,用于服务器的**连接**与开发。
## 固定IP
- 特别说明的是此处若提供了非固定IP会影响后续的开发阶段的服务器链接敬请留意。
- 只有在白名单的IP才能访问并部署Apollo测试机器、正式机器。[**点击此处**](http://temp-white-list.mc.netease.com:9999/?machine=)可把当前机器的固定IP加入白名单。

View File

@@ -0,0 +1,33 @@
---
front:
hard: 入门
time: 5分钟
---
# 使用数据库前端连接数据库
* 基于数据安全的需要为Apollo服主提供的MySQL数据库无论是正式服还是测试服均只支持从服务器本地、或同项目的另外几台服务器上连接没有对外网开放数据库连接的3306端口因此可视化的数据库前端软件无法直接从服主的本地开发机连接上Apollo提供的数据库。
* 想要在本地开发机通过可视化数据库前端连接Apollo的后台数据库需要使用支持ssh代理的可视化数据库前端
* 注意只要是支持SSH代理的数据库前端均可通过代理的方式连接Apollo为服主提供的数据库**Navicat for MySQL**仅为示例
## 以Navicat for MySQL为例展示如何连接Apollo的数据库
- 启动**Navicat for MySQL**后,点击左上角的【新建连接】
- ![](./images/ssh_proxy01.png)
- 选择连接【MySQL】数据库
- ![](./images/ssh_proxy02.png)
- 先配置【常规】分页这里的【连接名】可以随意【主机】填写数据库所在的IP【端口】填写3306【用户名】填写数据库的用户名申请数据库成功后提供一般是minecraft密码填写数据库的访问密码同样是申请数据库成功后提供
- ![](./images/ssh_proxy03.png)
- 然后切换到【SSH】分页在这个分页填写SSH代理需要的配置参数。
- ![](./images/ssh_proxy04.png)
- 首先勾选【使用SSH隧道】如果是测试服【主机】填写开发机的IP如果是正式服【主机】填写正式机器的IP【端口】固定填写32200【用户名】固定填写fuzhu【验证方法】选择使用公钥【私钥】选择本地保存的私钥的路径与**MobaXterm**等SSH工具选择相同的私钥【通行短语】保持为空也不要勾选【保存通行短语】最后点击【确定】完成配置。
- ![](./images/ssh_proxy05.png)
- 然后双击刚刚新建的数据库连接即可连接上远端的数据库。与使用SSH工具连接远端服务器一样这里需要先访问添加白名单的URL把你机器的IP地址加入到IP白名单中
- ![](./images/ssh_proxy06.png)
- 开始连接后会弹出输入通行短语的界面,直接点击【确定】跳过即可
- ![](./images/ssh_proxy07.png)

View File

@@ -0,0 +1,59 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/MobaXterm4.1d9a6b30.png
hard: 入门
time: 10分钟
---
# 连接开发机
第4节我们介绍了如何进行开发机申请当申请通过后官方工作人员会与您取得联系并发放开发测试机。本节将介绍如何连接开发测试机以及开发机的目录。
### 远程连接
以MobaXterm为例远程连接到开发机的步骤如下
- 账号为fuzhu
- 机器填开发机的IP
- 端口为32200
![](./images/MobaXterm4.png)****
- 勾选use private key,内容是本地保存的私钥的路径。若对私钥路径有疑问建议回看第4节内容。
### 开发机目录
- 链接成功后,可看到开发机的目录结构
![](./images/MobaXterm5.png)
- 以下目录均为使用MCStudio**完成搭建第一个网络服**后方会生成
- 网络游戏部署相关文件统一存放在/home/fuzhu/netgame/
- 不要在netgame目录存放未经备份的重要信息**以免被误删**
**网络服名称以sample为例**若使用其他网络服名称则替换sample为对应名称即可
其中,应用目录位置如下:
- 应用部署根目录:/home/fuzhu/netgame/app/sample
- 本机部署服务配置:/home/fuzhu/netgame/app/sample/config
- 本机部署master/home/fuzhu/netgame/app/sample/master
- 本机部署game/home/fuzhu/netgame/app/sample/game
- 本机部署lobby/home/fuzhu/netgame/app/sample/lobby
- 本机部署proxy/home/fuzhu/netgame/app/sample/proxy
- 本机部署service/home/fuzhu/netgame/app/sample/service
- 上传mods目录/home/fuzhu/netgame/mods/sample
其中log目录位置如下
- logs的真实存放路径/home/fuzhu/netgame/logs/sample
- 每个app服目录内也有一个logs软链接

View File

@@ -0,0 +1,52 @@
---
front:
hard: 进阶
time: 15分钟
---
# 版本管理建议
## 综述
版本管理是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理
版本管理最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。
### 版本管理工具的必要性
- 版本管理工具是多人团队开发不可或缺的,是实现开发团队并行开发、提高开发效率的基础
- 版本管理工具对软件开发进程中文件或目录的发展过程提供有效的追踪手段,保证在需要时可回到旧的版本,避免文件的丢失、修改的丢失和相互覆盖
- 版本管理工具通过对版本库的访问控制避免未经授权的访问和修改,有效保护企业软件资产和知识产权
### 常用版本管理工具比较
- 一般免费的版本管理工具最常用的就是SVN和GIT
- SVN属于集中式版本控制工具
- GIT属于分布式版本控制工具
### SVN的优缺点
- 优点1集中式管理管理方式在服务端配置好客户端只需要同步提交即可使用方便操作简单很容易就可以上手。
- 优点2在服务端统一控制好访问权限利用代码的安全管理。
- 优点3所有的代码已服务端为准代码一致性高。
- 缺点1所有操作都需要通过服务端进行同步这会导致服务器性能要求比较高。如果服务器宕机了就无法提交代码了。
- 缺点2分支管理不灵活svn分支是一个完整的目录且这个目录拥有完整的实际文件这些操作都是在服务端进行同步的不是本地化操作如果要删除分支也是需要将远程的分支进行删除这会导致大家都得同步。
- 缺点3需要联网。如果无法连接到SVN服务器就无法提交自己的代码更别说还原、对比等操作了。如果在内网还好网速比较稳定同步相对比较快如果是通过外网同步有可能就需要同步很久。
- 缺点4需要团队自己创建和管理代码仓库有一定的门槛
### GIT的优缺点
- 优点1分布式开发时可以git clone克隆一个本地版本然后在本地进行操作提交本地可以完成一个完整的版本控制。在发布的时候使用git push来推送到远程即可。
- 优点2git分支的本质是一个指向提交快照的指针速度快、灵活分支之间可以任意切换。都可以在本地进行操作可以不同步到远程。
- 优点3冲突解决多人开发很容易就会出现冲突可以先pull远程到本地然后在本地合并一下分支解决好冲突在push到远程即可
- 优点4离线工作如果git服务器出现问题也可以在本地进行切换分支的操作等联网后再提交、合并等操作。
- 缺点1git没有严格的权限控制一般是通过系统设置文件的读写权限来做权限控制。
- 缺点2工作目录只能是整个目录而svn可以单独checkout某个有权限的目录。
- 缺点3git上手困难纯使用者的学习成本相对svn来说比较高。
### 推荐
- 针对与新团队建议使用GIT进行代码版本管理并使用Gitee而不是Github作为远程代码仓库
## 使用GIT管理代码
### 下载安装GIT
- 第一步下载git命令行去[git官方站点](https://git-scm.com/downloads),根据自己的系统版本下载对应的命令行工具
- 第二步下载tortoisegit可视化工具去[tortoisegit官方站点](https://tortoisegit.org/download/),根据自己的系统版本下载对应的可视化工具
- 第三步下载tortoisegit可视化工具中文语言包去[tortoisegit官方站点](https://tortoisegit.org/download/)下载中文简体的Language Packs
- 第四步:按照指引依次安装第一步到第三步下载的程序
### 安装使用指引
- 文章:[使用 Gitee 进行代码管理](https://blog.csdn.net/baiketeam/article/details/82955848)
- 文章:[TortoiseGit安装、配置](https://www.cnblogs.com/xiuxingzhe/p/9312929.html)
- B站视频[GIT视频教程(结合github,码云)(无废话版)](https://www.bilibili.com/video/BV1LZ4y1W7Ld?from=search&seid=9689408860061067375)
- B站视频[尚硅谷GitHub教程](https://www.bilibili.com/video/BV1pW411A7a5?from=search&seid=4400489830029833022)

View File

@@ -0,0 +1,83 @@
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/zizhanghaoshezhi.591b6fa3.png
hard: 进阶
time: 15分钟
---
# 多账号协作
### 综述
当开发内容比较庞大的时候我们建议开发者多人协作。McStudio提供了多账号协作功能由主账号关联一系列子账号实现**保密且便捷**的多人开发、测试。
建议**规模≥3人**的团队采用此功能。
### 子账号权限
- 子账号登录后,可看到主账号的云端组件,线上服务器,以及开发、审核、上线阶段的网络服。
- 子账号在手机测试端中,能够查看和进入主账号的组件和网络服,并可以自身玩家账号的身份下载和进入。
### 子账号条件
- 只能是网易163邮箱账号。
- 不能是开发者账号或者UP主账号。
- 不能够申请成为开发者或者UP主除非取消开发者子账号
- 不能是其他账号的开发子账号。
### 设置子账号
要成为子账号,必须先成为开发者成员,步骤如下:
- 步骤1如下图所示主账号在[开发者平台](https://mcdev.webapp.163.com)选择“成员管理”,在上方输入要添加的子账号昵称,点击“添加成员”,即发起**开发者成员**邀请。
![zizhanghaoshezhi](./images/zizhanghaoshezhi.png)
- 步骤2被邀请的成员可登录《我的世界》电脑或手机端查看邀请邮件并**同意**。
![zizhanghaoyaoqing](./images/zizhanghaoyaoqing.png)
- 步骤3上述步骤同意后将成为主账号的开发者成员如下图所示在成员列表中选择“设为开发子账号”即可让成员**成为子账号**。
![zizhanghaoshezhi](./images/zizhanghaoshezhi.png)
### 子账号详细说明
*该部分涉及大量Apollo概念与操作建议熟悉后再进行阅读。*
- 基岩版、Java版**组件**的云端列表中,为主账号的云端作品。
- 基岩版服务器中,子账号可以对自己**开发阶段**的网络服进行所有操作。
- 基岩版服务器中,开发阶段、审核阶段和上线阶段里,均会显示主账号的网络服,但只有“**开发测试**“、”**查看服务器日志**“权限。
![zizhanghaoquanxian1](./images/zizhanghaoquanxian1.png)
- 基岩版服务器中的复制界面中,开发阶段下拉列表中**不提供“审核阶段”**和**“上线阶段”**。
![zizhanghaoquanxian2](./images/zizhanghaoquanxian2.png)
- Java服务器中显示主账号的线上网络服信息。
- 子账号无法登陆McStudio的**发布页面**。
![zizhanghaoquanxian3](./images/zizhanghaoquanxian3.png)
- 在移动端测试时,子账号能看到主账号的所有组件和网络服,并可以自身玩家账号的身份下载和进入。
### 子账号协同提交内容
- 团队开发过程中,可能需要协同提交代码、美术资源等内容,而这些内容可能涉及一定的查看权限,使用[**自动部署**](../课程7开发技巧/第2节多账号协同部署.html)功能可便捷解决该问题。