长时间运行 RTS 游戏多人注意事项

2024-03-13

我正在开发一款实时太空策略游戏克隆游戏,该游戏当时没有任何多人游戏选项。我想添加多人游戏。

游戏本身的时间比较长:大约需要10-15小时才能通关。这很长,我不想强​​迫玩家不间断地玩它或由于崩溃/断电而失去游戏状态。

类似的游戏是如何解决此类问题的呢?像保存单人游戏一样保存多人游戏吗?

在单人模式下,玩家可以暂停和加速模拟时间(在暂停模式下,玩家仍然可以发布命令、在行星上建造等)。

如何将此功能转化为多人游戏模式?

假设有超过 2 名玩家(额外的 AI 或人类玩家),并且一名玩家攻击另一名玩家,从而将游戏切换为太空/地面战斗。这些战斗也可以暂停以发布命令。

其他未参与的玩家应该怎么办?他们应该等待吗?他们应该被迫只在自己的王国里运作吗?

Update:只是有关游戏的一些细节。

我正在克隆this http://en.wikipedia.org/wiki/Imperium_Galactica游戏。该克隆是作为开源发布的,因此,很可能有人会创建一个作弊版本。这是一个问题,但现在并不那么重要。我想我通过在玩家之间移动游戏状态和控制来解决这个问题:首先它在第一个玩家的机器上运行,然后移动到第二个玩家的机器上,等等。

我想再强调一下上面的第三个问题:

当两个人进行战斗时,其他玩家应该做什么?

战斗在与王国管理屏幕不同的屏幕上进行。在单人游戏模式下,战斗会自动停止游戏世界,玩家和人工智能都无法在战斗期间管理其王国。


历史表明,任何允许玩家在元级别上进行交互的功能都将被滥用,超出其可能带来的好处。

也许可以让玩家事先商定一个“游戏计划”,例如“连续几天 4x 4 小时”或“周三 3x 5 小时”。

这个问题似乎与《魔兽世界》突袭大体相同:让 X 名玩家一起做一些实时的事情,这比一天的典型游戏时间要长,一周内有多个会话。这当然涉及到领导角色、热点席位、保存位置等等。这已经够难的了,所有这些人都在共同努力!

如果有人发现自己在前 3 个小时开局不佳,你怎么能指望他们回来还要再承受 12 个小时的痛苦呢?那么,放弃者输了吗?这就是勾结,你给我赢一个,我给你赢一个。 (2 名玩家在 6 小时内各赢得一份 - 比玩完要好得多)

所有这些都经过彻底的尝试。如果有办法通过作弊来打破游戏,人们就会这么做。尤其是在PvP的时候。

成功的多人游戏要么参与时间足够短(不到一个晚上),要么明显可以中断(达到阶段),要么不是实时的。可悲的是,我看不出有什么办法可以解决这个问题。

长话短说:我认为 15 小时的 PvP RTS 根本没有意义。对于单个玩家来说,这意味着比固定质量的电脑对手更好。你尝试,你学习,你最终战胜了它。 PvP,就是说如果你前5分钟效率低1%,面对实力相当的对手,最后你肯定会输。

游戏价值以每小时的乐趣来衡量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

