GameJam48小時遊戲SEDs開發總結
概述
這是參加2015年7月在魔都舉辦的為期48小時的Gamejam後的總結報告。
當時我們是2個人預組隊。製作的遊戲是一款街道異常應對系統的模擬類遊戲。n
那麼SEDs是一款什麼樣的遊戲呢?
SEDs是一款讓玩家扮演人工智慧應對街道上發生的異常狀況的模擬類遊戲。
它講述了一個關於覺醒的人工智慧和它所接觸到的人們之間的故事。這個遊戲最初的靈感來源自 "Paper, Please",檢查過境人員,而我們這裡檢查的是街道的狀況。
故事梗概你在遊戲中將扮演由即將被撤銷研究經費的Claire博士開發的街道異常狀況處理的人工智慧「SEDS」。你所控制的人工智慧SEDs當前處於測試階段,並被使用在小鎮的的街道上,研究所受到上級的壓力給予了兩周的試用期,並將根據測試結束後的評價決定是否將你永久銷毀。n
你將通過監聽、掃描、報警等特殊手段,以及越權控制十字路口的紅綠燈(車輛和行人的)等普通手段來應對街道的各種異常狀況。n而錯誤的報警和紅綠燈控制行為會降低你的評價。n在測試進行期間,製造者Claire博士將會每天從這個路口經過。然而就在測試工作進行到第6天一切進展順利時,你突然發現自己無法識別到Claire博士的信息了。n
一起詭異的街道事件的發生讓SEDs監聽到了一起和Claire相關的謀殺計劃.... 而你即將被捲入了一場由反人工智慧組織策劃的巨大陰謀之中。在這樣的狀況下,你需要在保護自己不被銷毀的的同時(通過系統評分),挫敗謀殺Claire博士的陰謀。 我們在這裡對這次遊戲的整個製作過程進行了一些記錄,總結和反思。遊戲的準備和提案
10號到會場大概快7點左右公布了這次gamejam的題目。
題目是個#的符號。gamejam的題目還真有點高考作文題的味道233 聽到題目後大概2個人結合Google的資料搜集,做了一些簡單的討論。n
#字能讓你想到什麼?老實說我挺不擅長這種抽象的命題,但還是要硬著頭皮上了。先來談談對於這個符號的看法,你可以把它理解一個具有含義的符號,也可以把它理解為一個圖形。
如果用中文來讀的話是個"井"的象形文字。從符號的含義上我們想了一系列關鍵字。n
如: 井口,生命之水,編號,匯聚,人類文明的發展,連接,漁網,農耕等。n而從形狀來看的話。這是4條互相相交的線。本來互相沒有任何交集的平行線在這裡交匯而互相連接起來了。n進一步也可以想到: 路,田,門,入口, 封閉的空間等。n其他: 通過井口可以通往深淵的地下。n遊戲的提案, 頭腦風暴階段
再往下進一步的腦洞就開了。我們試著從以上關鍵字展開聯想,考慮該做一個什麼樣類型的遊戲呢?n基於上面的關鍵字我們想了好幾個方案,不過要不太簡單要不就是對美術工作量要求過高難於評估。n大致有以下幾個方向的提案:n純機制遊戲方向n- 博弈對戰遊戲。
- #字射擊遊戲
- 這是一個限定時間的雙人對戰遊戲,玩家和敵人分別在屏幕的左邊和右邊用雙線子彈朝著另一頭的目標進行射擊。射擊中目標可以獲得分數,當雙線子彈相交的時候可以抵消掉對方的攻擊。
- 水上#字平衡對戰遊戲
- 在一個#字浮在水上的竹排上互相保持平衡將對方打下水的對戰遊戲。
- #字回力標亂斗遊戲。
- 用丟出去會飛回來的#字大風車手裏劍射擊你的對手的開放環境亂斗遊戲。奇怪的塊狀卡通風格。
- #字射擊遊戲
- 環境遊歷遊戲。 源自門的想法,你操作飛行單位穿過一個個的#字門。
- 街道異常管理遊戲 # 字馬路的異常管理遊戲。
- 一群小P孩跳井 沒深想,源自在鄉下的時候看到的廢棄的大圓井一堆小孩玩跳水遊戲的回憶。
- 越獄遊戲。反烏托邦題材,你是被關在#字大監獄的犯人,四周被高牆圍著,你要想盡各種辦法逃到牆的外面。最後你會發現,牆的外面是其實是更多的網格構成的監獄。
- 異次元殺陣遊戲。 源自同名影片。一個由網格構成的立體牢房。通過一個只能穿過一個人的路口連接,每個網格都有不同的陷阱。作為玩家的你會遇到不同的被關到牢房的人。你需要結合大家的力量逃出這個詭異的立體牢房並揭開隱藏在這個空間背後的真相。
藝術遊戲方向的思考
- 類雲圖的帶點Journey味道的文明時代AVG。
- 這個遊戲分為幾個時代體驗。用一系列不同時代相同機制的小遊戲展現人類文明的發展以及人與人之間的連接。分為原始時代,古代,中世紀,現代,宇宙時代幾個段落。原始時代玩家扮演出門尋找水源的青年。最終在路的連接4個村落的井口交匯點與其他村落來尋水的人相遇,並建立了幾個村落公用的取水井的故事。
- 明顯看起來太大做起來並不容易。
- 深井病遊戲。
- 你跳入深井口內深淵,不停地無限下墜,最後還是從上面落下來繼續落入深井。
大致思路是只有一個場景的機制遊戲為妙,但是場景要求有吸引力,優質的畫面,動態性,高完成度。n
經過一番糾結最後選了由@菠蘿 構思的內容和製作思路都相對清晰街道異常管理的模擬遊戲來做。n遊戲的概念設計
既然已經確定要做什麼,那下面就是概念設計工作了。第一天晚上在時間安排上主要是腦洞和概念設計工作。n
所以就有了以下遊戲預期效果的nmockup效果圖n在這個遊戲預期界面內你可以:n- Street View 操作相機移動拉近拉遠觀察街道的實際情況。
- Control View 對街道內的各種機器系統進行強制操作。
- Console View 查看顯示AI的對話和思考信息內容。
Tips
先為你的遊戲製作Mockup可以讓你預期遊戲最終可能達到的視覺效果,建立遊戲的感性認識。n
下一步是這個遊戲中的角色相關設定。n
基本角色體型走的是Q版2頭身。做的時候沒斟酌太多。n而為了生成四處遊走的隨機市民,我們需要對Avatar進行拆分設計。基本拆分分塊。頭,身體,下半身。n而被AI掃描後可以查看該角色隨身攜帶的物品。所以就有了以下概念設計。n女主角Claire博士的概念設計,其實是參考了遊戲《殺戮之心》女主角的Q版。n特殊行為的概念當環境中的角色出現特殊交互和特殊行為時頭上會顯示和該行為一致的圖標。 遊戲美術內容的製作過程市民角色n
基本的BaseAvatarn為了生成可定製角色,我們將每個avatar part可以配兩個服裝顏色和一個膚色,頭部則是發色和眼睛顏色。比如你要定製出一個飛機頭+裙子現身(什麼鬼!n
基本拼裝出的Avatar男女市民角色。n女主角Claire博士n
用於進行觀察和壓制暴徒的無人機 基本的角色行為動作nwalkn在遇到突發恐怖事件的時候的panic runn行蹤可疑的角色的sneakn市民和車輛系統
市民們和車輛的基本行為主要是遵守交通系統的管制,從起點生成併到達他們預期的目標自動銷毀。nAmbient單位的Spawn實現單位的產生我們為不同的單位準備了不同的Spawner。這些Spawn將按照一定的規則隨機生成不同時間差出現,不同行進速度,不同外觀樣貌的市民和車輛。n各種Ambient單位的Spawner,同時需要考慮Spawn單位的時候放置檢測。n為了保證Spawn的無規律性,做了4個角的Spawner負責從4個路口生成角色往其他路口為目的移動。n圖中黃線部分表示車行道的起點和終點。n單位的消亡單位到達目的地後即可銷毀,不過要注意的是在Spawner上要搜索所有可達的目的地隨機為普通市民指定一個目的地。n不同單位的尋路和單位間動態避障的管理尋路和動態避障問題基本Unity的Recast都已經解決了。這裡的重點是NavMesh的生成。我們需要為不同的單位指定不同的可行走區域。n針對這個問題進行分解,我們可以知道:n- 市民的可行走的區域為人行道,斑馬線。
- 而車輛的可行走區域為街道的馬路和斑馬線。
這裡將斑馬線分為獨立的區域的原因是因為我們需要避免共用區域的交錯。n
所以由以上信息我們可知:n在這個模擬環境內,我們至少需要3層不同類型的NavMesh用於區分市民和車輛的可尋路區域。n首先使用人的大小作為Bake參考生成。n人行道的NavMesh人行道+斑馬線的NavMeshn人行道+斑馬線+車行道的NavMeshn這樣我們的多層導航網格就生成了。n通過NavMesh.AreaMask配置好該單位的可行走區域。再使用NavMeshAgent.SetDestination(Vector3 TagetPos)就可以讓你的角色在考慮動態避障的情況下自動動態尋路到達期望的目的地。nTips你可以讓美術在製作場景的時候順道用來生成NavMesh的AreaMask一起給製作了。原型的時候自己拿個面作為做粗略標記生成就行。n運行效果人運作起來的效果n人和車一起行動運作起來的效果n動圖點擊可交通系統(Traffic System)的模擬下面我們開始實現紅綠燈控制行動的功能。n基本功能要點大致如下:n- 紅燈讓車行走,綠燈讓車停。黃燈減速。
- 車的速度管理。當車的速度到達一定數值的時候自動減速。
- 車起停的管理。
- 車輛遇到前面的車減速,應該跟著減速。前面的車因為綠燈停下來。後面的車應該跟著停。
- 車燈檢測需要提前減速。否則會向前滑一段滑過頭。
- 當紅燈觸發後,應該自動停止該車道的車輛Spawn。否則會累加車輛。
- 對於追尾通知需要檢測看到的車輛是否在我方前方。而應該檢測側面。
交通系統初步搞定
一個標準的十字路口的配置,觸發器的作用是用於檢測當過道上紅綠燈顯示的通行情況。當車輛和市民進入該區域後會自動根據自己的類型決定該路口通過的標準。n無人機的飛行默認延路徑在道路上空盤旋。需要操作的時候打斷當前行為。n不同類型的AI的實現只實現了殺手,造事者,小偷,回家的小孩群等幾種類型的AI。n基本上行為上實現就是徘徊,可疑行為,跟隨,偷盜或者刺殺行為。n小孩群組就是給一個初始陣型Formation, 然後高低比例隨機一個比普通人小的範圍。nAI導演系統的應用主要用在控制戲劇化上。通過Intensity曲線影響一天內車流人流的高低峰期以及突發事件的生成。n恐慌行為的實現每個角色都有個恐懼度。當有突發的異常事件時會在原地生成一個持續一定時間的恐懼源(Fear Source)。用一個觸發器來提示周圍的市民打斷或者掛起當前行為執行一個和恐懼源距離相對的恐慌跑動事件。當恐懼等級過高的時候則直接尋找一個最近的場景出口點跑出去消失。n社交關係系統這個功能沒做。來不及了。n每一個角色都是SocialActor。用觸發器感知附近或者前面的角色。如果2個角色有關係屬性,通過這個人配置個性和情緒參數。則觸發對應事件影響雙方行為。n後期特效差不多模型整合後開始上各種後期, HDR, Bloom,抗鋸齒,SSAO提高畫面表現力。用Enligthen Bake好LightMap。n光照完成
天氣系統和日夜變化TOD沒做,就手調了一版。天氣系統方面只有隨機下雨。對事件和環境也沒做任何影響,目前就是個純表現。n
白天n黃昏n最後丟上在IndieACE上的頁面,提交的版本參數配置有點問題,跑起來似乎會卡在某個環節。n
在B站放了個後來錄的小視頻【自製遊戲】【模擬】去年GameJam做的奇怪街道模擬遊戲SEDs_單機聯機。反思與總結以上就是我們在這打雞血48個小時內製作遊戲的過程。(一些小細節的實現就不細說了)n到最後結果我們並沒有在48小時內完成我們預期的目標。這是一個遺憾。n不過一個比較欣慰的是最後我們還是做出了一個我們自己覺得挺有價值把它做成更好玩成品遊戲的原型。n反思一下這個過程中我們做了不少錯誤的決策和存在不少問題。n我認為主要有以下幾點:n- 立意太複雜。
- 只有2個人的情況下在美術部分上花了比較多的時間。
- 藝術風格和選擇的故事,題材的契合度沒有太多考慮,想到就立刻弄了,風格和角色造型可能不大合適。
- 製作功能和內容的時序安排的錯誤。第2天的晚上應該先開始做玩家交互。
- 被放了鴿子少了個幫忙評估問題,調整, Polish和整合的人。
順道在數個月以後再看當初做的這個東西,覺得一開始訂立的複雜度簡直不可理喻。。。之後的GameJam儘可能把想法簡化了做起來就輕鬆多了。。。不過也算是一次嘗試和學習吧。
推薦閱讀:
※幀同步技術目標總結
※腦洞之奧丁晶石與北歐神話的聯繫(二)
※從遊戲設計上講,東方系列跟斑鳩哪一個好玩?
※(2/3) DOOM/Quake I/II/III 網路模型的演化
TAG:游戏开发 |