3d Game Walkman

3d图形渲染,网络引擎 — tonykee's Blog
随笔 - 45, 文章 - 0, 评论 - 309, 引用 - 0
数据加载中……

服务器端无限大地图的构想

有了客户端的无限大地图,服务器端也可以做做尝试了,服务器比客户端单纯了很多,不用做裁减等复杂的计算工作,但是要维护大量的信息通讯,最棘手的问题就是,如何让“身边”其他玩家知道你在哪里,player数量那么巨大,如果所有的player的状态通知所有的人那就是n的n次方的通讯,可以看来这样的通讯方式是完全不合理的,所以如何确定“身边”这个概念就至关重要了。

有了客户端无限大地图的实现,这个思路就豁然开朗了,有个图例:

把服务器打上格子,把整个地形来个定义                            

定义为 blocks_Tx_Ty_Bx_By                            

Tx Ty 代表的是 Tile的第几行第几列                            
Bx By 代表的是该Tile下Block的第几行第几列                            

把每个block的范围给筐定,这个可以事先计算出来的,很简单                            
人物一旦发生了移动就会发出udp的信号,服务器改变每个人物所在的位置

那么客户端的Role(玩家所操纵的角色)最关心的是周围9个tile里面活动的其他玩家的信息
因为客户端要进行视锥剪裁,

反过来说,角色A移动了,就要通知周围9个tile里面所有的角色,你当前的位置
另外,移动的时候还要看你所在的block发生了改变没有,如果发生了改变,这个信息也要发出去
那么客户端可以更新所观测的角色所在的block,这样客户端的tile作culling和rending以及collising的时候就方便了
客户端要作的只是简单的terrain.AddSenceModel 和 terrain.RemoveSenceModel就能动态更新block中的角色模型了
一个block好歹也有33x33,被观测对象只有block改变了才会做(terrain.AddSenceModel terrain.RemoveSenceModel)这样的操作
这样的操作应该不会特别频繁,客户端应该开销的起

客户端,应该存在一个可观测的9个tile的rolelist,每次发过来的其他玩家的udp positionpack还是要作即时更新的。


目前根据这个思路我就要开展工作了,效率是至关重要的。
按照这个工作实现了再来测试效率,预计本周之内搞定角色之间位置信息的相互通讯。

激动人心的时刻就要到来了。。。。。。
目前只是尝试,更多的细节和感受我会逐步发放上来。

posted on 2008-01-03 19:41 李侃 阅读(1990) 评论(6)  编辑 收藏 引用 所属分类: 设计思路

评论

# re: 服务器端无限大地图的构想[未登录]  回复  更多评论   

加油加油,每天都看你弄得那么晚,很心疼啊,不过,只要出结果,就是开心事,对吧~!坚持,要一起分享成功的喜悦啊~!嘿嘿~!
2008-01-04 13:18 | vicky

# re: 服务器端无限大地图的构想[未登录]  回复  更多评论   

恩, 不错。 我最近也再做这方面的研究。 希望可以互相交流一下。
mail: idm_163@163.com
2008-04-14 14:55 | kevin

# re: 服务器端无限大地图的构想  回复  更多评论   

支持
2008-07-16 03:09 | 放屁阿狗

# re: 服务器端无限大地图的构想  回复  更多评论   

其实 真的无限大是不可能的 还是有边界的,呵呵
另外 你做的 还是 2D的吧,没见你讲空间概念嘛?
呵呵 像魔兽那样超大地图 现在实现技术比较成熟了
但全3D 的还是有难度的
2008-11-26 17:04 | 死亡之美

# re: 服务器端无限大地图的构想  回复  更多评论   

我的无限大是指:想要多大就多大,也就是说无论多大就可以。

我已经实现了从一头走到另一头走1天也走不到头的地形,无论多大运行速度都不受影响,场景所有数据全部实时动态加载和释放,而且已经研发了配套的地图编辑器,全部采用可视化编辑的支持

目前地形编辑器已经很好的支持室外场景编辑
室内场景也整合到了地形上,正在完善

所有的已经全部按计划实现了,目前在做符合游戏引擎要求的进一步完善
比如AI所需要的数据设置等等一些东西,地貌的渲染部分是下一个阶段的目标

另外:我只搞3D
2008-11-27 16:09 | 李侃

# re: 服务器端无限大地图的构想  回复  更多评论   

建议楼主这个简短可以参阅Mangos
2009-08-07 11:03 | yisa

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理