“真假話”與“元素骰子”:CIGA Game Jam 2022 參賽回顧


3樓貓 發佈時間:2022-07-02 17:39:29 作者:OwlB Language

前言

上週末參加了今年的CGJ,收穫還是挺多的。一方面,隊友之間雖然都是第一次合作並且還是線上,然而相互之間卻合作得非常愉快;另一方面,也去嘗試實現了一些自己的想法。
雖然我工作部分受到了絕大部分測評反饋的否定(哭哭),但是我個人還是覺得這次參賽對自己十分有價值,不枉自己花了這麼精力在這次比賽上。
隊伍名:阿貓阿狗組一隊
作品:《動物世界》
隊員:
  • 阿貓:領隊/程序/數值
  • 小強:程序/文案
  • 阿棒:美術(主要負責人物)
  • 小碩:美術(主要負責場景)
  • 我:程序/玩法
由於我們組的美術十分優秀,反饋來的評價也很高,我在這先展示一下他們48小時內的畫出來的部分素材
1 / 2

比賽題目

在這個圖片之前,主辦方還播了一段視頻。其實從視頻中可以看出,不論是惡作劇、魔術,還是一些日常小技能,都算是“Trick”。可以說內容可選擇範圍非常廣,個人覺得,比去年“拉火車”要好想很多。
我能夠馬上想到的遊戲類型就有卡牌類trick的《千爵史詩》(Card Shark)、視覺類trick的《紀念碑谷》、惡作劇類trick的《西遊梗傳》......亦或者對“Trick”做一個擴詞“Trick Or Treat”做萬聖節主題的遊戲。
但是,上述的想法要麼沒有新意,要麼比較空洞,且不少對美術需求比較大,所以最後就沒有選擇往這方向去想。
最後我們組選擇的是組合兩種玩法來完成這次的作品。一種是探索地圖的“真假話”玩法,另一種是戰鬥用的“元素骰子”玩法。
  • 真假話”玩法:你需要分辨NPC提供信息的真假,從而探索地圖。可以說不論是NPC的“假話”(Trick:詭計)還是去判斷真假的過程(Trick:技巧)都可以說非常的貼題。
  • 元素骰子”玩法:在擲骰子時,你不僅可以向自己一側擲骰子,也可以投元素骰子去對手一側破壞他場上的骰子,例如“火”骰子或被“水”骰子消滅。這種“投毒”的做法可以稱作是一種“花招(Trick)”。
由於這兩個玩法都是我提出來的,所以我這裡就講一下我的思考過程以及實現過程中遇到的問題。

玩法一:“真假話”玩法

其實在我之前寫過的 《一種關於“魔法陣”的遊戲玩法設計》中我就有提到過這個“真假話”的玩法,只不過沒有細化。
實際上這個想法的最初念頭是從很多歷史故事中來的。由於古時信息傳播效率低下,人們能獲取到的多是流言蜚語,眾多歷史人物由於對繁雜的信息做出了各自的判斷,從而影響了自身不一樣的結局。
哪怕是現如今信息爆炸的時代,盲目偏聽的人也不在少數。所以,去設計一款“情報分析”的遊戲玩法,也是有著一定的現實意義。
對於這個玩法,我最開始腦中的畫面就是“運籌帷幄之中”,是一個沒有上帝視角的遊戲體驗。一方面,如果洞察了全局也就無所謂“分辨真假信息”;另一方面,整個流程在一個固定區域內,遊戲所需要的素材就相對較少,體量就不會太大,也比較好實現。實際上,就有一個十分類似的遊戲《Radio Commander》,其整個遊戲流程就是指揮官坐在營帳中,通過無線電指揮小隊作戰。
1 / 2
Radio Commander
那麼這裡的“情報分析”玩法是否就是做個“情報推演”呢?我認為既然我們是做遊戲,就應該以趣味為主,而不是一味地去做一種“兵棋推演”的變種。
這裡舉個例子,《資治通鑑》中有這麼個故事:有下屬報告一頭驢被割了一隻耳朵。當眾人都不解時,首領做出了判斷“有奸細偷偷來打探動靜,割了驢耳作為打探憑證。敵人馬上要來襲,大家做好準備。”不一會敵人果然來襲。
司馬楚之別將兵督軍糧,鎮北將軍封沓亡降柔然,說柔然令擊楚之以絕軍食。俄而軍中有告失驢耳者,諸將莫曉其故,楚之曰:“此必賊遣奸人入營覘伺,割驢耳以為信耳。賊至不久,宜急為之備。”乃伐柳為城,以水灌之令凍;城立而柔然至,冰堅滑,不可攻,乃散走。
這是一個很有趣的片段。但是現代的兵棋推演自然不會把“一隻驢耳”作為情報。然而我們卻可以將類似的有趣片段做入遊戲中。(然而現代戰爭中還是有一些類似的片段,比如當下的俄烏戰爭中,有烏克蘭士兵在情報匱乏的情況下,以摩托艇的轟鳴聲作為俄軍渡河的信號,最終效果非常的好。)
上述這些都比較空洞,所以我就嘗試做過一個demo,以邏輯推理題中常見的“真假話”為“情報分析”的對象,也就是“多句假話中有一句真話”或者“多句真話中有一句假話”。
真假話demo截圖

