BOOOM 作品《TRAiLS》創作筆記


3樓貓 發佈時間:2022-06-01 09:51:35 作者:SleepyJeff Language

前言

機核的朋友們好,我是 Sleepy Jeff。2021年的 BOOOM 活動中我開始了自己的遊戲開發之旅,2022年的 BOOOM 也自然不會缺席。
本人對遊戲和遊戲創作的理解及其淺薄,創作筆記僅為學習歷程中的記錄與分享,有問題之處還請大家多多諒解和指教。
我將本文分成了兩個部分,第一部分是《TRAiLS》從靈感到成品的創作歷程,第二部分則是在創作過程中的反思與收穫。
本文涉及對《TRAiLS》的完全劇透,希望沒有遊玩過的朋友花 20min 體驗一下再來閱讀。

TRAiLS 痕跡

查看詳情

0. 創作《TRAiLS》之前

提及之前的遊戲創作經歷既是個人的階段性回顧,也方便大家更好的理解後文中的各種決策。
半年前參加第二屆 BOOOM 時我剛開始學習 Unity,製作的第一個遊戲《Interstice》中一半的代碼是由朋友幫我完成的,耗時40天。遊戲不建議去玩,感興趣的朋友可以閱讀創作心得
之後跟著非常基礎的 Unity 教程做了兩個練習,並在 Computer Science 課上學了一點 Java,瞭解了編程中最基本的 Class,Variable,Loop 等內容。
Global Game Jam 2022 的時候想參與一下,但情況如圖,遊戲耗時20天左右才完成。
之後就到了今年的 BOOOM 開發活動。

1.1 解題 & 靈感來源

剛剛得知開發主題是 「Take Me Somewhere Nice」的時候,我糾結了一下是否要做情感體驗向的遊戲,之前在創作這方面的內容上毫無經驗。
但聽完 Mogwai 演唱的《Take Me Somewhere Nice》後就立馬被打動了,決定無論如何也要試試(二七姐和四十二老師屬實是高)。
最初遊戲的靈感來自於三款遊戲和一個翻頁書動畫(點擊跳轉):
  • 《雙子》- Echostone Games
  • 《風之旅人》 - thatgamecompany
  • 《又一條線》- SMG Studio
  • 《900頁翻頁書》- Andymation
《雙子》和翻頁書動畫讓我覺得僅通過簡單的「點」也可以模擬和傳達出人與人之間的情感,且相比於複雜的角色需要繪製/建模甚至是製作動畫等一系列內容,用點來代表人物在技術上對於我來說也能夠在短期內實現。
而不同於《雙子》和《風之旅人》中的核心是陪伴,翻頁書動畫中想要表達友善,我想傳達的重點在於離別,以及離別後帶給玩家的一些思考。這是源自於我的一些個人經歷,故事很長,在文章裡不便分享,未來閒了可能會發在機組。
對於開發主題「Take Me Somewhere Nice」,我的解讀是:
「Somewhere Nice」不在遠方,而是和生命中的一些人所經歷的時時刻刻。

1.2 從一個 Shader 開始

離別需要有衝擊力,所以要在那之前構建出能打動玩家的親密關係。
最初我的想法是:玩家會在隨機生成角色的地圖上遇到各種人,但其中只有極少數會選擇一起同行,伴隨玩家克服障礙,最後離別。這裡並不是我隱去了細節,而是當時腦海中基本只有這一句話的內容。
之所以沒有任何具體的設計,是因為出於編程水平的限制,幾乎任何複雜的功能都可能將我的創作攔腰截斷。我決定邊製作邊圍繞著已有的內容做設計,踏上一塊石板再去摸下一塊。
這並不是吹哥所倡導的「讓遊戲設計它自己」,而是我確實對現有的能力毫無信心,不敢先入為主進行全面的設計。
我決定從創造障礙出發,因為共同克服障礙對增進關係有巨大的幫助,已經記不清為什麼選擇了漩渦,可能是受到創作的第一個遊戲《Interstice》或者是《又一條線》中引力玩法的啟發。不過現在回顧起來,即使是一步一步設計也應該先考慮核心玩法,而非設置障礙。
因為我完全不會美術,只好搜索如何用 Unity 做出一個漩渦,這才重新瞭解到了 Shader(學 Blender 的時候也用過,但忘得一乾二淨了)。開始創作的第一天,我就這樣跟著教程做出了一個漩渦的 Shader,可以說這個 Shader 決定了整個遊戲的視覺風格。

1.3 夥伴「AI」的實現

