創作內容

23 GP

【學習】打磚塊、編輯器和專案管理

作者:樂小呈│2024-04-30 05:28:34│巴幣:1,248│人氣:207
這是二下開學後的學習篇,有三個主要專案,企劃課遊戲原型、教授要當教材的關卡編輯器、另一個教授的產學案子。第三個要暫時保密,這篇主要針對前兩者分享,使用內容經過組員同意,文章中會進行工作著名。

圖片很大張可以點開來看歐。

磁鐵精靈拆遷工程
《遊戲企劃》課的專案,要跟著課程做企劃 + 可展示玩法的原型,方法不拘(遊戲、簡報或自己演出的影片也行)。組員有三位:
  • 小呈:程式、企劃、專案管理
  • YukiO3O:3D 美術、簡報製做
  • Izumige:2D 美術、影片剪輯

發想階段
我們用課堂教的心智圖、曼陀羅發想設計,就是發散收斂啥的,三人一起構思再整合成企劃書。我們的主題是:指揮亂源磁鐵精靈拆毀異世界的建築,征服所有平行宇宙

遊戲機制是反塔防 + 打磚塊(題目要求塔防)。討論時畫了簡單示意圖,玩家要控制板子反彈彈球,透過撞擊磚塊進攻,而敵人(磚塊)是防禦塔,會攻擊板子和球。

競品分析
作業的一環,我們找三款相似的遊戲進行分析,篇幅問題就不放出來了,有興趣再點進連結看。

劇情設定
發想時有先粗略設定過,劇情則是 2D 世界的亂源磁鐵們入侵了 3D 水晶世界,打算進行拆遷工程。老師說很有任天堂的味道 www

雖然不會做進原型,但劇情還是有重要性的,畢竟現在連三消遊戲都有劇情。劇情由事件構成,我們各自發想 4 個再整合成一條時間線,聽完老師建議後又修改成 16 個事件。

雖然不複雜,但還是畫了人物關係圖方便理解(以及作業要求)。用線條顏色代表正反面關係(這張圖忘了上色),再用文字補充細節。

情緒與配色
企劃要根據劇情預估玩家情緒變化,並提供配色建議給美術。作業四要做出玩家情緒指數變化圖、明暗關係圖以及對應的配色方案。我完全沒注意到這項作業,這是由 YukiO3O 獨立完成的,感謝組員 Carry 。

企劃書
目前還沒教機制設計(為什麼還沒講機制???)但我還是先把討論出的設計細化、寫成主文件和補上更詳細的示意圖了。文件連結在這,有興趣可以看看:亂源磁鐵拆遷企劃主文檔

原型
總之先簡單弄出了原型,沒有美術、沒有太多物件,只有兩種塔(磚塊)、板子跟球,塔會對玩家和球發射子彈,推進直到板子死亡就輸了,程式部分沒什麼深度就不解釋了。是有點敷衍,但先求有,這學期事真的不少。

水晶公主異界迷走
企劃課的期中作業,要做額外的潛行遊戲關卡設計,三個關卡,題目要求如下:
  1. 遊戲類型:潛行遊戲
  2. 勝負條件:主角在180秒內,到達出口 。
  3. 特別要求:每個關卡請加入1~2個彩蛋(例如與故事有關或遊戲無關的致敬也行)
  4. 預計平台:手遊
  5. 使用工具:以試算表的方格,上帝視角進行關卡設計(開放其他、特殊)

遊戲舞台限制台南、高雄的地點改編,並且要在七個選項(科學園區、辦公大樓、大學、監獄、發電廠、商業金融中心、實驗室)中選擇。效率考量,我們決定沿用世界觀,但這次的主角是水晶公主,她在戰敗後透過傳送門逃跑,意外穿梭到架空世界的台南室。

總之,再討論了相關設定(公主來到這裡、她要做什麼、目的、動機和最終目標)之後也是各自發想事件,一人提供四到六個再整合成統一時間線。時間考量角色設計也沿用簡單畫風。

