国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

解析類Dota游戲天梯匹配系統(tǒng)的實現(xiàn)方式

weakish / 1531人閱讀

摘要:提供房間最大人數(shù)游戲模式,默認為允許觀戰(zhàn),默認不允許固定字段。服務端收到請求后,將完全按照進行匹配,即將攜帶相同的的玩家匹配到一起。提供創(chuàng)建房間的接口用于玩家創(chuàng)建房間,玩家主動創(chuàng)建的房間和系統(tǒng)自動創(chuàng)建的房間隔離。

什么是類Dota游戲的天梯匹配

玩過Dota或者LOL的人都知道 . 天梯匹配系統(tǒng)是一套將 玩家的實力 量化,并進行實時分配組隊游戲 , 結算的系統(tǒng). 旨在將單局游戲的勝率控制在50%左右. 避免出現(xiàn)虐菜,被暴虐,單邊木桶短板效應, 實力懸殊的局面 . 以提供更好的游戲體驗 .

帶著如上所說的目的 . 我們從技術角度聊聊這套系統(tǒng)該如何實現(xiàn) .

系統(tǒng)設計

首先說量化

量化本質上是一個利用數(shù)學公式 ax+by+cz = result求結果的過程 . abc xyz 代表各種因子(如 殺人數(shù), 死亡數(shù), 助攻數(shù) ,網絡線路等 ) ,得出一個具體的分數(shù). 分數(shù)相近的人如果進行對戰(zhàn) . 他們勝負的概率將會無限接近50% . 比較出名的算法有ELO ,

具體的算法我們這里不再表述 . 回到主題, 既然有一個量化的過程 , 那我們在設計系統(tǒng)的時候 . 需要預留兩個點:

get量化值 , 對應到匹配時的分值排序

set量化值 , 對應到結算

即匹配時獲取量化值 , 結算 時更新量化值 :

匹配 + 結算

再說說組隊游戲

組隊對戰(zhàn) 在前端常見的表現(xiàn)的形式為 開房 (不要想歪了) , 即將多個人聚合在一起 . 本質上是一個鏈表 , 存有先后進入關系 . 第一個進入的人開房 并開門, 人數(shù)足夠后可以關門 , 即關閉房間入口 . 不足則開門,即開放房間入口. 沒人了則 退房 .

即:

開房

退房

關門

開門

業(yè)務流程梳理

終端玩家(手機/電腦) 通過互聯(lián)網接入服務器 . 并發(fā)送匹配請求 , 服務器識別用戶身份 . 進行匹配組隊,分配房間 . 游戲結束后 , 進行結算. 更新匹配分數(shù) .

綜上所述, 我們天梯匹配梳理的整個過程如下所示.

Matchvs的類天梯匹配系統(tǒng)的實現(xiàn)

Matchvs是如何提供這樣的能力的呢? 這里就有必要談到JoinRoomWithProperties這個接口了.

條件匹配

條件匹配JoinRoomWithProperties

JoinRoomWithProperties(roomProperty,userProfile)

? roomProperty是匹配標簽,讓開發(fā)者可以描述“玩家想進一個什么樣的房間”。提供maxPlayer(房間最大人數(shù)),mode(游戲模式,默認為0),can_watch(允許觀戰(zhàn),默認不允許)固定字段。

? 開發(fā)者可以自定義房間屬性用于精準匹配,比如:開發(fā)者獲取到玩家當前積分500,于是在roomProperty里定義“range”:“400 - 600”。服務端收到請求后,將完全按照key-value進行匹配,即將攜帶相同的roomProperty的玩家匹配到一起。對于上述開發(fā)者自定義內容,服務端是幫該500分的玩家找到分值波動范圍100的水平相近的其他玩家。

上面說到 如何 實現(xiàn)天梯式的匹配加入 , 沒有說道這類房間如何創(chuàng)建 . 那么再說下Matchvs的另外兩個接口.

CreateRoom

? 場景: 游戲中允許玩家自己創(chuàng)建房間并設置相應規(guī)則。比如:你畫我猜。

房主可以踢出其他玩家,如果房主掉線或退房,則轉移房主,房主轉移規(guī)則按加入順序進行轉移。

提供創(chuàng)建房間的接口用于玩家創(chuàng)建房間,玩家主動創(chuàng)建的房間和系統(tǒng)自動創(chuàng)建的房間隔離。即隨機匹配(條件匹配)和指定房間匹配分離,隨機匹配不能匹配到玩家創(chuàng)建的房間里去。

CreateRoom(roomName,roomProperty,userProfile)