长时间运行 RTS 游戏多人注意事项 的相关文章

  • 在未排序的数组中查找 2 个等于给定总和的数字

    我们需要在数组中找到总和等于给定值的数字对 A 6 4 5 7 9 1 2 总和 10 那么这些对是 6 4 9 1 我对此有两个解决方案 O nlogn 解决方案 使用 2 个迭代器 开始和结束 进行排序 校验和 O n 解决方案 对数组
  • 我可以在服务器端应用程序(PHP、Ruby、Python 等)上读取 URL 的哈希部分吗?

    假设 URL 为 www example com val 1 part2 PHP可以读取请求变量val1使用 GET 数组 是哈希值part2还可读吗 或者这仅取决于浏览器和 JavaScript 主要问题是浏览器甚至不会发送带有片段部分的
  • 什么时候函数名太长?

    在可能的情况下 我尝试对我的函数名称进行描述 这有时会导致函数名称在二十到三十个字符范围内 例如GetActionFromTypeName or GetSelectedActionType 在什么时候函数会变得太长而难以管理 对于编译器来说
  • 将均匀分布转换为正态分布

    如何将均匀分布 大多数随机数生成器产生的结果 例如在 0 0 和 1 0 之间 转换为正态分布 如果我想要我选择的平均值和标准差怎么办 方法有很多 Do not使用博克斯穆勒 特别是当你画很多高斯数时 Box Muller 产生的结果被限制
  • 将 Eclipse 的“开放调用层次结构”过滤为仅我的公司/项目

    我最喜欢的 Eclipse 功能之一是能够打开调用者 被调用者层次结构 http eclipse tools sourceforge net call hierarchy index html的一个方法 默认情况下 该视图显示对我的代码库之
  • 您能解释一下流的概念吗?

    我知道流是字节序列的表示 每个流都提供了向其给定的后备存储读取和写入字节的方法 但流的意义何在 为什么我们与之交互的不是后备存储本身 不管出于什么原因 这个概念并不适合我 我读过很多文章 但我想我需要一个类比或其他东西 选择 流 这个词是因
  • 将数字缩放为 <= 255?

    我的单元格的数值可以是 0 到 0 之间的任何值Integer MAX VALUE 我想对这些单元格进行相应的颜色编码 如果该值 0 则 r 0 如果该值是Integer MAX VALUE 则 r 255 但是中间的值呢 我想我需要一个函
  • 导致堆栈溢出的最短代码是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 什么是样板代码、热点代码和热点?

    我知道这些术语是在性能实现 优化的背景下使用的 最近一直在研究这个问题 并尝试过搜索 但没有得到任何例子 清楚地阐述 描述这些概念以及在现实世界开发场景中实现这些问题 概念 有人可以彻底解释这些术语 示例场景以及可能使用这些概念和术语的地方
  • 替代位置基础系统(十六进制、八进制、二进制)如何工作?如何将它们转换为十进制?

    我以前在编程课上没有学过这一点 但现在我需要知道它 有哪些学习这些数字以及如何转换它们的好资源 我几乎会像记住乘法表一样记住这些 在我们日常的十进制系统中 基数或radix http en wikipedia org wiki Radix
  • 数据库、表和列命名约定? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 每当我设计数据库时 我总是想知道是否有命名数据库中项目的最佳方法 我经常问自己以下问题 表名应该是复数吗 列名应该是单数吗 我应该为表或列添加前
  • Lockfree 标准集合和教程或文章

    有人知道用于无锁常用数据类型的实现 即源代码 的好资源吗 我正在考虑列表 队列等 锁定实现非常容易找到 但我找不到无锁算法的示例以及 CAS 的工作原理以及如何使用它来实现这些结构 查看 Julian M Bucknall 的博客 他 详细
  • 编程语言语法中尾随逗号的历史

    许多编程语言允许在其语法中在列表中的最后一项后面使用尾随逗号 据说这样做是为了简化自动代码生成 这是可以理解的 作为示例 以下是 Java 中完全合法的数组初始化 JLS 10 6 数组初始值设定项 http java sun com do
  • 快速约会算法

    我在一家咨询公司工作 大部分时间都在客户所在地 正因为如此 我很少见到同事 为了更好地了解彼此 我们将安排一个晚宴 会有很多小桌子 方便人们聊天 为了在聚会期间与尽可能多的不同的人交谈 每个人都必须每隔一段时间 比如每小时 换一张桌子 如何
  • “此应用程序已请求运行时以异常方式终止它”的原因是什么?

    Visual C 运行时抛出一个常见错误 此应用程序已请求运行时以异常方式终止它 请联系应用程序的支持团队以获取更多信息 该错误消息实际上是什么意思mean 让我用一个比喻来准确地解释我的问题 如果我看到一条消息 异常 访问冲突 0xc00
  • 哪些不同的术语表示相同的事物(或不同的术语,但人们认为它们表示相同的意思)? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的
  • 什么是拉姆达?

    有人可以很好地描述什么是 Lambda 吗 我们为它们设置了一个标签 它们涉及 C 问题的秘密 但我还没有找到一个很好的定义和解释来解释它们是什么 闭包 lambda 和匿名函数不一定是同一件事 匿名函数是任何没有 或者至少不需要 自己名称
  • 如果找不到指定的图像文件,显示默认图像的最佳方式?

    我有一个普通的电子商务应用程序 我将 ITEM IMAGE NAME 存储在数据库中 有时经理会拼错图像名称 为了避免 丢失图像 IE 中的红色 X 每次显示产品列表时 我都会检查服务器中是否有与该产品相关的图像 如果该文件不存在 我会将其
  • 有向无环图的人类可读文本表示

    一棵树有一堆人类和机器可读的文本表示 例如嵌套列表 以各种表示形式 例如 JSON 和 YAML 和 XML 与缩进相结合 它们使我们很容易想象得到的结构 但我没有看到任何具有相同水平可读性的东西有向无环图 https en wikiped
  • 是否可以证明序列是否是随机的?

    考虑以下输入 1 1 2 3 5 8 这不是随机的 2 4 8 16 32 这都不是 4 1 2 11 5 9 这个看起来像随机序列 我想问是否有这样的算法来证明输入是否是随机的 不 没有这样的证明 如果你有完全随机的数字 则每个长度为 n

