游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6254|回复: 17

[分享] 使用玩家反馈去推动游戏内容的发展

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2016-6-7 17:16:05 | 显示全部楼层 |阅读模式
文/Daniel van der Meulen

  生成程序的发展

  基于程序创造关卡似乎能够有效地减少开发时间。但是每次当你去运行它时都要去创造一个能够生成理想结果的算法,而这与设计一组关卡一样需要消耗大量时间。通常大量开发时间都是用于评估生成结果并添加某些限制因素去确保所创造的内容具有可玩性。通过将这种生成内容验证法作为一种优化问题,我们便可以使用现有的算法去找出适合预期结果的解决方法。

  像爬山法等简单的优化算法便足以帮我们找到一个有关单一变量的解决方法,但在关卡生成环境中并不存在一种单一的最优解决方法,并且这里可能存在多种变量去推动生成算法的演变。因此遗传算法便是帮助我们找出可行解决方法的内容。遗传算法模仿了自然选择一个问题解决方法的过程。这会生成一组解决方法,然后它们能否解决问题的能力将得到评估。最终最佳解决方法会脱颖而出,并与其特征(变量)结合在一起去创造出全新,且更厉害的解决方法。

1.png

  在我们随着时间的推动去发展我们的关卡前,我们首先需要一个程序内容生成算法。像这样的生成程序可能会是一个非常复杂的算法,但即使是一个只有一些变量的简单执行方法也是足够的。这里所存在的必要条件在于需要一些让我们能够调整算法结果的变量。这些变量将作为生成解决方法的“染色体”并且会随着全新生成内容的出现而发生改变。

  生成内容

  对于《Captain Collo》,我正致力于创造一个使用细胞自动机去生成2D网格中的大陆和岩石的生成器。在这里大陆和岩石将通过形成阻碍玩家的元素去影响整体的游戏玩法。玩家(和敌人)可以朝地面射击但却不能穿过它,并且玩家不能击破岩石层。在生成地面和岩石后,我便能够找到一个可以放置像敌人等兴趣点的适当位置。

  前面几个关卡都是随机生成的。为了发展这些关卡,我们必须基于它们如何带给玩家满足感去评估它们(注:也就是一个关卡的乐趣度)。然后我们可以使用这些评分去衡量这些关卡并尝试着将这些关卡的有效功能结合在一起以创造出一个更优秀的新关卡。

  但是我们该如何评价这些关卡呢?我们如何才能知道哪个是好的哪个是糟糕的?在大多数遗传算法中都存在一个适应度函数能够评估生成解决方法。但我们却很难去编写一个能够解释生成关卡并分配给它一个适当分数的函数。

  适应度函数

  有些游戏摸清了玩家行为并权衡了各种游戏数据和玩家输入内容去创造适合玩家的游戏模式。这种玩家模式能够用于在线,实时或离线创造匹配该模式的游戏内容。不过这一方法也拥有一些弊端,特别是在扯到可移植性时,即说明它是针对于特定游戏的。对于独立开发者来说,玩家模式或玩家分析是非常耗时间的,并且可能在其它游戏中就不适合了,尽管这是作为一种有效的适应度函数。正是因为这些限制因素,我选择了基于玩家反馈的进化算法。

  我想要使用明确的玩家反馈,即问清楚玩家对于生成内容的看法。我的游戏关卡一般持续时间都较短。每当玩家完成一个关卡时,我便会询问他们对刚刚玩过的关卡的看法。一开始我使用了一个5颗星的评级系统。除此之外还有很多寻求玩家反馈的方式。例如让玩家决定关卡的好与坏或者询问他们是否喜欢该关卡。

