Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

服务端怪物AI要怎么实现
小明发起了问答2017-06-18
1
回复
800
浏览

一款即时战斗的多人RPG游戏,假如我有100个地图,每个地图30个怪物左右,我想实现每个怪物在间隔一定时间后移动一步。

一种方式是在客户端计算,然后告诉服务端A怪物往左移,B怪物往上移,然后同步给地图所有玩家,但是既然在客户端计算逻辑肯定不安全,而且那么多客户端,我也不知道服务端应该听谁的。

另一种方式是在服务端计算,每间隔一定时间,然后去遍历所有的怪物,然后去计算,但是这样效率好像会大大降低,假如怪物是1秒移动一次,那服务端岂不是一秒得遍历100*30=3000次外加逻辑判断等。

我想请教下老师,客户端计算也好,服务端计算也好,有没有好的思路呢?

所有回复
  • siki • 2017-06-18

    1,客户端计算的话,可以随机选择其中一个客户端,你可以选择延迟最小的一个比如A,检测A有没有掉线,如果A掉线,切换到别的客户端计算

    2,服务器端的话,那就得所有的怪物都在服务器端进行寻路计算了,要自己写寻路算法,可以使用A*

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!