从简单的多人游戏JAVA游戏中的套接字开始

时间:2012-03-30 09:05:29

标签: java sockets client-side serversocket

我最近一直在探索自己的想法,制作一个小型多人游戏,我的几个朋友可以玩它只是为了它的乐趣。我知道所有的基础知识,对java更多一点,我认为自己是java的中间人。

最近我一直在学习如何加载精灵,双缓冲,关键听众,鼠标听众等制作一个小侧滚动2d枪游戏。我对这些类别有很好的理解,但现在我已经到了我需要了解套接字的部分,以便能够在线获得这个游戏。

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

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

总而言之,我怎么能基本上拿一个有一个地面的游戏,两个玩家(用精灵代表)一些敌人(AI)和能够杀死敌人的子弹,以及敌人射击和杀死的能力玩家(用户)并制作服务器和客户端吗?哦,还有一件事,我想让玩家有能力选择一个名字,并且这个名字可以说会漂浮在游戏中的玩家角色之上......如果甚至可能有一点点内置聊天功能,但我可能会在那个问题上取得进展。

如果有人能够至少指出我正确的方向,或解释所有这些的基础知识,那就太棒了!谢谢!

-Dan

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

1 个答案:

答案 0 :(得分:1)

您需要的是一个多线程服务器,它可以监听来自播放器的数据,然后进行相应更新。客户端还需要进行线程化并监听来自服务器的数据,以便更新其他玩家的动作等。首先阅读套接字和线程。您希望服务器为每个连接的客户端创建一个线程。

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

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

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