真假話demo截圖

這個demo做下來的感受就是,如果要做一個“運籌帷幄”的遊戲體驗,那麼一定是需要非常多的遊戲內容,因為需要展示的內容就已經不少了,而這些內容背後的關係就更加的複雜。
所以,這個工作量不太適合48小時的Game Jam。
於是,這次Game Jam中“真假話”我只是提議,因為這非常符合這次的題目“Trick”。具體的細節實現是由隊中的阿貓和小強去完成的。他們是以文案為基礎,做了一個“真假話”玩法,類似於《隱形守護者》這類的AVG。

玩法二:骰子撲克

既然已經有了一個地圖探索玩法,我就著手去做一個戰鬥玩法(事後想來,一個48小時的Game Jam去做兩個玩法,不是什麼好選擇)。
由於我感覺我們的遊戲非常像《Curious Expedition》,所以我便受到影響想去做一個“骰子”相關的玩法。
1 / 3
在網上搜尋了一圈之後,我發現了“骰子撲克”這個老玩法。《巫師1》中也有這個小遊戲。
“骰子撲克”的玩法是5枚骰子,最後按組合價值比大小,組合價值從低到高依次是:
  •     對子(同樣的圖案有兩個)
  •     兩對(有兩對同樣的圖案)
  •     三條(同樣的圖案有三個)
  •     低順子(KQJ紅黑)
  •     高順子(AKQJ紅)
  •     葫蘆(一圖案有三個,另一圖案有兩個)
  •     四條(同樣的圖案有四個)
  •     五條 (五個都是同樣的圖案)   
這個規則對於國內來說,還是比較冷門的。以至於我在《巫師1》中第一次接觸這種規則都十分懵,我一直以為骰子就是比大小。
在瞭解玩法之後,其實可以看出這個玩法十分簡單,所以可拓展的地方也很多。由於我之前一直在思考類似《noita》裡面元素反應相關的玩法,所以這裡我一下子就想到了“元素骰子”這個概念。
在骰子擲出去之後,不同骰子會相互反應,形成新骰子,最後依據場上還存在著的骰子來評判輸贏。又因為這次題目是“Trick”所以自然而然的就想到了“出千”的內容。一個“相互投毒”往對方場上投元素骰子來干擾的玩法就出現在我的腦中了。
在準備著手開始實現時,一個最基礎的問題就出現了:骰子如何投出去,又如何碰撞?“擲骰子”實際上是個3D動作,如何反應在我們這個2D遊戲裡呢?
我一開始是想做個“3渲2”,但是我自己之前沒有這樣的製作經歷,不確定能否在48小時內完成;然後的想法是做一個2D的骰子碰撞,因為我在itch.io上看到了相類似的實現例子,但是依舊是擔心自己不能完成,所以也放棄了這種實現方式;最後選擇了最簡單的實現方式,就是把戰鬥的部分全做成UI,這樣也儘可能少的與其他模塊衝突,骰子相互碰撞就固定為按排列順序依次相互碰撞。
由於事後反饋中,我做的這個戰鬥部分可以說是“差評如潮”,所以我這裡就反思一下,回顧我在實現過程中遇到的一些問題:
1. 骰子數量與傷害計算
在“骰子撲克”中骰子的數量是5個,最後輸贏的判斷是5個骰子的組合類型。由於加入了“元素”概念,所以在對局結算是會出現同元素骰子組成的組合,這種“元素組合”的分數自然應該要比非同元素的要高。
  • 骰子組合類型:是指骰子是對子還是順子這類的組合,價值差異類似“骰子撲克”。
  • 元素加成:是指該組合中全部骰子都是一種元素,則會有數值加成,類似於同花順與普通順子的差別。
  • 弱點加成:是指如果該組合即使同元素又是敵人的弱點元素,則會有數值加成。
