Questions tagged «mmo»

MMO是“大型多人在线”的缩写,这种游戏允许在共享世界中同时存在大量玩家。

2
这是适合我们的MMORPG手机游戏的架构吗?
这些天,我正在尝试为公司设计一款新的MMORPG手机游戏的体系结构。该游戏类似于黑手党战争,iMobsters或风险。基本思想是准备一支军队与您的对手(在线用户)作战。 尽管我以前曾从事过多个移动应用程序的工作,但这对我来说却是新事物。经过大量的努力,我提出了一个架构,该架构借助高级流程图进行了说明: 我们决定采用客户端-服务器模型。服务器上将有一个集中式数据库。每个客户端将拥有自己的本地数据库,该本地数据库将与服务器保持同步。该数据库用作存储不经常更改的内容(例如地图,产品,库存等)的缓存。 使用此模型后,我不确定如何解决以下问题: 同步服务器和客户端数据库的最佳方法是什么? 在将事件更新到服务器之前,是否应该将事件保存到本地数据库?如果应用由于某种原因终止,然后将更改保存到集中式数据库,该怎么办? 简单的HTTP请求是否可以达到同步目的? 如何知道当前登录的用户?(一种方法是让客户端每隔x分钟继续向服务器发送一个请求,以通知该请求处于活动状态。否则,认为客户端处于非活动状态)。 客户端验证足够吗?如果没有,如果服务器未验证某些内容,如何还原操作? 我不确定这是否是一个有效的解决方案,以及它将如何扩展。如果已经在此类应用程序上工作的人们能够分享他们的经验,这可能有助于我提出更好的建议,我将不胜感激。提前致谢。 附加信息: 客户端是在称为果酱的C ++游戏引擎中实现的。这是一个跨平台的游戏引擎,这意味着您可以在所有主要的移动操作系统上运行您的应用程序。我们当然可以实现线程化,这在我的流程图中也有说明。我打算将MySQL用于服务器,将SQLite用于客户端。 这不是回合制游戏,因此与其他玩家的互动不多。服务器将提供在线玩家列表,您可以通过单击“战斗”按钮与他们进行战斗,并在播放一些动画后宣布结果。 对于数据库同步,我想到了两种解决方案: 存储每个记录的时间戳。还应跟踪本地数据库的最新更新时间。同步时,仅选择时间戳较大的行并将其发送到本地数据库。为已删除的行保留一个isDeleted标志,以便每个删除行为都只是一个更新。但是我对性能有严重的怀疑,因为对于每个同步请求,我们都必须扫描整个数据库并查找更新的行。 另一种技术可能是保留针对用户进行的每次插入或更新的日志。当客户端应用程序要求同步时,请转到该表并找出已更新或插入了该表的哪些行。这些行成功传输到客户端后,请删除此日志。但是我想到了如果用户使用其他设备会发生什么。根据日志表,已为该用户传输了所有更新,但实际上是在另一台设备上完成的。因此,我们可能还必须跟踪设备。实施此技术比较耗时,但不确定是否会执行第一个。

2
实施MMO任务机制的提示?
您将建议使用哪些工具,模式或最佳实践来实现下面列出的要求中给出的任务机制? 我正在谈论软件体系结构(应该是多么通用)以及对象连接,事件订阅和条件表示的选择。欢迎提及您成功使用的工具/库。 编辑:如果您正在使用脚本,您推荐什么设置? 要求: 简单的2D mmo(rpg) 所有游戏数据(包括任务)都存储在关系数据库中 游戏中的任何事件都可能触发玩家的新任务或推进现有任务 任务可以具有任意数量的条件,玩家可以使用该任务 一个任务可以包含任意数量的具有任意条件的子任务/步骤 任务范围很简单: 与A交谈-杀死5 B-与A交谈-永久增加健康 相当投入: 使用X区域中的物品-转到Y区域-机器人会产生-杀死机器人而不会造成超过10%的伤害-机器人掉落物品-拾取物品-传送门解锁-将物品传送到传送门后面的J-获得金钱和经验-允许再次通过传送门-锁定此玩家的传送门 可能存在关卡实例(玩家可以团队或孤立地完成某些任务,这只会为那些参与者生成关卡位置) 最好使用世界编辑器来管理任务,而无需脚本或编程知识(编辑:不过,通常不提倡脚本) 我假设C ++是实现的语言 我当时在想,如果我可以将事件和条件的任何链条结合起来,我们就可以对更复杂的模型进行建模,从而可能进行更具吸引力的探索。我尝试过使用自己的ECA(事件,条件,动作)引擎进行滚动实验,但这可能有点过分。在不使用任何脚本的情况下对通用条件进行建模特别困难。

