MCStudio开发Apollo网络服

创建网络服

新建C++网络服

新建作品 => C++网络服

  • 空白网络服模板:空白模板,只有一个大厅,没有Mod,进去相当于原版生存服
  • 简易网络服模板:该模板实现了一个简单的网络游戏,由1个大厅服和3个游戏服构成。

img

导入本地网络服

C++服务器=>本地导入

  • 如果以前曾经使用过bat/sh部署脚本进行部署,则可以通过本地导入的方法导入以前使用的工程

  • 也可以导入当前已存在的网络服工程,如简易网络服模板

    • 删除工程时也会删掉工程目录下的所有文件,请将Mod存放在别的自定义目录
  • 网络服名称只允许使用字母、数字和下划线,它会成为你的网络服目录名称,并作为进程名标识

    img

  • Mod文件夹:存放Mod代码与资源的文件夹,不允许使用中文目录或中文名称

  • 项目文件夹:deploy.json所在文件夹

img

服务器Mod开发与调试

介绍

开发网络服Mod过程,包含以下两部分:

  • 制作Mod

    • 若你还不了解Mod是什么,请先参阅以下指引学习

      Mod SDK文档:http://mc.163.com/mcstudio/modapi/2-1.html

    • 网络服Mod是基于C++组件之上进行组合的复合型Mod,它包含多种角色的多个Mod

      首先,可以先按新建作品指引创建一个简易网络服模板

      然后,通过更多=>打开Mod目录来查看网络服Mod

      这里每一个文件夹都是一个网络服Mod

      img

      在网络服开发的服务器配置页面可以选择加载哪些网络服Mod

      img

      每个Mod的标准格式:

      img

  • 部署与测试

    • 编写代码之后,需要通过部署来应用到服务器上
    • 通过开发测试来验证功能是否合理

    img

空白网络服

服务器配置

  • 基础配置

    基础配置是必须完成的配置

    申请Apollo开发测试机时提交的秘钥以及分配到手的测试机IP填入红框中

    img

  • 大厅服/游戏服

    • Apollo大版本/小版本

      首次创建网络服,总是选取最新的release版本即可

      后面根据可根据API支持版本/整包大版本更新来按需升级

    • IP:选择一个可用的机器

      通常来说一个机器IP上不要部署超过40个服,具体视加载Mod性能而定

    • Mod:配置该服务器要加载的服务器Mod

    • 类型:该服的类型

      只允许使用字母、数字、下划线

      标识该服的功能,在服务器Mod代码里需要用到,如转到指定类型的服

    img

  • 控制服/功能服

    img

  • 数据库

    Apollo开发机默认安装了三种数据库,mysql,mongo,redis

    可以通过数据库配置页面进行开关与配置

    img

  • 更多

    服务器Mod玩法开发基本完成后,才需要用到更多配置里的选项

    img

部署

部署有多种方式,最常使用的是智能部署,重新部署,热更与上线部署四种

  • 智能部署

网络服开发页面的部署按钮默认采取智能部署方式,总是尝试采取最快最低成本的更新方式,使修改的代码生效。

通常开发阶段,总是使用置顶的智能部署就可以了

样例:修改游戏服gameA的代码并保存,点击部署会滚动更新gameA游戏服,并移除gameA的客户端脚本缓存

注意:开发者必须退出重新登陆gameA游戏服放可验证新的代码

  • 重新部署

一些特殊情况下,如果你发现智能部署后代码没有生效,查看日志又没发现报错的话,可以尝试更多 => 重新部署

重新部署会完全清空当前的网络服和Mod,重新上传Mod并部署

  • 热更

如果你修改的内容只包含运行在服务端部分,即developer_mods里的代码修改,且只修改了函数内实现,则可以尝试更多 => 热更来应用新的代码,热更方法可以避免客户端被踢出

样例:开发者在gameA游戏服验证Mod功能时发现异常,通过修改游戏服gameA的developer_mods里的代码进行修复,或增加日志用于排查问题,保存后点击更多 => 热更gameA游戏服,开发者无需退出重新登陆即可继续验证

  • 上线部署

网络服模板有较多未开启的开关以便于开发测试,上线时必须满足相关配置方可部署

img

开发测试

  • 点击开发测试会自动选取该服务器的第一个代理服进入游戏

  • 需要选取指定代理服或多开测试,请通过工具箱的Mod PC开发包,手动填写IP端口进入游戏

    代理服端口在部署日志的最后:

    img

 

使用官方插件

  • 公告插件

    • 公告插件位于离线文档的“6 示例\6-3 ApolloMod\”中

      它由neteaseAnnounce、neteaseAnnounceMaster、neteaseAnnounceService三个服务器Mod构成。

      先把以上Mod拷贝到Apollo工程的Mod目录

    • 执行mod.sql

    • 创建post文本指令: 发邮件.txt

    • 通过控制台调试窗口执行GM指令执行master 发邮件.txt

      img

    • 在游戏中查看效果

      img

  • 权限管理插件

    • 权限管理插件位于离线文档的“6 示例\6-3 ApolloMod\”中

      它由neteaseAuth、neteaseAuthMaster两个服务器Mod构成。

      先把以上Mod拷贝到Apollo工程的Mod目录

    • 执行mod.sql

    • 创建post文本指令: 管理员.txt

    • 通过控制台调试窗口执行GM指令执行master 管理员.txt

      img

    • 在游戏中查看效果

img

线上网络服

发布网络服

  • 当你完成了网络服Demo的开发之后,需要到开发者平台的发布页面创建新的网络服

img

  • 填入开发好的网络服信息

    • 通过网络服开发进行部署的话,ip先随便填,后面会介绍如何绑定
    • 开发阶段可以一键上传图片,后面再修改

img

  • 保存后,创建好的网络服将显示在未审核列表中,同时你可以在MCStudio的线上网络服页面以及PE测试客户端的网络游戏中查看到这个网络服了

img

绑定开发网络服与线上网络服

  • 为了将开发网络服和线上网络服进行绑定,需要配置game_id和game_key

  • 获取game_id

    通过MCStudio=>发布=>PE内容管理=>PE网络游戏管理=>发布新游戏来生成一个新的网络游戏,发布的新游戏会出现再未审核列表里,并生成一个唯一的游戏ID

    img

  • 获取game_key

    通过通过MCStudio=>发布=>PE内容管理=>PE商品管理=>获取签名来获取该网络游戏的game_key

    img

    img

  • 回到网络服开发的更多 => 配置 => 更多配置,将上述game_id和game_key填入,并重新部署测试服

img