競技遊戲中的反饋迴圈
作者簡介:遊戲設計師小蟬,猶他大學EAE(Entertainment Arts and Engineering)畢業的B.S. in Games。我在尋找合作做遊戲的夥伴,歡迎遊戲開發者們與我聯絡(在美國最好,我現居紐約),也歡迎與我討論關於遊戲設計的問題。 個人微訊號可從我的微信公眾號(CIKIDA)的後臺獲取。
一些競技遊戲中存在正反饋迴圈和負反饋迴圈,它們會擴大和縮小玩家之間的勝負差距,適度的反饋迴圈有助於最佳化遊戲玩法。
反饋迴圈(feedback loop)是指系統中的輸出被重新引入作為輸入,以某種方式對系統的後續狀態產生影響。反饋迴圈主要分正負兩種:正反饋迴圈是指系統的輸出增強了系統的輸入,使得系統朝某個方向不斷強化,比如現實中的富者愈富,窮者愈窮;負反饋迴圈是指系統的輸出抑制了系統的輸入,使得系統趨於穩定或達到平衡,比如人體透過出汗和顫抖保持體溫的恆定。
遊戲也是一套系統,在競技遊戲中,反饋迴圈主要表現為玩家目前的成功和失敗會影響未來的成功和失敗。
正反饋迴圈表現為玩家目前的成敗會增加未來的成敗,它會導致領先玩家與落後玩家之間的差距越來越大,比如MOBA中人頭越多的玩家越容易拿頭,《大富翁》中錢多的玩家能利滾利賺更多錢,《使命召喚》中連殺多的玩家可以召喚更強力的支援。正反饋迴圈像滾雪球一樣累積著領先玩家的優勢,有助於領先玩家贏下比賽。
負反饋迴圈表現為玩家目前的成敗會減少未來的成敗,它會導致領先玩家與落後玩家之間的差距越來越小,比如MOBA中劣勢方能從擊殺優勢方中得到更多錢,《CS:GO》中越強的槍的擊殺獎勵越低,《馬里奧賽車》中落後的玩家會獲得更強的道具。負反饋迴圈像橡皮筋一樣限制著玩家之間的差距,有助於落後玩家反敗為勝。
不同的遊戲有著不同程度的反饋迴圈。一些遊戲強調正反饋迴圈,比如一些MOBA遊戲中強勢玩家能憑個人實力滾起雪球贏下比賽。一些遊戲強調負反饋迴圈,比如一些派對遊戲中弱勢玩家會因為落後而獲得很多的幫助。一些遊戲同時強調兩種反饋迴圈,比如一些自走棋遊戲同時有著連勝獎勵和連敗補償。一些遊戲則兩者都無或程度很輕,比如擊劍和摔跤。
遊戲中的反饋迴圈可能是自然存在的,比如在橄欖球比賽中,隨著接近達陣區,進攻方會因為傳球空間的縮小而面臨更大的進攻壓力,這是一種自然存在的負反饋迴圈。遊戲中的反饋迴圈也可能是人為干預的,比如在一些FPS遊戲中,佔點更多的團隊有著更短的重生時間,這利於他們迅速推進贏下比賽,這是一種人為干預的正反饋迴圈。
不論反饋迴圈以哪種形式出現,它們都會影響遊戲的程序,設計師可以透過調節反饋迴圈來調整遊戲。本文將討論兩種反饋迴圈的正面作用和負面作用,以及應該如何設計它們。
正反饋迴圈
正反饋迴圈有助於領先玩家累積優勢擴大差距贏下比賽。
正反饋迴圈可以防止比賽拖沓,讓領先玩家迅速贏下比賽。例如,《英雄聯盟》的早期版本經常出現優勢方勝券在握但久攻不下的膀胱局,比賽動輒超過五十分鐘,令玩家和觀眾都感到疲憊,於是官方接連幾個版本加強了大龍和遠古龍buff,使得優勢方在遊戲後期可以抱團拿龍獲得巨大增益,然後以碾壓之勢迅速推進贏下比賽,這減少了雙方勝負已分但僵持不下的無聊時間,讓遊戲節奏更加緊湊。
正反饋迴圈可以增加技巧出眾的玩家的重要性,減少團隊競技遊戲對其個人而言的運氣成分,這有助於維持玩家磨練技巧的動力。
在團隊競技遊戲中,玩家的勝負由個人和團隊共同決定,玩家只能控制自己,不能控制隊友,所以團隊競技遊戲對於玩家個人而言是有一定運氣成分的。有些團隊競技遊戲玩起來很痛苦,因為它們過於強調團隊配合,導致玩家即使自己玩得很好,也經常被隊友拖累而輸掉比賽。在這些遊戲中,隊友排得好遠比自己玩得好重要,然而玩家只能提升自己的技巧,不能提升自己匹配隊友的運氣,所以玩家再怎麼磨練技巧也難以提升段位,久而久之,核心玩家就會因為付出得不到回報而失望地離開遊戲。
最典型的例子就是暴雪公司的《風暴英雄》。這個遊戲的早期版本採用了全隊共享經濟的設計,也就是玩家擊殺對手的經濟所得會被全隊平分,這個設計的初衷也許是促進團結合作,但是最終只造成了玩家互相埋怨,因為它不僅讓玩家難以從自己的出色表現中獲得相應的獎勵,還會因為隊友的糟糕表現而受到不應有的懲罰,比如自己拿了對面上單一血,經濟平均一下,自己沒拿到多少,但是如果己方下路雙人組坑了,一人送一個,那對面上單的經濟反而比自己還高,這使得再強的玩家碰到垃圾隊友也只能無奈。
加強正反饋迴圈可以改善這種情況。《英雄聯盟》的流行一定程度上得益於其較強的個人層面的正反饋迴圈——玩家的擊殺所得全歸自己,這使得玩家即使匹配到垃圾隊友,也可以靠個人實力滾起雪球帶領團隊贏下比賽。這種正反饋迴圈在一定程度上減少了遊戲來自隊友的運氣成分,並且給予了更強的玩家更好的遊戲體驗,這有利於維持玩家磨練技巧的動力,提升團隊競技遊戲的玩家留存。
需要注意的是,適度的正反饋迴圈可以改善遊戲,但是過度的正反饋迴圈則會適得其反。
正反饋迴圈雖然可以增強己方,但是也可以增強對方。如果過度的正反饋迴圈使己方隊友把對手養成了無敵的存在,那麼這還是增加了遊戲對於玩家個人而言的運氣成分——不要排到垃圾隊友。此外,過度的正反饋迴圈還會使核心玩家過於重要,這會導致全隊為他的失誤買單,比如《Dota》中的“三萬敵法一秒躺”,佔了團隊大量資源的敵法玩家被秒,再厲害的隊友也只能無奈,還有一些圍繞著球星展開戰術體系的籃球隊伍,很容易因為球星的受傷而被淘汰,這些都是某位玩家過於重要所導致的問題,這些情況的運氣成分也很大。
正反饋迴圈最好是有限度的。打個比方,在一個5v5遊戲中,如果每位玩家在遊戲開始時的重要性都是兩成,那麼隨著比賽的進行,遊戲可以允許高手憑個人實力逐漸將自己的重要性滾雪球至四成,而菜鳥降低至一成。這種正反饋迴圈是適度的,因為高手雖然重要,但是隊友仍有相當的作用,團隊仍需要合作;但是如果正反饋迴圈過度,以至於能讓某位玩家的重要性達到九成,那麼就會導致玩家爭搶第一、視隊友為競爭對手的惡劣情況出現,這不僅會破壞團隊合作,還會導致一人失誤全隊買單。
過度的正反饋迴圈不僅會讓無用的隊友無所事事,還會讓落後的對手遊戲體驗極差,比如在一些滾雪球效應太強的MOBA遊戲中,玩家一旦線上上被對手擊殺一兩次,就會螺旋陷入無法挽回的劣勢,然後被反覆擊殺直至毫無反抗之力,最終徹底喪失遊戲體驗並掛機。
過度的正反饋迴圈還會導致遊戲的後期乃至中期失去意義。在上面的例子中,被殺爆的玩家根本不會玩到遊戲後期,甚至在遊戲前期的幾波交鋒落敗之後就會因為無法挽回的劣勢而退出遊戲。一些RTS遊戲就有類似的問題,這些遊戲的前期過於重要,一點失誤就會被無限放大,導致遊戲過早結束,比如《紅色警戒》(基地展開慢了一秒,已經是個死人了)、《星際爭霸》(一波騷擾成功,遊戲直接結束)、《帝國時代》(根本玩不到帝國時代,封建時代就被人幹掉了),一則古老的諺語可以概括這類遊戲:
失了一顆馬蹄釘,丟了一個馬蹄鐵;丟了一個馬蹄鐵,折了一匹戰馬;折了一匹戰馬,損了一位國王;損了一位國王,輸了一場戰爭;輸了一場戰爭,亡了一個帝國。
在一場旗鼓相當的對決中,遊戲應該有著完整的前中後期。上面這種情況可以出現在雙方實力相差較大或一方有重大失誤時,讓領先玩家快速勝出,減少比賽僵持的垃圾時間;但是,如果這種情況出現在雙方實力相近且均無重大失誤時,那就說明遊戲的正反饋迴圈過度了,這會導致遊戲的前期過於重要,沒人去玩那些在遊戲中後期發力的角色和陣營,這樣的結果就是玩法多樣性和深度的下降,以及遊戲的過早結束。
綜上所述,正反饋迴圈不宜在遊戲前期太強,因為這容易導致雙方過快拉開差距決出勝負,讓遊戲的後期甚至中期失去意義。隨著比賽的進行,正反饋迴圈可以逐漸走強,讓領先玩家逐漸擴大勝勢,防止比賽後期的僵持拖沓。適度的正反饋迴圈可以獎勵玩家的技巧,讓更強的玩家獲得更好的體驗,這有利於維持玩家磨練技巧的動力;但是過度的正反饋迴圈則會嚴重破壞落後玩家的體驗,同時也會讓領先玩家因為必勝而感到有些無聊。正反饋迴圈造成的一些問題,可以透過負反饋迴圈來解決。
負反饋迴圈
負反饋迴圈有助於落後玩家彌補劣勢減少差距反敗為勝。
負反饋迴圈可以解決正反饋迴圈等因素造成的遊戲過早結束的問題。如果說正反饋迴圈是一種斥力,擴大玩家之間的差距,那麼負反饋迴圈就是一種引力,縮小玩家之間的差距。縮小的差距會讓玩家回到均勢、讓勝負變得難分,這可以延緩比賽的結束,所以負反饋迴圈可以在遊戲前期適當強一些,遏制正反饋迴圈等因素造成的馬太效應,將勝負的不確定性延長至遊戲的中期和後期。
負反饋迴圈有助於讓不同水平的玩家一起遊戲。負反饋迴圈會減少玩家技巧差距所致的勝負差距,這有利於擴大玩家的匹配範圍。舉個例子,為什麼《馬里奧賽車》是個閤家歡遊戲?因為遊戲中的道具系統起到了較強的負反饋迴圈的作用,它會讓排名靠後的玩家獲得比靠前的玩家更強力的道具,極大幫助落後玩家追上領先玩家,這使得實力相差較大的玩家(比如孩子和大人)一起遊戲成了可能;此外,這些道具還讓遊戲過程充滿了反轉和反超,增加了遊戲的戲劇性、娛樂性、觀賞性,這些都是由負反饋迴圈減少差距而增加的不確定性所致。
負反饋迴圈會增加落後玩家的遊戲動機,一定程度上也會增加領先玩家的遊戲動機,這有助於維持雙方對比賽的投入程度。
在一些遊戲中,落後玩家很容易因為巨大劣勢導致的必敗局面而對比賽失去興趣,領先玩家也容易因為必勝局面而感到有些無聊,負反饋迴圈可以改善這種情況。很多MOBA遊戲中都有賞金機制,這項機制起到了負反饋迴圈的作用,能讓劣勢方從擊殺優勢方中獲得額外經濟,這可以減少雙方之間的經濟差距,增加劣勢方反敗為勝的可能性,從而維持他們繼續遊戲的興趣;同時,這項機制也讓優勢方必須保持警惕,因為他們隨時可能會被翻盤,這也有利於維持他們的興趣,畢竟必勝也容易讓人感到無聊,充滿不確定性的比賽才有意思。
很多時候,玩家之間的差距只能透過負反饋迴圈減少。很多遊戲,即使玩法中沒有正反饋迴圈,也存在馬太效應,尤其是在高水平的比賽中,一點差距就足以讓勝負失去懸念,所以很多遊戲都有一些起到負反饋迴圈作用的規則存在,比如輸方優先發球、輸方優先選邊等等,這些都在一定程度上減少了一方的連勝,增加了勝負的不確定性。
在遊戲規則之外,還有一些賽事規則同樣起到了負反饋迴圈的作用,比如工資帽、奢侈稅、收入分享機制、隊伍人數限制、弱隊優先選秀等等,這些都在一定程度上限制了強隊的發展或促進了弱隊的發展,避免了馬太效應造成的強隊必勝、弱隊必敗,最終比賽失去不確定性和觀賞性而沒人看的後果。
競技遊戲要有一定的不確定性才好玩和好看,因此一定程度的負反饋迴圈是有必要存在的,不過這絕對不能過度。
如果說過度的正反饋迴圈過分強調遊戲的前期,那麼過度的負反饋迴圈就過分強調遊戲的後期。在一些負反饋迴圈太強的遊戲中,玩家在前中期打出的優勢會被不斷抹平而無法累積成勝勢,這會使那些在遊戲前中期發力的角色和陣營難以出場,進而導致玩法多樣性和深度的下降,比如在一些負反饋迴圈太強的MOBA和RTS遊戲中,玩家就很少選打架的前期陣容,而是多選發育的後期陣容,這樣的遊戲既重複又拖沓。
過度的負反饋迴圈會減少遊戲的技巧性。負反饋迴圈是利好弱勢玩家的,增強負反饋迴圈會增加弱者獲勝的機率,如果這種利好過於顯著,以至於讓實力明顯更弱的玩家的勝率接近50%,那麼競技遊戲的運氣成分就太高了,甚至可以說是競運遊戲了。競技遊戲的勝利(在大多數情況下)應該屬於實力更強和表現更好的玩家,如果負反饋迴圈總是顛倒這一點,那麼玩家就會逐漸失去磨練技巧的動力,繼而產生棄遊的意願。
過度的負反饋迴圈會讓領先玩家感到不滿。這種不滿可能來自於遊戲不斷抹除自己的優勢,也可能來自於遊戲過於彌補對手的劣勢,這兩種情況都不利於領先玩家獲勝,所以都容易令其不滿,我們只能儘量降低其不滿。
為了降低玩家的不滿,我們最好用負反饋迴圈幫助落後玩家,而不要妨害領先玩家。二者在效果上雖然沒什麼不同,都是減少玩家之間的差距,但是在感覺上前者比後者總體更好一些。舉個例子,為什麼《馬里奧賽車》中的炮彈和星星比藍龜殼少受爭議?因為前者(加速落後玩家)會直接幫助落後玩家,提升他們的體驗,並且不會破壞領先玩家的體驗,而後者(減速領先玩家)不僅不會讓使用的人多開心——在第七八名的玩家根本不會從打翻第一名玩家中獲得什麼好處——還會讓被打的人很上火,這種打擊領先玩家的大棒式的負反饋迴圈有損整體的玩家體驗。
幫助落後玩家的胡蘿蔔式的負反饋迴圈雖然更柔和一些,但是其對落後玩家的幫助必須是有限度的。遊戲可以適度地幫助落後玩家,給予他們一些補正錯誤的機會,但是這種幫助一定不能過度,否則就容易引起領先玩家的不滿,這就像給無業者發補助,如果發的補助和努力工作的工資差不多,那麼工作者就會不滿。競技遊戲對落後玩家的幫助必須少於對領先玩家的激勵——競技遊戲要鼓勵玩家玩得好,不能鼓勵玩家玩得爛。
競技遊戲中的負反饋迴圈必須始終弱於正反饋迴圈。負反饋迴圈本身就是一種反競技的存在,它懲罰玩家玩得好、獎勵玩家玩得爛,所以絕對不能過度。如果遊戲中的負反饋迴圈太強,以至於強過正反饋迴圈,那麼玩家甚至會刻意追求落後、拒絕領先,因為在這種情況下落後的一方才有優勢。沒人去爭第一,比賽就成了比爛,這是反競技的,會導致玩家消極遊戲。
在競技遊戲中,負反饋迴圈主要是用來控制,而不是消除玩家之間的勝負差距的。玩家在遊戲中必然會拉開差距,只是這種差距容易因為各種因素越拉越大,最終導致強者必勝、弱者必敗,以至於玩家和觀眾都過早對遊戲失去興趣的情況發生,所以需要有一定的反制力量,比如起到負反饋迴圈作用的機制和規則,來控制這種差距。
這種差距有時候只適合透過增強負反饋迴圈控制,不適合透過減弱正反饋迴圈控制(更何況很多遊戲沒有正反饋迴圈)。舉個例子,MOBA遊戲的滾雪球問題就只適合透過負反饋迴圈來解決,減弱正反饋迴圈雖然有助於減少玩家之間的差距,但是這也會讓強勢玩家難以carry,導致強者的勝負過於取決於隊友;既然正反饋迴圈不可減弱,那麼滾雪球問題就只能透過賞金機制等負反饋迴圈來解決了。增強負反饋迴圈和減弱正反饋迴圈不是一回事。
綜上所述,負反饋迴圈可以在遊戲的前中期稍強,控制玩家之間的差距,增加勝負的不確定性,維持玩家和觀眾對比賽的投入程度。隨著比賽的進行,負反饋迴圈可以逐漸走弱,避免過小的差距使比賽遲遲分不出勝負。適度的負反饋迴圈可以考驗玩家的技巧,給予落後玩家補正錯誤的機會,但是一旦過度就會減少遊戲的技巧性,使弱者過於依靠外部的幫助而不是自己的實力反敗為勝。在競技遊戲中,負反饋迴圈對落後玩家的幫助應少於正反饋迴圈對領先玩家的激勵。
總結
簡單總結一下本文。
正反饋迴圈會擴大玩家之間的勝負差距,有助於領先玩家擴大優勢贏下比賽,可以防止遊戲的僵持拖沓。負反饋迴圈會縮小玩家之間的勝負差距,有助於落後玩家彌補劣勢反敗為勝,可以防止遊戲的過早結束。
理想情況下,一場勢均力敵且雙方均無重大失誤的比賽有著完整的前中後期,反饋迴圈應儘量將遊戲朝這個方向調整。如果遊戲太早結束、太強調前期、太多碾壓局,我們可以增強負反饋迴圈或減弱正反饋迴圈;如果遊戲太晚結束、太強調後期、太多翻盤局,我們可以增強正反饋迴圈或減弱負反饋迴圈。如何調整兩種反饋迴圈取決於遊戲的玩法缺陷,二者不必同時存在或平衡,總體上負反饋迴圈應弱於正反饋迴圈。
需要注意的是,反饋迴圈因為一些問題註定沒法讓所有玩家滿意,我們只能儘量降低玩家的不滿,追求整體的最優體驗。
反饋迴圈的第一個問題是:不同水平的玩家對反饋迴圈的需求是不同的。高水平玩家精於細節,一點優勢就能滾起雪球,所以他們需要較強的負反饋迴圈減少遊戲的馬太效應;但是如果我們真的這麼設計了,負反饋迴圈對低水平玩家來說就太強了,他們會覺得遊戲太慢;而如果我們為了低水平玩家而設計,高水平玩家又會覺得遊戲太快。這是個無解的問題,我們必須在不同水平的玩家間做出取捨。
反饋迴圈的第二個問題是:被反饋迴圈針對的玩家總是會不滿。正反饋迴圈有利於領先玩家,所以容易引起落後玩家的不滿;負反饋迴圈有利於落後玩家,所以容易引起領先玩家的不滿。競技遊戲有人贏就有人輸,有人開心就有人不開心,這是沒辦法的事。無論我們怎麼調整反饋迴圈,都會有一些玩家不滿,但是同時也會有一些玩家滿意。只要玩家總體滿意大於不滿,反饋迴圈的設計就是成功的。
反饋迴圈最好是自然浮現的,這種較不易引起玩家不滿。很多時候,一項遊戲機制就可以自然地同時起到正負兩種反饋迴圈的作用,比如《Splatoon》中的墨水面積:塗墨面積大的領先玩家有著更多的藏身點和移動路徑,這利於他們擴大優勢,這是一種自然的正反饋迴圈;塗墨面積小的落後玩家能從消除對方的墨水中更快積攢大招,這利於他們彌補劣勢,這是一種自然的負反饋迴圈。類似的機制還有MOBA遊戲中的史詩級野怪(優勢方能拿龍推進,劣勢方能搶龍翻盤)、策略遊戲中的城池(城池越多實力越強,但是壓力也越大),透過調整這些機制的某些方面,我們就能調節兩種反饋迴圈的強度,這是很優雅的設計,如宮本茂所說:“一個好的點子不是一次解決一個問題,而是一次解決多個問題。”
競技遊戲是一套系統,在這套系統中,玩家目前的成功和失敗會影響未來的成功和失敗,如何調節這兩者的關係,控制玩家之間的差距,最佳化整體的遊戲體驗,是一門精妙的平衡藝術。
相關文章
- 思考工具之加強反饋迴圈 | Untools
- [BUG反饋]function get_parent_category() 死迴圈FunctionGo
- 從前饋到反饋:解析迴圈神經網路(RNN)及其tricks神經網路RNN
- MOBA類遊戲地圖中的反饋設計遊戲地圖
- 遊戲化設計中的“雙迴圈”遊戲
- 思考工具之平衡反饋迴路 | Untools
- 年度遊戲的有力競爭者,《死亡迴圈》與背後的Arkane遊戲
- 實驗者偏差:獨立遊戲測試中的“反饋陷阱”遊戲
- 迴圈中的非同步&&迴圈中的閉包非同步
- 探討遊戲反饋的處理方法遊戲
- 遊戲模型研究:預測與反饋遊戲模型
- JavaScript中的while迴圈JavaScriptWhile
- 理解 JavaScript 中的迴圈JavaScript
- Redis 中的事件迴圈Redis事件
- Node中的事件迴圈事件
- JavaScript的map迴圈、forEach迴圈、filter迴圈、reduce迴圈、reduceRight迴圈JavaScriptFilter
- 騰訊遊戲探索“觸覺反饋”技術在無障礙領域的應用遊戲
- 技術概述深度學習:詳解前饋、卷積和迴圈神經網路深度學習卷積神經網路
- scss中迴圈之@for迴圈佈局畫圓CSS
- matlab之在迴圈中修改迴圈變數Matlab變數
- PLSQL Language Referenc-PL/SQL控制語句-迴圈語句-FOR迴圈-FOR迴圈中的索引SQL索引
- OCR迴圈:說說遊戲中的挑戰與體驗遊戲
- [BUG反饋]模型中刪除欄位的BUG模型
- 反饋工具BIC
- go 中的迴圈依賴Go
- Go 1.22 中的 For 迴圈Go
- mysql 中 while 迴圈的用法。MySqlWhile
- Javascript中的迴圈優化JavaScript優化
- C#程式設計基礎第七課:C#中的基本迴圈語句:while迴圈、do-while迴圈、for迴圈、foreach迴圈的使用C#程式設計While
- 遊戲戰鬥設計:來自“手柄震動”的反饋遊戲
- 遊戲設計師必須真正理解玩家的反饋遊戲設計師
- 對於 JavaScript 中迴圈之間的技術差異概述JavaScript
- 如何理解TRIZ的反饋原理?
- PLSQL Language Referenc-FOR迴圈-FOR迴圈中的EXIT WHEN和CONTINUE WHENSQL
- 瀏覽器中的事件迴圈瀏覽器事件
- C++中的迴圈結構C++
- Kotlin 中的迴圈全解Kotlin
- Spring中的迴圈依賴Spring