天天看點

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

4月18-21日,由網易互娛學習發展舉辦的2022N.GAME網易遊戲開發者峰會線上上舉行。

在2022的N.GAME上,共有來自海内外50多名嘉賓參與分享,包括但不限于2021TGA年度遊戲《雙人成行》的主策Fillip Coulianos、《如龍》《審判之眼》系列制作人名越稔洋,《王牌競速》制作人江宇源,《無盡的拉格朗日》主設計趙振濤等。

本次峰會的日程安排也圍繞不同的話題展開,包括創意趨勢、技術驅動、藝術打磨、價值探索等主題。

在4月18日“創意趨勢”的主題下,《雙人成行》的主策劃就他們開發這款年度遊戲的經曆進行了分享,包括他們是如何利用腳本實作遊戲設計與程式協同工作,又是如何将玩法與故事融合,并最終落地的。

為優化閱讀體驗,手遊那點事對分享的内容進行了删減,以下是演講全文:

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

大家好,我叫Filip Coulianos,來自瑞典斯德哥爾摩一家名為Keepsake Games的工作室。這個工作室是和幾位老朋友新建立的,目前我們正在開發一款全新的科幻合作冒險遊戲,它值得期待,但并非今天我們要談的内容。

今天要談的是我開發《雙人成行》的經曆,我将從策劃的角度,介紹我和設計團隊是如何協作,并落地這些五花八門的玩法和機制。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

首先,我會介紹《雙人成行》的誕生背景,然後是一些制作過程中的技術分享,最後,我會結合設計案例,介紹一些遊戲裡的創作過程。

那麼先從頭講起。大約在8年前,Hazelight工作室,也就是《雙人成行》的開發者在瑞典斯德哥爾摩成立了。那時候我們在制作的一款遊戲名為《逃出生天》,也是款雙人合作遊戲。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

《逃出生天》的特殊之處在于需要多個玩家配合才能通關。遊戲發售後,這也受到了玩家的喜愛。也正是玩家們的欣賞才讓這款遊戲脫穎而出。是以《雙人成行》沿用了多人合作這一點。

開發《逃出生天》的過程中其實有很多可以借鑒的點。因為《逃出生天》是款多人遊戲,必須要和朋友一起玩,我們還支援了網絡合作模式,這在技術上是比較大的挑戰,《雙人成行》亦是如此。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

并且,這兩款遊戲都是分屏顯示,都是線性叙事。前者是關于兩個罪犯逃出監獄并複仇的故事,因為他們要報複把他們關進來的人,是以這是一個非常線性的故事,叙事手法與電影更接近。《雙人成行》也繼承了這種叙事模式,是以兩款遊戲都是線性的,從頭到尾講一個故事。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

但是《雙人成行》在玩法方面有了更多花樣,你可能沒有意識到,但新玩法的确占了很大比重。我之是以單獨強調這點,是因為從技術角度看《逃出生天》和《雙人成行》有不少相似點。

在《逃出生天》開發收尾階段,程式團隊碰到了比較大的問題,發現他們的速度跟不上開發需求了,因為《逃出生天》玩法類型特别多,有射擊戰鬥、有飙車追逐,很多獨特的玩法,但做出來隻能被使用一次。

而且設計團隊又在不斷修改需要,經常變更設計方向,這讓程式很難高速工作。是以他們着手開發一些新的東西,他們在虛幻引擎(UE4)裡面支援了AngelScript腳本語言,UE4是《逃出生天》和《雙人成行》都在用的引擎。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

我們的程式制作了一個插件,這個插件實際就是C++和藍圖編輯器之間的快速腳本層,這樣UE4裡就可以寫AngelScript。這就非常有意思了,因為我們就可以用腳本語言進行快速程式設計。在遊戲運作的同時,修改腳本并儲存,修改的内容也會立刻出現在螢幕上,回報十分即時。

這個功能特别棒,且非常可靠。

當然這件事也引起了我和設計團隊的注意,這種腳本語言非常有用。就我個人而言,為了開發獨立遊戲,我曾自學了程式設計。但我覺得AngelScript腳本不僅對程式員有用,也對設計師有用,可以幫我們制作玩法原型。

我感覺團隊裡應該有一半的人都對這個腳本很感興趣,至少我是打算用一下的。

是以在開發《雙人成行》的前期,程式同僚會給我們科普腳本程式設計基礎,教會我們如何程式設計,如何使用這個神奇的工具。是以AngelScript很早就融入了我們原型階段的流程。

開發《雙人成行》的早期,設計還沒成型、我們也不知道遊戲會長什麼樣子,那時候我們會坐下來,嘗試各種玩法,并不太在意可行性,而是專注于這個合作玩法是否有趣。

然後,我們會用AngelScript把想法寫出來,作為鍛煉自己使用工具的實踐,通過塑造各種玩法,嘗試表達各種理念,我們開始了解遊戲的趣味,遊戲的故事也這樣逐漸成型了。

這時候我們意識到,那些腳本系統原型讓設計師可以全程參與玩法的開發。