作業封面是組員 Yuki030 製作的,經過同意後分享。幫組員澄清一下,原先分配是 Yuki030 製做封面和簡報,但趕出封面後才發現不用簡報,而時間關係(還有其他期中)我也不打算要求修改,所以讓封面維持在這張圖,否則這張圖也沒達到組員自身標準。

關卡設計
作業要用 Excel 設計關卡,這在業界應該很普遍?正式設計也能用表格畫,只是要另外寫轉換腳本,但這裡也不深入,有興趣可以看 【日誌】資料驅動 - 多語言文本生成 (但這篇也沒講多深就是)

一人一關,我把設定餵給 AI 生參考,再自己改成最後的樣子。

我做的是發電廠,根據事件 8 製作。這裡省點字,下有影片介紹。

組員 Yuki030 製做監獄,事件 7

組員 Izumige 製做實驗室,事件 3

遊玩介紹
作業最後還要求影片介紹,要展示關卡的遊玩過程。我在掙扎後接下了注定的錄影工作,剪輯交給組員 Izumige 。時間(懶惰)關係我就只解釋通關方法了,其他細節在 Excel 上。

完整文件可以到這裡看:水晶公主異界迷走試算表。我們有用分頁噢,在最底下可以切換。進一步的表格排版也是組員 YukiO3O 進行的。


關卡編輯器
這學期第二個專案,上學期末跟《故事編寫》課老師聊到的東西,他想找人做個關卡方便教學用,所以就接了,但談了交換條件,他要幫我把故事出版啥的處理好,畢竟 Why Not,想拿個出版的成就也不錯。

雖然自己校過稿也能讓老師幫忙出版,但我短時間內不想再接觸小說了…

總之,這個案子加我有四位:
  • 小呈:程式、專案管理
  • Kocha:2D 生物設計、動畫、UI
  • Izumige:2D 物件設計、動畫
  • 霞貓棗子貓:關卡設計、音樂音效

跟課程不同,這案子的過程就是我用先前經驗 + 文章影片看到的知識規劃的,如果有能改進的部分再麻煩前輩指出。

情境設定
首先是情境設定,主題採用克蘇魯,原先劇情設計是「在深海巨型菊石中的城市」。畫了分鏡圖才知道大家理解不同,連菊石的存在方式(活、死、躺著、直立)都沒有共識 www

我們畫了三張,左上是我畫的,左下與右側是組員霞貓棗子貓與 Izumige 畫的,總之設定後來也砍跳掉了,因為沒實際需求。

所以需求是什麼?
  • 一個 2D 平台動作關卡編輯器
  • 在規定的時間內,主角在血量不為零的狀態下,從起點移動到終點為過關
  • 有可以丟擲拋物線物體攻擊的敵人
  • 玩家可以蹬牆跳
  • 教材用,使用者為授與學生

老實說,我原以為能收到比較正規的要求或企劃…但 errr,算了就隨我搞吧 :P

概念設計?
總之,不需要太多劇情相關的東西而決定砍掉省時間,但還是延續剛開始的情境下去設計。首先是方塊和生物設計。

組員 Kocha 繪製的設計草圖,方塊和生物。

組員 Izumige 繪製的設計草圖
備註一下,剛開始因為需求和效率原因有限制設計的精緻度,這實際是超出要求的,但也是真的很好看。

配色嘗試
讓美術進行配色嘗試,用三個基礎物件做三種配色變體。

再做些風格協調,方塊邊框、降低飽和、降低明度、柏林噪聲之類的。

最後再決定採用風格,感謝兩位美術耐心陪我這外行討論。

採用方案
組員 Kocha 與 Izumige  給剩餘怪物草圖上色。

量產設計
有設計主軸後就可以進入量產階段了,但在這之前有先跟教授討論過(一直有跟教授討論),他認為要求太低導致組員 Kocha 沒有表現機會。所以要求他重新進行怪物設計,並用更嚴格的過濾的方式(六選一)決定採用方案。

