《Celeste》 開發者是如何精心制作“沖刺”的


轉自:http://www.gameres.com/804804.html

簡介與序曲

在Celesete里,許多細微的行動都是發生在轉瞬之間的,甚至往往比你想象中還要“轉瞬之間”。

這里是 [游戲機制設計] 專欄,由 Alex Whiltshire 邀請游戲制作人員們來分享、討論他們在游戲制作過程中遇到的困難、趣事和輾轉反側,以及他們是如何戰勝這些瑣事,打造出最適合他們游戲的機制的心路歷程。今天,我們有幸請到了最近冉冉升起的爬山-平台跳躍游戲新作《Celeste》的制作者們,請他們聊一聊精心打磨角色控制代碼所花費的心血。

上個月初,Celeste 的制作者們放出了他們游戲中最重要的一項機制--主角 Madeline 的角色控制機制源代碼。其中包含了 5472 行代碼以及數不勝數的細致的Variables (變量): JumpGraceTime, DashHJumpThruNudge 或 DuckFriction, 這些代碼使得Madeline無論是奔跑、跳躍、攀爬、還是沖刺都能擁有精確並且順暢的感覺,這些代碼使得玩家操控下的Madeline 仿佛有了自己生命一般靈活。

如果你不是一名程序員,那你就不大容易猜出來這些代碼代表了什么,有什么意義,所以我采訪了 諾埃爾.貝瑞 先生來解釋這些代碼是如何聚合在一起來使玩家角色的操控感“如絲般順滑”的。專注在她的沖刺能力上,經由反復考慮,最后出現在 Celeste 這款游戲中的機制,最終使得你能夠完美操控 Madeline,使她能做出玩家真正期望去做出的動作,而並不必須是你按下的按鈕所連接的動作。

就像你預料的一樣,Celeste 中的沖刺功能是一個短程的高速沖刺,主角 Madeline 能夠向8個方向自由地沖刺,在空中也能沖刺。但是想要再次使用沖刺技能的話,則需要主角接觸地面來重新充能沖刺能力,所以說在每次跳躍過程中她只能沖刺一次(使用后頭發顏色變成藍色)。這是個極簡的機制,能讓玩家瞬間就理解其含義,但是並不會馬上就把這個使用這個機制的技巧全部吃透。在此之上,整個游戲都是圍繞這個機制來創作的,將刺兒們擺放在環境的周圍制造出一個狹窄而危險的區域,僅給予玩家一息之機來落地、充能,重新喘息。

它的運作方式十分直截了當,當你按下沖刺按鈕的時候,她便在那一瞬間進入了“沖刺狀態”(A separate ‘dash’ state)。 她的頭發會變成藍色,會有一個計時器開始計時,她會被施加一個固定的速率(velocity),指向你按下沖刺按鈕時候的方向。接下來計時器會使你在恰好0.15s 內無法控制 Madeline(譯注:這使玩家不會因亂輸入指令意外改變沖刺的方向),在那之后,隨着沖刺速率降低,系統會漸漸將你對角色的控制功能還回來,直到她回到“正常狀態”。所有這一切都發生在不到一秒之內。

嘗試將每次“沖刺”做成完美

經典的平台跳躍游戲設計技巧

他們做了巨量的工作來確保整個沖刺過程感覺起來很棒、很順,最后巧妙小心地把控制能力,完整地,穩定地歸還給玩家。“如果你得等到整個沖刺時間結束,才能輸入其他操作指令,那么整個沖刺動作就會感覺很僵硬,” 諾埃爾.貝瑞說道。“這里面有許多微小的細節,是一般玩家不會去注意到的,除非是那些挑戰極速通關記錄的玩家。”

這里展現了Celeste的動作設計非常聰明的一個點,那就是游戲始終會把一個動作的“最終裁決權”交給玩家,來維持“操作感”。另外,即便 Celeste 確實很難,那它其實遠比那種需要精確、完美到像素單位級的變態游戲要簡單,比你想象中的還要簡單。“許多我們之所以這樣寫這樣一段代碼的意圖,是建立在我們認為玩家想要去做什么樣的動作的基礎上的。” 諾埃爾.貝瑞繼續說."我們想要把難度設計的重心放到環境和關卡上。"

他們也使用了不少經典的游戲設計技巧來潤色操控,比如“威利狼跳”,名字由來於威利狼在動畫里跑出懸崖范圍之后的空中動作。這實際上是讓系統賦予玩家角色一小段額外時間,可以在Madeline從地面走到空氣后的短暫時間內仍然做出跳躍動作。異曲同工的,當她的沖刺會因稍稍有些低而撞上牆的時候,游戲會調整路線,使她能夠“滑上”牆壁上方的地面,而不是撞到牆上卡住。