通常情況下,設計師最多做個小原型,然後交給程式開發剩下部分。這樣交接流程無法避免,但現在我們可以不用這樣了,這是個巨大的轉折。因為這意味着想出這個創意的人,可以從想法到落地,全程參與。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

還有一個重要利好,就是負責玩法的程式同僚和負責關卡的設計同僚,用上了同一套工具。這種變化也很不錯,我們是關卡設計團隊。但現在,我們可以一邊程式設計一邊設計了。設計師、程式職業的界限變得模糊了。大家都變成了負責創意的人,邊構思邊實作。

我認為這是一種很棒的變化。因為通常大家都有具體的頭銜,然後會圍繞某種邊界展開工作,

比如我是動畫師,就不考慮非動畫的事情。當這種考慮範圍變得模糊之後,大家都會去思考使用者體驗。是以我認為這種變化是非常有益。

那我們工作流程變成什麼樣了呢?這裡用一個案例,從頭到尾複盤我們們的創作流程。

首先遊戲的故事背景。我們會做一個架構背景,為整個遊戲提供資訊。這時候我們的重點在于故事劇情,而不那麼關注具體玩法和關卡設計,主要講的是背景設定和故事。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

故事通常被分成幾個章節,這裡我們來看其中一個案例「羅斯的房間 · 恐龍樂園」。根據遊戲進度,這個時候的玩家,或者說遊戲裡的角色,還沒和好如初,而且還沒适應這個身體被縮小的奇妙世界。

是以我們在遊戲前期的思路就是,保持關卡不變,但加入新玩法,讓玩家習慣操作,同時新增一些别的内容。

那參考故事背景的設定,我們知道羅斯的房間是一個玩具屋,那玩具屋會有什麼好玩的?

我們就想了各種主題,然後想到了玩具恐龍。這是個很常見的玩具,大家都很喜歡。然後我們就圍繞恐龍進行頭腦風暴,我記得提到特别多的就是長脖子雷龍。

而且,從叙事的角度看,我們已經設定了一輛玩具火車穿過房間,而玩家将會乘着火車通過關卡,此時火車軌道會被各種東西擋住,移除阻礙才能繼續前進。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

我們就想,能不能用這頭長頸恐龍,讓它清理軌道、移除碎片?

然後還有一個關鍵點,這對多人合作遊戲非常重要,就是如果某個玩家擁有特殊能力,那另一個也需要有參與感。具體到遊戲,這裡一人控制了長頸龍,那另一個玩家也需要事情做。

然後我們就想到了,能不能再搞一隻小恐龍,讓它橫沖直撞,把東西頂起來、翻轉過來,這樣兩個玩家就都有事情可以做。

當然這個階段還隻是随便構思,但接下來我們會立即開始制作原型。我會和一名程式員坐下來,分工合作。我制作其中一個恐龍,他做另一個,就這樣,隻需要兩個人。

《雙人成行》還有一個特點,就是幾乎每個關卡都有獨特的玩法。我們必須限制每個子產品所花費的時間,得嚴格排期。因為當你從零開始制作玩法的時候,很容易花上好幾周的時間,探索這個長頸恐龍到底能做什麼。但我們必須確定時間花在刀刃上,沒時間試錯。

是以每周都有排期,這周要完成些什麼。實際上制作整個場景,也隻花了我們幾周的時間,下一步就是開始落地。

而考慮到時間限制,我們意識到要大幅限制開發範圍,必須讓功能足夠簡單。如果長頸恐龍可以随意走動,随意把東西挪到别處,那将是巨大的技術挑戰。

是以我們決定說,行吧,物體隻能2D平面移動,這樣開發量就變得可控了。而對玩家而言,畫面可讀性會更好,操作也更容易了。

确定這些簡化内容後,我們開始評估另一隻頂翻物體的小恐龍。我們意識到,讓這隻恐龍到處走動也會構成問題,是以也進行了限制,讓這隻恐龍隻能在2D平面上移動。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

這時候,我們已經有一些技術實作的想法了。下一個難點是開發時間真的太少了。我們甚至沒時間給小恐龍加一個跳躍之類的技能,它隻能在軌道上面來回移動。

而且用頭撞的動作也比較難做。是以我們決定替換成地面沖撞,砸地面的時候障礙物會被頂飛。那終于開始有點進展了。

這時候一個星期過去了,我們在程式設計過程中把各種子產品組裝起來,得到了一個粗略的關卡,可以用來測試了。我們還意識到,需要一些錦上添花的元素為合作玩法做一些額外改進,讓兩頭恐龍感覺是互補的關系。大恐龍可以挪走物體,幫助小恐龍推進。

于是我們增添了一些亮點設計,讓大恐龍可以抓住某些物體,防止它們被頂飛。這樣,我作為設計師就能加入一些有趣的解密元素,因為大恐龍可以控制障礙物狀态,就需要和小恐龍配合,也就需要玩家之間溝通。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

