规则很简单,就是根据上一代的小车形状,随机微调参数,如结构,轮子数量,驱动轮相对位置,车身的重心等等。小车如果出场就挂,基因就绝户了;小车跑得越远,就会有更多的基因传到新一代。下图是我跑了10分钟的结果。
可以看到,一开始的小车连几个轮子最合适都不懂,企图用独轮车(还有四五个轮子的尝试,没截图)来挑战坡地。它也不知道什么是车体平衡,什么是坚固性,什么是抬高底盘压低重心,完全是一副婴儿玩积木的随意态度。
但仅仅进化了三四分钟,小车的基因就发现了一种接近于卡车的形态,在此基础上不断微调。因为“卡车”不需要装货厢,所以车头越来越小,重心不断压低,底盘上的凸出也逐渐消失,最后变成一种接近于赛车的形态。但和平地赛车相比,因为要避免爬坡时翻倒,所以重心依然偏在车体前方,是一辆优化设计相当棒的越野跑车。
再玩一次:
这次很快就出现了可用车辆,但两套基因(拖拉机和摩托车风格)轮番主导,在20分钟左右才达成稳定交替。两套基因的共同特点是重心后倾,在前部伸入一个轻巧结实的斜撑,避免下坡时前滚翻,都是很优秀的设计。
但是,你问我懂不懂车体工程,问这个游戏的程序员懂不懂机械,问程序本身懂不懂设计?
答案毫无疑问,都是一窍不通。
那为什么会出现各方面配合都很赞的小车设计图?为什么最后设计图越来越像现实中常见的机动车型?
因为我在半小时的游戏中,淘汰了数百种失败的小车啊。最后这几张优秀的设计图,对于摔碎、卡死的几百辆小车毫无意义。如果是“精心”设计,怎么会有“一将功成万骨枯”的效果?
总之,“设计”必然意味着预判和高成功率,至少要比无脑试错强出一个数量级,才能算得上花了心思。要是有近乎无限的时间随机尝试,可以冷血淘汰那些失败的支系,就算成果再牛,也不过证明这个“上帝”有耐心而已。
上帝不是建筑师,并不比人类更善于修体育场,但他有无数座山可以拿来试错
本文作者:健康华印(一个专业精炼且趣味繁多的团队)
| 留言与评论(共有 0 条评论) |