我正在構建一個小型愛好網站,主要是在後端的Python和SQL,我不確定如何從概念上解決問題。多人遊戲參與者匹配3個或更多用戶
什麼是在多人遊戲中獲得三個或更多玩家匹配的有效方法?我原本計劃通過SQL語句完成大部分工作,其中每個活動播放器都被輸入到一個SQL表中,我們稱之爲活動遊戲表,表示他們想要玩遊戲。之後,我打算讓SQL活動遊戲桌執行一個觸發器功能,其中,當指定數量的玩家進入該表時,他們都被分配了一些game_ID,指定他們將被分配給特定遊戲。然後,這個game_id被用來確保所有動作在這些成員之間唯一地發生。最重要的是,如果隊列時間過長,則需要爲活動玩家設置超時觸發器。
這是一種處理此任務的有效方法嗎?我擔心這是大量的SQL數據庫命令。我最近還聽說,對常用命令使用SQL觸發器通常是不被接受的。如果這不是一個明智的方法來解決這個問題,那麼有哪些更有效/可擴展的方法來處理多人比賽的用戶匹配?請儘可能詳細地介紹算法步驟。看起來顯而易見,考慮到有多少多人遊戲存在,這個過程相當頻繁,但我真的很難找到關於如何接近它的材料或任何其他指導原則。
編輯:相關參數主要是將人們分組到他們選擇的遊戲中。其他人對匹配用戶很感興趣並且很重要,可能是技術水平,可以根據他們的贏/輸記錄權衡三名用戶被分配到相同比賽的可能性。
現在,我想知道如何處理恰好分配給遊戲的三名玩家。即使沒有考慮到用戶技能水平,如果描述算法,仍然會發現它非常有用,所以任何類型的描述都將非常感激。
您需要更多的參數。例如,遊戲中是否有最小和最大數量的玩家?球員是否有相互匹配的標準(例如技術水平,地理接近度)?所有的遊戲都是通過大廳匹配還是可以創建私人遊戲?等等任何方式你切片,我不認爲觸發是要走的路。有一些定期醒來並與玩家相匹配的過程似乎是一種更好的方法。但這僅僅是基於我現在有限信息的猜測。 –
我編輯了上述內容以更好地解釋相關參數。好的。我曾考慮過一些與我認爲你所提到的相似的東西。你的意思是像存儲過程?有沒有辦法,並且你會推薦一種將此與用戶生成的事件聯繫起來的方法? I.E 10名玩家突然決定玩同一類型的遊戲,一個存儲過程如何以一定的時間間隔將這些玩家分成三組?我認爲這可以通過添加到定時存儲過程的SQL語句來完成。感謝迄今爲止的建議。 – JStewy