一款即时战斗的多人RPG游戏,假如我有100个地图,每个地图30个怪物左右,我想实现每个怪物在间隔一定时间后移动一步。
一种方式是在客户端计算,然后告诉服务端A怪物往左移,B怪物往上移,然后同步给地图所有玩家,但是既然在客户端计算逻辑肯定不安全,而且那么多客户端,我也不知道服务端应该听谁的。
另一种方式是在服务端计算,每间隔一定时间,然后去遍历所有的怪物,然后去计算,但是这样效率好像会大大降低,假如怪物是1秒移动一次,那服务端岂不是一秒得遍历100*30=3000次外加逻辑判断等。
我想请教下老师,客户端计算也好,服务端计算也好,有没有好的思路呢?
1,客户端计算的话,可以随机选择其中一个客户端,你可以选择延迟最小的一个比如A,检测A有没有掉线,如果A掉线,切换到别的客户端计算
2,服务器端的话,那就得所有的怪物都在服务器端进行寻路计算了,要自己写寻路算法,可以使用A*