3

我目前有一个主要的大脑放屁:)。

我的计划是用 Java 构建一个简单的基于摇摆的井字游戏应用程序。我曾计划让该应用程序允许一个播放器、两个播放器本地和两个播放器远程选项。我已经让一个和两个播放器本地版本工作正常,但我正在努力让我的头脑了解两个播放器远程选项。

值得注意的是,在 Netbeans 项目中,我将 gui 放在与逻辑不同的包中。

我已经把所有的选择都炸了。

  1. 就像拥有一个客户端服务器架构,但是如果客户端运行在与逻辑不同的 PC 上,这会无缘无故减慢一个播放器和两个播放器的本地版本。

  2. 我认为整个应用程序(gui + 逻辑)应该分布在家庭无线网络上的各种 pc 中。这样玩家就可以在没有任何不必要的延迟时间的情况下玩一个和两个玩家本地游戏,并查看是否有其他人可用于两个玩家远程版本。如果我这样做,问题是谁的逻辑充当服务器 - 它是如何工作的?

选项 2 是解决此问题的最佳/唯一方法,因为这不仅仅是一个网络游戏吗?

还有其他方法可以解决这个问题吗?

我知道仅使用远程游戏选项进行井字游戏将是客户端服务器架构的简单案例,但是在同一个应用程序中拥有一个玩家和一个网络版本是很棘手的。

谢谢,

保罗。

4

2 回答 2

1

从技术上讲,您可以在没有实际服务器的情况下执行此操作——您可以将其设置为客户端/主机。

当用户想成为主机时,他会发送 UDP 广播包,其中包含关于什么 ip 以及他想玩什么游戏的信息。每个想加入的人都可以抓住这个数据包。

当用户想加入时,他会监听广播包,然后加入他收到的那个。

每个玩家都可以按照自己的逻辑,将他的动作发送给其他玩家——对方应该只检查这个动作是否合法——因为也许有人想破解你的游戏:D

于 2012-08-11T14:03:05.447 回答
0

该应用程序应安装在每个客户端上。对于远程 2 人模式,您应该实现自己的 P2P 协议以将动作从一个玩家发送到另一个玩家并跟踪游戏的演变。

简而言之,每个客户端都应该在本地拥有自己的游戏模型,只要本地玩家做出“移动”或远程用户(通过协议)发送“移动”,它就会更新它。

当然,如果您需要跟踪分数、积分等统计数据,您将需要一个中央服务器来存储这些数据。但实际游戏应该以 P2P 模式进行,不需要服务器。

于 2012-08-11T14:05:33.547 回答