在一个简单的多人JAVA游戏中,从何处开始使用套接字

在一个简单的多人JAVA游戏中,从何处开始使用套接字,java,sockets,client-side,serversocket,Java,Sockets,Client Side,Serversocket,我最近一直在探索我自己的想法,制作一个多人游戏,我的几个朋友可以玩这个游戏。我知道所有的基础知识,稍微多一些java,我会认为自己是java的中间人。p> 最近,我一直在学习如何加载精灵、双缓冲、按键侦听器、鼠标侦听器等,以制作一个小的侧面滚动2d枪游戏。我对这些类别有很好的理解,但现在我已经到了我需要学习套接字之类的东西的部分,这样才能让这个游戏在线 我看过一个关于服务器和客户机是在哪里创建的小教程,当客户机打开时,会向服务器发送一条消息(字符串),例如“Orange”,服务器可以理解并打印出

我最近一直在探索我自己的想法,制作一个多人游戏,我的几个朋友可以玩这个游戏。我知道所有的基础知识,稍微多一些java,我会认为自己是java的中间人。p> 最近,我一直在学习如何加载精灵、双缓冲、按键侦听器、鼠标侦听器等,以制作一个小的侧面滚动2d枪游戏。我对这些类别有很好的理解,但现在我已经到了我需要学习套接字之类的东西的部分,这样才能让这个游戏在线

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

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

总之,我怎样才能基本上让一个游戏有一个地面,两个玩家(以精灵为代表)一些敌人(AI)和能够杀死敌人的子弹,以及敌人反击并杀死玩家(用户)并从中创建服务器和客户端的能力?哦,还有一件事,我想让玩家也能选择一个名字,让我们说这个名字会浮在游戏中玩家角色的上方。。。如果有可能有一个小的内置聊天功能,但我可能会得到一个先进的一个

如果有人至少能给我指出正确的方向,或者解释一下这一切的基本原理,那就太好了!谢谢

-丹


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

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

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

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


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

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