如果你希望對《TRAiLS》裡遇到的夥伴保留一些情感,而不是被冷冰冰的,及其無趣的程序所破壞,可以跳過下方的隱藏內容。
我的角色代碼只有幾個非常簡單的腳本,稱為「AI」僅為了方便大家理解,還請見諒。
在網上搜尋 AI 相關的教程時,發現多數都只是基本的跟隨/尋路功能,而複雜一些的則會涉及到狀態機,行為樹等內容,其程序必然是我在 BOOOM 活動期間難以掌握的(還有好多其他的內容需要學習)。
最終我決定使用最簡單的跟隨來實現。為了讓 NPC 更加鮮活,我自己瞎琢磨出了一個框架:NPC 跟隨的並非玩家,而是在玩家周圍的八個方位設置的點,這些點會隨著玩家移動的方向而轉動。
具體的邏輯如下(程序員視角):
- 數字 0-7 對應了8個「點」(例如「點0」為玩家正前方)
- 定義變量「跟隨數字」,NPC 會始終飛向「跟隨數字」所對應的「點」
- 每過 5-10 秒,NPC 會生成一個 0-2 的「隨機數」
- 新的「跟隨數字」= 舊的「跟隨數字」+ 「隨機數」
圖例:
- 左圖中 NPC 的「跟隨數字」為4,對應的「點4」在玩家正後方
- 7秒後 NPC 生成了一個隨機數2
- 右圖中新的「跟隨數字」為 4 + 2 = 6, 對應的「點6」在玩家正左方
NPC 的多數變化就基於上述框架,例如玩家在吃完一片區域的光點後,八個方位的點與玩家間的長度(即圖中的藍線)就會更短,NPC 也就會更近的陪伴玩家飛行。
值得一提的是一些無心插柳柳成蔭的內容。例如打動了不少朋友的,NPC 試圖阻止玩家下落的舉動,實際上是在製作早期寫的繞圈腳本:玩家在沒有自己移動時 NPC 會繞著玩家周圍的八個點轉圈。寫的時候還沒給玩家加上重力,所以繞的圈是完美的,但在加上重力之後會發生碰撞,我又忘記改了hh,便成為了「阻止玩家下落」。
陳星漢老師在電臺裡聊《雲》的時候說「藝術品有一個很討巧的地方,就是你說的不是很清楚也無所謂,只要感覺上捕捉到了,觀眾會自己把它填進去」。我的遊戲絕不敢自詡為藝術品,引用這段話是想說,如此簡單的 AI 設計能打動很多朋友並非是我的功勞,而是大家可能聯想到了生活中的一些經歷/經驗。

1.4 重新設計 & 成型

在核聚變宣佈延期,BOOOM 宣佈多兩週的開發時間時,我看著 Unity 陷入了沉思。遊戲創作到這時有許多不得不面對的問題:
  • 難以在短時間內實現完善的隨機生成系統
  • 在隨機生成的地圖中設計符合預期的心流較為困難
  • 只製作了障礙,卻沒有給予玩家明確的目標
  • ......
而這一切都會回到一個最關鍵的問題:沒有圍繞最終想要傳達的情感體驗去設計。
以下是我當時觀看和閱讀的一些 視頻 & 文章(點擊跳轉):
  • 【GDC】Designing Journey(中字)
  • 【GDC】Letting Go: A Florence Postmortem(中字)
  • 【GDC】Designing For Friendship(譯介)
  • 我們與迴音石工作室聊了聊三年的《雙子》之旅
  • 淺談《雙子》中的情感體驗設計
  • VG安利會:《雙子》一場星間飛行 願我成為你的光
  • 在這個手遊裡化身雙子星,感恩陪伴你的那個人
很難說清究竟從其中受到了多少啟發,但遊戲核心設計的靈感,也就是連點畫線的玩法,則是明確來自於兩款遊戲。
其一是上文提到過的《又一條線》。遊戲中玩家通常會始終向上以獲取更高的分數,但有幾次我選擇在幾個點之間來回繞行,留下的軌跡形成了一些有趣的圖案。而在我的遊戲中玩家也有軌跡,在延長其停留時間後我試著畫了一下,非常漂亮。
其二是恰逢 Ludum Dare 50,梓濤哥發佈了《》,遊玩後我發現連點成線再成圖是個很好的設計,因為點比線更低維,在連完成為圖像的情況下能讓玩家自由發揮,不被限制。
連點畫線的玩法是將「經歷」具象化的一個很好的方式,對此我的解讀是:點代表了人生中的一個個事件,地點或物品,這些事物獨立存在的時候通常不是那麼的重要,但是當我們跟生命中的一些人去經歷的時候,一切都會變的有意義。
核心玩法的確定並不足以支撐整個遊戲,為了更好的理清思路,我約了好哥們 David Chen 在線上會議室裡聊了幾個小時。他沒有專門學習過遊戲設計,但算是同齡人裡資深的遊戲玩家。一下午的討論過後我畫出了下方這張圖:
圖中的關鍵詞有的包含了多個內容,且其代表的意思,箭頭代表的關係等都是不一樣的。但就是這張只有我自己看得懂的關係圖讓遊戲首次有了成型的設計(因為是個人開發我一直懶得寫GDD哈哈哈哈,請不要向我學習)。

1.5 結尾 & 提交遊戲

直到五一假期時我的場景還沒開始搭建,只好開始狂肝,在最後的三天兩夜中只睡了8個小時左右,終於趕在了截止前提交了遊戲。
提交的版本中有許多 bug,且砍掉了非常重要的結尾。設計中完整的遊戲流程應該是「相遇 - 離別 - 回顧 - 點題」,但沒有結尾部分則少了「回顧」,「離別 - 點題」顯得突兀不少。
遊戲已經更新了完整版,雖然由於時間和精力的限制仍然有不少遺憾,例如 NPC 與環境自始至終變化不大,沒能像《風之旅人》和《雙子》一樣做出起伏的情感弧線,但就我目前的開發水平而言,已經基本達到了設計時的預期。

2.1 學習與創作的正反饋

不同於我在製作第一個遊戲時不會編程的糟糕體驗,Unity 入門了之後則進入了一個甜蜜期,大概的情況是能在完全不瞭解一個功能的情況下,可以通過查找網上的教程,問答,Unity 的 API 和向群友請教等方式實現。
雖然很多時候及其簡單的功能仍花費了我數個小時,但學習過程中的每一次發現(例如發現了更明確的關鍵詞而不用再胡亂搜索,發現了功能裡所需的最核心的術語,發現了折磨人的 bug如何修復...)都是一次正反饋,就像在一團迷霧中突然看到了一束光。即便不少時候在更深入的查詢和嘗試之後才知道走錯了,也為未來積累了經驗。
更強的正反饋來自於幾經周折後成功的做出想要的內容,每次都讓人非常開心。

2.2 「井底之蛙」的創作

我在《Interstice》創作心得中提到人文基礎的缺失會極其限制遊戲創作的思路,類比的話就如同一隻井底之蛙,但在做完《TRAiLS》之後有一些內容想要補充:
第一點是像我這樣的井底之娃也仍然能夠,且應該去試著通過遊戲設計做一些表達。雖然沒有到過廣闊的大海,也沒有見過璀璨的星空,但井下的苔蘚,石頭等也可以成為創作時的參考。苔蘚中或許有美妙的生態,石頭上或許有雨水留下的紋路。
之所以說不僅是可以,更是應該,是因為創作需要磨練。通過遊戲設計較為準確的傳達情緒,感受或思考並非易事,只有在一個個差勁作品的積累後才能離帶來理想中的體驗更近一步。
另外提及一下梓濤哥分享的《邱志傑:青年藝術家們的“十大學生腔”》,裡面講到的「琥珀」可以說是必要的警醒,轉述可能會有偏差,因此直接引用:
年輕人誤以為創作是自我表現,而年輕人擁有的經驗大多數是青春故事和童年記憶。於是要自我表現,採集這些生活經驗的碎片也就順理成章。封存、儲存、收納、凍結各種雜七雜八的記憶,同時視覺上又可視,琥珀顯然是理想的辦法。用樹脂、冰塊代替道理一樣。用抽屜裝滿記憶不加封閉,或者用蠟或者水泥封存雜物,視覺上只能見到局部,略遜一點,但基本路數一致。這些做法,是私人日記的一種碎片形式。它是另一種版本的 Facebook 上的“時間線”。這個時代每個人都活得理直氣壯,每個人都覺得自己的生活值得記載下來,並熱衷於暴露給觀眾,這種權利我不敢反對。但需要想一想的是,為什麼你的生活碎片是藝術而別人的不是?
第二點是在各個領域我們或多或少學過一些東西,作為遊戲設計師要在學習時留心,並儘可能在創作遊戲時快速地與之關聯和使用起來。
這點是我在觀看陳星漢老師的 GDC 演講時感受非常深的,他提到創作《風之旅人》時是如何從敘事中非常經典的《英雄之旅》中獲得靈感,並基於此設計了情感弧線。而我雖然在幾年前淺顯的學習過《英雄之旅》,但在設計《TRAiLS》時沒有想起來一次(直到觀看演講)。

2.3 基於限制的遊戲設計

《TRAiLS》創作過程中的每一步都是基於各種限制:
  • 視覺風格是基於在 YouTube 上找到的幾個易抄的 Shader 教程
  • 「AI」設計是在最簡單的跟隨腳本上做了一些變化
  • 玩法設計的成型是因為嘗試了隨機生成後發現難以實現
  • ......
如果我會美術或者編程水平高一些,最終遊戲可能會呈現出與現在完全不同的樣子。但幸運的是,我選擇儘可能在各種限制下圍繞著想要傳達的情感體驗做設計,把握住了比技術更關鍵的東西。

2.4 細節與遊戲反饋

我在製作前兩個遊戲時基本只考慮了程序如何實現,關卡如何設計,完成後都還是比較粗糙的原型,直到這次 BOOOM 才開始考慮細節與遊戲中的反饋。其一是情感體驗向的遊戲需要有氛圍感,其二是我的編程水平和開發週期也允許做一些嘗試,舉幾個例子:
  • 在屏幕邊緣引導玩家的光源,其路徑並非直角而是圓角矩形,這樣光源在四個角時不會被遮住大半部分(花了8個小時才做出來)。
  • 背景的星空有兩層,模擬遠處的一層較小較暗且移動的更慢,模擬近處的一層較大較亮且移動的更快。
  • 玩家的重力會在按 WASD 時歸零,這樣在朝各個方向移動時速度會保持一致,不符合物理規律,但畫線時手感會舒服很多。
遊戲中的反饋還有很多欠缺,大家感興趣的話可以參考《Cato》,《Heartbeat Faraway》,《綠蠅俠》和其他很多 BOOOM 作品中非常優秀的設計。

遊戲的背景音樂這次沒有選擇繼續使用 CC0 素材,但由於無法確定遊戲是否能按時做完,我不好意思找別人幫忙做音樂,最終選擇在網上購買了一些音樂的使用版權。
遊戲中最大的遺憾是沒有加音效。雖然向梓濤哥,Zuxin哥和在上音讀書的老同學請教了一些知識,但礙於精力有限實在是肝不動了,且音頻工程是非常深的領域,難以在短期的學習中做的比較像樣。這裡順便安利一下梓濤哥的演講《再重聚:音頻驅動的遊戲設計視角》,在提醒遊戲創作者重視音頻的同時提供了更多很有價值的思考。

2.5 長期與個人創作的壓力

雖然看過吹哥關於深度工作與長期項目的演講,但是一個多月連續的開發(對我目前來說算是長期)還是讓人有些吃不消,同時還要面對因疫情隔離在家的各種壓力。
不止是我,像 GMTK 頻道的 Mark 這樣的大佬,在 Developing 系列的視頻中提到 2-3 個月的高強度開發讓他接近「Burnout」而不得不好好休息一陣子。
YouTube 的評論區裡有一位朋友的回覆我認為很有道理:
僅僅兩個月的開發後感到倦怠並不意味著你需要休息一個月,而是意味著你需要發展一種更合適的工作模式。這個建議更多的是針對工作中的遊戲開發者(Mark Brown 的情況不同),在衝刺和長時間的休息之間翻來覆去是不健康的,這樣做一定會失去動力和工作中所運用的知識,使每次衝刺都需要重新熟悉技能以及項目本身,每次都會越積越多,讓遊戲開發變得更加困難。
至於「更合適的工作模式」是什麼樣的,我得在之後的生活中慢慢探索了。
相比於團隊開發中的成員們可以討論和互相激勵,個人開發的過程也對我造成了一定的困擾:我對遊戲逐漸有一種「不識廬山真面目,只緣身在此山中」的迷茫,且容易感到孤獨和疲憊。對此我有兩點體會想分享:
一是可以多跟朋友們交流正在開發的遊戲。像我這次就跟好哥們 David 聊了很久,雖然他不懂遊戲設計,但從玩家視角提了很多建議(其中不少都不合理但沒關係),並且我發現在向他人傾吐迷茫的思路時,經常自己順著自己的話就捋順了。
另外朋友有時會給一些言過其實的讚揚,多少能抵消一些焦慮和負面情緒哈哈哈哈。
二是在疲憊的時候可以專門挑一些讓人有成就感的內容做。例如我在開發週期剛剛過半,最沒動力的時候做了《TRAiLS》開始時的標題轉場,對遊玩並沒有什麼幫助但是自己非常開心。

結語

感謝 BOOOM 群聊,GMTK Discord 和 Unity Discord 裡的朋友們幫忙解決程序問題!
感謝@David Chen @葉梓濤 @Zuxin @奏奏 @鄭瑞婷 對遊戲開發提供的幫助!
感謝機核網舉辦 BOOOM 開發活動,祝願 BOOOM 越辦越好!
感謝大家的遊玩與支持!我在未來會帶來更優秀的作品!

© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com