|

楼主 |
发表于 2011-8-10 23:43:00
|
显示全部楼层
Re: Re:讨论:为何摒弃模型的碰撞体积
FRHusky: Re:讨论:为何摒弃模型的碰撞体积
做这个碰撞的需求是什么?
这种碰撞说白了只是包围盒碰撞
唯一的区别只是包围盒的紧密程度
如果要写一个...
刚入行一年
越来越发现,如果想学,这行可以学的东西很多
现在我就像在一间黑暗的屋子里寻找和认知她,探究她地板的触感、摆放的家具以及屋子的边界
我还是一个菜鸟,很多东西还处于认知状态,还没有足够的信息足够我去分析创造出一个基于明确核心的新玩法
我发现最后几楼的几个前辈都很有经验(当然没有诋毁前面几楼的意思,只是觉得这几个前辈讲的更加详细)
从前辈的回复里,我了解到‘碰撞体积’确切的称呼应该是“包围盒”
百度以后我也了解到了一些信息
然后又有了点新的胡思乱想(只参与过一般2.5D MMORPG的开发)
想请教想法是否正确
--------------------------------------
1.前面有讲过“开房间”应该是可以大幅度减少服务端的压力(当然“开房间”和bigworld都有各自的优点)
“开房间”减少服务端的压力,是否只是因为减少了地图内的总‘单位’数量从而降低了服务器的峰值计算压力(在某种极端情况下,‘单位’数量过多会互相影响,从而导致计算量呈几何级数增长)
那这种情况其实并没有减少总的计算量,只不过用更多的模块来分摊了这些计算,降低了服务器的负载压力
但由于需要有更多的模块,实际上服务端的性能并没有得到提升?
--------------------------------------
2.现在暴雪似乎打算大力发展战网平台,是不是因为暴雪在战网中找到了性能与表现的新的平衡点?
不知道战网的实际原理,只是尝试性的通过HF、VS平台上WAR3联网的一些情况做了点推测:
通信方式
①.用户通过点对点通信方式将信息传给主机
(这里的信息指操作指令的信息,譬如'1号玩家在坐标X,Y处点击了A键')
②.主机接收这些信息,维护统计所有用户的信息是否同步(如果有用户不同步则被踢掉)
③.主机将信息广播给每个联网用户
同步统计
①.主机为每个用户维护一张临时的数据表
②.数据表的内容包含每个英雄(还有小鸡等特殊单位)的经验、等级、属性、技能、装备、金钱等等信息
③.每当这类信息改变时,对比各个用户记录的信息是否同步,如果有人的数据跟大多数人不一样,则被踢掉
--------------------------------------
3.是否可以有一种这样的开房间模式
通信方式
①.所有单位的创建生成由服务端维护、验证和通知
②.用户将‘操作指令信息’广播给所有房间内的用户
③.服务端进行同步统计
④.房间结束后,上报个人信息,服务端进行收益验证,如果满足条件则有收益反之则无
同步统计
①.服务端为每个用户维护一张临时的数据表
②.与2相似,但表格内容根据需要变化
③.服务端收集任何有关收益的信息(譬如单位被摧毁、物品掉落、物品获得)
④.每当这类信息改变时,对比各个用户记录的信息是否同步,如果有人的数据跟大多数
人不一样,则将他踢掉
收益验证
①.开房间期间服务端收集任何有关收益的数据
②.对比统计每个用户的收益(与进入房间时的信息对比)
③.判断总收益是否相等(允许一定误差)
④.如果收益相等,则所有用户(被踢掉的用户除外)获得收益并记录;如果收益不等,分析异常来源(如果可以的话),通知各用户原因,所有用户不得收益
PS:PVP使用另一台独立的服务器处理(不同规则,或者说不同的game server?)
我觉得这样的好处是把大量的计算放到客户端,服务端只是做信任检测
缺点尚看不到【如果想到早就改了,希望没什么大错误丢人~~(当然我脸皮厚)[em11]】
疑问:丢包了怎么办? |
|