3
MMO的反作弊问题和解决方案?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 大多数在线游戏都遭受这个问题的困扰,并且有一些软件公司可以解决这个问题,但是从最近的情况来看,我发现大多数公司都在努力避免那些程序创建自己的系统(暴风雪与守望者,永恒之塔与自己的支票等等) ...),但要防止这种情况是非常困难的情况... 只是想说我作为社区Wiki提出了另一个问题主题,专门用于发布应用程序,它是功能,而在此问题背后的想法不是列出这些内容,而是更多地了解您的尝试,沿途问题以及可能的解决方案,一段代码(如果应用)等等。 你们为了(尝试)防止此类行为而使用了哪种保护措施: 反作弊软件 (请说明您所遇到的问题,原因和可能的问题,例如aion由于大量的兼容性问题而在Beta阶段停止使用GameGuard并遭到用户的抱怨) 您自己的代码?(您通常会执行哪种类型的验证来确定恶意玩家,例如speedhack,针对速度+最后位置来验证新位置等)。 没有,我不在乎吗?(您想分享任何个人原因或意见吗?) 与您要发布的问题相关的任何有趣的代码? 随意修改我的英语语言文章,真是太好了吗?**
14 mmo  anti-cheat 

6
为什么我应该禁止在MMO中​​进行真实货币交易?
我很快将通过MMO游戏公开发售,并且目前正在编写我希望玩家遵循的使用条款(不发誓,不发垃圾邮件,不作弊...您明白了)。 我的游戏允许玩家相互交易稀有物品。 我注意到,几乎所有具有交易功能的在线游戏通常在其使用条款中都有一条条款,明确禁止玩家以真实货币交易游戏内物品或游戏内货币。 我想知道这条规则的原因。为什么要禁止在MMO中​​进行真实货币交易?

2
我应该如何检查玩家是否完成了一项成就?
我正在制作MMO游戏,而我刚到需要实现成就的地步...我该怎么做?最直接的方法是每100ms运行一次: for a in achievements for p in players if a.meetsRequirements(p) then p.completeAchievement(a) 但这只会带来更多的复杂性。例如,如何检查成就是否已经完成?玩家是否仅针对特定成就拥有自定义属性?我对任务进行了此类操作,因为它们主要是“收集100块木头”,因此玩家进行的主动任务会对此进行检查。另外,我认为必须有更好的时间来检查它,这会定期降低我的服务器的速度。

2
如何实施离线技能
离线技能的一个例子是在线EvE。您的角色(飞行员)无法通过获得经验来获得技能。相反,无论您是在游戏中还是游戏外,您的角色都会获得与所要训练的技能有关的技能点。另外,我相当确定即使游戏服务器出现故障,技能仍会继续积累。 任何人都有关于如何实现此目标的广泛想法,或者更好的是我如何能够在正在开发的游戏中实现类似的东西。我不是在这里寻找详细的解释(不过,不要让我退缩),但是我正在寻找一个指向正确方向的路标。 谢谢!
13 mmo  character 

6
推荐的RPG游戏可以用来学习游戏Modding?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我想通过游戏改装学习游戏开发。RPG / MMORPG是我最喜欢的类型之一。有人可以推荐我一个不错的新游戏(我也想玩这个游戏)来学习游戏改装。像《无冬之夜》之类的东西2。 非常感谢您的答复。欣赏它。

2
在MMO的服务器端存储每个对象的坐标
在MMORPG中: 将每棵树,灌木丛等的坐标存储在服务器端以进行碰撞检测是典型的还是可行的? 如果是这样,什么是存储如此大量坐标(数据结构等性能问题处理)的可行方法? 如果不是,这种冲突检测是否完全在客户端完成,而服务器根本不检查? 还是有中间立场,由客户端检查冲突并由服务器验证?如果是这样,服务器又如何在不将坐标保存在服务器中的情况下进行验证?

4
大型MMORPG多久更新一次物理?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 据我了解,大多数大型游戏使用固定的时间步进行稳定的模拟。 关于游戏服务器,它们施加哪个“帧速率”?或换一种说法,他们倾向于使用固定的时间步长? 我知道很多人会说:“尽快逃脱”。如果您有建立MMORPG的直接经验,我想知道这有多快。

4
MMO具有最高限额的原因是什么?
在许多MMO玩家中,角色的进步是人为限制的,例如60级或90级或100级或其他。为什么MMO首先拥有这些级别上限?为什么不通过数学设计的水准测量系统让角色继续到任意水平,使水准的体验有趣而永无止境? 回答该问题可能有助于我们了解该功能背后的原因,并决定是否以及如何在MMO中​​实施此功能。

