手游服务器框架 Survive

GPL
Lua
跨平台
2014-10-22
sniperHW

简介

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服务

首先在你的机器上安装ssdbredis

启动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启动成功

Alt text

6)选择你刚才所配置的ip,点击启动,如果看到下图表明游戏服务启动完成

Alt text

启动游戏客户端

打开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启动游戏客户端.

Alt text

用户名可随便输入,忽略密码直接点击进入游戏,如果一切正常你将会看到如下的创角界面:

Alt text

游戏图片展示

1)主界面

Alt text

2)背包界面

Alt text

Alt text

3)每日任务

Alt text

4)角色属性

Alt text

5)装备强化

Alt text

Alt text

6)每日签到

Alt text

7)挂机任务

Alt text

8)单人副本

Alt text

9)5人PVE副本

Alt text

Alt text

10)5V5PVP战场副本

Alt text

Alt text

11)多机器人副本压测

Alt text

问题反馈

如有任何问题请通过huangweilook@21cn.com向我反馈,Enjoy!

加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Facelets 标签参考 2

Facelets 标签参考 2 lxm翻译自《Facelets Essentials: Guide to JavaServer™ Faces View Definition Framework 》 不当之处欢迎指正。 <ui:debug/> 这标签是开发程序时很有用的工具。在 la...

2009/03/05 23:44
412
0
浅谈Solr和ElasticSearch建索引性能优化策略

由于Solr和ElasticSearch都是基于Lucene构建的,所以他们之间有很大程度的相似性,故而他们的一些优化策略基本也是通用的,面对越来越多的海量数据,如何优化全量索引的写入性能呢? 散仙简单...

2016/04/27 18:52
578
2
Except that due to the world

Except that due to the world

2015/05/04 11:33
5
0
ActiveMQ - Caching

Why we want to persist messages? - There are a number of cases where messages are required to be available for consumers that were disconnected from the broker, so we want these...

2014/06/20 10:26
14
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部