4

我正在计划一个基于物理的多人竞技游戏,用 Java 编写。它将涉及大量的碰撞检测和流体模拟,出于服务器负载的原因,我想在客户端进行。每个玩家都可以控制一辆车辆,可以完全独立于其他车辆进行模拟。

在我的情况下,多人台球游戏物理模拟(模拟服务器端!)中公认的答案是完全不切实际的。只模拟几辆车会消耗中端 PC 的大部分资源。

我正在考虑让客户模拟他们自己的车辆,服务器将他们的结果广播给其他客户并调解碰撞。通过使用服务器的备用 CPU 进行偶尔的物理审计,可以在一定程度上防止作弊。客户不知道他们何时被审计,因为他们无论如何都在发送所需的状态。

你会怎么办?这个项目只是为了好玩,所以如果有人作弊,我不会失去任何东西。

4

1 回答 1

1

在您提到的条件下,您可以做的减少服务器负载的方法是让每个客户端模拟自己的车辆,加上一个或多个随机的车辆,这些车辆每隔一段时间随机变化。

这可以减少审核所需的服务器资源数量,从而使您的审核更加频繁。如果您发现不同玩家报告的数字存在差异,您的服务器可以检查谁在作弊(被审计者或审计者)。如果您让每个玩家的变量由两个或多个其他玩家计算,随机选择并以足够频繁的间隔进行更改,则可以降低玩家组队作弊的可能性。

如果您在 Java (JVM) 环境下编写服务器代码,那么Akka是一个可以帮助您分配计算的库。

于 2013-01-02T07:25:02.513 回答