為了凸顯這種元素組合,就需要在場上有更多的骰子,特別是還有往對方一側擲骰子的機制在,那麼場上的骰子數量就變得多了起來,遠多於“骰子撲克”中的數量。
最後,我決定每次擲向一側的骰子數量為8。又由於對局人數是2,所以一側最多會結算16個骰子。
這樣就帶來了一個直接的問題,這麼多骰子,如何對結果進行結算?
我確實沒有想到特別好的方法。我這裡的處理方式是,分別根據點數和元素種類進行桶排序,然後進行結算。為了方便實現,我也忽略了一部分重複計數的問題。
引入元素為參考的桶排序的原因是我要判斷是否有“元素順子”,只有先判斷完是否有“元素順子”,我才好去判斷是否有“雜順子”。這裡為了實現方便,我判定至少5個才算是順子。實際上,“骰子撲克”裡3個骰子能連起來就算是順子了。
2. 元素種類與元素骰子碰撞結果
最開始我只想了3種元素:火、草、水。元素骰子相互碰撞的結果也很簡單,就是火骰子碰水骰子就消失,其他的類推。實現起來也很簡單,就是如果火骰子碰水骰子就原地消失,不參與結算。至於是否有連鎖反應,也就是往一堆火骰子裡扔一個水骰子,是否所有火骰子都消失?我這裡是否定的,只要與其他骰子碰過一次就靜默。由於我這個是按順序碰撞,所以也比較好實現(實現的時候我還放了個遞歸進去,事後發現其實也不是一個好做法,出了問題很難調試)。
我感覺元素有些少,然後跟組裡其他人交流了一下,發現其實他們設計了很多角色,三種元素是遠不夠用的,所以我就又加了電、冰、毒、金四種元素。
金元素不與其他元素反應,也就放在一旁。主要是我在加入冰元素時,我的想法與我的實現出現了比較大的出入。
我的想法是:“火”碰到“冰”,“火”消失,“冰”變成水;“水”碰到“冰”,“水”變成“冰”。然而我原來的實現中是沒有考慮到“會有新骰子在反應中出現”這一情況。雖然我最初的想法中有考慮過新骰子出現,但是在實現的過程中忘記了這個前提。
新出來的骰子位置放哪?又需不需要再跟別的骰子反應呢?在我實現到一半的時候出現這些問題總是比較頭疼。
3. 重新投擲
這種單局內有選擇的重投骰子,類似“叫牌”的行為,是對場上局面的再操作,也是從“骰子撲克”開始就有的老規則。而我也是在實現到一半,才發現需要加入這個功能。
這就導致我的一些界面顯示邏輯受到了改變,一時間也改的手忙腳亂。
4. 其他內容
像是敵人AI,我都沒有時間去做,也沒想好要怎麼做。最後兩小時我為了優化一下選骰子的佈局甚至還造成了一個“無法回退選擇”的BUG遺留在48小時上傳的版本中。
界面優化前 → 界面優化後

界面優化前 → 界面優化後

事後想來,實際上這個玩法有很多可以拓展的形式,因為其有趣的點就在於“如何觸發元素反應”和“觸發反應的結果”。這裡我就列舉幾種我想到的更有趣的形式:
  • 2D骰盅
2D骰盅

2D骰盅

  • 骰子列陣衝鋒
有點像《作戰模擬器 (Totally Accurate Battle Simulator )》。
  • 彈骰子

總結

首先感謝同隊夥伴們的理解與支持。對於大部分人不太滿意我實現的這個玩法,我也十分抱歉。
不過我自己還是認為這兩個玩法的可塑性非常強,如果設計得當,應該能被做一種很有趣的玩法。

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