譯者補充圖:威利狼跳 (Coyote Jump)


“我們還得考慮究竟精確到多少個像素單位,當玩家角色在靠近一面牆或者浮於地板之上時仍能夠發出一次沖刺動作” 諾埃爾.貝瑞說:“雖然可能只有一兩個單位級別的差距,但是為了把握到正確的感覺,我們做了大量的測試來驗證。”

大量測試與細致微調

諾埃爾.貝瑞和它的設計師小伙伴 麥特.索爾森 會邀請朋友來參加測試,雖然他們知道,當新玩家們玩一個游戲的早期原型時,即便一次又一次地撞牆,玩家們也很難識別出究竟是游戲的那個部分出了錯。“但觀察他們的游戲過程,你就能看出那里運轉的不大對勁。有時候是關卡設計的問題,比如那塊牆本身有問題,有時則感覺是玩家角色摩擦力不足‘太滑了’,所以顯得不穩定,有時則簡單的是他們的跳躍不夠高,沒達到跳躍的最大高度。”

但同時 Celeste 對於會使游戲規則產生細微變化的地方十分小心。許多游戲都會進行一定程度的“操控器微調”,他們會微調系統讀取手柄、鍵盤輸入的信息,來使他們更大幾率符合玩家們實際想要去做的動作,而不是他們實際上按了啥。(譯注:就是說輔助瞄准系統)大多時候是這么做的:要么是修改那些輸出實際為零的區域(Deadzone),或者是增大那些常見方向(Direction)相關聯的角度參數,來使玩家能夠更容易向這些方向攻擊、沖刺。

而盡管普通玩家們抱怨最多的就是他們有時會意外地往不想要的方向沖刺, Celeste 仍只微調了一點點它們讀取搖桿信息的方式。因為游戲需要,沖刺功能可以向任何方向使用,所以游戲只有在賦予 Madeliine 能夠沖刺的八個方向中每個方向同等的權重時才表現得最好。呃,大致同等,事實上因為玩家很少向下,下左,下右方向沖刺,這幾個方向稍微有點更高的閥值。

“這是個特別棘手的問題” 諾埃爾.貝瑞說道,“我們可以做一些嘗試,來讀取一次操作指令輸入中的多個幀(reading multiple frames of input),但這也會導致其他問題,比如說如果求的是多個幀中的平均值的話,當玩家快速地輕打搖桿時,系統可能沒法讀取到正確的指令。而我們想要做到的是盡可能的精確,所以我們盡可能100%還原從搖桿上讀取的指令,而不是微調它。”


將一個機制從設計層面上調整到最佳

實際上,有許多設計上的細微調整都是在 Celesete 的早期開發流程中被決定的,而如果我們將時鍾撥回那么一點點,這款游戲的原型最早誕生於2015年,是一個 麥特.索爾森 與 諾埃爾.貝瑞 僅用了4天完成的PICO-8 jam game。但當他們着手開始設計關卡之后,他們必須要在對主角的操控做修改時加倍小心,因為任何對主角操控動作的微小改動都可能影響所有他們游戲中所做的其他設計工作。

“我們曾經在游戲里放過一個,現在來看比較糟糕的機制,但我們一開始還覺得蠻酷的。”諾埃爾.貝瑞回憶道,“當我們從PICO-8的原型版本轉移到現在工作的平台之后,我們增加了一個攀爬牆壁的能力給主角,然后我們立刻意識到需要給他加一個精力條、時間限制之類的限制條件。但我們同時也加入了這么一個設計:當你在攀爬牆壁耗空精力值之后你不得不在地面上站個一、兩秒種來喘氣,之后你才能繼續爬牆。我們甚至做了幾個關卡,是以這個機制為基礎而設計的,像是你必須要在破碎的牆、平台之中跳躍,然后找准時機喘氣來恢復精力。但是,這個機制其實完全破壞了這個游戲的“flow“。沒有任何人會覺得站在原地發呆發個兩秒是件有趣的事。所以我們不斷地減少等待所需的時間,然后當我們降到大概只有0.2秒的時候,我們才清醒過來,我們為什么還要做這個啊?” 諾埃爾.貝瑞大笑道。

他們倆也對於把游戲中不符合游戲機制,游戲玩法的東西移除一直是持一個樂觀、正向的態度的。而后來,在他們有了大量的關卡之后,調整的部分就主要是 麥特.索爾森 的微調了。“他好像甚至有把浮點數(floating)從0.2調到0.21來嘗試一個東西感覺起來對不對味,哈哈”

