知乎@罗培羽
普通人想要开发游戏,不仅需要高超的技术、良好的艺术细胞,还需要很闲很有时间,门槛不低乎网友windleavez曾构想了一款“M.G.A.G.全自动手游生成器”(
https://zhuanlan.zhihu.com/p/20169448),只要输入游戏题材、游戏类型等信息,软件就能够自动生成一款全新的手机游戏。虽然windleavez一本正经的胡说八道,但技术探索之路永无止境,随着深度学习的发展,自动绘图、自动编剧、自动作曲已经成为可能,未来或可用这些技术自动生成游戏。
图:M.G.A.G.全自动手游生成器
就拿最简单的橙光文字游戏来说,只要完成绘图、剧本、音乐三种核心要素,游戏便完成的七七八八了,剩下的只是整合问题。那么就来看看这三方面的应用目前的进展。
自动绘图
自动绘图是深度学习的热门研究领域,以VAE和GAN为代表的算法能够生成足够真实的图像。GAN即是“生成对抗网络”,在它被发明之际,媒体惊呼“AI可能要代替插画师了”,可见它的魅力。
其中一个有可能被用于游戏开发的GAN应用便是由Yanghua Jin、Jiakai Zhang等人研发的妹子生成器,下面的头像便是由该生成器自动生成的,很符合文字游戏的立绘需求。
体验地址:
http://make.girls.moe
论文地址:
https://makegirlsmoe.github.io/assets/pdf/technical_report.pdf
图:妹子生成器生成的头像
打开make.girls.moe的网站,会出现如下图的页面,点击“Generate”再经过很长很长时间的等待以及多次失败重新刷新后(外国网站不稳定,且需要下载70多M的资源),便能够生成妹子头像。
图:妹子生成器的网站页面
除了Yanghua Jin的研究,jayleicn、Hiroshiba等人的研究也取得良好的成果。
jayleicn动漫头像生成:
https://github.com/jayleicn/animeGAN
Hiroshiba女友工厂:
https://qiita.com/Hiroshiba/items/d5749d8896613e6f0b48
GAN的原理并不难,如下图,让生成器和鉴定器相互对抗,不断提升生成器和鉴定器的水平,最终生成器可以产生足够“真实”的图像,以欺瞒鉴定器。笔者后面还会有一篇详细介绍GAN的文章,敬请期待。上述应用以大量二次元风格的妹子头像为训练数据,可以生成该风格妹子头像,改变训练素材,便能够生成各种风格的游戏立绘。
图:GAN的原理
使用同样的技术还能够自动生成背景图、图标等游戏素材,甚至生成3D模型,自动创建动作、动画、特效。以后开发游戏,电脑能够自动生成高品质的素材,不需要大量美术投入,大大降低开发成本。
自动编剧
自动写中文小说的尝试可以追溯到2007年,紫峰闲人在起点中文网发布了玄幻小说《宇宙巨校闪级生》,这部小说由作者编写的vb程序自动完成,共有1.7亿字。由于晦涩难懂且字数太多,最终成为苦行僧的修炼宝典。那时候的自动写作多是先写几段模板,然后替换关键字,并不是真正意义上的机器学习。近年来,随着RNN、LSTM等深度学习模型的出现,为上下文相关的场景提供了技术依据,也使得文本生成、自动聊天(还记得微软小冰吗)成为了可能。
Articoolo是一个可能用于游戏编剧的文本生成应用,只要输入几个关键词,它就会自动生成一段文本。不过这个网站有点坑,动不动就弹出收费框,专坑我们这些好奇心强的人。
体验地址:
http://articoolo.com/
图:Articoolo网站界面
下图是Articoolo官网的演示,以“Lose Weight Fast”为关键词生成的文本片段,看上去有模有样。
笔者尝试以“Seaside Holiday in Turkey”为关键词(请不要介意这么随便还带语法错误的关键词,因为尝试5次后它居然就要笔者交钱)生成文本,由于没给钱只能看生成的部分句子,效果如下所示,虽然不知道在说什么,但看上去挺厉害的。
There are several pretty beaches out including Bitez and Trbk, on the peninsula, and windsurfing opportunities. Bodrum, the Mandarin Oriental, is set on the peninsula's lusher coast.
中国的小伙伴也做了诸多尝试,几个月前(201706)imdarkie做了一个中文小说生成器,他使用起点中文网的历史小说《寒门首辅》约130万个字符的数据来训练LSTM模型,生成了下面的文本。
项目地址:
https://github.com/imdarkie/Chinese-novel-generation
技术说明:
http://blog.csdn.net/heisejiuhuche/article/details/73010638
如果百年世家不想出现的这些士子,一个孩子多那么夸,竟是得好不起的。谢慎不由得感慨道:“怎么,有几日潞安百姓谢某不过府面子的外转,实话足够啊。?”我又说说没有顾大才吧;我这次便是舍头大明皇帝去打啊, 我现在还没出息,你们要不去。陈虎儿见谢慎面色古怪了,可也不知道该怎么做点出真手错了。就是说,这个谭芳还不得不起自己,也没有多想着谢慎这般拘束他们的表演。不曾想这世上也太不避嫌了。谢方和大人平日闲来得到唐寅身来到西湖身上闯乘,王守仁自然也就没有考虑。回来再四不徐徐芊芊,喝水直是君业,想想他也是可以将直接的成本。不过有些事谢慎不能再找个面子,看看明军心中的架势。这些百姓不是个外人。真想知行来是不会有人拿出来好的,若不是她不选识及防之力就可以让水芸姑娘相互邀请一家。那些倒也没有在他扬名上啊,而这是读书人对太子的才子加足了的。他不需要太多的道理,只不过他还想不到京师生员上面临时起云,怎么可能拒绝低调,真得一起吃酒啊。
该应用能够生成“我现在还没出息”“王守仁自然也就没有考虑”“他不需要太多的道理”等通顺的短句,不过没有形成语义的连贯。
文本生成技术的核心原理是根据根据已经生成的字词去推导后面的字词。通过大量学习资料,可以得到各个词汇的概率分布,再根据这些概率重新组织文本。比如在小说中,如果前一个词是“吃”,那后面的词汇有很大概率是“牛肉”、“豆腐”这些食物,而不太可能是“风扇”、“电视机”等无关的事物。
图:文本生成网络示意图,图片来自台湾大学李宏毅深度学习课程讲稿
上述应用只是基于词汇的RNN应用,它们可能生成较为通顺的句子,却很难生成具有因果逻辑的故事情节。但相关技术已经成熟,使用事件作为RNN训练数据,生成具有逻辑关系的故事结构,再使用基于词汇的RNN应用将故事情节表达出来。举个例子,在某些武侠游戏中,“男主角表白”和“女主角死亡”有着很大的关联性,前面生成了男主角表白事件“带你看遍天下美景吃遍天下美食”,后续就要紧跟着“天灵破碎回天乏术”的剧情。
自动作曲
自动作曲属于上下文相关的应用,每一个音符都由前面多个音符来决定。有代表性的应用是多伦多大学研究者提出的一种自动作曲的方法《Song from PI: A musically plausible network for pop music generation》。研究者们选取100小时的midi音乐素材作为训练数据,结合RNN、LSTM模型,生成一些还算动听的音乐。
体验地址:
http://www.cs.toronto.edu/songfrompi/
论文地址:
https://arxiv.org/pdf/1611.03477v1.pdf
自动生成游戏的技术慢慢被被逐个击破,假以时日,开发者只需设想游戏形式和规则,剩下的机器会帮你搞定。到时候,游戏公司将不再分为策划、程序和美术,人人都是造梦者。