- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我的 RTS 游戏实现多人游戏。它不是回合制的,所以我认为我应该使用 UDP,对吧?
对于应该从客户端发送到服务器的内容,我也有点困惑。游戏中显示的每个对象(建筑物、树木、单位等)都在 GameObject 类型的 ArrayList 中(跟踪位置和所有好东西)。因此,一种方法是让客户端将其 ArrayList 发送到服务器,并将其与其他 ArrayList 合并,然后将其发回。另一种方法是将客户端输入(他点击的位置和选择的内容等)发送到服务器并让服务器决定应该发生什么。这会导致在向单位或其他任何人发出命令时出现延迟。
所以我想我的问题是,除了关于使用 UDP/TCP 的问题,我应该如何构建多人游戏部分?客户端应该向服务器发送什么等等。
最佳答案
您所描述的网络类型最适合实时游戏,其中几乎没有可处理丢失数据(FPS 等)的移动部件。 RTS 游戏的问题在于,它们通常涉及太多单元,无法使用标准 UDP 状态复制模型进行复制。相反,大多数 RTS 游戏使用所谓的锁步。这是通过在每台机器之间同步游戏状态,然后将鼠标单击事件传输给游戏的所有玩家来实现的。给定相同的初始游戏状态,并应用相同的事件,游戏对所有玩家来说看起来都是一样的。可以使用 TCP 或 UDP 协议(protocol)来实现此目的,尽管 TCP 可能更容易。
阅读《帝国时代》中的步调一致:
1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond
Rather than passing the status of each unit in the game, the expectation was to run the exact same simulation on each machine, passing each an identical set of commands that were issued by the users at the same time. The PCs would basically synchronize their game watches in best war-movie tradition, allow players to issue commands, and then execute in exactly the same way at the same time and have identical games.
关于java - 为 RTS 游戏实现多人游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18300390/
我正在对使用 GHC 编译的 haskell 程序的内存消耗进行基准测试。为此,我使用以下命令行参数运行程序:+RTS -t -RTS .这是一个示例输出:> . 根据 ghc 手册,输出显示: 程序
在《魔兽争霸 3》或《帝国时代》等游戏中,AI 对手在 map 上移动的方式几乎是无限的。 map 很大,其他玩家的位置也在不断变化。 这类游戏中的 AI 寻路是如何工作的?在这样的设置中,标准的图搜
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我正在用 Java 编写 RTS 游戏,遇到了一些多态性问题。为了描述我的问题,我将列出游戏中的一些对象/类:(我将在括号内说明它们中的每一个应该能够做什么) 坦克(可以移动,可以攻击) 塔(可以攻击
我正在为 Epic Flash 游戏设计大赛 http://www.youtube.com/watch?v=bpFBraUbHyo&list=UUfkxvxrvpNxXvdKusYS0NfQ&inde
当我运行 ./MyProgram +RTS -N4 时,我希望我的程序自动检测到它正在 4 个核心上运行,并创建 4 个 Spark 来处理数据集。现在,每次我想更改此选项时,我都要重新编译,这很烦人
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我正在尝试为我的 RTS 游戏实现多人游戏。它不是回合制的,所以我认为我应该使用 UDP,对吧? 对于应该从客户端发送到服务器的内容,我也有点困惑。游戏中显示的每个对象(建筑物、树木、单位等)都在 G
关于如何将脚本集成到游戏中,我已经访问了几个教程和链接——但其中大部分对我来说并没有在流程中及早开始。我正在努力思考有效脚本游戏的基本结构。以下是基础知识: 我正在使用 C++ 开发一款基本的 2d
对于 rts 中的单元集合来说,什么是好的数据类型?我正在为 an api that lets you write bots for the strategy game Starcraft2 in P
我很好奇什么样的算法可以根据它的城市、建筑物,当然还有附近城市和建筑物的半径来计算国家的边界线? 游戏《万国崛起》图片: 如何用线条或三角形带渲染这个形状(例如宽度为 5 米)?如何有序地从边界线
寻找一种算法,用于确定在像星际争霸这样的实时战略游戏中作为一个小队一起移动的单位组。我目前关注的方向是一种聚类算法,但很难找到哪个算法最有效,因为单元作为一个整体在移动,而不仅仅是静止不动。任何帮助都
我有一段代码可以读取串行端口 CTS 线的当前状态,然后应用程序根据那里的值进入适当的模式。 使用此处描述的零调制解调器电缆: http://www.lammertbies.nl/comm/info/
我正在用 C# 编写 2D 太空 RTS 游戏。单人游戏作品。现在我想添加一些多人游戏功能。我在谷歌上搜索了一下,似乎只有一种方法可以让数千个单位在没有强大网络连接的情况下连续移动:只通过网络发送命令
我正在制作一个实时太空战略游戏克隆,当时它没有任何多人游戏选项。我想为它添加多人游戏。 游戏本身相对较长:完成一个游戏需要大约 10-15 个小时的游戏时间。这很长,我不想强迫玩家不间断地玩它或由
我想开始修补 RTS AI,但我很难找到一个好的工作环境,即一个已经创建的游戏。我看过 Spring RTS 和 Bos Wars,但它们似乎不利于创建简单的示例。 我并不完全反对自己编写游戏环境,只
我必须回答以下关于 6502 汇编语言的问题: “在堆栈上,有以下值(顶部元素在前):0x01, 0x02, 0x03, 0x04, 0x05, 0x06地址 0xc000 是指令 jsr 0xABC
我一直在考虑一款多人 RTS 游戏。我似乎无法解决的部分是保持单位运动同步。如果我将单元 A 移动到 XY 点,我必须将其传回中继到其他客户端的服务器。 我很好奇通信会是什么样子。你能告诉服务器我要将
对于 ghci ,我可以限制 ghci 可以使用的内存 $ ghci +RTS -M10m -RTS 当我编译整个程序时,我可以 $ ghc -rtsopts a.hs 然后 $ ./a +RTS -
我有一个 Haskell 程序,它处理一个文本文件并构建一个 Map (包含数百万个元素)。整个过程可以持续2-3分钟。我发现调整 -H 和 -A 选项会对运行时间产生很大影响。 有documenta
我是一名优秀的程序员,十分优秀!