談談人工智慧、計算創意學和混搭式自動遊戲生成

作為一個玩家,相信你一定曾很多次腦補過: 「如果一個遊戲A跟另一個遊戲B組合在一起會變成什麼樣的遊戲」這樣的問題。比如,如果《超級馬力》是個像《火焰之紋章》那樣的策略戰棋遊戲會怎麼樣;如果《最終幻想》能像《文明》系列那樣有資源調配和調兵遣將會怎麼樣;如果《寶可夢》是個Galgame會怎麼樣……

專業的遊戲設計師們也一定常常進行這樣的思考,因此才會出現像卡普空/任天堂角色大亂斗、《寶可夢》X《信長之野望》、《火紋無雙》、《勇者斗惡龍 創世小玩家》這些夢幻聯動。

談談人工智慧、計算創意學和混搭式自動遊戲生成

這些專業遊戲設計師擁有專業的遊戲設計技能、專業的遊戲開發團隊和資金,所以一旦有了這些想法,是真的可能去實現的。而普通玩家的我們,通常就只能在腦補中過過癮了。

關注AI的小夥伴們可能知道,最近OpenAI推出了基於神經網絡語義模型GPT-3的Codex,能夠瞬間將用戶輸入的文字描述轉換成遊戲。

談談人工智慧、計算創意學和混搭式自動遊戲生成

這項技術讓沒有專業遊戲開發技術的普通玩家也看到了將腦補變成現實的希望。如果連將文字描述變成遊戲程序這麼魔幻的事情都能辦到了,那麼是不是也有可能開發一種AI,只要給它兩個現成的遊戲,它就能馬上生成一個真正的遊戲來告訴我將這兩個遊戲組合在一起會變成什麼樣的遊戲呢?

雖然還遠遠沒有成熟到能夠實用的地步,但是確實有不少人在研究開發這樣的AI。今天就想來給大家分享這方面的一些進展。

首先需要說明,遊戲混搭這個研究方向,跟叫做計算創意學(Computational Creativity)的研究領域有相當緊密的關系,尤其是其中的組合性創造力(Combinatorial Creativity)這個分支領域。接下來要分享的自動遊戲混搭的方法,都可以看做是組合性創造力的算法實現。

這里請允許我安利一波自己的另一個系列文章 計算創意學。這個系列的文章對計算創意學這個領域作了一個系統性的、通俗易懂(?)的介紹,非常歡迎感興趣的小夥伴們閱讀和討論。在接下去關於遊戲混搭的介紹中,如果大家看到有意思的概念想要深入了解的話,我也會附上相關章節的連結作為擴展閱讀。

概念整合理論和遊戲混搭

學者瑪格麗特·博登(Margaret Ann Boden)在她的著作《創造力心智(The Creative Mind: Myths and mechanisms)》中將創造力(Creativity)分為了多種類別,其中一種叫做組合性創造力(Combinatorial Creativity),其中創作者通過在多個看起來無關的知識領域之間建立聯系,發現了融合這些知識領域的新概念,繼而得到有價值的新點子。

比如,由自然界的鳥類得到啟發而發明了飛機、從生物學意義上的「病毒」概念得到啟發而發明了計算機「病毒」,將傳統棋類遊戲和角色扮演電子遊戲結合而發明出策略戰棋類電子遊戲,都是組合性創造力的例子。

關於組合性創造力,近幾十年在認知科學和語言學的領域,有一種非常流行的理論叫作概念整合(Conceptual Blending)理論(擴展閱讀)。它以嚴謹的科學語言形式化(Formalize)了組合性創造力,將新點子的產生描述為思考主體將多個原本無關的概念網絡中的概念映射到整合概念網絡中的新概念的過程。

概念整合理論將來自兩個領域的可類比的概念(比如「程序」和「病毒」)表示成兩個輸入概念網絡(「輸入空間」)。這些可類比的概念分別處於各自的概念網絡,聯結著各自領域的其他相關的概念。組合性創造力主體會創建一個新的整合概念網絡,其中混合了來自兩個輸入概念網絡的概念(「輸出空間」)。

談談人工智慧、計算創意學和混搭式自動遊戲生成

由於這套理論提出了關於組合性創造力的一個實實在在的過程模型,它推動了大量用電腦程式來實現自動組合性創造力的嘗試(擴展閱讀)。

因此一個自然的想法就是,如果我們將一個遊戲也表示成這樣的概念網絡,是不是就能通過概念整合理論來實現遊戲的混搭?這個概念網絡應該涵蓋關於這個遊戲機制的一切,從而通過混合兩個遊戲概念網絡,我們就能得到一個全新的遊戲機制。