組員 Kocha 的怪物設計,基本怪物、垂直遊蕩、發射子彈、對周圍一圈造成傷害,一共 15 張草圖取 4,後三張也要求補充編號與關鍵字,方便溝通。

組員 Kocha 玩家角色設計,為了動化方便我決定採用 No.4 某種齧齒軟體生物並要求動作草圖。但霰彈槍的設計改掉了,教授比較喜歡噴吐攻擊。

組員 Izumige 互動點與方塊設計,存檔點、傳送門、更多方塊、門、加分道具與終點。跟教授討論後還畫了追加了怪物門動態。

素材化
有草圖、上色後就要他們先輸出素材測試,我就開規格啥的,做些…技美該做的事?組員也畫了動畫,但我打算放到下篇【學習】再一起展示。

UI 設計
組員霞貓棗子貓原先是企劃,專案前期的故事設定是他編寫的,但發現需求不符就廢棄了,後來讓他嘗試繪製編輯器 UI 草圖…emm 但效果不太理想。

關卡設計
跟教授討論後決定讓他進行紙上關卡設計,部分美術的方塊或怪物要求就是關卡草圖中提取的。以下幾個關卡都是組員霞貓棗子貓繪製的草圖,關卡敘述搬運自原始解說。

傳送門大廳 -
解謎關卡,玩家需要把左側的電源逆時針接上整張地圖的節點,並依序踩下巨型拉桿,最後接到右側的負極節點才能打開中上方的回去傳送門。

淤泥處理場 -
方塊說明:驚嘆號旁邊有個加號的是強化碎塊,它不會被玩家的攻擊打破,但會被砲打碎,裡面放的是輻射廢料(或淤泥也可以)會虛弱下面的小骷髏頭。
墨綠色路線:那是把電線通到電池負極後,水閘打開淤泥流下去的路線,單純是通關的小動畫,你要直接讓那個槽的淤泥消失也行。

海牢關卡 2 -
玩家會遇到兩個囚犯,他們沒有用途,只會死跟著玩家,在最後開大鐵門時,兩個囚犯不會跟著玩家進入最後拉桿的區塊,他們會下跪膜拜巨人,這時巨人的眼睛一亮,玩家才可打開拉桿釋放巨人,他會在最終大戰幫助玩家一把。

海牢(終) -
觀察者:類生物(無敵),會觀察各種生物的特徵,有兩種行為模式,一般&清除,一般模式:玩家或任何生物移動在其視野內會睜開眼睛並在1秒後朝向原先觀察的位置發射死光,3秒無動靜將再次閉上眼睛。清除模式:當玩家觸發3次一般模式或碰了感應棒棒會啟動10秒清除模式,在這模式下整個關卡的觀察者他們雙眼會發光,並朝水平垂直兩個向量(十字)每1秒發射死光。
跳躍或跑步2次(算在一起)觸發一次觀察者一般模式
本關主題:潛行脫逃

彈跳水母關卡 -
長條形關卡,但說明是影片,我懶得搬了 :P

輸出測試版後也讓他用基礎方塊(一般、彈跳、死亡)設計了幾關。

程式部分
最後就是我的程式部分,剛開始想趁機會驗證我對模組的理解,重新找了模組資訊但沒有新發現,去年的文章總結差不多了:【筆記】如何讓遊戲支援模組開發

我拿之前做的框架修改,自己定義資料結構後用 StreamingAssets 讀定義檔、關卡、腳本、圖片等資料。還有用 Lua 實裝行為,生物、方塊等,透過定義檔抓取函式,把行為外部化,程式碼變輕量很多。

最後用可以模組的結構完成基本的玩家(螃蟹)移動、攻擊跟彈跳方塊的效果。

然後就開始量產各種方和生物?沒,花了一堆時間處理資料載入框架、資料結構定義後我決定砍掉重來。原因有三個:我嚴重低估允許模組的難度、嚴重低估企劃的重要性,以及嚴重錯估真實需求。