? 創(chuàng)建房間,roomName是房間名,password是密碼,密碼可以為空(此處考慮對外是分開兩個接口還是只有一個)。roomProperty為房間屬性,可被修改,只能被創(chuàng)建者修改。roomProperty設置固定字段“房間是否可見”,玩家創(chuàng)建房間后將該玩家加入房間。玩家創(chuàng)建的房間不能被隨機加入,其它玩家只能通過“加入指定房間”進入。

GetRoomList

? 獲取房間列表

getRoomList(GameID,mode,roomType,roomProperty)

? 獲取游戲里由玩家主動創(chuàng)建(通過調用createRoom接口創(chuàng)建)的房間的列表。默認為獲取指定場次的可見房間列表。可以參考詳細設計里返回指定排序、指定類型列表。

? 客戶端可以請求獲取指定房間屬性的房間列表,比如游戲里創(chuàng)建的有3人房間、4人房間,客戶端可以只獲取3人房間列表。

3.1.5 踢除房間成員

kickPlayer

? 踢除玩家

kickPlayer(roomID,userID)

? 踢除玩家,開發(fā)者可以調用該接口將玩家從房間踢出。如果房間ID或者用戶ID不存在,則給出對應錯誤信息。該接口客戶端和gameServer均能使用。

? 在玩家創(chuàng)建的房間里,只有房主才能踢;MVS創(chuàng)建的房間不對踢除操作進行限制。

HashGet&HashSet

? 而上文中提到的量化 ,以及 JoinRoomWithProperties ,那么對這個Properties, 則可以由開發(fā)者自己去開發(fā)復合游戲特色的 量化 算法.并由自己去實現(xiàn) get 和 set . 也可以借助Matchvs 提供這樣自定義存儲 接口 , 持久化存儲用戶的Properties.

? 將量化算法從系統(tǒng)設計中剝離處理 , 使得Matchvs的設計不會與具體游戲強耦合 , 又允許開發(fā)者高程度的自定義 , 不同的系統(tǒng)間可以良好協(xié)作 , 是一個很好的設計方案 .

流程圖

上述接口調用的流程圖如下:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95351.html

相關文章

  • 一位90后自述:如何從年薪3w到30w

    摘要:紅色警戒復興的聯(lián)合創(chuàng)始人,中國第位獲得者,大中華區(qū)核心成員。給我吹了一通后,我感覺被洗腦了,當年還是很吃香的啊,傳聞年月入。不要滿足于現(xiàn)狀,要勇于走出舒適區(qū),嘗試不同的東西。 showImg(https://img-blog.csdnimg.cn/20190304200609292.jpeg#pic_center); 作者介紹:90后生人/男/二本本科/世界500強技術主管 1.引言 ...

    Eidesen 評論0 收藏0
  • OpenAI發(fā)現(xiàn)打破神經網絡黑盒魔咒新思路:梯度噪聲量表

    摘要:更廣泛地說,這些結果表明神經網絡訓練不需要被認為是一種煉丹術,而是可以被量化和系統(tǒng)化。中間的曲線中存在彎曲,漸變噪聲標度預測彎曲發(fā)生的位置。 由于復雜的任務往往具有更嘈雜的梯度,因此越來越大的batch計算包,可能在將來變得有用,從而消除了AI系統(tǒng)進一步增長的一個潛在限制。更廣泛地說,這些結果表明神經網絡訓練不需要被認為是一種煉丹術,而是可以被量化和系統(tǒng)化。在過去的幾年里,AI研究人員通過數(shù)...

    崔曉明 評論0 收藏0
  • 前端如何優(yōu)化if/else

    摘要:常見例子如何優(yōu)雅地輸出今天星期幾今天星期日一二三四五六上面的例子可以看到表就是一個字符串參考資料表驅動法數(shù)據驅動編程 前端中的if/else 在編寫業(yè)務代碼的時候,經常會出現(xiàn)條件判斷,如果判斷條件眾多,就會出現(xiàn)if/else天梯,如果新的業(yè)務場景出現(xiàn),就需要再添加一個if/else,這樣的代碼維護起來,簡直是災難。 if (status === 0) { //do somethin...

    youkede 評論0 收藏0
  • 游戲人工智能 讀書筆記 (三) 游戲和人工智能相互影響

    摘要:從游戲界的角度來說人工智能技術的發(fā)展可以為游戲帶來什么改變和收益。使用人工智能技術可以給游戲帶來更多更好的內容,也可以減輕游戲開發(fā)的成本。 作者:蘇博覽,騰訊互動娛樂高級研究員商業(yè)轉載請聯(lián)系騰訊WeTest獲得授權,非商業(yè)轉載請注明出處。原文鏈接:https://wetest.qq.com/lab/view/412.html 本文內容包含以下章節(jié): Chapter 1.3 Why Ga...

    CrazyCodes 評論0 收藏0

發(fā)表評論

0條評論

weakish

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<