锁定老帖子 主题:策略型网页游戏的服务端计算能力瓶颈
精华帖 (0) :: 良好帖 (7) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-28
游戏程序的逻辑运算一般是单线程的,每当玩家行动的时候判断其行动到的位置是否会发生战斗就行了(可以用一个和区域坐标系一样大的数组保存玩家对象的引用,也可以遍历某个区域的玩家,都是可行的,用哪个方式取决于地图坐标和玩家数量的比例),不会很耗cpu。我们做即时战斗的网络游戏(RPG类),用很烂的服务器,同时在线接近1000的时候,cpu消耗才5%,服务端就是用的java。
你说的当前网页游戏的种种缺陷,多半是程序员没时间做(一般一个网页游戏的开发周期都小于1年),或者游戏设计上的限制,不是性能遇到瓶颈。 ps:回合网页游戏我玩的少,但是我看别人好像都是玩玩停停的,不玩的时候可能浏览器都不开,如果随时发生战斗,怎么通知玩家? |
|
返回顶楼 | |
发表时间:2008-12-28
最后修改:2008-12-28
引用 数以万计的玩家,每个玩家手上几十个对象(资源出产,建筑,单位,行动单位,战斗),不管所有这些玩家上线不上线,服务器都必须保持这些数据实时更新正确完整,这是最要命的。
数以万计的玩家都在同一个房间(或区域、场景)?那真是挺要命的。 不敢想。 |
|
返回顶楼 | |
发表时间:2008-12-29
大型的webgame一般都是基于http协议的,大多数都是webservice提供数据方便flash(js)读取数据,实时性要求较高的部分,采用socket(用java的话,用NIO实现)长连接,webservice可以集群。socket服务器就需要面向分布式编程了。
|
|
返回顶楼 | |
发表时间:2008-12-29
不用考虑太远,先一个服务器支撑起来,跑个最简陋的版本,后面的事情后面再说了.
|
|
返回顶楼 | |
发表时间:2008-12-29
最后修改:2008-12-29
看看我们刚完成的一个产品 《星空战史》 ,前台Ajax,后台就是java,
在做策略类的WebGame的路上,我们也走了很多弯路,学到了很多东西。 重要的还是在数据库的设计上,运算的架构上,只要安排适当,就可以发挥出很好的性能。
关于有些运算的表现方式,真真假假,就看各个项目的特性去灵活应用了。 |
|
返回顶楼 | |
发表时间:2008-12-29
看了下你们的论坛,好多卡住的问题...
|
|
返回顶楼 | |
发表时间:2008-12-29
确实有很多不完善的地方,所以,现在做很多重构。
|
|
返回顶楼 | |
发表时间:2008-12-29
为啥会卡住,计算的时候遗漏了?
|
|
返回顶楼 | |
发表时间:2008-12-29
看来楼主没有开发过策略类的webgame,这类游戏的瓶颈还真不在计算能力上,瓶颈还是数据库压力上。
我们的游戏目前也有80组了,前端服务器闲的要命,后端数据库相对要高些,不过也没到达压力。 整体感觉来说,跟你游戏的架构设计的有关系 |
|
返回顶楼 | |
发表时间:2008-12-29
这种多半是服务器集群在处理
现在很少有单服务器的游戏了 这样有一台总控制器 其余的服务器都用来计算 就能分解很大部分压力了 |
|
返回顶楼 | |