相對于單機游戲或者其它的局域網(wǎng)游戲不同,大型網(wǎng)絡游戲的客戶端不再對數(shù)據(jù)進行邏輯處理,大部分的邏輯計算都放在后端的服務器進行處理,導致玩家與后臺
服務器間的數(shù)據(jù)傳輸頻次多且大多保持長時鏈接,因此服務器端的響應速度、并發(fā)能力、鏈接穩(wěn)定性等性能也就直接決定了客戶端玩家的用戶體驗。所以游戲服務
器選型和架構建設跟一般的Web服務器都不同,游戲服務器對于硬件和整個系統(tǒng)架構的要求更高。
服務器快速響應;
由于網(wǎng)游的服務器集群對應所有的游戲客戶端,每個玩家的動作都會實時地互相影響。比如玩家間PK,在接收到玩家的指令后,服務器需要立刻判斷雙方攻擊力、
血量、防御力、抗性等屬性,然后經(jīng)過一定的算法才能終輸出一個傷害值。這些都是需要服務器進行實時的運算并作出反饋,延遲需要在毫秒級。因此,網(wǎng)游的
邏輯服務器需要強大的計算能力,或是采用高性能的服務器,或是通過計算服務器集群提升整個系統(tǒng)的計算能力。
服務器高并發(fā)能力;
對于一款熱門的網(wǎng)游,高并發(fā)能力是考驗服務器端的一道難題。玩家的大規(guī)模同時登陸和游戲內(nèi)的國戰(zhàn)、群聊都會需要的并發(fā)鏈接處理。以IM服務器舉例,當
某個玩家在游戲發(fā)布了一條消息,目標是全地圖所有玩家,那么這則消息可能需要同時發(fā)送給數(shù)萬的玩家,而這僅僅只是一個玩家發(fā)布的消息,如果是10個、100個
或者10000個玩家同時發(fā)送廣播呢?所以一個同樣硬件配置的服務器,可能跑Nginx(用于處理Web服務器的并發(fā))可以同時處理上萬的鏈接,但是對于一個游戲服務器
就只有1、2千了。因此,對于登錄和管理服務器而言,能否支持高并發(fā)是重要的考量依據(jù)。
大量的數(shù)據(jù)
一款大型網(wǎng)游在服務器端需要存儲大量的數(shù)據(jù),比如游戲中的地圖數(shù)據(jù)、資源數(shù)據(jù)等基本不會有太大變化的數(shù)據(jù)。另外,玩家每創(chuàng)建一個游戲角色都會有一系列數(shù)
據(jù)需要存儲,比如名稱、ID、裝備、寵物、屬性等等,而且不論這個玩家是否上線、是否長時間沒有登錄,相關的數(shù)據(jù)都需要保存。這就是為啥網(wǎng)游的存儲服
務器需要較大的、的存儲空間來保存這些數(shù)據(jù)的原因了。