|
|
这次来分析下,服务器里面活物体行路吧。
(注明:我是想到哪写到哪里),我一直在想,如果服务器端要检测每个怪的行路碰撞的话,包括player,那服务器端的运算压力将多么大,实际上mangos并不做这个检测,至少我这个版本没有,因为对于某些东西,虽然可能被外挂利用,但是不会对游戏平衡造成影响,比如player发过来的移动包,里面的内容并不是移动方向,而是具体的位置,因为这个位置必须要客户端去算出来,所以如果只是给个方向那服务器必须要自己去运算出移动后的位置,而这个位置必须要检测碰撞,服务器压力太大,其实只要收到位置就行了,计算下与上次的位置相差多少,不要让客户端的人物随处跳跃就行了。试想,如果有这样的外挂,发过来的位置与上次的位置相差是对的,但是位置确实错的,比如这个位置是卡到地形或者物体里的,那这样的外挂也没有什么意义,打破不了游戏平衡的,呵呵。mangos里面的怪物的行路也是这样的(某种行路ai),它是不计算碰撞的,比如追踪玩家的时候,只是每搁个很短的时间,根据玩家的位置设一下目标点,然后每次就沿着直线向目标点进军,发给玩家的包就是含有目的点和到达时间的包。所以很明显要客户端根据目标点去计算路径,不然恐怕怪物要穿墙了呵呵,那么时间是做什么用的呢,这个时间是要大概控制怪的行路速度的,虽然实际的怪在客户端会走弯路,但是这个时间可以让客户端大概知道这个怪的行路速度。 [em14] |
|