因為舉例 所以我一個房間 就4個玩家吧要弄到10個要花時間排空間麻煩
**CLIENT 1-N 很自然的就是玩家端用戶
** 登入SERVER 很自然的就是玩家登入遊戲(不包括STEAM流程)
同樣的登入成功之後 還是會跟 GS_SERVER要求玩家的 基本資料 如果GS SERVER 沒有就會跟 帳號戰績資料庫要求 成功之後回傳
** 資料庫帳號 一般遊戲都會把帳號需要的資料跟其他遊戲內的資料分開放置 放便WEB精簡的讀取帳號(以前的遊戲大部分不需要WEB內戰積 當然還是看需求設計為主)
** 配對SERVER 很自然的就是做配對 當然有很多條件 等級 帳號 或是PIN
可能還有加入STEAM黑名單等等特別針對網路這部分再說一點
有些配對可能是直接用IP表作配對 未必是使用 (IP表 就是世界各區域 IP分配)
[配對SERVER]跟玩家端的PIN直做出分配
當然還有更猛的方式 目前沒有人使用 就事先作出小分配 把PIN接近的人 放在一個列表 或是 IP位置的人放在一個列表
再把列表內所有IP丟過去 讓該玩家端去PIN列表內的所有人 假設64人 就是要做64 * 64 –64次左右
所以一般來說 不太會這樣做 因為傳輸越多次 跟傳輸樣式越多 只會更麻煩也更花時間 在完美的網路狀況下
不用幾秒可以完成 但是完美是很難的 一個環節卡了
要等多久 中斷這部分? 又是一個越來越大的設計考量了
配對成功就會把玩家資料丟給GS_SERVER GS_SERVER就會把這4個人弄成一個LIST
也決定HOST "灰色"是誰
**帳號戰績資料庫 就是如名稱
**藍色框
藍色框就是一個遊戲內的處理 一切動作 就會由選定”灰色”框的CLIENT 來去處理這些裁決是否可行 當然除了灰色的CLIENT會判斷是否其他的也可能會去判斷
但是最後還是”灰色” 最後決策才是對的 (所以P2P的防弊大概就是在這裡了 如果過度誇張的不相等 可以直接傳會GS SERVER做紀錄 看看要怎麼處理)
當然防弊機制非常多的方式 “可能”有些只要你打開程式 你電腦內運行的所有程式都會傳到 UPLAY去紀錄下來
所以所謂P2P的部分 就是藍色的部分
照到理應該CLIENT1-4互相都不會相連
但是P2P的機制就是讓灰色成為一個判斷結果的SERVER 其他三個人 任何動作 都會傳到”灰色”去做判別
這個時候 玩家端 跟 真正的GS SERVER 只有遊戲內有跟需要紀錄結果殺了一個人 或是 結算輸贏等等
當然以上都只是初略的介紹 P2P的模式部分
所以P2P 就是簡省了 SERVER 運算量
還有最關鍵的網路傳輸量 上面藍色以外的傳輸量 不會佔 整個遊戲的傳輸量10%
整個驚人的傳輸量 在藍色這部分
當然還是有同時P2P跟 遊戲SERVER 同時兼具的做法
這種通常就是 遊戲內一些不需要判別的東西 沒有利益的資料 做P2P 其他有需要証實的資料做出SERVER的傳送
比如動態的場景變動 我射掉了一顆樹 它倒下來 我坦克車 撞倒了一個 原本就不能進入的房子