幫助中心
香港服務(wù)器租用幫助
香港游戲服務(wù)器需要哪些功能
2018-06-26 14:43:12

一,系統(tǒng)初始化

系統(tǒng)初始化是在沒有客戶端連接的時候,香港服務(wù)器啟動時所需要做的工作?;旧暇褪桥渲梦募淖x取,初始化系統(tǒng)參數(shù)。

但是我們必須要考慮的是:

系統(tǒng)初始化需要的參數(shù)配置在哪兒,是配置在本地香港服務(wù)器,還是配置在數(shù)據(jù)庫;

香港服務(wù)器啟動的時候去數(shù)據(jù)庫取;

配置的修改需不需要重啟香港服務(wù)器等。

二,游戲邏輯

游戲邏輯是游戲的核心功能實現(xiàn),也是整個游戲的服務(wù)中心,它被開發(fā)的好壞,直接決定了游戲香港服務(wù)器在運行中的性能。那在游戲邏輯的開發(fā)中我們要注意些什么呢?

游戲是一種網(wǎng)絡(luò)交互比較強的業(yè)務(wù),好的底層通信,可以最大化游戲的性能,增加單臺香港服務(wù)器處理的同時在線人數(shù),給游戲帶來更好的體驗,至少不容易出現(xiàn)因為網(wǎng)絡(luò)層導(dǎo)致的數(shù)據(jù)交互卡頓的現(xiàn)象。在這里我推薦使用Netty,它是目前最流行的NIO框架,它的用法可以在我之前的文章中查看,這里不再多說了。

有人疑問,代碼也需要分層次?這個是當(dāng)然了,不同的代碼,代表了不同的功能實現(xiàn)?,F(xiàn)在的開發(fā)語言都是面向?qū)ο蟮?,如果我們不加思考,不加整理的把功能代碼亂堆一起,起始看起來是快速實現(xiàn)了功能,但是到后期,如果要修改需求,或在原來的代碼上增加新的需求,那真是被自己打敗了。所以代碼一定要分層,主要有以下幾層:

協(xié)議層,也叫前后臺交互層,它主要負(fù)責(zé)與前臺交互協(xié)議的解析和返回數(shù)據(jù)。在這一層基本上沒有什么業(yè)務(wù)邏輯實現(xiàn)。與前臺交互的數(shù)據(jù)都在這一層開始,也在這一層終止。比如你使用了Netty框架,那么Netty的ChannelHandlerContext即Ctx只能出現(xiàn)在這一層,他不能出現(xiàn)到游戲業(yè)務(wù)邏輯代碼的實現(xiàn)中,接收到客戶端的請求,在這一層把需要的參數(shù)解析出來,再把參數(shù)傳到業(yè)務(wù)邏輯方法中,業(yè)務(wù)邏輯方法處理完后,把要返回給客戶端的數(shù)據(jù)再返回到這一層,在這一層組織數(shù)據(jù),返回給客戶端,這樣就可以把業(yè)務(wù)邏輯和網(wǎng)絡(luò)層分離,業(yè)務(wù)邏輯只關(guān)心業(yè)務(wù)實現(xiàn),而且也方便對業(yè)務(wù)邏輯進行單元測試。

業(yè)務(wù)邏輯層,這里處理真正的游戲邏輯,該計算價格計算價格,該通關(guān)的通關(guān),該計時的計時。該保存數(shù)據(jù)的保存數(shù)據(jù)。但是這一層不直接操作緩存或數(shù)據(jù)庫,只是處理游戲邏輯計算。因為業(yè)務(wù)邏輯層是整個游戲事件的處理核心,所以他的處理是否正確直接決定游戲的正確性。所以這一層的代碼要盡量使用面向?qū)ο蟮姆椒ㄈ崿F(xiàn)。不要出現(xiàn)重復(fù)代碼或相似的功能進行復(fù)制粘貼,這樣修改起來非常不方便,可能是修改了某一處,而忘記了修改另外同樣的代碼。還要考慮每個方法都是可測試的,一個方法的行數(shù)最好不要超過一百行。另外,可以多看看設(shè)計模式的書,它可以幫助我們設(shè)計出靈活,整潔的代碼。

三,數(shù)據(jù)庫系統(tǒng)

數(shù)據(jù)庫是存儲數(shù)據(jù)庫的核心,但是游戲數(shù)據(jù)在存儲到數(shù)據(jù)庫的時候會經(jīng)過網(wǎng)絡(luò)和磁盤的IO,它的訪問速度相對于內(nèi)存來說是很慢的。一般來說,每次訪問數(shù)據(jù)庫都要和數(shù)據(jù)庫建立連接,訪問完成之后,為了節(jié)省數(shù)據(jù)庫的連接資源,要再把連接斷開。

這樣無形中又為香港服務(wù)器增加了開銷,在大量的數(shù)據(jù)訪問時,可能會更慢,而游戲又是要求低延時的,這時該怎么辦呢?我們想到了數(shù)據(jù)庫連接池,即把訪問數(shù)據(jù)庫的連接放到一個地方管理,用完我不斷開,用的時候去那拿,用完再放回去。這樣不用每次都建立新的連接了。

但是如果要我們自己去實現(xiàn)一套連接池管理組件的話,需要時間不說,對技術(shù)的把控也是一個考驗,還要再經(jīng)過測試等等,幸好互聯(lián)網(wǎng)開源的今天,有一些現(xiàn)成的可以使用,這里推薦Mybatis,即實現(xiàn)了代碼與SQL的分離,又有足夠的SQL編寫的靈活性,是一個不錯的選擇。

