2012-08-11 166 views
3

我目前有一个主要的大脑屁:)。Java井字游戏架构

我的计划是建立一个简单的Java基于Swing的井字应用程序。我已计划为应用程序允许一个玩家,两个玩家本地和两个玩家远程选项。我有一个和两个球员本地版本工作正常,但我正在努力让我的头在两个球员远程选项。

值得注意在NetBeans项目我在从逻辑一个单独的包的GUI。

我炒了我的大脑思考所有的选项。

  1. 就像有一个客户端服务器架构,但随后如果客户端在不同的电脑比这减慢了一个球员和两名球员的本地版本没有任何理由的逻辑运行。

  2. 我想整个应用程序(GUI +逻辑)应该跻身家庭Wirless的网络上的不同PC的分发。这样玩家就可以玩一个和两个玩家本地游戏,而不会有任何不必要的滞后时间,并查看是否有其他玩家可用于双人远程版本。如果我这样做的问题是谁的逻辑作为服务器 - 这是如何工作的?

是否选择2是最好的/唯一的方式去做这件事,因为这不仅仅是一个网络游戏?

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

我知道用一个远程游戏选项来做一个tic tac toe游戏会是一个客户端服务器架构的简单例子,但是有一个玩家,然后在同一个应用程序中的联网版本是棘手的。

谢谢,

保罗。

回答

1

从技术上讲,您可以在没有实际服务器的情况下执行此操作 - 您可以使其像客户端/主机一样。

当用户想成为主持人,他发送UDP广播数据包,对什么IP信息,并且他想要玩什么游戏。每个想加入的人都可以捕获这个数据包。

当用户希望加入,他听广播包,并加入到他收到了一个。

每个球员都可以做自己的逻辑,并送他转会到其他球员 - 对方只应检查是不是合法的举动 - 因为也许有人要砍你的游戏:d

+0

如果我的妻子试图破解我的游戏,她就深陷困境:)。感谢帮助的人,有时帮助我们谈论这些事情。 – Paul 2012-08-11 14:10:01

0

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

几句话,每个客户端都应该有自己的游戏,只要在本地在本地播放器,可以“一招”,或远程用户发送(通过协议)“一招”,它更新的模式。

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