AI做关畅想:根据有限运动轨迹“联想”地形
本帖最后由 绿色的糖果 于 2022-10-29 21:23 编辑由于 AI 的兴起,最近一年来有一些吧友考虑过“用 AI 制作关卡”,但是不现实,因为大家一致认为 AI 生成的关卡可玩性极低、以及后续 AI 的训练所需的数据库的数据展现形式都是一个问题。今天我也问了一下,大家的思路果然是从关卡外观为切入点。但是,如果换一个切入点呢?比如说从玩家能做出的操作考虑?
我们“玩”的是什么?这里我们不讨论“玩”的内容,而是“玩”的形式——玩家通过一个关卡的过程的方式是按下一系列按键——通过一系列按键使马里奥运动,而这样的组合是有限的、马里奥的运动轨迹是有限的(这里仅讨论初代马里奥,毕竟初代马里奥不会像 SMB3 可以飞、不会像 NSMBDS 可以踢墙跳,所以考虑的相对少一些)。由于马里奥的运动轨迹是有限的,我们可以根据运动轨迹联想其可以通过的对应地形,然后生成地形结合关卡的实际情况优化地形。
本帖最后由 绿色的糖果 于 2022-10-29 21:19 编辑
首先我们已经给出了若干个运动轨迹,比如有大跳(也就是我要拿来举例的这个)、奔跑、摔下去、减速摔下去、摔下去回头、跳跃后回头等等等等,运动轨迹也会根据参数进行微调。随后抽取一个运动轨迹进行地形联想,下面以大跳为例。
刚才我提到了,我们是根据运动轨迹来生成地形的。所以一开始,运动轨迹中马里奥行走和最后即将下落的位置必须先铺好地面(最后即将下落的位置亦可以是敌人),然后根据关卡风格、关卡难度、地形适配的关卡主题等的标签或参数来添加修改地面。可以先如图铺好地面,如果这关是一个经典风格的关卡,而且是一个低难度的关卡,那么就可以考虑像下面的图加入楼梯砖块。 砖块下面是否有地面,也可以根据难度删去。
最后落脚可以是敌人,比如说红飞龟。
当然,极端情况也可以讨论进去,比如空踩锤子龟(不过这个对应的难度也一定是很大的)。 实话说我觉得这是很有趣的想法,可以先在空白关卡处生成一段随机的运动轨迹,然后根据运动轨迹的内在逻辑放置一些必要的砖块/设定为空气,最后再生成其他的地形。
不过从AI的角度上,这种方法可能就得去上相对来说非常复杂的扩散算法了,而简单通过外观造地形(不考虑可通过性)则要求低一些,直接基于网上的文本生成AI加MF地形数据集改也可以做。 其实我之前做那个无尽关卡一开始想用的是一维柏林噪声然后随机生成地面,不过写出了一堆bug_(:з」∠)_ 无视我233 发表于 2022-10-29 21:32
实话说我觉得这是很有趣的想法,可以先在空白关卡处生成一段随机的运动轨迹,然后根据运动轨迹的内在逻辑放 ...
但就目前来说考虑有通过性甚至有可玩性的算法才有意义啊,而且问题是训练 AI 使其生成更为符合常理的地形也是很费工夫的。我的意思是无论是一上来就考虑“扩散算法”还是先生成再反复训练都是很费力的,也许在都很费力的情况下可以先试试前者?因为前者至少关卡可玩性高一些,而且本来关卡的可玩性不就相当重要吗( 开这个贴子我只是想强调两个点:
第一是切入点(比如运动轨迹的组合是有限的);
第二是强调可玩性是很重要的。
正是因为可玩性很重要所以我想到了玩家的操作,于是想到了运动轨迹((( 绿色的糖果 发表于 2022-10-29 21:42
但就目前来说考虑有通过性甚至有可玩性的算法才有意义啊,而且问题是训练 AI 使其生成更为符合常理的地形 ...
我自己其实不太赞成AI做关不调直接用的,那样没啥灵魂(((
咳咳,正经说的话,其实真想AI完全做出可以玩的关我觉得比较难,不太能实现,我感觉AI其实更适合做一个底稿之后再去手动调,这时候可通过性本身也是调整的一环了(
当然这个帖子思路还是这句话,可以考虑,甚至也许不上AI用一些传统的算法就能够解决?
还有就是应用这一块,也许可以用于 SMB35 式联机对战的关卡生成(比如说一开始的时候服务器就生成好这些关卡给玩家)。
页:
[1]