在Celesete里,許多細微的行動都是發生在轉瞬之間的,甚至往往比你想象中還要“轉瞬之間”。諾埃爾.貝瑞回想起來了他們設計 [綠色水晶] 時候的細節,當Madeline在半空中碰觸到一個 [綠色水晶] 時,游戲會將畫面幀“凍結”一瞬間然后重置Madeline的沖刺能力。最開始發布的游戲版本里,這個一瞬間只有0.1s,但是當他觀看了許多玩家的視頻之后,他仍然覺得那個持續時間太長了。現在的版本,這個一瞬間則只有0.05s,而且這個一瞬間仍然是肉眼可察覺的。“人眼的辨識能力真的遠遠比我們想象的還誇張。”諾埃爾.貝瑞說道。

殊途同歸地,Madeline 的單次沖刺過程僅僅持續0.15s,但是你卻能夠清晰感覺到這一瞬間的“份量”,這是由於許多小的、細微的視覺效果的支持。比如一陣疾風般的粒子效果在半空中留下她的沖刺軌跡,或是一陣微小的屏幕抖動,方向恰好是與Madeline沖刺的方向相匹配。“我們忙了很久在這些小玩意上,我們投入了很多精力,來確保游戲里的每個動作,每個行動都有它的清晰的影響,” 諾埃爾.貝瑞說道。“我們真的很討厭那種任何東西都是輕飄飄的,沒有清晰、立竿見影的沖擊感的情況。” 但他們也非常小心,不在這些特殊效果做過頭,不將他們做的喧賓奪主。使得你能感受到它們,但不會被它們分散了注意力。

這不是BUG。。。是技巧!!

一旦你完成游戲的一周目,你就可以開始着手挑戰游戲的“B-面”啦, Celeste 從B面開始會教你更誇張的技巧來向你展示 Madeline的沖刺功能的更多可能性,甚至讓你抵達一些你之前想都沒想到的關卡。比如說一種“長跳”一樣的動作, 在Madeline的一次沖刺抵達地表的一瞬間跳躍,這時Madeline就能繼續這股勢能,向前躍進。這個動作靈感來源與 諾埃爾.貝瑞和麥特.索爾森之前合作過的一款游戲 《Towerfall》, 但他們在本作里放入了更多深度。延遲Madeline的跳躍動作直到她的沖刺能力冷卻好的瞬間,這會使她帶着沖刺的勢能沖向半空中,並且她能准備好再次沖刺。

這並不是提前計划好的,而是自然而然從現有機制里生發出的。但當這個技巧成功地幫助速通玩家跳過他們做好的關卡設計后。麥特.索爾森和諾埃爾.貝瑞就開始愛上這個了。“速通玩家能夠做一大堆那些瘋狂的事!而且這些並不會過度影響休閑玩家的游戲體驗。那些技巧的判定幀足夠短暫,所以沒人能夠偶然性做出那些動作,不過一旦你搞懂原理,它的判定幀也長到足夠讓你捕捉到機會持續使用這個技巧。”

也有其他幾個游戲技巧在游戲的開發流程中浮現出來,諾埃爾.貝瑞和麥特.索爾森全心全意地支持着這些技巧,但並不是所有的這些游戲技巧都有一個出彩的結果。游戲里內設了一個計時器,顯示了一場游戲已經經過的時間(為速通愛好者准備的)。在游戲剛發售的時候,這個計時器會在玩家打開菜單,以及經過過場小動畫的時候暫停。“但是在游戲發售的幾周后,玩家們意識到在幾個特定的房間內,如果你打開暫停菜單再恢復游戲時,Madeline 會移至到她在房間里設置的重生點。這會幫助玩家省下幾個像素格的時間,因為在打開菜單時游戲的計時器會暫停。我並不確切地知道到底有多少個房間是最適合使用這種技巧的,不過我想大概得有幾十個吧,而且說實話這個技巧並不是一件很有趣的事。沒有玩家喜歡這種技巧,沒人想要在每次進入一個房間的時候都試一下打開然后再恢復菜單。”

結語:

在游戲中,所有賦予Madeline移動能力的系統都是隱形的。在玩家眼前,她只是單純地移動着。但是這份輕松自如的靈活手感,卻是來自於實實在在的數個月的對於源代碼中細微數值的微調,來使她的移動模式真正符合玩家想要的。“這就是為什么代碼里她的類(class)有那么長,這是因為我們不斷地添加細節到我們關注的特定的實例中(Insatances),”諾埃爾.貝瑞說道。“這對於一個以移動能力為核心的游戲來說非常重要,總是有些你不得不去設計的細節,他們也許在現實的物理環境下不合理,但是在游戲里的手感卻能成倍順滑。”

你能在這里看到關於 Madeline的移動能力的源代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM