ARK安裝配置

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

Windows教程

一唯欣、介紹

ARK很強(qiáng)大嘹吨!

請加ArkGameFrame交流QQ群:540961187

二、下載安裝

1.?從github下載ARKGameFrame源碼(可以是zip包解壓出來的或者通過github?PC端clone下來的)

2.?Windows環(huán)境如下:

檢查自己的電腦

A.?Windows?10,?8.1,?或者?7境氢,更低就不行了蟀拷!

B.??必須安裝?Visual?Studio?2017?或者?Visual?Studio?2015?Update?3?碰纬,不同的版本在添加依賴庫時需要不同的配置,一定注意!

C.???必須安裝Git

我的是VS2017问芬,也就用該版本舉例子悦析。

打開“VS?2017的開發(fā)人員命令提示符”,位置在”開始->Visual?Studio?2017->VS?2017的開發(fā)人員命令提示符”此衅。


如果沒有的話在VS安裝目錄下找到這個這個文件就是了:

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


輸入git?--version,查看版本挡鞍,如果有版本信息:


如果沒有安裝骑歹,就馬上安裝吧。

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

下載完成后要重啟電腦哦墨微。

D.???必須安裝CMake?3.0?+

同樣方法檢查cmake是否安裝道媚,在VS開發(fā)人員命令提示中輸入?cmke?--version


如果安裝了就會出現(xiàn)版本信息,否則提示錯誤翘县。

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

安裝成功后一定要重啟電腦最域。


三、啟動Demo

1.?打開VS?開發(fā)命令提示锈麸,我的ARKGameFrame?工程放在G:\MyWork\Ark?目錄下:

進(jìn)入項目根目錄:


進(jìn)入Dep目錄羡宙,執(zhí)行build_dep.bat文件,這可能會消耗較長時間掐隐,下載工程依賴的庫文件。需要注意的是钞馁,VS2017和VS2015?使用的build_dep.bat文件內(nèi)容是不一樣的虑省。

當(dāng)執(zhí)行結(jié)束成功后就可以打開ARKRoot/Frame/ARK.sln?工程了。

對ARK工程進(jìn)行編譯僧凰,如果第一次出錯探颈,再編譯一遍,再出錯那就真錯了训措,就不用編譯了伪节。

執(zhí)行ARKRoot/Shell/GenerateConfigXML.bat?文件,生成工程需要的配置文件绩鸣。


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

點擊執(zhí)行ARKRoot/Bin/Server/Debug/Run.bat呀闻,就跑起來了化借。

3.?。捡多。


四蓖康、第一個完整流程

一個完整的流程即:客戶端向服務(wù)器發(fā)送一條消息铐炫,服務(wù)器根據(jù)消息的類型進(jìn)行正確數(shù)據(jù)處理,并給客戶端相應(yīng)的回復(fù)蒜焊。

對于理解ARK還處于小白狀態(tài)的同學(xué)倒信,就要分開理解其中的各個模塊了。

接下來是以英雄模塊(HeroModule)例子來介紹的泳梆。

玩家登陸游戲后鳖悠,請求已解鎖的英雄列表(HeroList),玩家選擇(select)解鎖的英雄(Hero),進(jìn)入游戲場景進(jìn)行游戲鸭丛。當(dāng)玩家有鉆石充足了竞穷,接著可以解鎖(Open)新的英雄。

為了完成這個模塊鳞溉,又要劃分出幾部分:

1.?數(shù)據(jù)部分

包括英雄靜態(tài)表(Property)瘾带,玩家擁有的英雄結(jié)構(gòu)數(shù)據(jù)(Record/)和網(wǎng)絡(luò)之間的傳輸數(shù)據(jù)(Protobuf)。

英雄靜態(tài)數(shù)據(jù)表(Property):

在Bin\Server\DataConfig\Excel目錄下創(chuàng)建Hero.xlsx表格并打開熟菲。



編輯Hero.xlsx表格:

表格內(nèi)容格式從Item.xlsx文件中拷貝即可看政。


因為是Property類型的數(shù)據(jù),所以工作表頁簽要以Property開頭命名抄罕,用于生成工具辨別數(shù)據(jù)類型允蚣。

必須將多余的工作表刪除,否則生成數(shù)據(jù)表會失敗呆贿。

