Survive手游服務(wù)器框架
Survive是使用distri.lua框架實(shí)現(xiàn)的一個(gè)小型手游服務(wù)端示例.除了aoi和astar兩個(gè)模塊以外,所有游戲邏輯皆使用lua編寫.
Survive是一個(gè)副本玩法的ARPG游戲,目前支持的功能如下:
- 帳號(hào)驗(yàn)證、角色創(chuàng)建
- 角色背包、裝備穿戴、裝備升級(jí)、裝備升星、裝備鑲嵌
- 技能學(xué)習(xí)、升級(jí)
- 每日簽到、每日任務(wù)
- 每日掛機(jī)活動(dòng)
- 單人PVE副本
- 5人PVE副本
- 5V5戰(zhàn)場(chǎng)副本
Survive的邏輯服務(wù)采用單進(jìn)程單線程的方式,目前Survive的服務(wù)包括:
- gateserver:負(fù)責(zé)保持與客戶端的網(wǎng)絡(luò)連接,將客戶端請(qǐng)求轉(zhuǎn)發(fā)到內(nèi)部服務(wù)和把來自內(nèi)部服務(wù)的消息轉(zhuǎn)發(fā)給客戶端
- groupserver:負(fù)責(zé)帳號(hào)驗(yàn)證,角色創(chuàng)建,角色數(shù)據(jù)的保存,基本游戲邏輯以及副本的管理
- gameserver:服務(wù)服務(wù),運(yùn)行具體的副本實(shí)例,實(shí)現(xiàn)戰(zhàn)斗及AI處理
獲取與構(gòu)建Survive
獲取
Survive依賴distri.lua所以首先需要獲得distri.lua
git clone https://github.com/sniperHW/distri.lua.git
進(jìn)入distri.lua目錄
git clone https://github.com/sniperHW/Survive.git
構(gòu)建
首先確保你的機(jī)器上已經(jīng)安裝libcurl和libreadline
然后在distri.lua目錄執(zhí)行以下命令:
make survive
運(yùn)行Survive服務(wù)
啟動(dòng)ssdb/redis
修改gateserver的對(duì)外服務(wù)ip/端口,打開Survive/setconfig.lua,將["gate1"] = {"192.168.0.87",8010}改成你希望的ip和端口.
在distri.lua目錄執(zhí)行以下命令:
./distrilua Survive/setconfig.lua
之后根據(jù)使用命令行還是使用管理工具分成兩種不同的啟動(dòng)方式
命令行啟動(dòng)
執(zhí)行如下命令:
./distrilua Survive/groupserver/groupserver.lua ./distrilua Survive/gameserver/gameserver.lua ./distrilua Survive/gateserver/gateserver.lua
完成后游戲服務(wù)便啟動(dòng)完成,可以跳到客戶端的啟動(dòng)章節(jié)
通過管理工具啟動(dòng)
Survive提供了一套基于web的管理工具,在配置之前請(qǐng)確保你的機(jī)器上已經(jīng)安裝了php和apache.除此之外,還要安裝php的redis客戶端庫phpredis.
上面的所有要求都滿足之后,打開examples/daemon.lua文件.
1) 將serverip修改為你期望的值
2) 修改groupname="group1"中所有項(xiàng)的ip為你的期望值
3) 修改StartProcess中的路徑
4) 執(zhí)行:
./distrilua examples/daemon.lua -d
這行命令會(huì)在你的機(jī)器上啟動(dòng)一個(gè)daemon進(jìn)程用于啟動(dòng)/關(guān)閉和監(jiān)控服務(wù)
5)在瀏覽器中輸入ip/manage.php,如果看到下圖表明php服務(wù)及daemon啟動(dòng)成功
6)選擇你剛才所配置的ip,點(diǎn)擊啟動(dòng),如果看到下圖表明游戲服務(wù)啟動(dòng)完成
啟動(dòng)游戲客戶端
打開Survive/client/src/UI/UILogin.lua
將
local function btnHandle(sender, event)
print("pre connect")
--Connect("192.168.0.87", 8010)
Connect("121.41.37.227", 8010)
--cc.Director:getInstance():replaceScene(require("SceneLoading.lua").create())
end
中Connect的參數(shù)改為你gateserver的ip和端口號(hào)
之后通過Survive/client/runtime/win32/battle.exe啟動(dòng)游戲客戶端.
用戶名可隨便輸入,忽略密碼直接點(diǎn)擊進(jìn)入游戲,如果一切正常你將會(huì)看到如下的創(chuàng)角界面:
游戲圖片展示
1)主界面
2)背包界面
3)每日任務(wù)
4)角色屬性
5)裝備強(qiáng)化
6)每日簽到
7)掛機(jī)任務(wù)
8)單人副本
9)5人PVE副本
10)5V5PVP戰(zhàn)場(chǎng)副本
11)多機(jī)器人副本壓測(cè)
問題反饋
如有任何問題請(qǐng)通過[email protected]向我反饋,Enjoy!
