模拟RTS或暴雪如何将Starcraft 1& 2?

时间:2010-07-31 17:26:56

标签: language-agnostic

不确定这个问题是否与软件开发有关,但我希望有人能够至少指出我正确的方向(不,不是那个方向..) 我很好奇暴雪如何在他们的游戏中实现战略/战术力量的这种平衡?如果你看星际争霸1或现在2,每个种族都有独特的功能,与其他种族的其他独特功能相对应,所有这些共同创造了一个非常美丽(至少在我的脑海中)的平衡。

是否有某种数学领域可以帮助建模这些东西?他们基本上怎么做?

4 个答案:

答案 0 :(得分:7)

我没有完整的答案,但这是我所知道的。最初,当游戏在技术上准备就绪时,平衡并不理想。当他们开始首次公开测试时,他们的补丁非常快。他们让玩家(测试者)按原样进行游戏,并获取每场比赛胜率百分比的统计数据,并根据它调整参数。当β处于最终比例时几乎是理想的:33%/ 33%/ 33%。

答案 1 :(得分:3)

我不知道暴雪是如何专门做到的 - 它可能只是经过了大量的用户测试。

然而,专门针对这类问题的CS和统计数据的整个领域是simulation。通常,我们的想法是构建一个系统模型,然后根据一些统计分布生成输入,以尝试理解该模型的行为。在找到游戏平衡的情况下,你会希望表明大多数游戏事件序列导致某种均衡。这可能涉及某种随机建模

答案 2 :(得分:1)

线性代数,可能是一点微积分,还有很多测试。

这种事情并没有真正的神秘感,但是人们通常不会用严格的术语来思考它,以获得一个相当平衡的系统。

基本上,设计师知道你可以多快收集资源(最好的情况和平均情况),他们知道建立一个单位需要多长时间,而且他们大致知道单位的强大程度(例如,参考近似值damage per second)。有了这个,您可以确保单位的资源成本是有意义的。从中可以将资源收集与单位成本进行比较,以模拟随时间推移而增长的力量。同样,您可以测量力随时间的损坏能力,并比较两者。如果存在很大的差异,那么他们可以调整一个或多个变量来减少它。显然有很多单位的排列,但有趣的是你只需要了解最强大的排列 - 如果一个玩家选择了一个糟糕的组合,那么如果他们失败就没关系。你不希望每一种方法都同样好,因为这意味着你的决定毫无意义的无聊游戏。

这当然是一种简化,但它有助于将所有内容放在大致正确的位置,并确保没有任何单位无用。然后测试可以敲击粗糙的边缘并找到剩下的大部分漏洞。

答案 3 :(得分:1)

如果您尝试过SCII,您会注意到暴雪会记录在B.Net上玩的每个游戏的相关数据。他们在WC3中做了同样的事情,大概是在SC1中。通过存储足够的游戏,可以从统计分析中获得准确的结果。例如,Protoss应该与同样熟练的对手赢得三分之一的比赛。如果不是这样的话,暴雪可以分析Protoss赢得的游戏和他们输掉的游戏,看看哪些单位有所不同。然后他们可以对这些单元进行监视(通过一些内部测试),并在下一个补丁中引入更改。平衡是一个难题 - 修复顶级游戏中的问题可能会破坏中级游戏的平衡。

在封闭测试版中进行适当的测试是不可能的 - 您无法积累足够的数据。这就是暴雪开放测试版的原因。即便如此,真正的考验是游戏的发布。