結(jié)構(gòu)數(shù)據(jù)表(Record):

在Bin\Server\DataConfig\Excel目錄下打開Player.xlsx文件唱蒸,這里面是玩家Player的數(shù)據(jù)配置坟岔。

打開Player.xlsx下Record_Hero工作表:


編輯PlayerHero模塊,完成后:


只剩下GUID和ConfigID兩個字段了。刪除其他字段必須刪除干凈你画,不能留下備注等其他痕跡糊饱。

第一行第二列是這個數(shù)據(jù)結(jié)構(gòu)的名字妇蛀,也就是類名针饥。

第2行Row表示內(nèi)存分配多少行這樣的結(jié)構(gòu),比如一共有64個不同的英雄浪秘,那么Row就是64蒋情。

第3行Col表示這個數(shù)據(jù)結(jié)構(gòu)中有幾列,很顯然是兩列耸携,需要改成2棵癣。

下面幾行中Public?表示是否廣播給周圍人,Private表示是否要同步給自己夺衍,Save表示是否要存檔?浙巫,Cache表示??

ConfigID對應(yīng)Hero.xlsx文件中ID的畴,而GUID表示內(nèi)存中游戲世界中的唯一標(biāo)識渊抄。

Hero是Property,是靜態(tài)的丧裁;PlayerHero是Record护桦,是動態(tài)的;Player.xlsx表中PlayerHero配置了玩家持有Hero的數(shù)據(jù)結(jié)構(gòu)煎娇,一會會通過文件轉(zhuǎn)換工具將xlsx表格轉(zhuǎn)換成xml表格供工程加載到內(nèi)存中二庵。

通過Record類型的結(jié)構(gòu)數(shù)據(jù)生成的xml文件會存儲到Bin\Server\DataConfig\Struct\Class目錄下面,通過Property類型的靜態(tài)數(shù)據(jù)生成的xml文件會存儲到Bin\Server\DataConfig\Ini目錄下面缓呛。

靜態(tài)數(shù)據(jù)和結(jié)構(gòu)數(shù)據(jù)都已經(jīng)配置完成催享,需要使用Bin\Server\DataConfig\Tool目錄下面的FileProcess_d.exe工具生成xml文件,雙擊執(zhí)行吧哟绊。

生成過程中如果有錯誤因妙,讀一讀看看能否解決,不行的話聯(lián)系我們吧票髓。

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

Proper類型的靜態(tài)數(shù)據(jù)文件:


Record類型的結(jié)構(gòu)文件:


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

Property靜態(tài)配置文件:


Record結(jié)構(gòu)配置文件:


原來是這樣攀涵,有了這兩個配置文件,Server啟動時就可以根據(jù)結(jié)構(gòu)配置生成相應(yīng)的內(nèi)存結(jié)構(gòu)洽沟,并加載靜態(tài)數(shù)據(jù)到內(nèi)存中以故。


通過Protobuf生成類(class):

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

在Frame\SDK\Proto目錄下創(chuàng)建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?表示該類型為重復(fù)數(shù)據(jù)棘利,所以為列表。

}

如下圖:


這是定義了兩個類朽缴,分別是Hero和HeroList。

Hero類包含了兩個成員變量:int類型的id和string類型的name水援。

HeroList包含了一個成員變量:Hero類型的列表heroList密强。

客戶端向服務(wù)器請求的英雄列表,就是HeroList類型的對象蜗元。


編輯保存后打開同目錄下的gen-proto.bat文件:


將新建的AFMsgHero.proto文件添加進(jìn)去并保存:


雙擊執(zhí)行g(shù)en-proto.bat文件,即可生成名為C++和C#類文件或渤。

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


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



配置協(xié)議ID:

沒有協(xié)議,不成方圓奕扣。協(xié)議是客戶端與服務(wù)器之間通信的橋梁薪鹦。

本例子中需要增加3條協(xié)議:

A.獲取解鎖英雄列表(GetHeroList)、

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

C.選擇指定英雄(SelectHero)池磁。


協(xié)議ID的配置也是通過protobuf生成的奔害。

打開Frame\SDK\Proto目錄下的AFDefine.proto文件:


在enum?EGameMsgID中添加了6條協(xié)議ID:

????????EGMI_REQ_HERO_LIST????????????????????????????????????????????????????????=?140;????????????????????????//?申請英雄列表

