Java 使多人游戏可在网络或互联网上玩
您好,我用Java编写了一个多人游戏,我想知道我需要学习什么和/或应该使用什么,以便使游戏可以通过网络或多台计算机在internet上玩。我真的不知道从哪里开始,所以任何建议都会很有帮助,谢谢。如果您想通过网络添加多人游戏功能,请查看构建通信基础设施的步骤 但在你能做到这一点之前,你需要确保你的游戏有正确的“架构”。你需要有一个大的模块:客户端和服务器 服务器负责所有的游戏逻辑。从某种意义上说,它是游戏引擎。客户端负责向服务器查询游戏状态,向玩家显示,获取玩家输入并向服务器发送命令 在学习网络编程时不需要麻烦就可以将客户机和服务器代码解耦的一种方法是使用两个不同的程序从CLI运行。执行顺序可以如下所示:Java 使多人游戏可在网络或互联网上玩,java,network-programming,Java,Network Programming,您好,我用Java编写了一个多人游戏,我想知道我需要学习什么和/或应该使用什么,以便使游戏可以通过网络或多台计算机在internet上玩。我真的不知道从哪里开始,所以任何建议都会很有帮助,谢谢。如果您想通过网络添加多人游戏功能,请查看构建通信基础设施的步骤 但在你能做到这一点之前,你需要确保你的游戏有正确的“架构”。你需要有一个大的模块:客户端和服务器 服务器负责所有的游戏逻辑。从某种意义上说,它是游戏引擎。客户端负责向服务器查询游戏状态,向玩家显示,获取玩家输入并向服务器发送命令 在学习网络编
一旦客户机和服务器代码完全解耦,并且“语言”完全定义,您就可以将通信机制从基于文件更改为基于套接字。一种可能的架构方法是让游戏的一个实例作为主机(例如,第一个启动的实例)。它将协调游戏,发送游戏状态的信息,并将信息传递给其他玩家 当玩家移动时,它会将移动信息发送给主机,主机会更新游戏状态(并检查移动的有效性等)。然后,它会将新的游戏状态发送给每个玩家,并向相应的客户端发送(可能是单独的通信)下一轮的通知,并等待其响应
从某种意义上说,在这种情况下,主机充当游戏服务器,但使用/玩起来可能更简单,因为没有单独的进程必须运行才能玩游戏 其他答案都是相当高的级别,这很好,但你不想要高级别,你想要低级别,比如“我如何让它实际发送数据,这意味着什么,我发送什么,等等。”下面是你要做的: 首先,TCP还是UDP?如果你不知道这两件事中的任何一件是什么,请仔细阅读,因为我在这里没有足够的篇幅来详细说明这两件事,但请你选择了解以下内容: