創造一個小小開放世界:《A Short Hike》開發歷程分享
《A Short Hike》獲得 2020 年 IGF 的最大獎(Seumas McNally Grand Prize),銷售量也很亮眼,在同年的 GDC,遊戲作者 Adam Robinson-Yu 以《Crafting A Tiny Open World: A Short Hike Postmortem》為題,回顧了這款遊戲的開發歷程。
演講記錄
在 2017 年時,Adam 離開了他軟體工程師的正職,投身獨立遊戲開發,在這之前,他只製作過一些免費小品遊戲。他著手開發一款規模與野心不小的 RPG,有著豐富的人物、場景,以及充滿特色的機制。但他在開發了大約一年後,遊戲中的許多要素仍無法定案,最終的願景也很不明確,很可能要再花上好幾年的時間,才有辦法完成這款遊戲。這帶給了他很大的壓力,因為這很可能是決定他能否在這產業存活的唯一一擊。
到了 2018 年底,Adam 決定讓自己休息一下,把那款 RPG 的開發先放到一旁,做個完全不同的小遊戲來轉換心情,同時也當作是給自己的生日禮物。他把一些他覺得有趣的素材丟進 Unity,拼出一個小小的世界,讓自己可以操作角色在裡面跑來跑去。他將這個小遊戲的畫面錄成短片放上 twitter 後,意外地收到非常多的迴響,反映了這個小作品有進一步發展的潛力。
這也讓他面臨了一個抉擇:要繼續開發那款充滿野心的 RPG,還是先來完成這款小遊戲呢?
同樣在 2018 年,Adam 剛好也接觸到幾款長度不長的好遊戲,像是《The Haunted Island, a Frog Detective Game》與《Minit》,這些遊戲證明了即使只有一兩個小時的遊戲長度,依然能夠帶給玩家滿足感,並且在商業層面獲得一定成功,回顧了這些案例後,Adam 決定以小遊戲開發為優先。
實際上,對於新投入獨立開發的人來說,小型專案本來就會是比較好的選擇,因為開發時程較短,相對的風險也較低,比起大型專案,也比較容易順利開發完成,學習到一次完整的專案流程,並且可以較快獲得收入。(而且,現代人買了遊戲也根本沒時間玩,哪管你長短)
做為一個沒沒無聞的獨立開發者,並沒有什麼宣傳資源,最主要讓他人看到作品的管道就是 twitter,但要在一瞬間就有大量資訊從眼前快速滑過的 twitter 頁面上受到矚目,美術風格絕對不能太過平凡。Adam 是程式出身,比起畫圖,更擅長製作 VFX 與後期製作,因此當他在製作《A Short Hike》的時候,選擇嘗試用低解析度的畫面算繪,來配合他所想呈現的小小世界氛圍,而且這樣,建模與貼圖的精緻度也就不用那麼高,可以省時又藏拙。
要達到這種低解析度的畫素風畫面,Adam 採用的手法是把攝影機拍到的畫面,輸出為一張低解析度的動態貼圖,再讓另一臺攝影機專門拍攝這張貼圖,作為最終輸出顯示的畫面。記得 Filter Mode 要設定為 Point,才能夠具有點陣圖的效果。順道一提,Adam 是從 rogueNoodle 製作的“GBCamera for Unity”外掛學到這個手法的。
一開始,他想不到該怎麼樣為遊戲配色比較好,後來他以“秋天”、“自然景色”、“加拿大”為關鍵字找了一些參考照片,並且直接從中取色,建立起遊戲的整體色盤。
不過,當 3D 物件經過光影算繪後,並不一定都能有理想的結果,可能會出現色階過多、明暗不均等問題,因此他自己撰寫了一個算繪外掛,讓每個物件的陰影覆蓋程度、色階多寡等引數都可以獨立調整,原則上讓所有物件調整至色彩深度一致、彷彿 Flat Shading 的感覺。畢竟如果讓低解析度又畫素化的畫面有著太多的色階,就會讓物件看起來很難看。
這邊 Adam 也展示了他的 lighting ramp 製作演進,首先是將色階限定到 4 階,接著是限制色彩變暗的程度,最後是讓第二階的亮度也提升到與第一階相等,讓大多數情況下,算繪出來的顏色都會保持色盤的原色。
採用單色平塗的美術風格還有個好處,就是可以很快速的製作出 UV map,他把會用到的純色拼成九宮格型的材質貼圖,接著只要把各部位分配到指定的顏色上就可以了,非常省時省力。
而且還可以快速切換不同配色的九宮格貼圖,試驗各種配色效果。
再來,是要善用後製特效。《A Short Hike》的遊戲畫面在還沒有加上後製特效時,遠景看起來非常雜亂,也會讓畫面失去焦點。
所以他所做的第一件事,是加上霧的效果,在視覺上淡化遠方的物件。
但完全看不到遠景也不是好事,接下來,他加上了邊緣偵測特效,讓物件邊緣加上線框,讓遠景可見卻不會過於醒目,呈現出一種特殊的氛圍。而其實這個效果,是他在隨意測試了許多後製特效外掛時,意外得到的絕佳效果。
最後一步,是再做額外的調色,像是畫面左邊小屋內部,他在原本偏暗的陰影里加入了一點藍色,讓場景感覺起來更有生命力。
Adam 對小團隊在美術製作上的建議總結如下:
- 儘量發揮你的強項、實驗各種工具
- 選擇美術風格時要考量工作流程與規模
- 你所碰到的限制,反而很可能會造就出你的特色!
《A Short Hike》的雛型與視覺設定在 2018 年 12 月就差不多完成,他也獲得了 Humble Original 的資金,要把這個試作品發展成完整的遊戲,開發時程則是大約三個月。Adam 設定了每個月達成一個里程碑的時程規劃,最後遊戲也如期完成,Adam 自認為他在這個專案的時程掌控上做得不錯。
在短時間內要完成一款遊戲,Adam 認為重點是設定好哪些部分是必定要完成的核心機制、哪些部分則是行有餘力再做的延伸目標。有些機制少了遊戲就無法成立,這部分當然是優先投注時間,有些機制加入會讓遊戲更有趣、但沒有也不影響,這部分就晚點再做,做不到也沒關係。實際上《A Short Hike》最初於 Humble 平臺首發時,確實有很多屬於延伸目標的功能被捨去,要到之後這遊戲在 Steam、itch.io 等平臺上架時才有時間再加上去。
Adam 採用了簡易化的 Scrum 開發流程,每天與每週都會用 Trello 來確認與安排接下來的工作進度。
除了採用比較省工的美術風格,他也藉由過往的經驗,使用了許多現成套件,例如它的對話系統是使用“Yarn Spinner”,這是他先前在製作 RPG 時就採用的系統,已經有一定的熟悉度,因此拿過來繼續沿用。
在輸入控制上,他使用的是“Incontrol”,可以輕鬆解決各種輸入裝置的支援;“Cinemachine”則是他用來操控鏡頭的攝影機模組,這能夠很快速的創造動態運鏡效果。Adam 也有自己寫的一套常用 Scripts,讓他可以在許多遊戲之間重複使用。
連美術素材、物件模型,他也從先前的 RPG 遊戲中沿用了不少,因為算繪方式的不同,看起來具有明顯的差異。
遊戲內的地景,他是直接在 Unity 內,使用內建的地形工具製作,這讓他可以很快的創造與測試整個遊戲世界。
遊戲中使用了 Triplanar Shader,這個 Shader 可以自動依據模型表面的面向,自動呈現不同的材質貼圖,因此在建立或改變地景時,對應的貼圖就會自動產生、改變,而不用每次更改地形就手動調整貼圖。
地景上也是使用 Unity 內建的 Terrain Painging 工具,讓他可以畫出道路、沙灘等等地貌。
Adam 也自制了一些工具,像是專門用來編輯瀑布與河流的工具,一開始他是在 Blender 裡面建模之後再匯入 Unity,但這樣每次要修改都很麻煩,於是他就自己寫了一個可以在 Unity 裡面直接編輯瀑布模型的工具。做這樣的工具當然會多花一些時間,但因為這功能很常用,長期下來還是會讓工作流程順暢省時很多。
在製作遊戲的過程中,當然會發生一些 bug,不過比起把開發時間花在修復 bug 上,他覺得把時間用在製作更多的內容上,才是比較重要的。只要不嚴重影響遊戲,玩家們對於小瑕疵其實並不會那麼在意,特別是對獨立遊戲,比較容易給予包容。
關於開發時程控制的簡單重點整理:
- 設立里程碑並且隨時更新你的時程估計
- 規模上保留一點不可預期性
- 重複運用既有的知識、工具與素材
- 如果工作流程上有必要就自己製作工具
- 你不需要糾結在修正所有的程式錯誤
《A Short Hike》是一款小型的開放世界遊戲,為什麼選擇開放世界遊戲這樣的型別呢?因為 Adam 想做一款“迷路也是一種遊戲玩法”的遊戲,他認為擁有隨時想往哪走就往哪走的自由,能夠為遊戲增添不少樂趣,特別是每次選擇沒走過的路走、就會碰到新東西的新奇感,是他最想呈現出來的感覺。
Adam 直接在 Unity 裡面建構出大致上的場景、決定整體規模,並且持續調整、確立哪些地形與地點是需要的,最終建構出遊戲世界的整體樣貌。
他將玩家的起點安排好,並且用山壁將附近的區塊擋起來,讓玩家只能往左下方的村落走,並在那邊遇到能夠引導玩家的 NPC。玩家要在這個教學區域內通過數個任務,取得能夠增強行動力的金羽毛後,才有辦法攀上更高的山壁,離開新手教學區。
在離開初始區域後,遊戲的路徑就產生了分歧,玩家可以自由選擇要往哪邊走、並且一路往上爬,但不論當初選擇從哪個方向上山,最終都會走到一個共同的交會點。
這個交會點,就是通往遊戲最終挑戰的起點,玩家會意識到如果不收集到夠多的金羽毛,他們將無法達成遊戲的最終目標,因此,他們必須回頭,去探索其他未走過的路徑。在這過程中,遊戲內也安排了很多的捷徑,讓玩家可以更加輕鬆地在場景間穿梭,同時,當玩家覺得他們發現了遊戲正規之外的路徑時,也會感到非常愉悅。
Adam 在給玩家測試遊戲時發現,如果玩家一直處於探索狀態、太久沒有碰到新事物時,他們會覺得厭煩,另一方面,如果玩家來到了一個新地點,裡面一次出現了許多 NPC,玩家卻也會懶得一個個跟他們互動,因此遊戲節奏的調整非常重要,必須要設法讓玩家每一小段時間就可以碰到新事物,但又不能夠讓 NPC 或任務在短時間之內一次出現太多。
不過呢,玩家永遠不可能全都照著開發者預想的路徑或步調來進行遊戲,本作在給玩家測試時,就碰到許多玩家一開始就不照著他所設想的、照著道路指引走到左下方的教學區,而是會跳入海里,往其他方向前進。他認為這是玩家們的天性使然,喜愛挑戰規則、測試系統的底線、探索場景的邊界,因此,他也在起始點附近的海域裡,安排了幾座小島,滿足這類玩家愛探索的個性。
意外的是,有些玩家不會在近海探索那幾座小島後就滿足,還會繼續往主要島嶼的背後前去,這就會造成問題了,因為島嶼背面不但沒多少有趣的東西,還可能讓玩家迷路而回不到該去的教學區域。
他最後想出來的解法是,他在島嶼背面設定了一個顯眼的礦坑山洞,吸引玩家往那邊前去,玩家一旦進入了山洞,就會被礦車送到初始的教學區域!
這不但解決了玩家不走正規路徑的迷路問題,還會讓玩家覺得是發現了祕密通道,而不是被強制中斷探索、破壞遊戲的沉浸感。
有一些實用的方法可以來引導玩家的行動方向。首先是提供提示,除了明確的道路、路標,也可以用“麵包屑”型別的物件來提示,讓玩家知道哪邊可能有路可走。
接下來是使用柵欄,適度的遮擋、阻止玩家前往還不該前往的地方。《A Short Hike》遊戲中很少使用字面上的柵欄,而是用不同高度的山壁,來限制玩家的行動範圍,玩家必須要取得夠多的金羽毛,才能登上更陡峭的山壁。用山壁來作為柵欄不但顯得較為自然,也與遊戲的主要目標一致。
另一個技巧,Adam 自己命名為“不讓人察覺的重複”。舉例來說,遊戲中有個道具是玩具鏟子,玩家要將其交換為真正的鏟子,然後就可以在遊戲中的許多地點挖掘地面,這並非絕對不可缺的道具,但作為遊戲設計者,當然還是希望玩家能夠取得這個道具。
一開始,他將玩具鏟子放在一條他認為是必經之路的地上,但意外的,有些測試玩家就是會繞過這條路,但他還是不想把玩具鏟子強制塞到玩家手上去,因此,他的做法是,在圍繞著教學區域的眾多道路上,都放了玩具鏟子,讓玩家怎麼都不會錯過,而當玩家拿起了其中一把玩具鏟子,其他鏟子就會消失,讓玩家“發現”玩具鏟子這件事顯得很自然,而不會知道這其實是強迫中獎。
最後,就是教學必須要自然的灌注給玩家。在《A Short Hike》裡,攀爬是不可或缺的動作,但這個動作的操作方式,是要讓角色持續貼近牆面、再按住 Z 鍵,對不熟悉遊戲的人來說,不是一個自然而然就能做出的操作。像這種重要的教學訊息,是可以直接從 NPC 口中說出,但光是這樣在對話裡看過一次,玩家其實很容易忘記。
Adam 就在教學區域裡面擺放了一個攀巖場,那邊會有 NPC 邀請玩家加入攀巖具樂部,並且會指導玩家練習數次攀爬,讓玩家記住這個操作。而就算玩家只是路過、不去跟 NPC 對話,至少也會看到有個 NPC 一直在那邊攀巖,讓玩家知道這個遊戲裡存在著攀爬動作,當自己也想要攀爬卻不知道該怎麼操作時,自然就會想要來看看 NPC 是怎麼做到的。
在接近頂峰的區域,也就是遊戲的最終區域,他加入了較多挑戰要素,玩家應該都可以感受到這裡的難度,比遊戲的其他部份明顯要來得高。在這邊,玩家身上的金羽毛會慢慢凍結,除非回到溫泉或材火等熱源附近,不然無法回覆,這使得玩家必須善用有限的金羽毛能量,找出理想路徑與中繼點,而不能靠消費大量的金羽毛硬闖。
在登頂的路上,有一條直通終點的道路,但一路走上去後會發現,如果玩家只持有七根金羽毛(能攀上最終區域的最低數量),將會在路上耗盡所有金羽毛能量,必需得再回頭找到更多金羽毛才行。這種讓玩家看到終點明明就在前方,自己的能力卻差一點才能到達的感覺,將會強化對這段最終挑戰的執著。
其實遊戲原先設計的金羽毛數量並不多,但在經過玩家測試後,Adam 決定大幅增加金羽毛的數量,畢竟如果玩家從最終區域下山尋找金羽毛花費了太多時間,就會使得那份急於攻頂的心情消散掉。增加金羽毛的數量後,不但可以改善上述問題,還可以增加更多給予玩家正面情緒回饋的機會,讓遊戲玩起來更加愉悅。
再來是關於遊戲的對白寫作。Adam 自認為寫作是很困難的事,這在他製作 RPG 時就深深感受到,對白不僅要能夠講出一個故事,還要具有意義與表現個性,讀起來還不能無趣,這並不簡單。
在製作《A Short Hike》時,他就決定拋開 RPG 典型對話的枷鎖,朝“自然對話”的方向寫作對白。他排除了傳統 RPG 式、會佔掉四分之一個畫面的大型對話方塊,改用小小的泡泡對話方塊來顯示對白,句子儘量簡短、不使用逗號斷句──實際上,Adam 是在模仿現代人使用文字通訊軟體溝通時的對話方式來撰寫與呈現對話。
同時,遊戲主角 Claire 也不是許多 RPG 裡會見到的那種“沉默的主角”,而會與 NPC 一來一往的對話,畢竟比起讓 NPC 自言自語,雙人對話會更加自然,也更容易撰寫。然後,Adam 在撰寫本遊戲指令碼時,就已經決定這不會是什麼情節峰迴路轉的嚴肅故事,對話甚至不會是遊戲的重點,而只是輕鬆的點綴,這也讓指令碼寫起來比較沒有壓力。
《A Short Hike》是在 Humble 的遊戲訂閱服務 Humble Monthly 首次推出,玩家的反應很不錯,他整理了一些玩家的意見,加上自己想做與先前捨棄的新功能,在接下來幾個月時間內將遊戲內容改進,於 2019 年 7 月在 Steam 與 itch.io 上架發售。
他的最主要宣傳管道依然是 twitter,他製作了一些有趣的 gif 小動畫來宣傳遊戲,效果確實也相當不錯。由於遊戲已經透過 Humble Monthly 被許多人玩過,因此他也透過觀察玩家的反應,挑選出最受玩家喜愛的角色或橋段,來做為宣傳時的主要素材內容。
Adam 也製作了本遊戲的 Press Kit (媒體素材包),寄送給對類似風格遊戲有興趣的媒體記者、專欄作家,例如先前報導過《a Frog Detective Game》並給予好評的作家,就很有可能也會對《A Short Hike》有興趣,併為其撰寫新聞或評論。
Adam 知道,《A Short Hike》步調緩慢,又缺乏深度的解謎或刺激的戰鬥,絕對不會是一個所有人都喜歡的遊戲。因此,他也要避免玩家因過度期待而導致的失落感,在宣傳標語上,就強調這是款“關於爬山的小小探索遊戲”,甚至直接在遊戲名稱上放了“Short”這個字,減免玩家對遊戲長度的不滿。
在遊戲啟動時,會有一段“遠離城市、到山上去度假”的演出,這一方面是在掩蓋遊戲的資料載入,也是為遊戲的故事做背景鋪陳,同時還有個用意,就是向玩家傳達這是款步調輕鬆、遠離紛爭、宛如度假的遊戲。
《A Short Hike》在 Steam 上架後,獲得了相當好的銷售成績,玩家們給予了極度的好評。在首周,遊戲 Steam 頁面主要的外部流量來源是 twitter。
而他推測,這些大量的外部造訪資料,也影響了 Steam 的演演算法,讓他的遊戲在 Steam 商店內有較高的曝光機會,因此在首周,更多的流量來源,是 Steam 商店內引導而來,而這對他遊戲的銷售非常有助益。
以上就是 Adam 對於《A Short Hike》的分享,希望對大家有幫助!
來源:indienova
原文:https://indienova.com/indie-game-development/postmortem-of-a-short-hike/
相關文章
- 《殘世界的鳶尾花》創作者2D_貓分享遊戲開發歷程遊戲開發
- 第22屆IGF大獎公佈 最佳獨立遊戲《A Short Hike》遊戲
- 一個程式設計師的創業歷程程式設計師創業
- 使用Electron開發一個吸色工具的心路歷程
- 手繪風格獨立遊戲《失眠》製作人分享創作靈感和開發歷程遊戲
- 分享一下某個debugger心路歷程
- 微信開發:歷程
- 一個C#開發編寫Java框架的心路歷程C#Java框架
- 新手測試開發的成神之路:面試歷程分享面試
- A Short Hike:用 3D 畫素沙盒《鳥兒的徒步旅行》給眼睛洗個澡3D
- 鄒輝:一個程式設計師的創業歷程程式設計師創業
- 【原創】經驗分享:一個小小emoji盡然牽扯出來這麼多東西?
- 分享一下最近寫的一個小小部落格~~~
- 軟體架構發展歷程分享架構
- 分享純技術創業過程最苦逼的那段歷程創業
- 小記:為開源專案增加一個新功能的開發歷程
- 米哈遊再發乾貨,分享《原神》新角色魈的創作歷程
- 飛行巨獸空鬥遊戲《世紀:灰燼紀元》創作思路和開發歷程分享遊戲
- 剛才釋出了一個分享創造帖子怎麼不見了??
- 《短途旅行》設計師分享:如何打造一個小小的開放世界
- 中國量子技術創造多個世界第一,又創造世界首個
- 太空開放世界抓寵手遊 《創造吧!我們的星球》今日正式上線
- 如何開發一款“克蘇魯”桌遊? 創造你的“角色”
- 一個小小的網際網路創業狗的自白創業
- 一個測試開發的十年心路歷程 - 從改變自己做起
- 十餘年創作歷程,《極樂迪斯科》開發商ZA/UM如何做出開創性的RPG
- 我的.net開發歷程:初入快速開發
- PHP 開發入門自動化測試歷程(一)PHP
- 【iOS開發】偽造一個SFSafariViewControlleriOSViewController
- 我的移動開發春季歷程移動開發
- 戲說移動江湖開發歷程
- “特別好評”的黑客遊戲,《全網公敵》創作歷程分享黑客遊戲
- 分享一次批量文件翻譯的開發過程
- 天美分享《王者榮耀》五週年李小龍限定皮膚創作歷程
- 歷時一個月!又完成一個全棧開發的小程式!全棧
- 《全心愛你》開發者Terris兄弟:為自己所創造的小小世界感到驕傲
- iOS&Flutter混合開發的探索歷程iOSFlutter
- JavaScript模組化開發的演進歷程JavaScript