MCStudio开发Apollo网络服
创建网络服
新建C++网络服
新建作品 => C++网络服
- 空白网络服模板:空白模板,只有一个大厅,没有Mod,进去相当于原版生存服
- 简易网络服模板:该模板实现了一个简单的网络游戏,由1个大厅服和3个游戏服构成。
导入本地网络服
C++服务器=>本地导入
-
如果以前曾经使用过bat/sh部署脚本进行部署,则可以通过本地导入的方法导入以前使用的工程
-
也可以导入当前已存在的网络服工程,如简易网络服模板
- 删除工程时也会删掉工程目录下的所有文件,请将Mod存放在别的自定义目录
-
网络服名称只允许使用字母、数字和下划线,它会成为你的网络服目录名称,并作为进程名标识
-
Mod文件夹:存放Mod代码与资源的文件夹,不允许使用中文目录或中文名称
-
项目文件夹:deploy.json所在文件夹
服务器Mod开发与调试
介绍
开发网络服Mod过程,包含以下两部分:
-
制作Mod
-
若你还不了解Mod是什么,请先参阅以下指引学习
-
网络服Mod是基于C++组件之上进行组合的复合型Mod,它包含多种角色的多个Mod
首先,可以先按新建作品指引创建一个简易网络服模板
然后,通过更多=>打开Mod目录来查看网络服Mod
这里每一个文件夹都是一个网络服Mod
在网络服开发的服务器配置页面可以选择加载哪些网络服Mod
每个Mod的标准格式:
-
-
部署与测试
- 编写代码之后,需要通过部署来应用到服务器上
- 通过开发测试来验证功能是否合理
空白网络服
服务器配置
-
基础配置
基础配置是必须完成的配置
将申请Apollo开发测试机时提交的秘钥以及分配到手的测试机IP填入红框中
-
大厅服/游戏服
-
Apollo大版本/小版本
首次创建网络服,总是选取最新的release版本即可
后面根据可根据API支持版本/整包大版本更新来按需升级
-
IP:选择一个可用的机器
通常来说一个机器IP上不要部署超过40个服,具体视加载Mod性能而定
-
Mod:配置该服务器要加载的服务器Mod
-
类型:该服的类型
只允许使用字母、数字、下划线
标识该服的功能,在服务器Mod代码里需要用到,如转到指定类型的服
-
-
控制服/功能服
-
数据库
Apollo开发机默认安装了三种数据库,mysql,mongo,redis
可以通过数据库配置页面进行开关与配置
-
更多
服务器Mod玩法开发基本完成后,才需要用到更多配置里的选项
部署
部署有多种方式,最常使用的是智能部署,重新部署,热更与上线部署四种
- 智能部署
网络服开发页面的部署按钮默认采取智能部署方式,总是尝试采取最快最低成本的更新方式,使修改的代码生效。
通常开发阶段,总是使用置顶的智能部署就可以了
样例:修改游戏服gameA的代码并保存,点击部署会滚动更新gameA游戏服,并移除gameA的客户端脚本缓存
注意:开发者必须退出重新登陆gameA游戏服放可验证新的代码
- 重新部署
一些特殊情况下,如果你发现智能部署后代码没有生效,查看日志又没发现报错的话,可以尝试更多 => 重新部署
重新部署会完全清空当前的网络服和Mod,重新上传Mod并部署
- 热更
如果你修改的内容只包含运行在服务端部分,即developer_mods里的代码修改,且只修改了函数内实现,则可以尝试更多 => 热更来应用新的代码,热更方法可以避免客户端被踢出
样例:开发者在gameA游戏服验证Mod功能时发现异常,通过修改游戏服gameA的developer_mods里的代码进行修复,或增加日志用于排查问题,保存后点击更多 => 热更gameA游戏服,开发者无需退出重新登陆即可继续验证
- 上线部署
网络服模板有较多未开启的开关以便于开发测试,上线时必须满足相关配置方可部署
开发测试
使用官方插件
-
公告插件
-
公告插件位于离线文档的“6 示例\6-3 ApolloMod\”中
它由neteaseAnnounce、neteaseAnnounceMaster、neteaseAnnounceService三个服务器Mod构成。
先把以上Mod拷贝到Apollo工程的Mod目录下
-
执行mod.sql
-
创建post文本指令: 发邮件.txt
post /mail-send-many
{
"touids": [101768],
"title": "发给test的奖励",
"content": "发给test的奖励内容",
"itemList": ["minecraft:apple:0:10", "minecraft:bread:0:5"],
"expire": 86400,
"srcName": "开发组"
}
-
通过控制台调试窗口执行GM指令执行master 发邮件.txt
-
在游戏中查看效果
-
-
权限管理插件
线上网络服
发布网络服
- 当你完成了网络服Demo的开发之后,需要到开发者平台的发布页面创建新的网络服
-
填入开发好的网络服信息
- 通过网络服开发进行部署的话,ip先随便填,后面会介绍如何绑定
- 开发阶段可以一键上传图片,后面再修改
- 保存后,创建好的网络服将显示在未审核列表中,同时你可以在MCStudio的线上网络服页面以及PE测试客户端的网络游戏中查看到这个网络服了
绑定开发网络服与线上网络服
-
为了将开发网络服和线上网络服进行绑定,需要配置game_id和game_key
-
获取game_id
通过MCStudio=>发布=>PE内容管理=>PE网络游戏管理=>发布新游戏来生成一个新的网络游戏,发布的新游戏会出现再未审核列表里,并生成一个唯一的游戏ID
-
获取game_key
通过通过MCStudio=>发布=>PE内容管理=>PE商品管理=>获取签名来获取该网络游戏的game_key
-
回到网络服开发的更多 => 配置 => 更多配置,将上述game_id和game_key填入,并重新部署测试服