由喬治亞理工大學的學者Guzdiel和Riedl在2016年發表的論文《機器學習混合遊戲關卡(Learning to Blend Computer Game Levels)》[1],就實現並探索了這個點子。

在這篇論文中,作者們針對2D平台跳躍遊戲(比如《超級馬力歐》和《星之卡比》)設計了一種表示遊戲關卡結構的層次化的概念網絡。這個概念網絡中的概念(節點)包括:

  • 每一個有獨立行為邏輯的基本遊戲對象(比如馬力歐、栗寶寶、庫巴、一根水管),
  • 每一個基本遊戲對象的所有可能的形態(不同尺寸、不同樣式、不同形狀的版本),
  • 每一個基本遊戲對象可能出現在一個關卡中的數量,
  • 在一個關卡中重復出現的關卡片段。
  • 談談人工智慧、計算創意學和混搭式自動遊戲生成

    通過在上述這些概念之間建立聯接,我們能夠用這個概念網絡來表達關卡結構的一些內在規律。比如,

  • 庫巴有三種形態,可以表示為庫巴概念和分別表示庫巴的三種形態的概念之間的聯結;
  • 水管有高的水管和矮的水管,可以表示為「水管」概念分別與「高的水管」概念和「矮的水管」概念之間的聯結;
  • 栗寶寶只會出現在普通的地面上(而不會出現在水管上面或者懸空),可以表示為栗寶寶節點和普通地面節點之間的聯結;
  • 火山關卡中有很多熔岩地形,可以表示為火山關卡片段和熔岩地形板塊概念之間的連結。
  • 這些聯結表示遊戲元素之間的關系,一方面有具體關系類型的標注,同時還可以有量化的標注。在這篇論文中,作者們就為每個聯結引入了一個機率量值。從而,我們不僅可以表達「火山關卡中有很多熔岩地形」, 還可以具體到「火山關卡中出現熔岩地形的機率是多少」。

    有了這樣的機率標注之後,這樣構建起的概念網絡同時也是一種機率圖形模型(Probabilistic Grapical Model)。通過根據這個機率圖形模型進行采樣,我們能夠生成符合某個遊戲內在邏輯的全新的關卡。

    談談人工智慧、計算創意學和混搭式自動遊戲生成

    對於一個有著大量的關卡、成百上千的遊戲對象、復雜的遊戲機制的遊戲來說,可以想像這個概念網絡會是非常非常龐大的,以至於手工去構造這樣的概念網絡成為幾乎不可能的事情。

    為了解決這個問題,作者們在這篇論文中提出了用統計機器學習的方法自動構建這個概念網絡。用戶只需要提供一個關卡遊玩過程的視頻,機器學習算法就能夠通過聚類分析(Clustering)的方法將視覺相似度達到一定程度的像素圖單元(Sprite)自動識別為一個遊戲對象,從而建立其對應的概念網絡節點。

    類似的聚類分析方法也能用於構建那些在關卡中被重復使用的關卡片段所對應的概念網絡節點。有了這個節點之後,就能進一步通過統計節點兩兩之間共同出現的頻次來得到它們之間聯結的機率標注。

    需要注意的是,這里的這種建立概念網絡的統計機器學習方法並不是深度學習(Deep Learning),並不需要使用參數數量龐大的深度神經網絡,因此也不需要非常龐大的訓練數據集。

    有了這樣的方法之後,我們就能讓算法讀取一個遊戲關卡1的遊玩視頻,自動構建概念網絡1,再讓讓算法讀取另一個遊戲關卡2的遊玩視頻,自動構建概念網絡2,最後使用概念整合的方法來整合兩個概念網絡得到整合概念網絡。

    如前所述,整合概念網絡同時也是一個機率圖形模型,按照它來進行采樣,就生成了一個混合了關卡1和關卡2的整合關卡。

    談談人工智慧、計算創意學和混搭式自動遊戲生成

    我們注意到這種方法的一個局限:它所提出的概念網絡只能描述一個靜態的遊戲關卡結構,還沒有真正觸及到遊戲機制——也就是玩家遊戲世界的交互規則。

    在Guzdial和Riedl在2018年所發表的另一篇論文《Automated Game Design via Conceptual Expansion(通過概念擴展的自動化遊戲設計)》[2],他們在概念網絡中增加了描述交互規則的元素。比如,馬里奧碰到蘑菇會變大,也能夠通過附有特殊標注(邏輯規則)的概念聯結得到表達。在概念網絡的整合上,這篇論文也使用看起來效果更好的「概念擴展(Conceptual Expansion)」,而不是照搬概念整合理論。

    正如我們在概念整合理論的相關章節中提到過的,給定兩個概念網絡,可能的整合概念網絡的數量非常龐大,是輸入概念網絡的節點數量的指數級別。因此在Guzdial和Riedl的兩篇論文中,還需要再引入一個關於什麼樣的整合遊戲才算是好的標准,用這個標准作為生成整合遊戲概念網絡時的優化目標,優先選擇更符合這個標準的那些整合遊戲概念網絡。

    這個優化目標可以是任何能夠用可計算的方式來評估的量值,比如說:

  • 整合概念網絡本身的的內聚性(Coherence):比如,一個將火山映射到雪山並將熔岩映射到冰川的整合遊戲概念網絡,比起一個將火山映射到庫巴並將熔岩映射到水管的整合遊戲概念網絡,情理上更說得通一些。
  • 整合遊戲的可玩性(Playability):如果地圖上的一個可通過的地塊被映射到了一個不可通過的地塊,導致生成的關卡甚至都不可能玩到最後,那這樣的整合遊戲概念網絡顯然也是不可取的。
  • 整合關卡的趣味程度、挑戰性和美觀程度:通過藉助深度神經網絡,優化目標甚至可以是這樣一些具有主觀性的量度。如果能夠事先在大量已有的遊戲關卡和人們對這些關卡的趣味程度/挑戰性/美觀程度的量化評價所構成的數據集上訓練出預測人們對未知關卡的這些方面的評價的神經網絡,這個神經網絡就能作為一個自動化代理(Surrogate Model)來給出人們對新關卡的評價的(的一個估計值),從而成為一個可計算的優化目標。
  • 整合關卡的新穎性:在計算創意學的第四章中,我們介紹了一種基於機率期望的「新穎性」概念的可計算的定義。因此理論上說,我們也能夠通過這種方法計算出生成的新關卡的新穎程度,將這個新穎程度作為優化目標。
  • 深度神經網絡和組合式遊戲生成

    Guzdial和Riedl的兩篇論文,人為設計了一套用於表示遊戲關卡結構的概念網絡語言(Schema)。這將對關卡結構的表達能力限制在了這套概念網絡語言所能表達的范圍內。如果遊戲對象之間的關聯非常復雜,無法用這樣的網絡結構來描述,那它也就不能反映在生成的遊戲關卡中。

    為解決這個問題,人們自然想到了深度神經網絡及其所擅長的特徵學習(這方面的具體解釋請見計算創意學第三章中關於Deep Dream和Neual Style Transfer的介紹)。2020年由學者Sarkar等人發表的論文《用變分自動編碼器來實現可控的遊戲關卡混合(Controllable Level Blending between Games using Variational Autoencoder)》[3]就嘗試了一種叫做變分自動編碼器(Variational Autoencoder)的深度神經網絡架構來實現混合現有的遊戲關卡來生成新關卡。

    自動編碼器(Autoencoder)是一種深度神經網絡架構,它的本質是將輸入數據(需要很大的數據量來描述)映射到一個低維的向量空間,在其中能夠用較小的數據量來描述同樣的信息(也就是壓縮編碼)。比如說,以圖像這種輸入數據為例,圖像本身最原始的形式需要定義清楚每一個像素點的RGBA值,這樣一個輸入圖像的數據表示就要包含圖像的像素點總數乘以RGBA四個數值這麼多的數據,通過使用自動編碼器,我們可以使用一個數據量遠小於這麼多的向量來表示同樣的圖像。

    傳統的壓縮算法會引入一個顯式的「字典」概念,通過這個字典將較長的數據組合用較短的數據組合來替代,從而實現壓縮。而基於神經網絡的自動編碼器是基於訓練過程中自動發現的統計規律來「降維」,從而實現壓縮的。

    一幅原始的圖像因為需要大量數據來描述,處於一個高維的空間,但是因為訓練數據集中的圖像不可能覆蓋所有可能的像素值的所有可能的組合——實際上在所有可能的像素值的所有可能的組合所組成的巨大搜索空間中,訓練數據集中的圖像只覆蓋了寥寥數個位置——因此,雖然原始圖像處於一個高維空間,但是這個高維空間是非常稀疏(Sparse)的。

    這就意味著完全有可能找到一個更加低維的空間,這個空間比起原始高維空間來小得多,但仍然具有足夠的表達能力來區分訓練數據集中所有的圖像。

    自動編碼器就是自動尋找這樣的低維空間的神經網絡算法,它在訓練和使用過程中還需要搭配自動解碼器,通過優化神經網絡參數,最小化編解碼之後得到的圖像和原始圖像之間的差別,來實現自動編碼器和解碼器的訓練。

    談談人工智慧、計算創意學和混搭式自動遊戲生成

    這個構建低維空間的意義實際上遠不僅僅只是壓縮——它還構建了一個概念空間(擴展閱讀)。這個概念空間中包含了考慮范圍內的那些圖像可能具有的特徵。

    那麼通過在這個概念空間中有目的地搜索,我們還能生成具有我們想要的特徵的、訓練數據集中沒有的圖像。除此之外,我們還可以將兩幅圖像用自動編碼器各自映射到同一個概念空間,得到它們各自的特徵,再融合它們的特徵,用解碼器得到一個融合了兩幅圖像的新圖像。我們甚至可以通過控制兩幅輸入圖像各自保留哪些特徵來控制最後得到的新圖像。

    這里介紹的這篇2020年的論文,以及作者的幾篇相同主題的後續論文[4][5],就通過這個原理來完成了遊戲關卡的融合。作者將我們上面所討論的例子中的「圖像」換成了「遊戲關卡」,利用一種可解釋性較強、更可控的自動編碼器——變分自動編碼器(Variational Autocoder)——將兩個遊戲關卡各自映射到一個相同的低維「概念」空間,從而完成關卡的融合。

    談談人工智慧、計算創意學和混搭式自動遊戲生成

    結語

    這篇文章中,我們討論了組合性創造力理論、特別是概念整合理論在自動化遊戲生成中的應用。我們介紹的幾篇論文,其共同特點是都在遊戲的「表象」背後建立起了一個能夠用統計機器學習的方法自動去發現的「特徵表示體系」。Guzdial和Riedl的論文中,這個特徵表示體系是手動設計的概念網絡,而Sarkar等人的論文中,這個特徵表示體系是深度神經網絡自動構建的低維空間。

    關注AI前沿的小夥伴可能了解,隨著AI技術的發展,圖像編輯工具中出現了大量非傳統的「語義(Semantics)編輯」工具,比如Adobe推出的神經濾鏡(Neural Filter)和NVIDIA推出的EditGAN。相較於傳統的圖像編輯往往都是直接在圖像本身數據層面上進行操作,這些AI編輯工具實際上是在一個圖像背後的特徵空間中進行編輯,再映射回到圖像本身的數據上。因為這些工具的存在,在語義層面上融合多幅圖像也成為很容易的事。

    談談人工智慧、計算創意學和混搭式自動遊戲生成

    談談人工智慧、計算創意學和混搭式自動遊戲生成

    而這些基於特徵空間的遊戲自動生成技術,雖然現在還很不成熟,也讓我們也不由地思考,或許不久的將來,遊戲開發設計工具也能「語義化」——我們能夠不僅僅在遊戲的代碼和具體素材本身的層面進行操作,也能在遊戲背後的抽象特徵空間上操作。

    就像Adobe的智能照片濾鏡能一鍵將俯拍照片改成仰拍,EditGAN能一鍵將照片中的寶馬車變成豐田車,說不定未來在某個遊戲引擎中,我們也能一鍵將寶可夢變成Galgame呢。

    註:標題圖來自遊戲:SuperMash

    談談人工智慧、計算創意學和混搭式自動遊戲生成

    這個遊戲中你能體驗到各種遊戲類型的混搭會出現什麼效果,很推薦!

    註:作者公眾號 – junjunstorytelling

    擴展閱讀:計算創意學

    參考文獻

    [1] Guzdial, M., & Riedl, M. (2016). Learning to blend computer game levels. arXiv preprint arXiv:1603.02738.

    [2] Guzdial, M., & Riedl, M. (2018, September). Automated game design via conceptual expansion. In Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment (Vol. 14, No. 1, pp. 31-37).

    [3] Sarkar, A., Yang, Z., & Cooper, S. (2020). Controllable level blending between games using variational autoencoders. arXiv preprint arXiv:2002.11869.

    [4] Sarkar, A., & Cooper, S. (2021, August). Generating and blending game levels via quality-diversity in the latent space of a variational autoencoder. In The 16th International Conference on the Foundations of Digital Games (FDG) 2021 (pp. 1-11).

    [5] Sarkar, A., & Cooper, S. (2021, August). Dungeon and Platformer Level Blending and Generation using Conditional VAEs. In 2021 IEEE Conference on Games (CoG) (pp. 1-8). IEEE.

    來源:機核