完善這些設計之後,整個創意看起來就不錯了。我們就開始實作這一切,制作這個小型場景,把關卡和我們搞出來的玩法拼起來。

從設計師的角度來看,後續就是一些标準套路了。首先從教學開始,讓玩家操作第一隻恐龍,幫助另一個玩家獲得第二隻恐龍。第二隻恐龍就負責撞擊地面的動作。等玩家學會這些之後,再一步一步增加難度。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

當這些場景都做出來了,然後玩法感覺不錯了,我們覺得沒問題了,就會開始玩家測試。邀請一些工作室以外的人來試玩,然後觀察他們對關卡的反應。

我們重點關注的是,他們是否了解我們設計的流程、是否了解玩法。通過試玩,我們會發現一些需要補充引導的地方。比如鏡頭要偏移一點兒、螢幕上要加點提示、顯示按鈕對應的操作之類的,但總的來說,關卡的感覺不錯。

在前期,我們更關心玩家是否了解玩法,而不是更關注玩家是否會覺得遊戲有趣。當玩家能夠了解玩法了,我們會繼續思考故事設定:玩家怎麼到達這個關卡、過場動畫等等這些沿途會發生的事件。以豐富玩法,讓玩法融入到整個故事當中。

縱觀整個過程,有幾件事我特别欣慰,覺得特别好。

《雙人成行》設計與開發——如何将多種遊戲機制融為一體

首先是:我和程式坐在一起工作,我們用着相同的工具,效率得到大幅提升。另一件事就是,從最初的想法到最後的成品,我能全程保持掌控,這也是巨大的利好。

當然,一些具體的系統需要交給程式來做,因為邏輯比較複雜,但我覺得新的流程很棒,我們之前提到的工具允許設計師全程參與。

你可能會想,這算是冒了很大的風險吧?你一個關卡設計師,本來隻負責關卡,然後突然給了你這麼多其他的職責,除了關卡設計,還有玩法、程式設計等等,這不是有風險嗎?我也承認确實有。但是像這種遊戲,本來就需要打破正常,才能成功制作出來。

我有一個信條是:如果你每天去健身房都隻練相同的重量,你就無法發揮全部潛力。是以我認為這個流程裡比較好的一點,就是讓每個人都稍微離開了舒适區,讓大家發揮更多潛力。

而我作為一個上司者也是如此,看到團隊全身心投入工作,大家都在過程中獲得了成長。大家都把工作當成自己的事情,努力提升自己,也獲得了很多實際上手的經驗。

最後還有我剛才提到的簡化玩法的問題,通過限制範圍和簡化功能,這也有兩方面的好處——首先是開發時間,我們沒有很多時間給每個玩法。還有一個好處很少有人提到,就是玩法變簡單之後,溝通起來也更容易了。如果隻需要按一個按鈕,教會玩家也變得容易了,是以這也是很好的疊加作用。

我就說到這裡,感謝你的聆聽。

Q&A整理

問題1:你如何評估一個關卡的難度?

對難度的評估更多依賴玩家的回報與建議,當然會從統計學的角度出發。

舉個例子,如果是一款已經上線的遊戲,有成千上萬的玩家,或者隻是邀請一小部分人做定性測試,此時你坐在測試對象後面,觀察他們的所作所為。

當然有一點很重要,你得确定自己想要的是什麼,是簡單還是困難?團隊裡對難度的衡量标準是否統一,這樣才會讓難度的評估更容易實作。

當然,也得适當制定一些難度标準,比如在平台遊戲中,玩家跌落平台就算是失敗。如果我們想要遊戲更難一些,就可以設定玩家的每次挑戰最多隻能死兩次。這時候就需要團隊協商确定一個标準參數,之後的執行評估就會非常簡單了。因為你隻需要觀察玩家的反應,如果他在某個關卡不斷失敗,你就得思考是不是關卡太難了,還是說隻有這個玩家覺得難。之後你還得思考,這個玩家是否能夠代表你的目标閱聽人。

其中有一些不同的步驟,比如解謎關卡。在這種智力解謎的遊戲中,你需要考慮玩家被難倒的情況,這時候遊戲能夠給到玩家最多的思考時間是多長?如果太久了就是太難了。

是以總結一下,首先制定一個團隊内都能接受的難度标準,然後讓玩家測試,看難度是否符合預期,然後不斷調增,使遊戲更貼近你的預期。

問題2:你覺得多人合作的關鍵點是什麼?

當然就是“合作”或者“協作”。

這對玩家的遊戲體驗十分重要,作為設計遊戲的人,你得在遊戲中給予玩家合作的能力和空間,或者說給玩家某些需要搭配使用的工具,比如錘子和釘子,你放好釘子,我才能把釘子釘下去,這就是非常常見的協作内容。

但遊戲中非常需要鼓勵,有時甚至迫使玩家合作完成任務,當然還有進階的設計,就是加入一些需要把握時機的操作,比如你不能把釘子放好,然後十分鐘再回來釘釘子。你得確定玩家同時進行手頭的工作,讓他們溝通如何才能把釘子敲進去。

繼續閱讀