关于web游戏的搭建

12-01-18 houzhe11
去年10月份搭建的一个项目,,开发已经有3个月了。。但总是担心性能问题。希望板桥老师给点建议。

项目中前台使用的为as3(flash),java后台的搭建为ibatis2.0,servlet,spring2.0

前台与后台的通讯是通过json格式。

游戏的静态数据都是放到excel中,项目启动的时候放入内存,存储到map中。大约有20张excel文件,10w条数据。。

代码的分层:dao层,负责处理数据库操作,

service层,负责业务逻辑处理,将dao引入service。通过spring注入。

servlet层,用于接收前台传过来的请求,响应请求。说明一下,我们的所有的请求都是配置在数据库中的,,也是在游戏启动的时候,将数据库中的请求配置一次性读入到内存中。。

由于是使用ibatis,我没有自己写sql语句,是使用了eclipse的插件ibator来自动生成的ibatis配置文件和dao的,可能比较少使用多表查询,而是使用单表查询。。

我们对外就公布一个请求地址,例如:

http://119.57.21.197:9170/zombietown/zombie.do,我们是根据请求的一个参数command,来与数据库中的一条记录对应,从而通过反射方式来找到对应的servlet中的方法。。不晓得反射对性能影响大吗?

这款游戏的核心是任务系统与宝箱系统,也是在性能这块,我比较担心的。。

任务系统,需要记录游戏中的每一步的操作,比如:任务的需求为用手枪杀死6只程序员僵尸,,我目前的实现为同过AOP拦截所有的请求,找到打僵尸的命令号,然后分析其中响应给前台的参数。

必需为手枪,必需要杀死,,而且必需为程序员僵尸,,打了以后,要记录到用户任务信息表中。。那任务信息表就应该是频繁的操作了。。。

。这个拦截器,处理的业务逻辑很多,,怕人数一多,,有问题。。[目前的需求是确保玩家同时在线人数为2W]。。

宝箱系统,每杀一个僵尸,掉落的东西都不一样,,用到了宝箱配置机制。。

比如打程序员僵尸,10%的概率掉2点金币,20%的概率掉5点经验,50%概率掉1点行动力,30%的概率掉4点金币。。由于打僵尸是玩家玩游戏的核心。。所以当心开宝箱的性能问题。。

希望板桥老师给点意见。。

最近半个月我也一直在jdon上面看文章,,在公司负责这个小项目也是第一个负责的项目。

来到jdon,感觉发现了新大陆一般,不但从思维还是思想都有些转变。。

可能自己的学习技巧有问题或者理解上面有问题,,你的那个SimpleJdonFrameworkTest项目还没有完全弄明白,,jivelive部署还有点问题。。

[该贴被houzhe11于2012-01-18 11:23修改过]

[该贴被houzhe11于2012-01-18 11:27修改过]

    

banq
2012-01-18 17:41
AOP拦截下来后必须异步处理,比如筛选条件,调配任务,关键是这里的异步机制要达到快速分发的目标,推荐可采取 ,每秒处理 600 万订单的 disruptor, jdonframework 也封装了,个人初步来看适合解决你这个问题。

关键你要建立一个采样测试环境,才能对加入异步前后的性能有一个相对比较。

houzhe11
2012-01-19 09:46
2012年01月18日 17:41 "@banq"的内容
关键你要建立一个采样测试环境 ...

关于一个项目初级版本完成以后,,怎样去建立一个测试环境。测试项目的性能?希望banq老师给点意见

猜你喜欢