美文网首页
ARK安装配置

ARK安装配置

作者: MengDong2018 | 来源:发表于2018-03-07 15:40 被阅读0次

ARK小白教程(傻瓜式教程)

Windows教程

一、介绍

ARK很强大!

请加ArkGameFrame交流QQ群:540961187

二、下载安装

1. 从github下载ARKGameFrame源码(可以是zip包解压出来的或者通过github PC端clone下来的)

2. Windows环境如下:

检查自己的电脑

A. Windows 10, 8.1, 或者 7,更低就不行了!

B.  必须安装 Visual Studio 2017 或者 Visual Studio 2015 Update 3 ,不同的版本在添加依赖库时需要不同的配置,一定注意!

C.   必须安装Git

我的是VS2017,也就用该版本举例子。

打开“VS 2017的开发人员命令提示符”,位置在”开始->Visual Studio 2017->VS 2017的开发人员命令提示符”。

如果没有的话在VS安装目录下找到这个这个文件就是了:

Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat。

输入git --version,查看版本,如果有版本信息:

如果没有安装,就马上安装吧。

下载地址:https://git-scm.com/downloads

下载完成后要重启电脑哦。

D.   必须安装CMake 3.0 +

同样方法检查cmake是否安装,在VS开发人员命令提示中输入 cmke --version

如果安装了就会出现版本信息,否则提示错误。

下载地址:https://cmake.org/download/

安装成功后一定要重启电脑。

三、启动Demo

1. 打开VS 开发命令提示,我的ARKGameFrame 工程放在G:\MyWork\Ark 目录下:

进入项目根目录:

进入Dep目录,执行build_dep.bat文件,这可能会消耗较长时间,下载工程依赖的库文件。需要注意的是,VS2017和VS2015 使用的build_dep.bat文件内容是不一样的。

当执行结束成功后就可以打开ARKRoot/Frame/ARK.sln 工程了。

对ARK工程进行编译,如果第一次出错,再编译一遍,再出错那就真错了,就不用编译了。

执行ARKRoot/Shell/GenerateConfigXML.bat 文件,生成工程需要的配置文件。

至此,ARK工程就配置完成了。

点击执行ARKRoot/Bin/Server/Debug/Run.bat,就跑起来了。

3. 。。

四、第一个完整流程

一个完整的流程即:客户端向服务器发送一条消息,服务器根据消息的类型进行正确数据处理,并给客户端相应的回复。

对于理解ARK还处于小白状态的同学,就要分开理解其中的各个模块了。

接下来是以英雄模块(HeroModule)例子来介绍的。

玩家登陆游戏后,请求已解锁的英雄列表(HeroList),玩家选择(select)解锁的英雄(Hero),进入游戏场景进行游戏。当玩家有钻石充足了,接着可以解锁(Open)新的英雄。

为了完成这个模块,又要划分出几部分:

1. 数据部分

包括英雄静态表(Property),玩家拥有的英雄结构数据(Record/)和网络之间的传输数据(Protobuf)。

英雄静态数据表(Property):

在Bin\Server\DataConfig\Excel目录下创建Hero.xlsx表格并打开。

编辑Hero.xlsx表格:

表格内容格式从Item.xlsx文件中拷贝即可。

因为是Property类型的数据,所以工作表页签要以Property开头命名,用于生成工具辨别数据类型。

必须将多余的工作表删除,否则生成数据表会失败。

结构数据表(Record):

在Bin\Server\DataConfig\Excel目录下打开Player.xlsx文件,这里面是玩家Player的数据配置。

打开Player.xlsx下Record_Hero工作表:

编辑PlayerHero模块,完成后:

只剩下GUID和ConfigID两个字段了。删除其他字段必须删除干净,不能留下备注等其他痕迹。

第一行第二列是这个数据结构的名字,也就是类名。

第2行Row表示内存分配多少行这样的结构,比如一共有64个不同的英雄,那么Row就是64。

第3行Col表示这个数据结构中有几列,很显然是两列,需要改成2。

下面几行中Public 表示是否广播给周围人,Private表示是否要同步给自己,Save表示是否要存档 ,Cache表示??

ConfigID对应Hero.xlsx文件中ID,而GUID表示内存中游戏世界中的唯一标识。

Hero是Property,是静态的;PlayerHero是Record,是动态的;Player.xlsx表中PlayerHero配置了玩家持有Hero的数据结构,一会会通过文件转换工具将xlsx表格转换成xml表格供工程加载到内存中。

通过Record类型的结构数据生成的xml文件会存储到Bin\Server\DataConfig\Struct\Class目录下面,通过Property类型的静态数据生成的xml文件会存储到Bin\Server\DataConfig\Ini目录下面。

静态数据和结构数据都已经配置完成,需要使用Bin\Server\DataConfig\Tool目录下面的FileProcess_d.exe工具生成xml文件,双击执行吧。

生成过程中如果有错误,读一读看看能否解决,不行的话联系我们吧。

成功后会生成新文件和更新文件:

Proper类型的静态数据文件:

Record类型的结构文件:

打开Hero.xml后查看一下吧:

Property静态配置文件:

Record结构配置文件:

