Survive手游服务器框架
Survive是使用distri.lua框架实现的一个小型手游服务端示例.除了aoi和astar两个模块以外,所有游戏逻辑皆使用lua编写.
Survive是一个副本玩法的ARPG游戏,目前支持的功能如下:
- 帐号验证、角色创建
- 角色背包、装备穿戴、装备升级、装备升星、装备镶嵌
- 技能学习、升级
- 每日签到、每日任务
- 每日挂机活动
- 单人PVE副本
- 5人PVE副本
- 5V5战场副本
Survive的逻辑服务采用单进程单线程的方式,目前Survive的服务包括:
- gateserver:负责保持与客户端的网络连接,将客户端请求转发到内部服务和把来自内部服务的消息转发给客户端
- groupserver:负责帐号验证,角色创建,角色数据的保存,基本游戏逻辑以及副本的管理
- gameserver:服务服务,运行具体的副本实例,实现战斗及AI处理
获取与构建Survive
获取
Survive依赖distri.lua所以首先需要获得distri.lua
git clone https://github.com/sniperHW/distri.lua.git
进入distri.lua目录
git clone https://github.com/sniperHW/Survive.git
构建
首先确保你的机器上已经安装libcurl和libreadline
然后在distri.lua目录执行以下命令:
make survive
运行Survive服务
启动ssdb/redis
修改gateserver的对外服务ip/端口,打开Survive/setconfig.lua,将["gate1"] = {"192.168.0.87",8010}改成你希望的ip和端口.
在distri.lua目录执行以下命令:
./distrilua Survive/setconfig.lua
之后根据使用命令行还是使用管理工具分成两种不同的启动方式
命令行启动
执行如下命令:
./distrilua Survive/groupserver/groupserver.lua ./distrilua Survive/gameserver/gameserver.lua ./distrilua Survive/gateserver/gateserver.lua
完成后游戏服务便启动完成,可以跳到客户端的启动章节
通过管理工具启动
Survive提供了一套基于web的管理工具,在配置之前请确保你的机器上已经安装了php和apache.除此之外,还要安装php的redis客户端库phpredis.
上面的所有要求都满足之后,打开examples/daemon.lua文件.
1) 将serverip修改为你期望的值
2) 修改groupname="group1"中所有项的ip为你的期望值
3) 修改StartProcess中的路径
4) 执行:
./distrilua examples/daemon.lua -d
这行命令会在你的机器上启动一个daemon进程用于启动/关闭和监控服务
5)在浏览器中输入ip/manage.php,如果看到下图表明php服务及daemon启动成功
6)选择你刚才所配置的ip,点击启动,如果看到下图表明游戏服务启动完成
启动游戏客户端
打开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的参数改为你gateserver的ip和端口号
之后通过Survive/client/runtime/win32/battle.exe启动游戏客户端.
用户名可随便输入,忽略密码直接点击进入游戏,如果一切正常你将会看到如下的创角界面:
游戏图片展示
1)主界面
2)背包界面
3)每日任务
4)角色属性
5)装备强化
6)每日签到
7)挂机任务
8)单人副本
9)5人PVE副本
10)5V5PVP战场副本
11)多机器人副本压测
问题反馈
如有任何问题请通过huangweilook@21cn.com向我反馈,Enjoy!