随机推荐

  • 想要测试空手道 API 中整数值应 >3 的断言

    json 响应是 值 0 23 我想在这里放置断言值应该小于 3 那么如何做到这一点 尝试了文档中的一些示例 但它们适用于此处的 jsonenter 代码的数组格式 场景 显示任何向 CS 发出 DB 请求所需的最短时间 该值是数据库访问性
  • Gem::installerror:“json”本机 gem 需要安装构建工具。请更新我们的路径以包含构建工具

    我使用 Railsinstaller 安装 Rails 但仍然收到此错误消息 基于与此相关的其他问题 看来 Railsinstaller 应该包含 devkit 并且这个问题不应该发生 我做错了什么 顺便说一句 这是当我更改 gemfile
  • 实体框架上下文应该放入using语句中吗?

    实体框架上下文对象实现 Dispose 方法 该方法 释放对象上下文使用的资源 它到底有什么作用 总是将其放入 using 语句中会是一件坏事吗 我见过它在有或没有 using 语句的情况下使用 我具体将在 WCF 服务方法中使用 EF 上
  • 中断boost::asio同步读取?

    我正在使用 asio 同步套接字通过 TCP 从后台线程读取数据 这被封装在 服务器 类中 但是 我希望线程在调用此类的析构函数时退出 问题是对任何读取函数的调用都会阻塞 因此线程不能轻易终止 Win32 中有一个 API 可以实现这一点
  • 鼠标仅悬停在文本上而不是整行上

    如何仅在文本而不是整行上提供鼠标悬停效果 我尝试使用 Position 但结果为空 下面是小提琴链接 ul li Task1 li li Task2 li li Task3 li li Task4 li li Task5 li li Tas
  • Eclipse + Tomcat - 直接从工作区提供 Web 应用程序

    将 Tomcat 配置为直接从工作区中的项目目录提供服务的理想方法是什么 related https stackoverflow com a 6378629 292614 我想要我的静态网络资源每当我对它们进行更改时即可立即可用 而无需将它
  • 设置一堆简短/友好的重定向 URL

    我需要设置数百个遵循以下格式的短重定向 URL http mysite com shorturl 这将重定向到 http mysite com index php id N 其中 N 是与该快捷方式对应的 ID 执行此操作的最佳方法是什么
  • 查找字符和数字之间可能的双射

    假设您有一个字符串 S 和列表 L 中的一个数字序列 使得 len S len L 检查是否可以找到字符串的字符与序列中的数字之间的双射以使每个字符与一个且仅一个数字匹配的最干净的方法是什么 例如 aabbcc 应与 115522 匹配 但
  • 为动态创建的 HTML 元素创建事件监听器

    在 downMouseBtn event 事件处理程序中 我创建了元素 div 我需要为创建的项目创建一个事件监听器 我怎样才能创建这个 添加哪部分代码呢 我需要处理动态生成的项目的 mouseClick 事件 import Compone
  • 字符串中回文子序列的总数

    问题是这样的 对于作为输入给出的每个字符串 您需要告诉它的回文子序列的数量 不一定是不同的 请注意 空字符串不是回文 例如 aab 的回文子序列是 a a b aa 该方法返回 4 我心中有寻找最长回文子序列的动态规划解决方案 因此尝试从中
  • Reactive Cocoa 5 和 ReactiveSwift 网络请求处理

    我试图弄清楚是否可以使用 ReactiveSwift 和 RAC5 来实现适合我需求的网络请求处理 在主题下从 RACSignal 迁移到 ReactiveSwift 或 RAC5 https stackoverflow com quest
  • 如何在没有结构体实例的情况下调用特征方法?

    如果我有一个结构体 其方法没有self作为参数 我可以通过调用该方法SomeStruct method 我似乎无法对从特征定义的方法做同样的事情 例如 trait SomeTrait fn one trait gt uint struct
  • 未知提供商 CookieStore

    我正在提供服务 我想使用 cookieStore 模块 它工作正常 但是当单元测试时它会中断 并给出错误 cookieStoreProvider 该服务如下所示 serviceModule factory filtersService ro
  • 如何将 --relative 与 git format-patch 一起使用?

    当我使用git diff relative HEAD HEAD 我得到了一些不错的补丁输出 我删除了它所在目录之外的路径 我开始使用git format patch我也想用 relative但没有看到任何选项 我怎样才能得到同样的效果 Th
  • 从空 Swift 数组中获取对象类型

    有没有办法从空数组中获取数组元素的实例 我需要dynamic属性 因为我使用了一些 KVC 方法NSObject import Foundation class BaseClass NSObject func myFunction doWo
  • 如何获取 Python 字符串中括号内的值? [复制]

    这个问题在这里已经有答案了 我有这样的事情 a 2 3 4 b 12 3 5 我只想要括号内的值 我使用正则表达式 它有效 但我的老师不允许 我怎样才能做到这一点 gt gt gt a 2 3 4 gt gt gt a a index 1
  • C语言——调用没有函数原型的函数

    I found here http opencbp sourceforge net en US ISO8859 1 books opencbook func prototypes html如果函数位于函数调用之下 则函数原型在函数调用之前是
  • Python tk框架

    我有生成以下错误的 python 代码 objc 36554 Class TKApplication is implemented in both Library Frameworks Tk framework Versions 8 5 T
  • 如何禁用文本小部件的输入但允许编程输入?

    我该如何锁定一个Text小部件 以便用户只能选择并从中复制文本 但我仍然可以将文本插入到Text来自函数或类似函数 您是否尝试过简单地禁用文本小部件 text widget configure state disabled 在某些平台上 您
  • 长时间运行 RTS 游戏多人注意事项

    我正在开发一款实时太空策略游戏克隆游戏 该游戏当时没有任何多人游戏选项 我想添加多人游戏 游戏本身的时间比较长 大约需要10 15小时才能通关 这很长 我不想强 迫玩家不间断地玩它或由于崩溃 断电而失去游戏状态 类似的游戏是如何解决此类问题