原来是这样,有了这两个配置文件,Server启动时就可以根据结构配置生成相应的内存结构,并加载静态数据到内存中。

通过Protobuf生成类(class):

本例生成Hero C++ 和 C# 类文件。

在Frame\SDK\Proto目录下创建AFMsgHero.proto文件并编辑如下代码。

syntax = "proto2";//固定格式

package AFMsg;    //包名为 AFMsg

message Hero //定义Hero类

    required int64                id = 1;   //类型为 int64 变量名为 id 的字段。

                                  //required 为必须字段

    optional string     name = 2; //类型为 sting 变量名为 name 的字段。 

                                  //optional 为可选字段

}

message HeroList //定义HeroList

{

    repeated Hero   heroList = 1; //类型为 Hero 变量名为 heroList 的列表。

                            //repeated 表示该类型为重复数据,所以为列表。

}

如下图:

这是定义了两个类,分别是Hero和HeroList。

Hero类包含了两个成员变量:int类型的id和string类型的name。

HeroList包含了一个成员变量:Hero类型的列表heroList。

客户端向服务器请求的英雄列表,就是HeroList类型的对象。

编辑保存后打开同目录下的gen-proto.bat文件:

将新建的AFMsgHero.proto文件添加进去并保存:

双击执行gen-proto.bat文件,即可生成名为C++和C#类文件。

在同目录下生成了C++文件:

在cs目录下生成了C#文件:

配置协议ID:

没有协议,不成方圆。协议是客户端与服务器之间通信的桥梁。

本例子中需要增加3条协议:

A.获取解锁英雄列表(GetHeroList)、

B.解锁指定英雄(OpenHero)、

C.选择指定英雄(SelectHero)。

协议ID的配置也是通过protobuf生成的。

打开Frame\SDK\Proto目录下的AFDefine.proto文件:

在enum EGameMsgID中添加了6条协议ID:

        EGMI_REQ_HERO_LIST                                                        = 140;                        // 申请英雄列表

        EGMI_ACK_HERO_LIST                                                        = 141;                        // 回复英雄列表

        EGMI_REQ_OPEN_HERO                                                        = 142;                        // 申请解锁英雄

        EGMI_ACK_OPEN_HERO                                                        = 143;                        // 回复解锁英雄

        EGMI_REQ_SELECT_HERO                                                = 144;                        // 申请选择英雄

EGMI_ACK_SELECT_HERO                                                = 145;                        // 回复选择英雄

REQ表示客户端向服务器发送请求;

ACK表示服务器向客户端回复请求。

再次执行同目录下的gen-proto.bat文件,生成更新后的程序文件。

至此,Server需要的所有数据都已配置完成。

总结一下包括:英雄的静态数据Hero(Property),玩家拥有英雄的数据结构PlayerHero(Record),以及通过Protobuf生成的C++/C#类文件。

2. 服务器拓展模块

ARK拓展模块能力是非常强大的。

今天多了一个需求需要增加一个模块,明天删除一个需求减少一个模块,模块变更很正常。

本例中需要增加HeroModule模块。

打开Frame/ARK.sln工程,我们将在解决方案下Server/GameServer/AFGameLogicPlugin插件中工作。

创建目录HeroModule,并创建AFIHeroModule.h接口类,

注册Modulle:

在AFGameLogicPlugin.cpp中注册HoroModule:

代码如下:

REGISTER_MODULE(pPluginManager, AFIHeroModule, AFCHeroModule)

相关文章

  • ARK安装配置

    ARK小白教程(傻瓜式教程) Windows教程 一、介绍 ARK很强大! 请加ArkGameFrame交流QQ群...

  • Ark

    9月29日 宿舍生活还是很不习惯啊...包括公共浴室,以前军训就特别厌恶这个东西...每次都要红着脸进去...他们...

  • 主流CPU、GPU、VPU、SOC简介

    1.Intel 产品规格[https://ark.intel.com/content/www/cn/zh/ark....

  • 安装与配置

    目录 *python简单安装&配置*anaconda安装&配置*pycharm安装&配置 python简单安装 注...

  • Hexo + Yilia快速搭建个人博客网站

    以下命令涉及配置github、安装hexo、安装yilia主题、deploy配置 安装 配置

  • 开发速记-emacs篇: haskell+nix开发模式

    安装nix并配置channel: 安装cachix 并配置iohk缓存 安装cabal 安装emacs 配置ema...

  • Appium与TestNG自动化测试环境搭建

    一、安装配置 1、安装JDK,环境配置 2、ADT安装,环境配置 3、安装Node.js 安装完成后配置环境变量,...

  • Appium与TestNG自动化测试环境搭建

    一、安装配置 1、安装JDK,环境配置 2、ADT安装,环境配置 3、安装Node.js 安装完成后配置环境变量,...

  • 软件安装

    Git Bash的安装与配置 Node.js的安装与配置 Git 的安装与配置 VSCode的安装和配置 错误言论...

  • Centos7 CDH5.16在线安装

    步骤 配置环境ntp 安装阿里 yum repossh 免密 安装java 安装配置cm 安装配置mysql 机器...

网友评论

      本文标题:ARK安装配置

      本文链接:https://www.haomeiwen.com/subject/clwjfftx.html