之前的文有提過不少注意事項,但果然實際搞過才知道難度多高,我對資料驅動 (Data-Driven) 的實作還不熟悉,對 Lua (XLua) 也還不熟悉,串接 C# 與 Lua 的程式挺粗糙的,權限、封裝…bababa 之類的一塌糊塗,程式碼的維護跟擴展是個惡夢,硬要繼續不會有好下場。

還有定義檔也不知道要有哪些屬性,血量、圖片、行為啥的都是遇到才補,加上程式擴展性問題就變成一個惡夢。這裡就要帶到企劃的重要性了,這些需求應該在一開始就預估好才對。

跟專業企劃合作後,再來跟學生組隊的落差感真的很大,無論是山鴉還是入學前的工作我都只要專注在實作上,但這個專案我接過了企劃工作。

沒有要責怪原企劃組員的意思啦,只是分享一下心得。

原本找對方(這專案的組員都是我指名的)負責企劃是因為他有不少遊戲經驗,從王國之類到紅白機遊戲都有,也有用 UE 做過遊戲…但他在企劃方面的經驗還是略顯匱乏。

剛開始的企劃書中有太多非必要的世界觀、角色設定,而編輯器的 UI 草圖…先不論看起來怎樣,主要問題還是不符需求,他繪製的參考是 Minecraft 之類的背包介面,但我們需要的會更接近 Rimworld、Oxygen Not Included 這種上帝視角的編輯器。

而怪物與方塊的設計美術們也能獨立進行,不需要企劃額外開,所跟教授討論後才決定改變工作分配。

還是再聲明一次,沒有要責怪組員的意思,對方在共事的表現都有達到應有的態度,只是企劃專業上被我用高於學生的標準審視才有這些評斷(而且這個標準我也達不到),更何況學校這學期才教企劃。(所以為什麼還沒教機制啦???)

總之,真正想說的是我清楚企劃的重要性了,作為走在團隊最前頭的人,他得清楚具體方向並做出規劃才行,而不是走一步算一步。這幾次幹過也逐漸了解難度,好企劃絕對不是出張嘴就好…加油阿小呈,這也是你得學的。

順帶一提,我們的下屆一年級就學企劃,這樣好多了。

回到專案 ~

最後是需求問題。老師的要求是「關卡編輯器」,只要能編輯關卡就好,不用編輯玩家、敵人、腳本和圖片,其餘東西只是我私心想嘗試罷了。雖然有學到東西,但從專案管理的角度來看則浪費了整個月的工作量,或者說是賠了整個月的資金(如果有),還好這不是商案…

但之前工作時也犯過一樣的錯 D:

最後我用基礎的 Resources 載入、用 Prefab 組合物件,以及用繼承實作不同行為。簡單快速也沒技術深度,但是符合需求的樸實方案。

關卡編輯
總之目前看起來像這樣,從列表新建關卡,左測是不同類別(圖層)選擇,中間是物件選擇,右邊是選取的物件,可以用滑鼠在場景中繪製繪製。

關卡遊玩
從列表載入關卡,抵達終點就算贏,如果倒數歸零、血量歸零就輸了。

關卡檔案用 Json 存在 StreamingAssets 中,只要打包資料夾就能分享自己的關卡給別人了。

其餘部分也沒什麼好提了,玩家控制是拿別人的來改的,剩下就是一般的平台跳躍內容。


人培產學
最後還有個產學案子,這學期的第三個專案,獨立遊戲的商案,也是最硬的一個,對內容有興趣而且能學東西就接了。遇到問題有人可以諮詢,藉機認識了不少前輩,跟專業的合作起來真的舒服。遊戲內容不方便公開,就說過程接觸到的新程式玩意。

資料庫
SQL(Structured query language)一種結構化搜索…語言?總之跟前輩討論時聽到的,他建議我用用 SQLite 做本地資料庫,雖然他也說實際資料量不一定大到需要資料庫,但還是找資料研究了,畢竟 Why Not。

弄懂一些原理後找了插件來用: SQLite4Unity3d ,畢竟目的是達成功能,也不用重造輪子 :P

參考資料

