【问题标题】:Where to begin with sockets in a simple multiplayer JAVA game在简单的多人 JAVA 游戏中从哪里开始使用套接字
【发布时间】:2012-03-30 17:31:31
【问题描述】:

我最近一直在探索自己的想法,即制作一款小型多人游戏,让我的几个朋友可以玩这个游戏,只是为了好玩。我知道所有的基础知识,对 java 有一点了解,我认为自己是 java 的中级人员。

最近我一直在学习如何加载精灵、双缓冲、键侦听器、鼠标侦听器等,以制作一个小的横向卷轴 2d 枪游戏。而且我对这些类别有很好的了解,但现在我已经到了需要了解套接字等才能使这款游戏上线的部分。

我看过一个关于服务器和客户端的制作位置的小教程,当客户端打开时,会向服务器发送一条消息(字符串),例如“Orange”,服务器可以理解并打印出来。我可以通过查看代码来理解代码(如果被要求根据我自己的知识(斜线内存)重建它,因为我不知道套接字)。

现在我的主要问题是,我怎样才能开始做这样的事情,这样做时,如何注册运动,例如,从一个客户端到服务器,然后将出现在所有连接的客户端上在游戏中,以及子弹、碰撞事件、敌人等。我似乎找不到任何好的帮助来真正向你展示如何做到这一点,通过创建一个套接字,做所有基本的连接的东西(我没有知道)然后更新游戏状态,如果我可以这样称呼的话。

所以总的来说,我怎么能基本上玩一个有地面的游戏,两个玩家(由精灵表示)一些敌人(AI)和能够杀死敌人的子弹,以及敌人还击和杀死敌人的能力玩家(用户)并从中制作服务器和客户端?哦,还有一件事,我希望玩家也可以选择一个名字,这个名字可以说会浮在游戏中的玩家角色之上......如果甚至有可能有一点内置聊天功能,但我可能会更进一步。

如果有人至少可以为我指明正确的方向,或者解释这一切的基础知识,那就太好了!谢谢!

-丹

如果我经历了很多事情,我很抱歉,我只是想解释一下我希望能够做什么

【问题讨论】:

  • 好吧,你想了,这很好。但是现在,如果您需要有关代码的帮助,请尝试一下并返回这里。网上有很多关于套接字的教程。
  • 哇,喘口气(使用一些段落)!

标签: java sockets client-side serversocket


【解决方案1】:

您需要的是一个多线程服务器,它监听来自玩家的传入数据,然后进行相应的更新。客户端还需要线程化并侦听来自服务器的传入数据,以便它可以更新其他玩家的移动等。所以从读取套接字和线程开始。您希望服务器为每个连接的客户端创建一个线程。

然后通过向服务器发送消息进行第一次尝试,服务器将相同的消息回显给客户端。这将要求您使用线程和套接字,这是一个很好的开始方式。

稍后您将在游戏中使用相同的 tequniqe(客户端将其移动发送到服务器,服务器将移动回显给所有其他客户端,以便他们可以在本地更新更改)或者,客户端将移动发送到服务器,服务器在本地更新动作。这将要求客户端获取存储在服务器上的所有对象的 x 和 y 坐标。这在滞后的情况下可能会更好(从未编写过游戏,因此不确定哪种方法最好)。

因此,您将在服务器和客户端上都有无限循环,每次迭代获取/发送每个对象的 x 和 y 轴,并使用它来重新绘制/处理命中等。哪个逻辑位于哪个循环中取决于您选择的设计。

【讨论】:

    猜你喜欢
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 2015-10-20
    • 1970-01-01
    • 2017-11-09
    • 2012-04-12
    • 1970-01-01
    相关资源
    最近更新 更多