网狐荣耀6701/6801服务端 子游戏编译 部署

https://segmentfault.com/a/1190000017232914
https://segmentfault.com/a/1190000017247784

 

1.前言

工作需要,接触到网狐的代码,因为没接触过vc和cocos经过一番才搭建起来,记录起来供大家参考。
服务端包括系统模块(协调服务器、聊天服务器、登录服务器、游戏服务器),网站(网狐前台、后台、房卡后台)。

2.环境准备

笔者这里是将数据库和服务器均运行在同一个win虚拟机中,具体环境准备不进行介绍。

  1. windows server(笔者这里用的是win7虚拟机)
  2. IIS + .NET4.0
  3. VS2015
  4. SQLServer2012

3.数据库初始化

因为网狐的数据库脚本中,有部分是基于 提供的路径去查找其他脚本的,所以执行前要将脚本中的地址替换成你当前脚本所在地址。

  1. 使用IDE打开脚本所在文件夹,全文替换。
  2. 搜索原本的地址(一键安装.bat中有),然后将搜索到的目录下的包含文本替换为你的脚本路径。
  3. 执行,如果运行到生成游戏标识,运行10min左右关闭即可。

4.网站部署

  1. 依次打开网站的目录,修改目录下web.config,将所有User ID=和Password替换为你的数据库用户名密码。
  2. 打开IIS管理器->展开“网站”->终止默认网站 防止端口占用
  3. 依次添加网站(前台、后台、房卡后台,注意端口不能重复,前台一般为80,方便用户访问),示例见图。
    名称仅作为标识随意
    物理路径为相应网站文件
    IP地址输入“*”(即不限制访问来源ip)
    主机名即域名
    clipboard.png
  4. IIS管理器->应用程序池,确保添加的三个网站的.NET Framework版本均为v4.0。
    如果不是,可以右键网站->高级设置->.NET Framework进行调整。
    如果没有这个选项,确认是否安装了.NET4.0环境,没有就安装。
    如果已经安装了,还是没有,打开cmd,输入下方命令。具体可以参见相关博客

    cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
    aspnet_regiis.exe -i
  5. 应用程序池中,依次右键网站->高级设置->启用32为应用程序为True。
    clipboard.png
  6. 进入网站后台,进行简单配置(默认用户名:admin,密码:123456)。配置下数据库地址。系统维护->机器管理->新增,名称随意,填写数据库ip地址、端口、账号、密码。机器码可以不需要。
    clipboard.png

5.编译并运行服务端

5.1系统模块编译

因为系统模块包括了服务端和pc客户端的项目,实际编译会生成服务器和pc客户端,如果不需要pc客户端,可以将相应项目进行卸载,并且可以略过下方的5和6步骤。

  1. 进入系统模块目录。
  2. 打开全局定义目录,修改Platform.h,修改网站地址和服务器ip(这里均为本地虚拟机地址)。
    clipboard.png
  3. 使用VS2015打开系统模块下的vs解决方案(sln后缀)。
  4. 调整菜单栏中的配置选项为 release_unicode
    clipboard.png
  5. 如果提示缺少d3dx9.h等文件,则说明项目需要依赖DirectX,将其添加到项目的包含路径中。需要用到的都是pc客户端的项目如 机器管理、视频组件、游戏广场、游戏框架。右键该项目->属性->VC++目录。
    clipboard.png
  6. 因为编译pc客户端需要依赖网狐图形类库、游戏引擎,但是没有源码,所以要编译通过,需要确保目录”链接库unicode”下有FGuilib.lib和GameEngine.lib。实际运行pc客户端的时候,也需要保证有FGuilib.dll和GameEngine.dll。
  7. 需要注意,每个项目都会生成相应dll或exe,有时需要调整。
    调整生成的路径,右键项目->链接器->输出文件。这里的相对路径都是以当前项目目录为基准。
    clipboard.png
    调整生成后一些操作(如果复制移动等),右键项目->生成事件->后期生成事件->命令行。需注意,只有”在生成中使用”选项为 是,才会生效。
    clipboard.png
  8. 右键解决方案->重新生成解决方案。

5.2运行生成的服务器

  1. 首先需要使用工具Collocate.exe,修改配置文件ServerParameter.ini,并将其放到生成的服务器目录中。
    clipboard.png
  2. 然后依次运行并启动协调服务器(Correspond.exe)->登录服务器(LogonServer.exe)->聊天服务器(ChatServer.exe)。确保没有报错,还有一个游戏服务器,运行子游戏的关键,但是需要先编译好子游戏,并放到服务器目录下,还要在网站后台中进行游戏的添加配置。
    clipboard.png

6编译运行子游戏

6.1编译子游戏

每个子游戏解决方案,是包含了服务端dll和客户端exe。同样如果不需要pc客户端,则可以卸载子游戏的客户端项目。

  1. 进入子游戏目录。我们以游戏510K为例,进入510K目录,使用vs2015打开目录下解决方案。
  2. 确认客户端项目引用了DirectX,同系统模块编译的第5步。
  3. 右键解决方案->重新生成解决方案。确保生成的服务端dll(510KServer.dll)放在运行服务器的目录下,exe(510K.exe)放在运行pc客户端的目录下。

6.2运行子游戏服务

  1. 进入510K目录,打开消息定义目录,查看CMD_Game.h文件,这里定义了后面需要在网站后台配置的信息,打开放着。
  2. 进入网站后台,(默认用户名:admin,密码:123456)。
  3. 模块Tab下,增加游戏模块。系统维护->游戏管理->新增。支持类型看情况点,保持。
    模块标识 -> CMD_Game.h中的KIND_ID
    模块名称 -> GAME_NAME
    数据库名称 -> RYTreasureDB
    数据库地址 -> 在网站部署中第6步添加的机器。
    服务端版本 -> VERSION_SERVER
    客户端版本 -> VERSION_CLIENT
    服务端名称 -> 510KServer.dll
    客户端名称 -> 510K.exe
    clipboard.png
  4. 游戏Tab下,增加510K模块下游戏,与增加游戏模块的内容相似。(如果没有游戏类型选项,先到类型Tab下进行新增)。
    clipboard.png
  5. 手游Tab下,增加510K手机游戏,内容一样相似。具体内容怎么填写见网狐荣耀6701/6801 手机打包发布,目前可以先略过。
    clipboard.png
  6. 进入游戏服务器所在目录,确保5.2中的服务器已经启动。打开游戏服务器(GameServer.exe)。
    点击创建房间->选择510K(如果没有,则要确保6.1中生成的510KServer.dll是否放到服务器目录下了)->进入配置页,记得需要配置服务端口,端口号随意,不要被占用或防火墙阻止即可,完成。
    clipboard.png
    点击加载房间->选择刚刚创建的510K房间->启动服务。

结语

至此,网狐的数据库初始化完成,网站部署完成,服务端编译完成,子游戏编译完成,创建游戏,并运行了游戏服务器。下一篇将介绍网狐cocos手机端安卓打包、热更新,因为没有证书ios只简单介绍编译及注意事项


发表评论

电子邮件地址不会被公开。 必填项已用*标注