XLua
我在這案子也用到了 Lua,但是在地圖編輯器踩雷後使用的,所以比較有經驗了。有點難形容差別,但把部分行為外部化寫起來真的更…輕?沒有範例很難展示,有機會再寫筆記吧(RRR 好忙)。

參考資料

模組化
之前看到一篇分類程式水平的文章 Unityにおける「設計レベル」を定義してみた,裡面把能力分成六個等級,並給每個等級提供對應的建議。

我大概在 Lv2 吧,所以去找了一些模組化相關的資料,還有 Assembly Definitions 相關的資料。大多資料都指向 Interface 吧,但我也要多實作才有辦法靈活應用。

參考資料

單元測試
最後是單元測試,去年就知道但遲遲沒學,也趁這個案子嘗試了一下。簡單來說就是把系統拆「單元化」獨立測試,並預定一些情境自動運行,就不用每次手動測有沒有東西壞了,重構後按個按鈕就知道。

如果不夠單元化,不能測試怎麼辦?那就是真正的重點了,為了方便測試我得把程式拆的更細,用 Interface 抽象化部分系統的連接,間接導致程式寫的更乾淨。方便測試的程式就是更模組化、更好維護、更好擴展的程式。

測試的效率提升只是好處之一,更大的幫助是對我程式寫法、架構的意識提升,真該早點學的 D:

參考資料

畢專計劃
又一個月過去了…關於前幾個月的焦慮或低谷啥的,這段時間有想通一些東西,但我打算到下一篇【生活】再聊,再等一會看有沒有更多想法,感謝留言和私下鼓勵的巴友,真的大感謝 :D

這篇來談談新計劃,關於畢業專題。

不確定有沒有提過,我原本對畢專組隊沒抱多少期待,也對要做的東西還沒想法,就是最後單幹也行的心態…畢竟要單幹也不成問題。我也不像其他學生有證明能力的壓力問題,不用靠畢專定生死,所以畢專也只是另一個專案罷了。

但這是原本的想法,現在不是了。

根據幾學期的觀察跟合作經驗下來,自己有了明確的判斷標準,也認識幾位能力跟做事態度都信得過的同學,前陣子把他們都找來組隊了。

目前有兩位 2D 能負責原畫、概念設計,兩位 3D 能專職建模動畫等,有必要的話我跟 2D 們也都能支援 3D 工作,剩一個位置給程式候選。以我的標準而言,認識的人裡的各項頂標都被找來了。

雖然實際狀況要等湊在一起才知道,但我是真的期待了 :D

至於專題內容,機制與劇情還不確定,反正絕對不是多人遊戲、動作戰鬥、銀河惡魔城、開放世界或其他不可能在專題規模做好的東西。可能會是走路模擬器、純動作遊戲(無戰鬥)、解謎或乾脆文字冒險等等。

程式面沒有什麼炫酷的東西好做,我可能會把主程式交棒給人(如果有人選),頂多下指導棋,而就算要自己扛程式,在同時兼顧企劃、專案管理和技術美術的情況下也很難寫出多複雜的東西。

我們打算把重點放在視覺風格的呈現上,主要參考奧術、Road96 和 Disco Elysium 的美式風格。或者說,因為重點在美術所以得減輕程式負擔才行。
(如果各位有看過相似風格的動畫、遊戲也麻煩告訴我,感謝了 ><)

我也還沒把握做好,目前的計劃是三上要跟組員驗證完製程、渲染相關的東西,確定需求都是可行的,完成長長的檢查清單後開始畢專,我們得早一年開始。

除了程式、技美之外,我現在更需要企劃和專案管理的知識,從上次場景到這兩個專案都給了不少經驗,但要學的還是好多阿。

是說,如果美術遇到所謂「狀態不好」的問題該怎麼辦,這是跟組員討論時聽到的可能狀況,輕則微拖重則難產。
  1. 美術自己該怎麼辦?調適方法之類的?
  2. 身為專案管理該怎麼辦?工作分配的影響、時程的調整之類的?
  3. 身為領導、組長角色該怎麼辦?組員間的協調或鼓勵之類的?

