如何解决基于Java客户端/服务器回合的帮助
| 我正在尝试制作基于客户端/服务器回合的游戏。我希望这是一个2人游戏。我将使用Java applet作为客户端,以便人们可以通过浏览器在线玩。 到目前为止,我所知道的是,我可以创建一个接受所有传入连接的服务器,并创建一个线程来处理连接的客户端。我也可以编写将连接到服务器的客户端。我不知道如何使两个单独的客户端相互交互。 小程序无法相互通信,因此必须通过服务器/线程进行通信(我认为)。 我对Java并不陌生,但是以前从未进行过任何网络连接。有人可以帮我吗?解决方法
在我看来,接近这种回合制游戏的最佳策略是决定一些基本的架构方法。绘制出组件和一些基本的游戏流程图。
您应该将大部分游戏引擎逻辑放入服务器组件中。客户应保持尽可能的苗条,主要关注
与游戏引擎通讯
接受用户输入
解释游戏引擎的响应
绘制屏幕
您的服务器/游戏引擎应该是相对无状态的,但仍在运行中保留当前游戏会话的列表。有状态的SOAP Web服务甚至HTTP Servlet是一个不错的选择,因为它们通过在请求中放置和读取会话cookie来为您维护会话。
一切Web都可以根据请求响应进行工作,因此它本质上是无状态的,但是某些技术(例如Java Servlet)将帮助您维护会话,而不必这样做。无需物理上创建单独的线程,每个请求都会导致应用程序服务器生成新的执行线程,而会话本质上是易变的。
在服务器端,我将保留会话中特定活动游戏的所有数据。这样,您的游戏引擎将保持两个玩家之间的有序通信。
玩家1发送回合结束请求以及所有游戏状态更改信息。
游戏引擎解释请求,对游戏状态进行必要的更改。
玩家2经常发送请求以检查玩家2轮是否还轮到。
游戏引擎确认玩家2的回合请求并作为响应发送新的游戏状态。
玩家2收到响应,更新其游戏状态副本,记下自上一回合以来的更改。
冲洗并重复。
,您只是将服务器用作中间人。
客户端A向服务器发送(写入)消息,其属性表示客户端B为目的地
服务器接收(读取)消息并将消息转发(写入)到客户端B
客户端B接收(读取)该消息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。