4
MMO服务器的游戏日志格式
整个群集/分片的游戏事件日志(与错误/调试日志相对)对于在实时生产环境中的商业MMO非常有用,它为客户服务提供了至关重要的支持,并提供了历史分析手段。 我当前正在从事的项目使用关系数据库来存储所有游戏事件日志,尽管该方法可以正常工作,但在我看来,日志的按时间顺序排列的只读性质将允许使用更有效的存储格式。 但是,我不确定从哪里开始学习构建自定义二进制日志格式。您在创建自定义日志格式或有关该主题的任何推荐论文/文章方面有什么经验?

2
如何同步多人游戏中的跳跃等动作?
我是新手游戏开发人员,并且我一直在研究多人游戏。我观察到总会有一些延迟,玩家总是会从过去的动作中获得更新。但是,有诸如航位推测法之类的技术可以处理延迟。我可以预测运动并使运动平稳。但是我将如何使动作同步,例如跳跃,停止行走等。 假设客户A在移动,他以100m / sec的速度在10.2时处于100m并发送了此信息。客户B稍后会收到此信息,设为10.4。因此,在客户端B,我可以使用预测并将客户端A放置在120m处。但是,如果客户在10.3跳到110m,该怎么办?我无法预测,并且由于我一直在使用预测,所以无法显示客户A的过去。 我可能根本不发送跳转动作来解决此问题。但是,如果我的游戏中存在一些空隙,玩家可以跌倒并死亡。因此,如果我不同步跳跃动作,其他玩家将观察到一个玩家在跑步,然后他陷入虚无,然后再次出现在屏幕上,破坏了视觉吸引力。 跳转只是一个例子,可能在许多情况下无法进行预测。因此,如何处理它们。这样的示例之一可以是像Awesomenauts这样的多人在线战斗竞技场游戏。

5
有没有办法使诸如MMORPG的动态世界水平扩展?
想象一下,一个拥有500多个播放器的开放世界,其数据更改速度高达20个更新/播放器/秒。上一次我在类似的MMORPG中工作时,它使用SQL,因此很笨拙,无法始终查询数据库。而是将所有播放器作为C ++对象从数据库加载到内存中并使用它们。也就是说,它是垂直缩放的。可以使该服务器水平扩展吗?是否有一个旨在同时支持该数量的更新的数据库?


5
我该如何奖励冒险的地牢大师?
我正在进行一个MORPG项目,该项目主要扮演两个主要角色:冒险家和地牢大师。我关心的是平衡这两个角色。 对于那些听说过它的人来说,其原理是受法国漫画《地牢》启发的。如漫画中所述,地牢的商业模式如下:地牢大师将宝藏放置在守卫严格的地牢中,以吸引寻求名利的冒险家。尽管其中一些成功了,但大多数过程却死了,丢下了珍贵的物品,并加入了地下城的宝藏,进一步吸引了更多的冒险家。地牢大师通过从这些水滴中收集适量的钱来谋生,以创造新的房间,支付佣兵,获取新的生物,繁殖龙之类的东西。 冒险家非常经典:他们是面向战斗的角色,可以攻击怪物或同伴并在此过程中获得经验值,物品和金钱,从而逐渐使他们变得更强大。 地牢大师是面向贸易的。他们的困难是平衡预算:宝物和巨龙很昂贵。现在,我已经期望地牢大师之间出现某种平衡,因为太硬或太容易的地牢自然会受到惩罚(分别为低尝试率或低杀灭率)。DM与DM平衡:检查。 由于在地牢中启用了PvP战斗,因此冒险家之间也存在竞争,迫使弱玩家坚持使用简单的地牢,而对高级玩家而言却没有什么回报。冒险家与冒险家保持平衡:检查。 但是,我要解决的两个角色之间存在一个特定的不平衡:冒险家倾向于尝试将地牢置于联盟之上,因为即使他们死亡(丢掉一些物品并在地牢外重生),他们也会获得一些经验值进行中。这很好,因为它可以奖励冒险者。另一方面,地牢大师没有任何这种优势:如果冒险家完成了地牢并带着他们的宝藏逃走了,那么什么也得不到。如果它导致地牢主对自己的防御过于谨慎,杀死了完成地牢的可能性,那将是可惜的。冒险家vs DM平衡:问题。 因此,我的问题是:我可以采用什么奖励机制来激励地牢大师保持较小但非零的获胜概率?
10 game-design  mmo  rpg  balance 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.