除此之外,還有什麼管理團隊需要注意的事?有什麼該要求、不該要求的事情?目前特別要求的有三點。
  1. 所有人都要會操作 Unity,有需要我也能教,UI 啥的美術直接進引擎調整效果最直接
  2. 所有人都要寫紀錄文,這是低成本卻有無上限回報的事,同時幫團隊鋪成社群宣傳
  3. 要求只做四十分的時候不能做到六十分,畢竟時間有限的情況不可能什麼都做到最好

如果學長姐、前輩們知道其他需要注意的事也麻煩題點一下 ><

好忙,這學期又更忙了,一學期三個專案真的要命,尤其兩個教授的案子標準又更高。一般科目水過就好了,編輯器以製作效率優先,要在下個月內結案免得撞期末。最硬的還是獨立商案,需求和水準都有更高要求,這學期恐怕做不完(但也不要求就是了,對方會配合我的時間)

半學期過去了,雖然在負荷範圍內,但在處理考試、報告、平時作業的同時做兩個專案真的累,是我高估一學期的時間、高估自己的做事能力,還是高估了自己的取捨能力?

正式畢專時可不能犯這種個人錯誤阿…到時還有五個乘客在。


引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5925138
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 4 篇留言

bogay
好奇問問,你使用 SQLite 後認為差異在哪?

另外雖然跟團隊管理沒啥關聯,但提點建議:
1. 研究看看 CI/CD:忘記阿星的影片中有沒有提到相關知識,但你應該之前也有接觸過?我認為把測試 -> 建置 -> 部署 / 釋出的流程自動化會有助於大家檢視開發過程中的結果是否符合預期,不然手動處理的話不大好追蹤每個版本的執行檔
2. 定義 workflow / 做 code review:雖然有 CI 之後可以比較容易保證推上去的 code 不會壞掉,但有做好 code review 的話理想上可以提升程式碼品質,也能促進知識流動,這點在有人臨時出狀況時會有幫助的

比較偏程式撰寫方面,你文內也有提到要降低程式負擔所以不確定是否符合團隊狀況,但我覺得花點時間嘗試應該還是有效益啦

04-30 22:02

樂小呈
老實說,我感覺不出差異,可能是用插件、自己封裝加上沒有深入研究的關係05-01 23:26
樂小呈
我用 Interface 把資料庫功能抽象了,而接口調用起就像 List Where 那樣,也不用自己寫 SQL 查詢命令,所以感覺...就像用 C# List 一樣05-01 23:26
樂小呈
CI/CD 第一次聽,感謝資訊 ! 我學得太雜了其實漏很多知識 QQ05-01 23:28
樂小呈
會盡量嘗試,尤其招到另一位程式進團的話,也希望盡量走正規流程05-01 23:30
樂小呈
Unit Test 寫起來 !05-01 23:30
%%鼠 拒收病婿
好喜歡你們的開發流程,看起來好專業[e32]

04-30 22:08

樂小呈
嘻嘻,但我也不確定正確性,之後要找開發流程的資料來讀才行05-01 23:22
矮鵝
美術和關卡設計會不會太有料了,還以為是那間遊戲工作室的專案分享~~

04-30 22:22

樂小呈
過獎 ><05-01 23:22
樂小呈
但這還是省略了不少,之後讓組員也寫應該會更豐富 ~05-01 23:23
那由多カルタ
遊戲界未來的新星,希望小呈能一直保持這樣的熱忱[e19]

05-05 10:49

樂小呈
感謝鼓勵,我會加油的 :D05-05 12:32
樂小呈
希望未來的經濟能維持夢想[e22]05-05 12:32
我要留言提醒:您尚未登入,請先登入再留言

23喜歡★angus945 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【又一年】小屋五周年,社... 後一篇:【生活】 朋友、聊天和谷...

追蹤私訊切換新版閱覽

作品資料夾

d88931122所有巴友
歡迎諸君來參觀老僧小屋,內含Steam與Google Play遊戲、Line貼圖、3D角色模組看更多我要大聲說8小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】