天津匯眾教育
動(dòng)漫游戲培訓(xùn)-UI設(shè)計(jì)-影視培訓(xùn)-VR培訓(xùn)
可能有人會(huì)問(wèn),AI在游戲中不是很早就應(yīng)用了嗎?
是的,其實(shí)有電子游戲就有AI。
在遠(yuǎn)古的年代的游戲Pong,你的對(duì)手就是AI;
紅白機(jī)年代的中國(guó)象棋游戲,你的對(duì)手就是AI;
瑪麗那只怪物也是AI。
這里的AI指的是游戲中對(duì)手使用的智能,所以AI很早就應(yīng)用在游戲中了。
但在本篇中討論的,是近幾年來(lái)逐漸發(fā)展起來(lái)的,基于深度學(xué)習(xí)(也有基于運(yùn)籌學(xué)和博弈論等學(xué)科)的AI技術(shù)。
應(yīng)該說(shuō),本文討論的AI會(huì)范圍會(huì)更大一點(diǎn),并不止步于怪物、NPC的智能。
我希望通過(guò)這篇文章,看一下現(xiàn)在AI到底能為游戲行業(yè)帶來(lái)什么。
我會(huì)列出一些當(dāng)前的技術(shù)引用,也會(huì)有一部分我自己的想法。
較后恐嚇一下我的同事們,你們會(huì)被AI替代嗎?
AI為啥這么火?
AI近幾年有多火,我就不作論述了。但為什么AI這么火呢?不同的人可能有不一樣的看法,這里只講一下我自己的看法。
現(xiàn)在我們說(shuō)的AI技術(shù),大部分跟深度神經(jīng)網(wǎng)絡(luò)有關(guān)。我認(rèn)為AI之所以火了,就是因?yàn)樯疃壬窠?jīng)網(wǎng)絡(luò)的加持。
深度神經(jīng)網(wǎng)絡(luò)獨(dú)有的解決問(wèn)題的方式,使得人類解決問(wèn)題的能力了一個(gè)新檔次。
所以,我希望用比較簡(jiǎn)單的語(yǔ)言來(lái)描述一下,深度神經(jīng)網(wǎng)絡(luò)是什么,好讓大家了解,為什么AI技術(shù)會(huì)突然獲得高速的發(fā)展。
其實(shí)要明白深度神經(jīng)網(wǎng)絡(luò)并不難,大家可以把神經(jīng)網(wǎng)絡(luò)看作是一個(gè)函數(shù)。函數(shù)的一個(gè)重要功能,就是把兩個(gè)東西對(duì)應(yīng)起來(lái)。
在以前,我們要電腦識(shí)別一個(gè)手寫(xiě)數(shù)字“8”,那么程序員就需要寫(xiě)一個(gè)函數(shù)。
函數(shù)里面需要寫(xiě)一堆規(guī)則,例如:
有兩個(gè)圈
圓?有多圓?
上面那個(gè)大下面小
有多大?有多小?半徑是多少?
有時(shí)候上面那個(gè)圈可以不完全閉合也算...
天,那算什么圓?
我們?nèi)绻プR(shí)別一個(gè)手寫(xiě)數(shù)字的8,需要寫(xiě)很多很多規(guī)則,有時(shí)候幾乎寫(xiě)不完。
也就是說(shuō),在我們現(xiàn)實(shí)里,有些人類明明能模糊地了解,但說(shuō)不上具體規(guī)則,不可描述東西。
不可描述就意味著,這個(gè)函數(shù)沒(méi)法寫(xiě),也意味著無(wú)法通過(guò)編程實(shí)現(xiàn)。
深度神經(jīng)網(wǎng)絡(luò)改變這一點(diǎn)。
神經(jīng)網(wǎng)絡(luò)會(huì)先隨機(jī)初始化網(wǎng)絡(luò)的權(quán)重,就是先隨便弄一個(gè)魔法函數(shù)Magic'(x)。
一開(kāi)始,Magic'(x)和我們要的Magic(x)并不相同。所以輸出不一定是對(duì)的,也就是說(shuō)Magic'(x)=y',y'不等于我們要的y。
也就是說(shuō),把8放到這個(gè)Magic'(x)里,網(wǎng)絡(luò)可能識(shí)別的出8的概率可能只有40,而并不是。
這和我們想要網(wǎng)絡(luò)識(shí)別出8有很大的差距呀,因?yàn)槲覀兿雈能識(shí)別出這些是8的概率是。
我們稱:y'和y之間的差距叫l(wèi)oss。
但這沒(méi)關(guān)系,通過(guò)反向傳播,調(diào)整f(x)的參數(shù)權(quán)重,讓loss較小化,也就是讓y'和y之間的差距減少。
這個(gè)過(guò)程我們稱為學(xué)習(xí)或者訓(xùn)練。
當(dāng)loss足夠小的時(shí)候,y'和y的差異就不大了。也就是說(shuō),f(x)的功能和我們要的F(x)相當(dāng)!
如果以上的話沒(méi)明白,那不要緊。你只要明白兩點(diǎn):
深度神經(jīng)網(wǎng)絡(luò)本質(zhì)上說(shuō)是個(gè)函數(shù)。
有了深度神經(jīng)網(wǎng)絡(luò),我們可以把以前不能描述規(guī)則的函數(shù)造出來(lái)。
這就是人類科技樹(shù)拓寬的一大原因。
游戲性
回到游戲中,我們以前為游戲角色做AI,會(huì)用腳本,行為樹(shù),狀態(tài)機(jī)等方式。
這些本質(zhì)上就是在描述怪物的行為,例如看到某個(gè)角色,就做什么動(dòng)作;到了某個(gè)時(shí)間,釋放某個(gè)技能。
但這些行為可以足夠豐富而完整地描述嗎?
越復(fù)雜的行為,我們就需要復(fù)雜的行為樹(shù);越多的狀態(tài),我們就需要越多的狀態(tài)機(jī)。
但當(dāng)復(fù)雜度到了一定程度,人類可能很難理解了自己創(chuàng)造的行為樹(shù)了。
但神經(jīng)網(wǎng)絡(luò)可以,他們制作出的AI不但戰(zhàn)勝了游戲,還戰(zhàn)勝了人類。
目前,AI在這方面較重要的技術(shù)叫學(xué)習(xí)
較有名的可以算是以下幾個(gè):
征服Atari游戲——Deep Mind
較前沿:當(dāng)我們以為Rainbow就是Atari游戲的時(shí),Ape-X出來(lái)把Rainbow秒成了渣!
https://zhuanlan.zhihu.com/p/36375292
征服圍棋——Alpha GO
AlphaGo
https://www.zhihu.com/topic/20038840/hot
征服德州撲克——Pluribus
機(jī)器之心:AI攻陷多人德?lián)湓俚荢cience,訓(xùn)練成本150美元,每小時(shí)1000刀
https://zhuanlan.zhihu.com/p/73268685
(Pluribus沒(méi)有用上深度神經(jīng)網(wǎng)絡(luò),用的更多是博弈論CRF為基礎(chǔ)的剪枝)
征服麻將——微軟Suphx
真雀神,微軟亞研推出麻將AI,還上了專業(yè)十段
https://tech.sina.com.cn/csj/2019-08-29/doc-ihytcitn2805087.shtml
征服星際爭(zhēng)霸——Alpha Star
陳雄輝:淺談AlphaStar
https://zhuanlan.zhihu.com/p/97720096
征服榮耀——絕悟
騰訊:騰訊AI「絕悟」打,把職業(yè)選手干掉了
https://zhuanlan.zhihu.com/p/76482309
現(xiàn)在的AI已經(jīng)能把人類花式吊打了!甚至到了有人已經(jīng)發(fā)表AI威脅論的程度了!
但請(qǐng)容我先潑潑冷水,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練可不是套套公式就能實(shí)現(xiàn)的。神經(jīng)網(wǎng)絡(luò)訓(xùn)練的要求都非常高。
首先,AI訓(xùn)練消耗大量資源,包括時(shí)間和算力。
跟李世石對(duì)戰(zhàn)的版本稱為AlphaGo Lee,是一個(gè)分布式系統(tǒng),運(yùn)行在Google云上,使用了48個(gè)TPU,總耗能約。
而圍棋雖然看上去比較復(fù)雜,但和其他游戲來(lái)說(shuō)還算是簡(jiǎn)單的了。畢竟圍棋是個(gè)回合制游戲。如果像星際這樣的復(fù)雜游戲,則需要更多。
另外,AI在開(kāi)發(fā)過(guò)程中有不確定性。
我認(rèn)為算力和時(shí)間并不是一個(gè)主要因素,至少在游戲制作下不是。
畢竟當(dāng)前的算力下,很多算法已經(jīng)能擊敗人類。而且算力必然會(huì)不斷。
但深度學(xué)習(xí)還有一個(gè)不能忽略的因素:深度學(xué)習(xí)算法帶有不確定性。
AI的學(xué)習(xí)能力除了與算法有關(guān),也與環(huán)境有關(guān),也和參數(shù)有關(guān),不同參數(shù)之間可能是天差地別。
調(diào)整參數(shù),然后等待AI的訓(xùn)練,根據(jù)結(jié)果再調(diào)整參數(shù)??赡芙?jīng)過(guò)漫長(zhǎng)的等待才能獲得大成。
所以很多搞深度學(xué)習(xí)的人會(huì)把自己比喻成煉丹師。
但這種不確定性正在逐步減少,因?yàn)樗惴ㄊ遣粩喔赂倪M(jìn)的。從DQN到SAC,就是一個(gè)不斷解決實(shí)際問(wèn)題,讓算法更強(qiáng),更快,更穩(wěn)定的過(guò)程。
以上,我們對(duì)學(xué)習(xí)(Reinforcement Learning)進(jìn)行了一些介紹。那么學(xué)習(xí)能夠帶給游戲什么呢?
我認(rèn)為學(xué)習(xí)在游戲中應(yīng)用應(yīng)該有一個(gè)前提:這項(xiàng)技術(shù)并不是為了擊敗玩家,而是為了增強(qiáng)玩家在游戲中的體驗(yàn)。
經(jīng)過(guò)學(xué)習(xí)的AI作為玩家的對(duì)手或者敵人,上限是很高的。
我們可以通過(guò)弱化,把AI調(diào)整成適合當(dāng)前玩家技術(shù)水平的難度。
有趣的事情就發(fā)生了。
以前我們?yōu)榱苏{(diào)整難度,通常會(huì)從數(shù)值入手。
但如果用學(xué)習(xí)的方法,我們還能開(kāi)辟另外一個(gè)維度的難度,讓游戲更豐富。
提醒:AI不可預(yù)知性會(huì)更強(qiáng)。
不像已經(jīng)設(shè)定好的行為樹(shù),AI的不可預(yù)測(cè)性將會(huì)增強(qiáng)。這讓AI更像“人”,當(dāng)然是件好事。但設(shè)計(jì)師對(duì)AI的掌控也會(huì)降低,意味著對(duì)玩家體驗(yàn)的控制的性也會(huì)相應(yīng)降低。
但數(shù)值會(huì)消失嗎?我想并不會(huì)的。
因?yàn)閿?shù)值是很直觀,大部分玩家都需要數(shù)值,數(shù)值在很多游戲中決定了難度。
我不會(huì)告訴你:游戲公司需要賺錢,數(shù)值是核心。
學(xué)習(xí)并不會(huì)完全替代數(shù)值和技能設(shè)計(jì),但會(huì)給設(shè)計(jì)師多一項(xiàng)控制難度的工具。
在學(xué)習(xí)方面國(guó)外的deepmind和openAI等公司處于地位,但更多是從事基礎(chǔ)算法研究。
國(guó)內(nèi)有一家專注于AI+游戲的公司——超參數(shù)。超參數(shù)的CEO劉總正是騰訊AI Lab總經(jīng)理、圍棋AI“絕藝”、榮耀AI“絕悟”的團(tuán)隊(duì)負(fù)責(zé)人。
(曾經(jīng)有幸拜訪劉總,劉總是個(gè)非常有遠(yuǎn)見(jiàn)并且很nice的人。在AI+游戲這方面啟發(fā)了我許多,產(chǎn)生寫(xiě)這篇文章的想法,感謝。)
如何評(píng)價(jià)手機(jī)游戲《輪到你了揭秘篇》?
https://www.zhihu.com/question/380151590/answer/1084924352
關(guān)卡生成和輔助設(shè)計(jì)
由于深度神經(jīng)網(wǎng)絡(luò)足夠強(qiáng),而且行為更接近人類。我們可以用這樣的AI輔助我們生成一些關(guān)卡。
例如三消游戲、Roguelike類游戲。
我們可以通過(guò)一定的規(guī)則生成關(guān)卡,然后用AI進(jìn)行。
我們生成的關(guān)卡是否能通過(guò)?是多少?或者說(shuō)容錯(cuò)率是多少?
新的英雄、卡牌的足夠強(qiáng)還是太逆天呢?新英雄的行為是否足夠豐富,還是一招打天下?
國(guó)內(nèi)已經(jīng)有公司已經(jīng)這樣做了。聞?wù)f這家公司已經(jīng)被字節(jié)收購(gòu)了。
預(yù)計(jì)未來(lái)將會(huì)在一些小游戲中應(yīng)用到學(xué)習(xí)AI,因?yàn)樾∮螒驙顟B(tài)相對(duì)簡(jiǎn)單,要求算力較低;同時(shí)算法也比較成熟。我自己也試過(guò)用AlphaZero的算法實(shí)現(xiàn)一些小游戲的AI。
事實(shí)上,AI如果足夠豐富,小游戲的體驗(yàn)層次也會(huì)得到,一些原來(lái)并不適合做成游戲的桌游,也能成為線上的游戲了。
卡牌類、回合類游戲也將會(huì)很快用上學(xué)習(xí)進(jìn)行輔助設(shè)計(jì)。
故事性
游戲的故事性包括美術(shù)、文案、配樂(lè)等部分。我將嘗試從游戲制作流程,當(dāng)前有什么AI技術(shù)能幫助到各個(gè)崗位的同學(xué)。
我們先來(lái)說(shuō)說(shuō)美術(shù)。
1.美術(shù)
原畫(huà)階段
永遠(yuǎn)的PS,Adobe在這方面走得很遠(yuǎn)。
【官宣】Adobe 2019史詩(shī)級(jí)加強(qiáng),官宣的視頻看著就是舒服!
https://www.bilibili.com/video/BV1ot411d7iH?p=2
我認(rèn)為AI在這方面能幫助美術(shù)同事減輕很多不必要的工作壓力。例如把人物從背景摳出來(lái)這些煩而不難的工作,在AI的加持下將會(huì)變得更簡(jiǎn)單,操作將會(huì)變得越來(lái)越智能。
對(duì)了,二次元的老婆,可以直接批量生產(chǎn)。
機(jī)器之心:想用StyleGAN生成老婆?來(lái)看看這個(gè)小哥的復(fù)現(xiàn)細(xì)節(jié)吧
https://zhuanlan.zhihu.com/p/102085621
這里用到的是對(duì)抗神經(jīng)網(wǎng)絡(luò)GAN。這項(xiàng)技術(shù)甚至可以讓你的老婆生成不同的表情。
建模
2D轉(zhuǎn)3D的GAN,通過(guò)照片,原畫(huà)直接生成3D模型,可能在不遠(yuǎn)將來(lái)就能實(shí)現(xiàn)。這不是神筆馬良?
但這項(xiàng)技術(shù)目前還不夠成熟,距離實(shí)際生產(chǎn)應(yīng)該還有一段距離吧。
AI科技大本營(yíng):AI做不了“真”3D圖像?試試Google的新生成模型
https://zhuanlan.zhihu.com/p/51665714
動(dòng)作
現(xiàn)在角色動(dòng)作很多時(shí)候,還必須由動(dòng)作設(shè)計(jì)師逐個(gè)骨骼調(diào)整。而動(dòng)作捕捉技術(shù)雖然成熟,但價(jià)錢挺貴的。
那能不能加起兩三臺(tái)手機(jī)就能做出輕量級(jí)的動(dòng)捕系統(tǒng)呢?
答案是目前還沒(méi)有。但我估計(jì)未來(lái)不久就可以做出來(lái)。
人臉識(shí)別或者目標(biāo)檢測(cè)算法,可以跟蹤屏幕上的物件。將其映射到3D骨骼上應(yīng)該也不是難事。
在擴(kuò)散一下思維,要找到適合的視頻,就能把動(dòng)作套到模型上。
現(xiàn)在表情已經(jīng)可以捕捉了。
其實(shí)表情演出,已經(jīng)能大大豐富游戲的戲劇性。
蒙皮貼圖
通過(guò)GAN和風(fēng)格轉(zhuǎn)換技術(shù),做到輸入一張圖,按照該圖的風(fēng)格配色,應(yīng)該很成熟的功能了。
一波:淺談風(fēng)格遷移(二)任意風(fēng)格遷移
https://zhuanlan.zhihu.com/p/129826350
ICON
輸入icon的文字,加上游戲風(fēng)格。
通過(guò)nlp+知識(shí)圖譜+GAN的結(jié)合或許已經(jīng)能實(shí)現(xiàn)了。
如果用在游戲制作,可能會(huì)較為粗糙。但如果是讓玩家自己生成家徽,戰(zhàn)旗等圖標(biāo),或者是個(gè)好主意。
2.文案
利用GTP2.0技術(shù),可以進(jìn)行一小段文字的擴(kuò)寫(xiě)。
微信選課
享更多優(yōu)質(zhì)好課!