我正在规划一款基于物理的Java竞技多人游戏,将涉及大量的碰撞检测和流体模拟。出于服务器负载原因,我希望客户端进行这些操作。每个玩家控制一个车辆,可以相对独立地进行模拟。
Multiplayer billiards game physics simulation中的被接受答案(在服务器端进行模拟!)在我的情况下完全不切实际。仅模拟几辆车就会占用中档PC的大部分资源。
我考虑让客户端模拟自己的车辆,并由服务器向其他客户端广播其结果并调解碰撞。使用服务器的空闲CPU进行偶尔的物理审核可以在一定程度上防止作弊。由于客户端已经发送所需的状态,因此客户端不会知道何时进行审核。
如果有人作弊,我不会失去任何东西,因为这个项目只是为了好玩。
我考虑让客户端模拟自己的车辆,并由服务器向其他客户端广播其结果并调解碰撞。使用服务器的空闲CPU进行偶尔的物理审核可以在一定程度上防止作弊。由于客户端已经发送所需的状态,因此客户端不会知道何时进行审核。
如果有人作弊,我不会失去任何东西,因为这个项目只是为了好玩。