热点推荐

使用玩家反馈自我进化的游戏内容

【来源:http://www.gxzhileng.com 】 【更新时间:2019-06-25 09:22】

制作内容(例如关卡)是一项艰巨而耗时的任务。使用程序内容是在短时间内生成大量内容的经过验证的解决方案。然而,当达到玩家的期望时,它有很多陷阱。但是,如果我们能够使我们生成的内容自我发展呢?如果我们可以让我们的游戏随着时间的推移变得更好怎么办?

自我发展的发电机

在程序上创建级别似乎是减少开发时间的好方法。但是,创建一个每次运行时产生理想结果的算法都可能与设计一组级别一样耗时。大量的开发时间用于评估生成的结果并添加约束和检查以确保创建的内容可播放。通过将生成内容的验证作为优化问题,我们可以使用现有算法找到符合预期结果的解决方案。

简单的优化算法,例如爬山或其变化,足以为单个变量找到一个好的解决方案,但在水平生成的背景下,它不是一个单一的最优解,并且可能存在多个变量驱动生成算法。因此,遗传算法可能就是我们需要找到适用且可玩的解决方案。遗传算法模拟自然选择的过程以找到问题的解决方案。生成一组解决方案,然后评估其适应如何解决该问题。然后选择最佳解决方案,并将其特征(变量)组合起来,以产生新的,可能更好的解决方案。

图1:示意图概述,用于说明应用于水平的遗传算法的基础知识。

在我们逐步改进水平以使其变得更好之前,我们首先需要一个程序内容生成算法。这样的生成器可以是非常复杂的算法,但即使是只有少量变量的简单实现也可能就足够了。这里的要求是需要有变量,这些变量将允许我们调整算法的结果。这些变量将起到“染色体”的作用。生成的解决方案将改变每一代人。

一代人

对于Collo船长,我正在研究一种发电机,它使用细胞自动机的实现在2D网格上生成陆块和岩石。大陆和岩石通过形成玩家必须纵的障碍来影响一个级别的整体游戏玩法。玩家(和敌人)可以在陆地上射击但不能通过它射击,但玩家无法通过岩层射击。在生成陆地和岩层后,找到合适的地方放置兴趣点,如敌人。

前几个级别是随机生成的。为了发展这些水平,必须评估水平并评估他们对球员的满足程度,换句话说,水平发挥多少乐趣。然后我们可以使用这个分数来评估这些水平有多好,并尝试将这些水平的成特征结合起来,以产生新的,希望更好的水平。

但我们如何评分这些水平?我们怎么知道哪些是好还是坏?在大多数遗传算法中,有一个适应度函数可以评估生成的解决方案。但是编写一个可以解释生成的级别并为其分配正确分数的函数将非常困难。

健身能的生存

有一些游戏[1],[2]适应玩家行为并测量大量游戏统计数据和玩家输入以模拟玩家的例子。然后,可以使用该玩家模型使游戏内容适应该模型,在线,即时或离线。这种方法有一些缺点,特别是在可移植方面,这意味着它通常非常适合游戏,但也适用于创建有效的模型。对于开发者而言,玩家建模或玩家概况分析可能过于耗时,并且可能在单个游戏之外无用,即使它可以用作有效的健身能。由于这些,我选择将算法的演变基于玩家反馈。

我想使用明确的玩家反馈,询问他们对所生成内容的看法。我的游戏中的等级通常具有较短的游戏时间。每当一名球员完成一个关卡时,他们就会被问到他们对比赛水平的看法。对于第一个实现,我将使用5星评级系统。但是,有

许多不同的方式可以向玩家询问此反馈。例如,不同的方法是要求玩家对他们的等级进行排名

制作内容(例如关卡)是一项艰巨而耗时的任务。使用程序内容是在短时间内生成大量内容的经过验证的解决方案。然而,当达到玩家的期望时,它有很多陷阱。但是,如果我们能够使我们生成的内容自我发展呢?如果我们可以让我们的游戏随着时间的推移变得更好怎么办?

自我发展的发电机

在程序上创建级别似乎是减少开发时间的好方法。但是,创建一个每次运行时产生理想结果的算法都可能与设计一组级别一样耗时。大量的开发时间用于评估生成的结果并添加约束和检查以确保创建的内容可播放。通过将生成内容的验证作为优化问题,我们可以使用现有算法找到符合预期结果的解决方案。

简单的优化算法,例如爬山或其变化,足以为单个变量找到一个好的解决方案,但在水平生成的背景下,它不是一个单一的最优解,并且可能存在多个变量驱动生成算法。因此,遗传算法可能就是我们需要找到适用且可玩的解决方案。遗传算法模拟自然选择的过程以找到问题的解决方案。生成一组解决方案,然后评估其适应如何解决该问题。然后选择最佳解决方案,并将其特征(变量)组合起来,以产生新的,可能更好的解决方案。

图1:示意图概述,用于说明应用于水平的遗传算法的基础知识。

在我们逐步改进水平以使其变得更好之前,我们首先需要一个程序内容生成算法。这样的生成器可以是非常复杂的算法,但即使是只有少量变量的简单实现也可能就足够了。这里的要求是需要有变量,这些变量将允许我们调整算法的结果。这些变量将起到“染色体”的作用。生成的解决方案将改变每一代人。

一代人

对于Collo船长,我正在研究一种发电机,它使用细胞自动机的实现在2D网格上生成陆块和岩石。大陆和岩石通过形成玩家必须纵的障碍来影响一个级别的整体游戏玩法。玩家(和敌人)可以在陆地上射击但不能通过它射击,但玩家无法通过岩层射击。在生成陆地和岩层后,找到合适的地方放置兴趣点,如敌人。

前几个级别是随机生成的。为了发展这些水平,必须评估水平并评估他们对球员的满足程度,换句话说,水平发挥多少乐趣。然后我们可以使用这个分数来评估这些水平有多好,并尝试将这些水平的成特征结合起来,以产生新的,希望更好的水平。

但我们如何评分这些水平?我们怎么知道哪些是好还是坏?在大多数遗传算法中,有一个适应度函数可以评估生成的解决方案。但是编写一个可以解释生成的级别并为其分配正确分数的函数将非常困难。

健身能的生存

有一些游戏[1],[2]适应玩家行为并测量大量游戏统计数据和玩家输入以模拟玩家的例子。然后,可以使用该玩家模型使游戏内容适应该模型,在线,即时或离线。这种方法有一些缺点,特别是在可移植方面,这意味着它通常非常适合游戏,但也适用于创建有效的模型。对于开发者而言,玩家建模或玩家概况分析可能过于耗时,并且可能在单个游戏之外无用,即使它可以用作有效的健身能。由于这些,我选择将算法的演变基于玩家反馈。

我想使用明确的玩家反馈,询问他们对所生成内容的看法。我的游戏中的等级通常具有较短的游戏时间。每当一名球员完成一个关卡时,

他们就会被问到他们对比赛水平的看法。对于第一个实现,我将使用5星评级系统。但是,有许多不同的方式可以向玩家询问此反馈。例如,不同的方法是要求玩家对他们的等级进行排名

上一篇:我的善良,有人使用光环5来制作泰坦尼克号的比例模型
下一篇:Unity 5发布了升级版,能齐全的免费版