四,緩存系統(tǒng)

游戲中,客戶端與香港服務(wù)器的交互是要求低延遲的,延遲越低,用戶體驗越好。像之前說過的一樣,低延遲就是要求香港服務(wù)器處理業(yè)務(wù)盡量的快,客戶端一個請求過來,要在最短的時間內(nèi)響應(yīng)結(jié)果,最低不得超過500ms,因為加上來回的網(wǎng)絡(luò)傳輸耗時,基本上就是600ms-到700ms了,再長玩家就會覺得游戲卡了。

如果直接從數(shù)據(jù)庫中取數(shù)據(jù),處理完之后再存回數(shù)據(jù)庫的話,這個性能是跟不上的。在香港服務(wù)器,數(shù)據(jù)在內(nèi)存中處理是最快的,所以我們要把一部分常用的數(shù)據(jù)提前加載到內(nèi)存中,比如說游戲數(shù)據(jù)配置表,經(jīng)常登陸的玩家數(shù)據(jù)等。這樣在處理業(yè)務(wù)時,就不用走數(shù)據(jù)庫了,直接從內(nèi)存中取就可以了,速度更快。

游戲中常見的緩存有兩種:

直接把數(shù)據(jù)存儲在jvm或香港服務(wù)器內(nèi)存中

使用第三方的緩存工具,這里推薦Redis,詳細的用法可以自己去查詢。

五,游戲日志

日志是個好東西呀,一個游戲中更不能少了日志,而且日志一定要記錄的詳細。它是玩家在整個游戲中的行為記錄,有了這個記錄,我們就可以分析玩家的行為,查找游戲的不足,在處理玩家在游戲中的問題時,日志也是一個良好的憑證和快速處理方式

在游戲中,日志分為:

系統(tǒng)日志,主要記錄游戲香港服務(wù)器的系統(tǒng)情況。比如:數(shù)據(jù)庫能否正常連接,香港服務(wù)器是否正常啟動,數(shù)據(jù)是否正常加載;玩家行為日志,比如玩家發(fā)送了什么請求,得到了什么物品,消費了多少貨幣等等;

統(tǒng)計日志,這種日志是對游戲中所有玩家某種行為的一種統(tǒng)計,根據(jù)這個統(tǒng)計來分析大部分玩家的行為,得出一些共性或不同之處,以方法運營做不同的活動吸引用戶消費。

在構(gòu)架設(shè)計中,日志記錄一定要做為一種強制行為,因為不強制的話,可能由于某種原因某個功能忘記加日志了,那么當(dāng)這個功能出問題了,或者運營跟我們要這個功能的一些數(shù)據(jù)庫,就傻眼了。又得加需求,改代碼了。日志一定要設(shè)計一種良好的格式,日志記錄的數(shù)據(jù)要容易讀取,分解。日志行為可以用枚舉描述,在功能最后的處理方法里面加上這個枚舉做為參數(shù),這樣不管誰在調(diào)用這個方法時,都要去加參數(shù)描述。

俗話說,工欲善其事,必先利其器。游戲管理工具是對游戲運行中的一系列問題處理的一種工具。它不僅是給開發(fā)人員用,大多數(shù)是給運營使用。游戲上線后,我們需要針對線上的問題進行不同的處理。不可能把所有問題都讓程序員去處理吧,于是程序員們想到了一個辦法,給你們做一個工具,你們愛誰處理誰處理去吧。

六,游戲管理工具

游戲管理工具是一個不斷增漲的系統(tǒng),因為它很多時候是伴隨著游戲中遇到的問題而實現(xiàn)的。

但是根據(jù)經(jīng)驗,有一些功能是必須有的,比如:香港服務(wù)器管理,主要負(fù)責(zé)香港服務(wù)器的開啟,關(guān)閉,香港服務(wù)器配置信息,玩家信息查詢;玩家管理,比如踢人,封號;統(tǒng)計查詢,玩家行為日志查詢,統(tǒng)計查詢,次留率查詢,郵件服務(wù),修改玩家數(shù)據(jù)等。

根據(jù)游戲的不同要求,凡是可以能過工具實現(xiàn)的,都做到游戲管理工具里面。它是針對所有香港服務(wù)器的管理。

一個好的,全的游戲管理工具,可以提高游戲運營中遇到問題處理的效率,為玩家提供更好的服務(wù)。

七,公共組件

公共組件是為游戲運行中提供公共的服務(wù)。例如:

充值香港服務(wù)器,我們沒必須一個服用一個充值,而且你也不能對外提供多個充值香港服務(wù)器地址,和第三方公司對接,他們絕對不干。

還有運營搞活動時的禮包碼;

還有注冊用戶的管理,玩家一個注冊賬號可以進不同的區(qū)等。

這些都是針對所有區(qū)服提供的服務(wù),所以要單獨做,與游戲邏輯分開,這樣方便管理,部署和負(fù)載均衡。

還有SDK的登陸驗證,現(xiàn)在手游比較多,與渠道對接里要進行驗證,這往往是很多http請求,速度慢,所以這個也要拿出來單獨做,不要在游戲邏輯中去驗證,因為網(wǎng)絡(luò)IO的訪問時間是不可控制的,http是阻塞的請求。

所以,綜上來看,一個游戲香港服務(wù)器起碼有幾個大的功能模塊組成:

新客優(yōu)惠
特價 酷睿i3系列
性價比熱銷推薦,年銷量第一
1180/月起
USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請免費產(chǎn)品試用服務(wù)
立即申請