如何防止在物理密集型多人游戏中作弊
作者:互联网
我正在计划用Java编写的基于物理的竞技多人游戏.它将涉及大量的碰撞检测和流体模拟,我想在服务器负载的原因做客户端.每个玩家可以控制一辆车,可以相当独立地模拟其他车辆.
在我的情况下,Multiplayer billiards game physics simulation(模拟服务器端!)中接受的答案是完全不切实际的.模拟几辆车将占用中档PC的大部分资源.
我想让客户模拟他们自己的车辆,服务器将他们的结果广播给其他客户并调解碰撞.通过使用服务器的备用CPU进行偶尔的物理审计,可以在某种程度上防止作弊.客户不知道他们何时接受审计,因为他们无论如何都要发送所需的状态.
你会怎么做?这个项目只是为了好玩,所以如果人们做作弊,我不会失去任何东西.
解决方法:
在您提到的条件下,您可以采取的措施是减少服务器上的负载,让每个客户端模拟自己的车辆,加上一个或多个随机车辆,每隔一段时间随机变化.
这可以减少审计所需的服务器资源数量,从而使审计更加频繁.如果您的不同玩家报告的数字不一致,您的服务器可以检查谁在作弊(被审计员或审计员).如果每个玩家的变量由两个或多个其他玩家计算,随机选择并以足够频繁的间隔进行更改,则会减少玩家组队作弊的可能性.
如果您在Java(JVM)环境下编写服务器代码,那么可以帮助您分发计算的库是Akka.
标签:java,physics,multiplayer 来源: https://codeday.me/bug/20190709/1411870.html