当前位置: 首页 > 知识库问答 >
问题:

Java多人游戏网络概念

狄高畅
2023-03-14

我正在开发一个基于Java(客户机和服务器)的多人策略游戏。我没有太多的经验在网络游戏,但我做过一些小事情,像一个多功能聊天和2个玩家的抽签tac脚趾与插座。我不是在找人为我编写代码,只是给我一些指导。

游戏经历了多个阶段:首先,用户连接并登录。在他被赋予主持/加入游戏的选择权之后。在他加入一个游戏或者某人加入他的游戏之后,客户端就会继续进入游戏阶段。游戏是1v1的,只需要每隔5秒来回发送数据(如果那很重要的话?)。我只是需要一些关于如何设计客户机/服务器来通过这些“阶段”的指导。

每当客户机将数据发送到服务器时,它就会检查状态并相应地进行处理。就像在登录之前,如果数据被发送,服务器将假设它的登录细节,如果它们是有效的,它将变量更改为1,并告诉客户机前进。

有没有更好的办法做到这一点?

共有1个答案

吴单鹗
2023-03-14

从本质上讲,你是如何描述它的,就是通常是如何做的。只需让服务器监听客户端连接,然后在客户端连接出现时在自己的线程中处理它们。然后来回发送消息以确认状态(登录与注销、加入游戏等),并在游戏中发送消息以确定玩家的移动。TCP或UDP套接字都可以在短期内工作,但最终您可能会切换到主要基于UDP的系统,因为服务器和客户端之间发送的消息将相当小,延迟可能是关键,取决于游戏类型。

考虑通过JSON发送/接收消息(http://wiki.fasterxml.com/JacksonHome是我上次查看的一个相当流行的Java解析器)。

此外,您还需要服务器端的多个数据结构来有效地管理客户机及其状态。例如,您可以为每个客户端提供一个整数id和一个映射 ,您将使用该映射来存储所有当前连接的登录用户,其中client是存储该用户当前状态的某个对象。

希望这能给你一些从哪里开始的想法。

 类似资料:
  • Iphone Gamekit对于创建多人游戏非常有用。 但我有个问题。互联网上有很多资源和教程,可以为通过血牙或WiFi加入的玩家创建多人游戏。但玩家应该通过同一网络连接。但是有没有一种方法可以连接世界上任何地方的用户。举个例子,假设在一个纸牌游戏中,我是一个玩家,游戏会搜索全世界的用户,随机连接3个玩家与我一起玩游戏。有没有办法用GameKit做到这一点。如果这是可能的,任何人可以请指示我一些关

  • 1.自我介绍 2.为什么投游戏测试岗位? 3.对游戏测试工作有什么了解? 4.游戏测试都需要做什么? 5.平时玩什么游戏 6.一天会花多长时间在游戏 7.最近玩了什么游戏 8.端游呢? 9.对我们公司有什么了解? 10.对工作的计划? 11.linux操作命令 12.对数据库的增删改查了解吗?删除是什么? 13.sql插入语句 14.能接受加班吗? 15.反问

  • 每2个玩家,服务器将创建1个房间(我的游戏是PvP,一对一) 每个房间处理游戏逻辑 我将使用作为我的游戏循环 服务器FPS=5 每个房间都可以处理玩家的移动和一些物理操作 关于实际问题: 基于下面的点数,我应该使用什么样的游戏循环?下面每种类型的游戏循环的利弊是什么。 null

  • 多益网络游戏策划面试: 应该是技术面 1、自我介绍(照着简历过一遍,讲讲学历、能力和项目) 2、为什么想做策划——因为我是计算机搞开发的,就问我为什么想做策划。(对游戏的热爱和数值机制的研究) 3、工作节奏——问我了不了解互联网和游戏公司的工作节奏,以及接受什么时候上班下班。(了解,有项目要多加班,我注重工作效率,但是项目实在没完成加班可以的。我预期965),HR跟我说忙的时候可能会996 4、游

  • 多益太奇葩了,不建议大家去,问的问题都奇奇怪怪的,而且在面试之前还要填一堆问卷,比如什么:军人的天职是什么,无语 1.自我介绍 2.为什么要来游戏 3.最有成就感的事情 4.你的优点和缺点是什么 5.如何看待未来的游戏发展 6.如果小区里不让养狗怎么办·······真的很想吐槽,小区让不让养狗跟我找工作什么关系吗?无语 7.周末老板让你帮忙送东西怎么办 ·····额,周末了大哥,当然是休息啊。加班

  • 依然是非常奇葩的多益网络,而面完刷完KPI就美美把我挂掉了,笑死 男面试官,神情语态都是非常瞧不起人的那种,避雷了哈 1.依然自我介绍 2.问我了不了解多益网络,知不知道有什么游戏 3.为什么没有留在暑期实习的公司 4.游戏运营与产品运营的区别 5.怎么看待游戏运营 问了两句就没有再问了,然后让我反问,我简单问了一下工作内容。当时看得出来这个面试官就很不耐烦,语气态度很差,察觉到他应该是要KPI我