如何在多人游戏中请求/响应

时间:2014-05-15 11:12:52

标签: network-programming game-physics

我是论坛和游戏编程的新手,但我有一个问题(可能是虚拟问题......)

我正在制作像Checkers这样的多人游戏。 我的架构是这样的:

在两位客户登录游戏并准备好后, 每个客户端轮流进行“移动”,然后将其发送到服务器进行授权。 服务器授权移动后,再发送2条消息: 1)第一个用于进行“移动”的玩家,告诉他移动被授予,现在它应该等待'对于其他对手来说。 2)第二条消息,传递给对手,告诉他士兵的动作,现在他的转向了#39;玩.... bla bla bla

我的愚蠢问题是:当每个客户登录游戏时,会为他创建一个与服务器通信的新套接字 如何将套接字用于BOTH,向服务器发送消息(如移动),以及收听服务器的响应(例如'轮到','等等......) 是否有可能或者我应该创建另一个套接字来监听' ?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

好的,所以我想知道如何解决这个问题。 我几乎没有改变我的架构,但它是这样的。 (由于它不是实时游戏,我决定使用TCP而不是UDP协议,但它的另一个讨论......)

当服务器考虑2个玩家时,它会创建GameGanager(Runnable)对象并将两个套接字传递给它。 (然后服务器并回去听取下一个游戏请求......) 当客户端应用程序成功连接到服务器时,它将进入“等待”状态。

对于每个套接字,GamePlayer创建Player实例并将相关套接字传递给它。 其中,Player对象有2个方法:sendMessage(),waitMessage(),用于与客户端应用程序通信。

GameServer发送2条消息:   - “玩家”启动游戏:“回合”状态。   - 对''对手':'等待'状态。

当'player'进行移动时,然后sendMessage()发送到GameServer以验证移动,并通过调用waitMessage()进入'WAIT'状态。 GameServer'确认'到玩家,并向对手发送消息'TURN'。

继续游戏结束

希望它会对某人有所帮助。