????????EGMI_ACK_HERO_LIST????????????????????????????????????????????????????????=?141;????????????????????????//?回復(fù)英雄列表

????????EGMI_REQ_OPEN_HERO????????????????????????????????????????????????????????=?142;????????????????????????//?申請解鎖英雄

????????EGMI_ACK_OPEN_HERO????????????????????????????????????????????????????????=?143;????????????????????????//?回復(fù)解鎖英雄

????????EGMI_REQ_SELECT_HERO????????????????????????????????????????????????=?144;????????????????????????//?申請選擇英雄

EGMI_ACK_SELECT_HERO????????????????????????????????????????????????=?145;????????????????????????//?回復(fù)選擇英雄


REQ表示客戶端向服務(wù)器發(fā)送請求;

ACK表示服務(wù)器向客戶端回復(fù)請求地熄。

再次執(zhí)行同目錄下的gen-proto.bat文件华临,生成更新后的程序文件。


至此端考,Server需要的所有數(shù)據(jù)都已配置完成雅潭。

總結(jié)一下包括:英雄的靜態(tài)數(shù)據(jù)Hero(Property),玩家擁有英雄的數(shù)據(jù)結(jié)構(gòu)PlayerHero(Record)却特,以及通過Protobuf生成的C++/C#類文件扶供。



2.?服務(wù)器拓展模塊

ARK拓展模塊能力是非常強(qiáng)大的。

今天多了一個需求需要增加一個模塊裂明,明天刪除一個需求減少一個模塊椿浓,模塊變更很正常。

本例中需要增加HeroModule模塊漾岳。

打開Frame/ARK.sln工程轰绵,我們將在解決方案下Server/GameServer/AFGameLogicPlugin插件中工作。

創(chuàng)建目錄HeroModule尼荆,并創(chuàng)建AFIHeroModule.h接口類左腔,



注冊Modulle:

在AFGameLogicPlugin.cpp中注冊HoroModule:

代碼如下:

REGISTER_MODULE(pPluginManager,?AFIHeroModule,?AFCHeroModule)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捅儒,隨后出現(xiàn)的幾起案子液样,更是在濱河造成了極大的恐慌,老刑警劉巖巧还,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鞭莽,死亡現(xiàn)場離奇詭異,居然都是意外死亡麸祷,警方通過查閱死者的電腦和手機(jī)澎怒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阶牍,“玉大人喷面,你說我怎么就攤上這事∽吣酰” “怎么了惧辈?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長磕瓷。 經(jīng)常有香客問我盒齿,道長念逞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任边翁,我火速辦了婚禮翎承,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘倒彰。我一直安慰自己审洞,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布待讳。 她就那樣靜靜地躺著芒澜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪创淡。 梳的紋絲不亂的頭發(fā)上痴晦,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音琳彩,去河邊找鬼誊酌。 笑死,一個胖子當(dāng)著我的面吹牛露乏,可吹牛的內(nèi)容都是我干的碧浊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瘟仿,長吁一口氣:“原來是場噩夢啊……” “哼箱锐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起劳较,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤驹止,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后观蜗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體臊恋,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年墓捻,在試婚紗的時候發(fā)現(xiàn)自己被綠了抖仅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡砖第,死狀恐怖撤卢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情厂画,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布拷邢,位于F島的核電站袱院,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜忽洛,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一腻惠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧欲虚,春花似錦集灌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梯找,卻和暖如春唆阿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背锈锤。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工驯鳖, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人久免。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓浅辙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親阎姥。 傳聞我的和親對象是個殘疾皇子记舆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 由于工程項目中擬采用一種簡便高效的數(shù)據(jù)交換格式,百度了一下發(fā)現(xiàn)除了采用 xml丁寄、JSON 還有 ProtoBuf(...
    黃海佳閱讀 48,637評論 1 23
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理氨淌,服務(wù)發(fā)現(xiàn),斷路器伊磺,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    Joyyx閱讀 8,328評論 0 16
  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多盛正,請查閱幫助信息) 1、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,094評論 1 19
  • 記憶里屑埋,讓我淚流不止的電影是?媽媽再愛我一次?豪筝。今天讓我潸然淚下,并不可抑制的將自己融入到片中的是摘能,這部印度電影?...
    雨墨媽媽閱讀 254評論 0 2