計(jì)算機(jī)領(lǐng)域;網(wǎng)絡(luò)領(lǐng)域。
背景技術(shù):
游戲引擎技術(shù)和互聯(lián)網(wǎng)技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明利用J2SE和J2ME等技術(shù)實(shí)現(xiàn)一個(gè)手機(jī)網(wǎng)絡(luò)游戲開(kāi)發(fā)引擎。通過(guò)對(duì)手機(jī)操作系統(tǒng)、手機(jī)游戲市場(chǎng)、手機(jī)游戲用戶需求等方面的分析,確定引擎的技術(shù)選型和主要功能模塊;通過(guò)對(duì)J2SE和J2ME技術(shù)的研究,確定引擎服務(wù)器端和客戶端的技術(shù)架構(gòu),提出基于JAVA NIO技術(shù)開(kāi)發(fā)手機(jī)網(wǎng)絡(luò)游戲引擎服務(wù)器端,J2ME技術(shù)實(shí)現(xiàn)手機(jī)網(wǎng)絡(luò)游戲引擎客戶端的思路并予以實(shí)現(xiàn);并對(duì)引擎開(kāi)發(fā)過(guò)程中所涉及到的核心業(yè)務(wù):網(wǎng)絡(luò)連接、地圖場(chǎng)景、人物動(dòng)作、任務(wù)副本和交易社交系統(tǒng)進(jìn)行業(yè)務(wù)分析,并給出解決方案。
附圖說(shuō)明
附圖1為服務(wù)器端技術(shù)架構(gòu)圖。
附圖2為客戶器端技術(shù)架構(gòu)。
附圖3為服務(wù)端及客戶端在系統(tǒng)架構(gòu)中的層級(jí)。
具體實(shí)施方式
服務(wù)器端技術(shù)架構(gòu):服務(wù)器端引擎是整個(gè)游戲引擎的核心部分,其是建立在java 2 standard edtion上,特別是java.nio及java.sql兩個(gè)系統(tǒng)之上的技術(shù)引擎。其中引擎級(jí)別的最底層是一個(gè)通用邏輯框架,建立在線程基礎(chǔ)上,在邏輯結(jié)構(gòu)上掛接其他子系統(tǒng),包括地圖系統(tǒng),任務(wù)系統(tǒng),交易系統(tǒng),社交系統(tǒng)及其他模塊及下級(jí)子系統(tǒng),游戲內(nèi)容建立的游戲引擎的基礎(chǔ)上。見(jiàn)附圖1。
客戶端技術(shù)架構(gòu):客戶端引擎包括建立在j2me之上的一套邏輯處理系統(tǒng),其上主要構(gòu)建地圖系統(tǒng)及基于UI的功能系統(tǒng),包括人物系統(tǒng),技能系統(tǒng),任務(wù),組隊(duì),聊天,郵件等各個(gè)功能模塊。見(jiàn)附圖2。
客戶端的主要業(yè)務(wù)邏輯是顯示和交互,即接收服務(wù)器指令并顯示游戲的進(jìn)行狀態(tài),同時(shí)接收游戲者的指令并發(fā)送到服務(wù)器端進(jìn)行處理。
游戲的服務(wù)器分為業(yè)務(wù)服務(wù)器和數(shù)據(jù)服務(wù)器,如附圖3。其中業(yè)務(wù)服務(wù)器可分為登錄服務(wù)器和邏輯服務(wù)器,每種業(yè)務(wù)服務(wù)器都對(duì)應(yīng)各自的數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)可以統(tǒng)一部署,也可以分別部署在多臺(tái)服務(wù)器上。
業(yè)務(wù)服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間分離,不同的業(yè)務(wù)服務(wù)器分離都能有效的減少對(duì)服務(wù)器的訪問(wèn)頻率,使一組服務(wù)器可以為更多的客戶端提供服務(wù)。登錄服務(wù)主要處理用戶的登錄請(qǐng)求,同時(shí)反饋給用戶正確的登陸點(diǎn)信息,用戶正常登錄后,邏輯服務(wù)器開(kāi)始接管用戶的信息。邏輯服務(wù)器主要處理游戲的業(yè)務(wù)邏輯。根據(jù)游戲的規(guī)模,邏輯服務(wù)器也可以按照世界、場(chǎng)景、人物等不同層次級(jí)別進(jìn)行細(xì)分,從而提供服務(wù)器群組的運(yùn)行效率。
客戶端Socket直連技術(shù)方案:關(guān)于移動(dòng)終端與服務(wù)器間的Socket接口直接連接方式:基于MIDP Socket的網(wǎng)絡(luò)連接構(gòu)架,基本的構(gòu)架方案是首先與服務(wù)器建立好保持連接后,用一個(gè)線程管理發(fā)送數(shù)據(jù)包,用另一個(gè)線程管理接受數(shù)據(jù)包,退出游戲后,關(guān)閉Socket連接。
由于網(wǎng)絡(luò)不是對(duì)稱接受和發(fā)送數(shù)據(jù)的,所以可能會(huì)有許多數(shù)據(jù)包不斷的被客戶端接收,這里我們通過(guò)數(shù)據(jù)包的邏輯緩沖區(qū)來(lái)實(shí)現(xiàn),客戶端每一個(gè)接受到的數(shù)據(jù)包,接收到以后,先壓入緩沖區(qū)中,等到了每個(gè)游戲循環(huán)周期以后,再處理操作每個(gè)數(shù)據(jù)包。同樣發(fā)送數(shù)據(jù)包也有一個(gè)網(wǎng)絡(luò)緩沖區(qū),每次的數(shù)據(jù)量占滿整個(gè)網(wǎng)絡(luò)緩沖區(qū)以后,就把緩沖區(qū)的數(shù)據(jù)發(fā)送給服務(wù)器端處理,手機(jī)上一般默認(rèn) 的網(wǎng)絡(luò)緩沖區(qū)為4K,這個(gè)是可以人工手動(dòng)調(diào)整的。