客戶端游戲、手游常用的服務器架構是什么樣?
答:客戶端游戲、手游服務端本質(zhì)上沒區(qū)別,區(qū)別的是游戲類型。
類型1:卡牌、跑酷等弱交互服務端
卡牌跑酷類因為交互弱,玩家和玩家之間不需要實時面對面PK,打一下對方的離線數(shù)據(jù),計算下排行榜,買賣下道具即可,所以實現(xiàn)往往使用簡單的HTTP服務器:
登錄時可以使用非對稱加密(RSA, DH),服務器根據(jù)客戶端uid,當前時間戳還有服務端私鑰,計算哈希得到的加密 key 并發(fā)送給客戶端。之后雙方都用 HTTP通信,并用那個key進行RC4加密??蛻舳耸盏絢ey和時間戳后保存在內(nèi)存,用于之后通信,服務端不需要保存 key,因為每次都可以根據(jù)客戶端傳上來的 uid 和 時間戳 以及服務端自己的私鑰計算得到。用模仿 TLS的行為,來保證多次 HTTP請求間的客戶端身份,并通過時間戳保證同一人兩次登錄密鑰不同。
類型2:第一代游戲服務器 1978
1978年,英國著名的財經(jīng)學校University of Essex的學生 Roy Trubshaw編寫了世界上第一個MUD程序《MUD1》,在University of Essex于1980年接入 ARPANET之后加入了不少外部的玩家,甚至包括國外的玩家。《MUD1》程序的源代碼在 ARPANET共享之后出現(xiàn)了眾多的改編版本,至此MUD才在全世界廣泛流行起來。不斷完善的 MUD1的基礎上產(chǎn)生了開源的 MudOS(1991),成為眾多網(wǎng)游的鼻祖。
MUDOS采用 C語言開發(fā),因為玩家和玩家之間有比較強的交互(聊天,交易,PK),MUDOS使用單線程無阻塞套接字來服務所有玩家,所有玩家的請求都發(fā)到同一個線程去處理,主線程每隔1秒鐘更新一次所有對象(網(wǎng)絡收發(fā),更新對象狀態(tài)機,處理超時,刷新地圖,刷新NPC)。
類型3:第二代游戲服務器 2003
2000年后,網(wǎng)游已經(jīng)脫離最初的文字MUD,進入全面圖形化年代。最先承受不住的其實是很多小文件,用戶上下線,頻繁的讀取寫入用戶數(shù)據(jù),導致負載越來越大。隨著在線人數(shù)的增加和游戲數(shù)據(jù)的增加,服務器變得不抗重負。同時早期 EXT磁盤分區(qū)比較脆弱,稍微停電,容易發(fā)生大面積數(shù)據(jù)丟失。因此第一步就是拆分文件存儲到數(shù)據(jù)庫去。
類型4:第三代游戲服務器 2007
從魔獸世界開始無縫世界地圖已經(jīng)深入人心,比較以往游戲玩家走個幾步還需要切換場景,每次切換就要等待 LOADING個幾十秒是一件十分破壞游戲體驗的事情。于是對于 2005年以后的大型 MMORPG來說,無縫地圖已成為一個標準配置。比較以往按照地圖來切割游戲而言,無縫世界并不存在一塊地圖上面的人有且只由一臺服務器處理了。
類型5:戰(zhàn)網(wǎng)游戲服務器
經(jīng)典戰(zhàn)網(wǎng)服務端和 RPG游戲有兩個區(qū)別:RPG是分區(qū)分服的,北京區(qū)的用戶和廣州區(qū)的用戶老死不相往來。而戰(zhàn)網(wǎng),雖然每局游戲一般都是 8人以內(nèi),但全國只有一套服務器,所有的玩家都可以在一起游戲,而玩家和玩家之使用 P2P的方式連接在一起,組成一局游戲:
類型6:休閑游戲服務器
休閑游戲同戰(zhàn)網(wǎng)服務器類似,都是全區(qū)架構,不同的是有房間服務器,還有具體的游戲服務器,游戲主體不再以玩家 P2P進行,而是連接到專門的游戲服務器處理
景安網(wǎng)絡河南最大的多線服務器托管商!提供高可用、高并發(fā)的游戲服務器解決方案!
版權聲明:
本站所有文章和圖片均來自用戶分享和網(wǎng)絡收集,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業(yè)用途,如果損害了您的權利,請聯(lián)系網(wǎng)站客服處理。