【问题标题】:How the dynamics of a sports simulation game works?运动模拟游戏的动力学如何运作?
【发布时间】:2010-11-14 14:19:18
【问题描述】:

我想创建一个棒球模拟游戏。

这些体育管理游戏是靠运气吗?完全靠运气的管理游戏是不公平的,但也不能太可预测。这些游戏背后的逻辑是如何运作的?

【问题讨论】:

    标签: simulation


    【解决方案1】:

    你应该看看特许经营球。有一个可浏览的演示。

    http://promo.franchiseball.com

    【讨论】:

      【解决方案2】:

      我认为 Kylotan 的策略是正确的。棒球有一切的统计数据。将游戏模拟到您可以管理的最详细的级别。结合玩家统计数据来确定每个结果的百分比机会。使用随机性来决定结果。

      例如:命中率取决于击球率、投手的 ERA 等。对方球队的投球率决定了出局成为错误的机会。

      您在选择阵容时向“经理”显示的每个统计数据都应该对游戏玩法产生一些影响 - 否则经理会根据误导性信息做出决定。

      【讨论】:

        【解决方案3】:

        您说的是您玩的棒球比赛还是游戏模拟器?棒球游戏可以是街机类游戏,也可以是奇幻运动类游戏,也可以是混合游戏。

        制作 Front Page Sports Baseball 时,我在 Dynamix。它是基于统计数据的,这意味着您可以使用不同球员的统计数据来完成比赛和赛季。这意味着许可美国职业棒球大联盟的数据。它使用统计数据来影响结果。

        有一个常规模式和一个“快速模拟”模式,可以更快地完成游戏。

        【讨论】:

        • 只是模拟器,没有游戏性。我正在考虑创建一款街机游戏,但那将是不同的项目。
        • 那么你的工作就是试图匹配统计数据。当击球手上场时,每个投球都是基于击球手的统计数据、投手的统计数据以及可能是守场员的统计数据的掷骰子。
        【解决方案4】:

        创建自己的游戏的一大好处是可以决定游戏逻辑将如何运作。如果您希望游戏具有较高的运气可以将其设计进去。如果您不希望游戏具有较高的运气,那么可以设计出来。

        这是你的游戏,要制定规则。

        【讨论】:

        • 很好,只是收集了一些想法。
        【解决方案5】:

        这都是关于概率和统计的。您根据分配的某些属性设置发生某事的机会,然后在游戏过程中加入随机因素,使事情变得更不可预测和更有趣。通常,您会从一些外部来源获取大量统计数据,将它们编码到游戏的数据库中,然后编写一个系统,将随机数与这些统计数据进行比较,以生成与统计数据所基于的真实观察结果相近的结果。

        过于简单的示例:假设您的游戏中有 8.5% 的时间击出本垒打的贝比·鲁斯(Babe Ruth),以及 4% 的时间击中一个的小人物。这些是您测试的属性。因此,对于您模拟的每个音高,选择一个介于 0 到 100% 之间的随机数。如果小于或等于该属性,则击球手打出本垒打,如果大于该属性,则击球手不得分。几次投球后,您将开始看到贝比·鲁斯(Babe Ruth)相对于其他人的质量表现,因为他往往会击出两倍以上的本垒打。

        实际上,这取决于投球的类型,您有不止 1 个属性。另一名球员可能会选择使用哪些救援投手来尝试利用击球手能力的弱点。因此,游戏玩法来自于这些不同属性之间的相互作用,而您试图最大限度地提高属性测试对您有利的机会。

        附言。对棒球方面的任何错误表示歉意:我是英国人,所以不能指望理解这些事情。 ;)

        【讨论】:

        • +1 @Kylotan :我认为您实际上已经比 OP 接受的答案更好地确定了运动模拟的游戏内机制。这是一堆统计数据+玩家决定相互对抗的统计数据。做出更好决定的玩家,例如谁在比赛中上场,将比那些没有做出更好决定的玩家赢得更多。事实上,如果专业运动队不使用某种形式的模拟器驱动输入来决定谁参加现实生活中的比赛,我会感到惊讶。
        【解决方案6】:

        如您所见,此类游戏的核心组件是比赛模拟引擎。作为Spence said so,您希望模拟“看起来正确”而不是“正确”。

        前段时间我从事橄榄球游戏模拟,有一种方法效果很好。你的比赛是一个有限状态机。每个游戏阶段都是一个状态,其结果会转化为阶段转换或游戏状态的变化(得分、替换……)。 添加一个事件/侦听器系统来处理与您正在模拟的游戏结构不严格相关的事情并且您有一个良好的结构(每次在您的模拟中发生某些事情,例如犯规,触发事件;侦听器可以是评论生成系统或负责团队策略的 AI)。

        您可以从一个粗略的模拟引擎开始,该引擎使用球员的平均数据处理团队级别的事情,然后转向更详细的模拟球员级别的事情。我认为这种迭代方法非常适合游戏模拟,因为您希望它看起来正确,并且一旦元素看起来正确,您就可以停止对其进行迭代并在系统的另一部分上工作。

        随机当然是游戏的一部分,因为正如您所说,您不希望游戏过于可预测。一个非常简单的做法是在球员和球队执行特定动作(例如扔球)时对他们进行虚拟掷骰子统计。

        编辑:我假设我们谈论的是像Hattrick 这样的管理游戏,您在其中管理名册并模拟游戏结果,而不是 2D/3D 图形模拟。

        【讨论】:

          【解决方案7】:

          通常是时间加上随机性以使游戏可重玩你挥杆让比赛有一些机会)。如果你做曲线球之类的事情,人工智能在这方面发挥了重要作用,增加了偷垒的能力等等。

          让游戏“正确”不是设计或数学的一个因素,而是一种感觉。你会尝试一些东西,玩它,看看它是否有趣。如果在你做对之前不尝试不同的算法或游戏玩法。

          【讨论】:

          • 你可能想用一个例子来澄清一下,比如“假设你正在为击球手的角色建模;为了确定你得到什么类型的击球,你会根据随机结果计算关于球场的时机;时机越好,击球的机会就越大。
          • 经常发布,尽早发布,诸如此类。
          【解决方案8】:

          模拟在很大程度上与想象的世界有关,您可以创建代表想象世界各个方面的类。您需要对玩家进行建模,指定游戏规则和游戏动态。

          http://cplus.about.com/b/2008/05/31/nathans-zombie-simulator-in-c.htm

          在此处查找基于代理的模型:http://www.montemagno.com/projects.html

          【讨论】:

            猜你喜欢
            • 2016-03-18
            • 1970-01-01
            • 2016-07-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-10-15
            • 2011-01-23
            • 1970-01-01
            相关资源
            最近更新 更多