2.png

  为了在不破坏游戏流的前提下找出获取反馈的最佳方式,我们需要进行更多的研究。而这种反馈的主要作用便是推动遗传算法的发展。基于这一算法的本性,我们向玩家寻求反馈的主要原因便是避免创造出更糟糕的关卡,即将玩家函数变成生成解决方法中真正的适应度函数。只要这么做能够创造出可以延伸到下一个关卡中的结果,我们便不再需要从玩家身上获取反馈。

  个人和全局选择

  基于这种方式使用玩家反馈去推动遗传算法存在一个显著问题。遗传算法的根本理念在于我们可以通过人为进化和随着时间发展的变化去创造解决方法。当我们在计算机上使用一个编写好的适应度函数去模拟完整的进化过程时,我们可以在几秒钟内模拟出几百甚至是几千个全新生成内容。而在面对基于玩家的适应度函数时,我们需要等待玩家去尝试并评价关卡生成内容。

  当遗传算法只运行于一个玩家的一台设备上时便会形成一个问题。即在你看到一些有意义的结果前它可能会创造许多生成内容。所以这种方法或许更适合用于完整的玩家社区中。通过在一个服务器上运行遗传算法,在玩家上线时分配给他们全新关卡,我们便能够在较短时间内检索到许多关卡的适应度。这种进化方式虽然不能生成匹配单一玩家喜好的关卡,但却能够从整体上推动游戏的发展。

  全新生成内容

  在本文中,我提供给了你们使用遗传算法和明确的反馈去创造各种关卡以及更适合玩家的关卡的相关理念。

  为了验证这一方法,我发行了一个基于该系统的游戏版本。一开始,概念验证拥有所有适当的基本成分;即关卡生成系统,面向玩家的评级系统以及将基于这些评价去创造全新解决方法的遗传算法。在这里最重要的问题便是这一系统是否能够创造出比生成随机结果的生成程序更有效的结果。

  最后我想基于一个更广的研究范围去创造一个在线共享系统,即不仅整合区域生成内容,同时也将包含基于该方式所诞生的游戏机制。一旦完成了该系统,我们便能够看到游戏的进化方式以及与最初游戏间的区别。

  相关阅读游戏设计中的表达、反馈与刺激

游戏邦编译

6

主题

208

帖子

817

积分

高级会员

Rank: 4

积分
817
发表于 2016-6-7 18:07:37 | 显示全部楼层
不靠谱。。。。

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2016-6-7 19:01:46 | 显示全部楼层
yxdj.ty2y.com 发表于 2016-6-7 18:07
不靠谱。。。。

为什么有这样的结论?

6

主题

208

帖子

817

积分

高级会员

Rank: 4

积分
817
发表于 2016-6-11 22:13:23 | 显示全部楼层
卡特铁角 发表于 2016-6-7 19:01
为什么有这样的结论?

一万个玩家,会有一万种反馈。本文作者明显是个外行,就好像从未创业过的老师在课堂上教学生如何去创业。

102

主题

2443

帖子

7639

积分

论坛元老

Rank: 8Rank: 8

积分
7639
发表于 2016-6-11 22:37:48 来自手机 | 显示全部楼层
如楼上所说,作者连状态机都不知道。

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2016-6-11 22:41:44 | 显示全部楼层
herosone 发表于 2016-6-11 22:37
如楼上所说,作者连状态机都不知道。

那您知道啥叫元胞自动机不?

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2016-6-11 22:42:13 | 显示全部楼层
yxdj.ty2y.com 发表于 2016-6-11 22:13
一万个玩家,会有一万种反馈。本文作者明显是个外行,就好像从未创业过的老师在课堂上教学生如何去创业。 ...

照你这么说……大数据毫无意义?

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2016-6-11 22:42:31 | 显示全部楼层
yxdj.ty2y.com 发表于 2016-6-11 22:13
一万个玩家,会有一万种反馈。本文作者明显是个外行,就好像从未创业过的老师在课堂上教学生如何去创业。 ...

照你这么说……大数据毫无意义?

6

主题

208

帖子

817

积分

高级会员

Rank: 4

积分
817
发表于 2016-6-12 20:21:02 | 显示全部楼层
卡特铁角 发表于 2016-6-11 22:42
照你这么说……大数据毫无意义?

什么跟什么啊,怎么会毫无意义?大数据是大数据!

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2016-6-12 20:27:08 | 显示全部楼层
yxdj.ty2y.com 发表于 2016-6-12 20:21
什么跟什么啊,怎么会毫无意义?大数据是大数据!

多大算大数据?

几十个服务器,几万个玩家,的行为还不能分析出点什么来么?

如果人可以分析,那么算法也可以。

用分析得出的结果来生成特定种类的游戏环境(资源、地形等)并非毫无意义。

说个最常用的——页游的世界BOSS。其血量上限通常是动态变化的——根据每次玩家击杀它所耗费的时间是一种常见的做法。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-26 20:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表