告別“魚塘局”! 這套匹配機制為你找到真正“勢均力敵”的對手

遊資網發表於2019-09-11
告別“魚塘局”! 這套匹配機制為你找到真正“勢均力敵”的對手

很多多人對局的遊戲,都有如何匹配玩家的需求。大到《王者榮耀》,小到《clash royale》。

告別“魚塘局”! 這套匹配機制為你找到真正“勢均力敵”的對手

每個遊戲對於匹配的需求,各不相同,但仍然有不少的地方是共性的:

  • 水平相近的在一起玩
  • 儘可能快的匹配成功


要解決這個問題,我們要從匹配池講起。

匹配池,即玩家群體分步。通常有幾種典型分步:

  • 頭部集中、長尾
  • 梭子
  • 正態


告別“魚塘局”! 這套匹配機制為你找到真正“勢均力敵”的對手

這幾種分步,看似各不相同,但其實是可以互相轉化的,在遊戲的不同階段。

大部分遊戲,剛上線/開服時,通常所有人都處在頭部集中。

隨著活躍情況不同,就會有頭部玩家跑的很快,把後面的大部隊拉開,呈現長尾的分步。

隨著時間,大部隊開始緩慢前移,形成梭子形狀。絕對的正態分步是極端理想情況,幾乎不會出現。

我們先制定一個基本匹配邏輯:

  • 玩家進入匹配池
  • 後臺掃描玩家段位,根據段位相近原則,找尋是否有合適的其他玩家
  • 如果人數不足,擴大搜尋範圍;迴圈此過程
  • 找到足夠的玩家,匹配成功


這個邏輯是一個最基本的原型,現在我們結合匹配池的情況,看看會出現什麼情況。

在頭部集中情況下,幾乎是秒匹配,體驗很好,玩家之間段位也比較相當。

很明顯的例子,就是低段位、剛開服、賽季剛開始的時候,匹配很快。

但是仍然有問題:這個大量的玩家中,其實混雜了很多水平高的玩家。因為段位還沒有拉開,所以按照段位相近原則,他們是和菜鳥一起在玩的,也就是俗稱的魚塘局。

作為設計者,我們是希望這些大神,儘快脫離魚塘的——因為實力不對等的對局對雙方都是垃圾體驗。

那麼我們就需要一個機制,來識別——通常是連勝,然後讓他們獲得更多段位分。比如爐石的連勝獎勵星星規則。

這是第一個補充規則的形成過程。

  • 在梭子、長尾的分步中,開始出現部分玩家跑的太快,脫離了大部隊,逐漸越來越難匹配。


通常來講,能衝在最前面的,都是遊戲的核心使用者,他們是遊戲的風向標和重要的觀測物件。我們不太希望他們因為太積極而反而玩不下去。但是確實等待時間太久,怎麼辦?

我們回到基本匹配邏輯,我們發現,等待時間主要來自於兩個地方

  • 段位相近玩家多少
  • 擴大搜尋範圍的效率


其中第一條,我們無法解決。但第二條,可以想點辦法。我們可以認為,

等待時間T=需要擴大的搜尋範圍S/單次擴大範圍的幅度p

那麼縮小T的方式就非常明顯

擴大p:讓每次找不到人時,擴大範圍的刻度提高

縮小S:讓一開始,就有一個很大的搜尋範圍,減少中間無用迴圈

用一個實際數字距離。

假設一個3000分的玩家,初始在3000±200的範圍開始搜尋,然後每次找不到時,擴大50搜尋範圍。如此迴圈。假設預期是在擴大到3000±1500範圍才能匹配成功的話,時間會是[(1500-200)/50*後臺單次迴圈時間t]=26t

我們可以調整為:初始在3000±1000的範圍開始搜尋,如果找不到,擴大100範圍。那麼時間會是[(1500-1000)/100*後臺單次迴圈時間]=5t

減少了約80%的時間。

  • 儘管低段位玩家人數一般都是很多的,足夠匹配,但多人對抗類遊戲的零和博弈會導致玩家被打流失,無法感受到真正樂趣。這時候,我們會啟用AI。


這裡我們不探討AI怎麼做,只探討匹配機制的相關問題。

我們會設立兩個引數:放幾個AI、AI的難度。

大部分玩家肯定感受過,剛進一個遊戲,如PUBGM,都是機器人。一局最多5個真人。

告別“魚塘局”! 這套匹配機制為你找到真正“勢均力敵”的對手

考慮到玩家的漸進感受,會隨著玩家段位提升,逐步提升真人數量、減少AI數量。直到進入到梭子分步的中間高點附近時,才可能是幾乎全真人的對局。

  • 最後講講elo


elo的公式,和核心引數,網上資料一大把。我就不贅述了。

在我看來,elo只是一個衡量標準。我之所以一開始不講這個,而是講匹配池,是希望建立一個對巨集觀資料的概念。然後隨著推演,來解決微觀體驗的問題,從而完善規則。

因為即使你用最簡單的星星模型——贏一局+1星星、輸一局-1星星,你也得面對匹配規則如何設計。也就是前面三大點的精髓。

這套規則,是比較簡單、容易掌握的方式。在大部分情況下,是足夠用的。對於像LOL、王者這樣規模的專案,需要的細則更加的多,也有基於特定的需求來源指定的。


作者:殺手番茄
專欄地址:https://zhuanlan.zhihu.com/p/79926382

相關文章