1.76吸血毁灭专区http://www.cxy-de.org

当前位置: 主页 > 1.76毁灭版本发布网 >

为您的游戏设计随机数

发布时间:2019-06-26 13:56

文章导读:
在本文中,我将在游戏中使用随机数时考虑一些设计注意事项。我将通过一些常见随机数系统的例子。我将以我面临的设计挑战为例,以及我用来解决它的算法。 公平警告 C本文中的任何内容都不会使用正确的数学术语,除非是偶然的,所以不要将其用作硕士论文的资源

在本文中,我将在游戏中使用随机数时考虑一些设计注意事项。我将通过一些常见随机数系统的例子。我将以我面临的设计挑战为例,以及我用来解决它的算法。

公平警告 C本文中的任何内容都不会使用正确的数学术语,除非是偶然的,所以不要将其用作硕士论文的资源。

游戏设计中的随机有无穷无尽的用途,但每次使用都需要具有特定特征的随机数。在大多数情况下,您需要将数字放在一定范围内,具有一定的粒度级别,并且需要在所需的分布中进行。出于本文的目的,以下是这些术语的含义:

范围表示最小值和最大值。

粒度是指可能值之间差距的大小。

分布是指每个值相对于其他可能值的出现频率。

有两种非常常见的解决方案可以生成精心设计的随机数集,为简单起见,我在这里简称Dice和Cards。我将介绍这些方法,并强调重要的区别。

滚动是一种用于生成随机数的简单通用算法。在最简单的形式中,您只需在所需范围内生成一个随机数,然后将其舍入或修改为所需的粒度。通常,您也会应用偏移或乘数来调整范围和粒度。

单个掷通常会产生相同的加权分布。例如,单面六面(1d6)导致以下分布:

如果将多个滚动并加在一起,则会创建更有趣的值分布。例如,滚动3个六面并添加值(3d6)会产生以下分布:



这为我们提供了一个很好的钟形曲线分布,其值在3到18之间。

有一些标准技巧可供申请。因此,如果我们想要改变3到18之间的值的分布以支持更高的数字,我们可以改为滚动4个六边形并降低最低值(4d6-L)。然后我们会得到以下分布:

因此,通过正确的调整,滚动可以为您提供大量的权力并控制随机数的结果。然而,滚动的一个基本方面是每个卷完全于彼此卷。这意味着无论您的理想概率曲线是什么样的,都没有什么可以阻止您连续滚动18个3。根据您的随机数实际控制的情况,这可能会导致一些非常不良的行为,即使它很少发生。

获取随机值的另一种方法是模拟一副卡片。这可能会更加代密集,但为我们提供了一些无法实现的能。在这种方法中,我们在所需的分布中创建所需值的列表,然后随机地随机调整值。每次我们需要一个值时,我们从堆栈中拉出顶部的一个,留下一组固定的剩余值。经过一段时间后,我们可以重新洗牌。

来自Dice的卡片方法之间最重要的区别是,对于卡片,您的后续值根据您已经拉出的值而具有不同的发生概率。

假设我们想要一组非常简单的卡片,类似于六面片模具。所以我们制作了6张牌,每张牌都有1张,2张,3张,4张,5张和6张。这些牌是洗牌的,我们从顶部拉出一张牌。说它是2.现在甲板上只有5张牌,在我们决定重新洗牌之前我们永远不会得到另外2张牌。这可以防止在短时间内多次获得非常不可能的值的潜在问题。如果你在整个牌组被消费之前没有重新洗牌,那么你将永远得到你想要的确切分布。

然而,卡片还有其他一些设计考虑因素。特别是,选择要使用的卡数可能会非常棘手。如果只有少数可能的结果值,则卡算法可能很明显并导致卡计数行为。你可以通过每个值的一些次数来制作一组较小的值,以帮助解决这个问题。但是,只有几个不同值的大型甲板将开始重新引入连续绘制更不可能的卡的问题。平衡可能很棘手。

Wave算法是我想出来的

在本文中,我将在游戏中使用随机数时考虑一些设计注意事项。我将通过一些常见随机数系统的例子。我将以我面临的设计挑战为例,以及我用来解决它的算法。

公平警告 C本文中的任何内容都不会使用正确的数学术语,除非是偶然的,所以不要将其用作硕士论文的资源。

游戏设计中的随机有无穷无尽的用途,但每次使用都需要具有特定特征的随机数。在大多数情况下,您需要将数字放在一定范围内,具有一定的粒度级别,并且需要在所需的分布中进行。出于本文的目的,以下是这些术语的含义:

范围表示最小值和最大值。

粒度是指可能值之间差距的大小。

分布是指每个值相对于其他可能值的出现频率。

有两种非常常见的解决方案可以生成精心设计的随机数集,为简单起见,我在这里简称Dice和Cards。我将介绍这些方法,并强调重要的区别。

滚动是一种用于生成随机数的简单通用算法。在最简单的形式中,您只需在所需范围内生成一个随机数,然后将其舍入或修改为所需的粒度。通常,您也会应用偏移或乘数来调整范围和粒度。

单个掷通常会产生相同的加权分布。例如,单面六面(1d6)导致以下分布:

如果将多个滚动并加在一起,则会创建更有趣的值分布。例如,滚动3个六面并添加值(3d6)会产生以下分布:



这为我们提供了一个很好的钟形曲线分布,其值在3到18之间。

有一些标准技巧可供申请。因此,如果我们想要改变3到18之间的值的分布以支持更高的数字,我们可以改为滚动4个六边形并降低最低值(4d6-L)。然后我们会得到以下分布:

因此,通过正确的调整,滚动可以为您提供大量的权力并控制随机数的结果。然而,滚动的一个基本方面是每个卷完全于彼此卷。这意味着无论您的理想概率曲线是什么样的,都没有什么可以阻止您连续滚动18个3。根据您的随机数实际控制的情况,这可能会导致一些非常不良的行为,即使它很少发生。

获取随机值的另一种方法是模拟一副卡片。这可能会更加代密集,但为我们提供了一些无法实现的能。在这种方法中,我们在所需的分布中创建所需值的列表,然后随机地随机调整值。每次我们需要一个值时,我们从堆栈中拉出顶部的一个,留下一组固定的剩余值。经过一段时间后,我们可以重新洗牌。

来自Dice的卡片方法之间最重要的区别是,对于卡片,您的后续值根据您已经拉出的值而具有不同的发生概率。

假设我们想要一组非常简单的卡片,类似于六面片模具。所以我们制作了6张牌,每张牌都有1张,2张,3张,4张,5张和6张。这些牌是洗牌的,我们从顶部拉出一张牌。说它是2.现在甲板上只有5张牌,在我们决定重新洗牌之前我们永远不会得到另外2张牌。这可以防止在短时间内多次获得非常不可能的值的潜在问题。如果你在整个牌组被消费之前没有重新洗牌,那么你将永远得到你想要的确切分布。

然而,卡片还有其他一些设计考虑因素。特别是,选择要使用的卡数可能会非常棘手。如果只有少数可能的结果值,则卡算法可能很明显并导致卡计数行为。你可以通过每个值的一些次数来制作一组较小的值,以帮助解决这个问题。但是,只有几个不同值的大型甲板将开始重新引入连续绘制更不可能的卡的问题。平衡可能很棘手。

Wave算法是我想出来的

本文网址:http://www.cxy-de.org/176hmbbfbw/20190626/191.html 欢迎转载!

上一篇:最好的GamerBytes Peggle Fever!
下一篇:找工作Glug Mobile寻求图形工程师