遊戲伺服器的常用架構
轉自:
https://blog.csdn.net/u011308294/article/details/78627540
遊戲伺服器架構要素
對於遊戲服務端架構,最重要的三個部分就是,如何使用CPU、記憶體、網路卡的設計:
- 記憶體架構:主要決定伺服器如何使用記憶體,以最大化利用伺服器端記憶體來提高承載量,降低服務延遲。
- 邏輯架構:設計如何使用程式、執行緒、協程這些對於CPU排程的方案。選擇同步、非同步等不同的程式設計模型,以提高伺服器的穩定性和承載量。可以分割槽分服,也可以採用世界服的方式,將相同功能模組劃分到不同的伺服器來處理。
- 通訊模式:決定使用何種方式通訊。基於遊戲型別不同採用不同的通訊模式,比如http,tcp,udp等。
遊戲型別
卡牌跑酷等休閒遊戲弱互動遊戲
分割槽分服RPG遊戲(RPG頁遊)
分服模型是遊戲伺服器中最典型,也是歷久最悠久的模型。在早期伺服器的承載量達到上限的時候,遊戲開發者就通過架設更多的伺服器來解決。這樣提供了很多個遊戲的“平行世界”,讓遊戲中的人人之間的比較,產生了更多的空間。其特徵是遊戲伺服器是一個個單獨的世界。每個伺服器的帳號是獨立的,每臺伺服器使用者的狀態都是不一樣的,一個服就是一個世界,大家各不牽扯。
後來遊戲玩家呼籲要跨服打架,於是就出現了跨服戰,再加上隨著遊戲的執行,單個伺服器的遊戲活躍玩家越來越少,所以後期就有了伺服器的合併以及遷移,慢慢的以伺服器的開放、合併形成了一套成熟的運營手段。目前多數遊戲還採用分服的結構來架設伺服器,多數頁遊還是採用這種模式。
資料共享遊戲伺服器
閘道器部分分離成單端的gate伺服器,DB部分分離為DB伺服器,把網路功能單獨提取出來,讓使用者統一去連線一個閘道器伺服器,再有閘道器伺服器轉發資料到後端遊戲伺服器。而遊戲伺服器之間資料交換也統一連線到網管進行交換。所有有DB互動的,都連線到DB伺服器來代理處理。
- 場景伺服器:它負責完成主要的遊戲邏輯,這些邏輯包括:角色在遊戲場景中的進入與退出、角色的行走與跑動、角色戰鬥(包括打怪)、任務的認領等。場景伺服器設計的好壞是整個遊戲世界伺服器效能差異的主要體現,它的設計難度不僅僅在於通訊模型方面,更主要的是整個伺服器的體系架構和同步機制的設計。
- 非場景伺服器:它主要負責完成與遊戲場景不相關的遊戲邏輯,這些邏輯不依靠遊戲的地圖系統也能正常進行,比如公會聊天或世界聊天,之所以把它從場景伺服器中獨立出來,是為了節省場景伺服器的CPU和頻寬資源,讓場景伺服器能夠儘可能快地處理那些對遊戲流暢性影響較大的遊戲邏輯。
- 閘道器伺服器: 在型別一種的架構中,玩家在多個地圖跳轉或者場景切換的時候採用跳轉的模式,以此進行跳轉不同的伺服器。還有一種方式是把這些伺服器的節點都通過閘道器伺服器管理,玩家和閘道器伺服器互動,每個場景或者伺服器切換的時候,也有閘道器伺服器統一來交換資料,如此玩家操作會比較流暢。
房間遊戲
房間類玩法和MMORPG有很大的不同,在於其線上廣播單元的不確定性和廣播數量很小。而且需要匹配一臺房間伺服器讓少數人進入一個伺服器。
這一類遊戲最重要的是其“遊戲大廳”的承載量,每個“遊戲房間”受邏輯所限,需要維持和廣播的玩家資料是有限的,但是“遊戲大廳”需要維持相當高的線上使用者數,所以一般來說,這種遊戲還是需要做“分服”的。典型的遊戲就是《英雄聯盟》這一類遊戲了。而“遊戲大廳”裡面最有挑戰性的任務,就是“自動匹配”玩家進入一個“遊戲房間”,這需要對所有線上玩家做搜尋和過濾。
玩家先登入“大廳伺服器”,然後選擇組隊遊戲的功能,伺服器會通知參與的所有遊戲客戶端,新開一條連線到房間伺服器上,這樣所有參與的使用者就能在房間伺服器裡進行遊戲互動了。
相關文章
- 遊戲伺服器架構概要遊戲伺服器架構
- 遊戲架構 遊戲架構設計(8)遊戲架構
- 經典遊戲伺服器端架構概述遊戲伺服器架構
- LollipopGo遊戲伺服器架構--NetGateWay.go說明Go遊戲伺服器架構Gateway
- 【程式設計師的遊戲開發之路】 遊戲架構程式設計師遊戲開發架構
- 常用的設計架構架構
- 常用核心架構架構
- 阿里雲架構師解讀三大主流遊戲架構阿里架構遊戲
- 阿里雲架構師解讀四大主流遊戲架構阿里架構遊戲
- 實時多人遊戲同步方案:不同架構的對比遊戲架構
- 【知識分享】 伺服器的架構伺服器架構
- 常用的幾種大資料架構剖析大資料架構
- 通過遊戲學習計算機架構 - embeddedartistry遊戲計算機架構Dart
- 透過遊戲學習計算機架構 - embeddedartistry遊戲計算機架構Dart
- 世界觀架構之射擊遊戲技能設定架構遊戲
- 單體架構、微服務和無伺服器架構架構微服務伺服器
- 基於滴滴雲的棋牌遊戲服務端架構設計遊戲服務端架構
- 自己架設雲遊戲伺服器需要注意什麼?遊戲伺服器
- 無伺服器架構 - CodeCraft伺服器架構Raft
- 基於MVVM架構的遊戲App如何整合華為遊戲服務(一)——登入認證MVVM架構遊戲APP
- 用Swoole來寫個聯機對戰遊戲呀!(二)單機遊戲架構遊戲架構
- 遊戲伺服器 遠端登入遊戲伺服器工具遊戲伺服器
- 搭建我的世界遊戲伺服器 讓遊戲更high遊戲伺服器
- 遊戲架構設計——高效能並行程式設計遊戲架構並行行程程式設計
- 遊戲世界觀架構之射擊題材知多少(上)遊戲架構
- 微信玄武大廳小程式房卡遊戲架構搭建遊戲架構
- Steam 遊戲上架指南遊戲
- 1.31億月活的爆款遊戲,它的後端架構是怎樣的?遊戲後端架構
- 伺服器架構圖 伺服器登入方法伺服器架構
- 遊戲伺服器概述遊戲伺服器
- Serverless無伺服器架構詳解Server伺服器架構
- 常見的網站伺服器架構有哪些?網站伺服器架構
- 高併發下的伺服器架構演變伺服器架構
- Go遊戲服務端框架從零搭建(一)— 架構設計Go遊戲服務端框架架構
- 汪子熙趣味成語接龍的遊戲軟體設計架構說明遊戲架構
- 遊戲是如何讓你沉迷的?《劍與遠征》前期數值架構分析遊戲架構
- 探索使用 Golang 和 Webassembly 構建一個多人遊戲伺服器GolangWeb遊戲伺服器
- 被資料“綁架”的電子遊戲遊戲