專利名稱:基于分布式服務(wù)器的回合制網(wǎng)絡(luò)游戲的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)游戲領(lǐng)域,尤其是一種基于分布式服務(wù)器的回合制網(wǎng)絡(luò)游戲的實(shí)
現(xiàn)方法。
背景技術(shù):
基于分布式服務(wù)器的網(wǎng)絡(luò)游戲中,所有的游戲資源都分布在各個(gè)不同的服務(wù)器 上,如果訪問不在當(dāng)前主機(jī)的數(shù)據(jù)資源,就需要通過訪問域的方式進(jìn)行遠(yuǎn)程調(diào)用,而不能像 傳統(tǒng)單一服務(wù)器下開發(fā)的網(wǎng)絡(luò)游戲,以直接通過訪問對(duì)象的方式進(jìn)行。這樣就給開發(fā)工作 帶來不便利性,使得開發(fā)人員需要通過更多更復(fù)雜的邏輯代碼才能實(shí)現(xiàn)原來在單一服務(wù)器 下很容易達(dá)成的目標(biāo)。同時(shí),由于大量數(shù)據(jù)訪問和接口調(diào)用需要通過遠(yuǎn)程訪問的方式,若網(wǎng) 絡(luò)突然出現(xiàn)中斷,導(dǎo)致通信不可用,就會(huì)增加了系統(tǒng)的不可靠性,這樣在需要實(shí)現(xiàn)對(duì)可靠性 有較高要求的系統(tǒng)時(shí),復(fù)雜度增大了很多。
發(fā)明內(nèi)容
為了解決上述問題,本發(fā)明提供一種具有高度可靠性和易于開發(fā)的基于分布式服
務(wù)器的回合制網(wǎng)絡(luò)游戲的實(shí)現(xiàn)方法。 為達(dá)成上述目的,本發(fā)明的技術(shù)方案是 —種基于分布式服務(wù)器的回合制網(wǎng)絡(luò)游戲的實(shí)現(xiàn)方法,當(dāng)需要開啟一場回合制戰(zhàn) 斗時(shí),首先通過創(chuàng)建域的方式在戰(zhàn)斗處理服務(wù)器上創(chuàng)建一個(gè)戰(zhàn)斗域,隨后將需要參加回合 制戰(zhàn)斗的玩家對(duì)象上與戰(zhàn)斗相關(guān)的數(shù)據(jù)抽取出來,通過遠(yuǎn)程調(diào)用的方式發(fā)送到該戰(zhàn)斗處理 服務(wù)器上的戰(zhàn)斗域中,并在該戰(zhàn)斗域中根據(jù)接收到的數(shù)據(jù)創(chuàng)建相對(duì)應(yīng)的玩家對(duì)象鏡像,然 后進(jìn)行戰(zhàn)斗流程處理直至戰(zhàn)斗結(jié)束,最后,將玩家對(duì)象鏡像上與戰(zhàn)斗有關(guān)的數(shù)據(jù)抽取出來, 通過遠(yuǎn)程調(diào)用的方式發(fā)送到其對(duì)應(yīng)的玩家對(duì)象所在的玩家服務(wù)器上,并覆蓋玩家對(duì)象原有 的數(shù)據(jù)。 采用本發(fā)明的技術(shù)方案后,由于將所有參與回合制戰(zhàn)斗的玩家對(duì)象的與戰(zhàn)斗相關(guān) 的數(shù)據(jù)發(fā)送到同一臺(tái)服務(wù)器上,并在該服務(wù)器上還原了玩家鏡像對(duì)象,所以開發(fā)者可以在 內(nèi)存中直接以面向玩家對(duì)象的方式訪問數(shù)據(jù),編寫戰(zhàn)斗控制邏輯。這樣比每次需要訪問數(shù) 據(jù)時(shí)都通過遠(yuǎn)程調(diào)用的方式從另一臺(tái)主機(jī)獲取便利了很多,程序人員無需考慮遠(yuǎn)程調(diào)用的 異步性、不可靠性,從而能夠更加輕松地處理回合制戰(zhàn)斗過程中的邏輯和數(shù)據(jù),極大地降低 了開發(fā)成本,提升了開發(fā)速度。
圖1是本發(fā)明中數(shù)據(jù)處理流程圖;
圖2是本發(fā)明中數(shù)據(jù)處理關(guān)系圖;
圖3是本發(fā)明中網(wǎng)絡(luò)拓?fù)鋱D。 以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳述。
具體實(shí)施例方式
如圖3,本發(fā)明一種基于分布式服務(wù)器的回合制網(wǎng)絡(luò)游戲的實(shí)現(xiàn)方法,主要包括多 個(gè)玩家(客戶端)、若干存儲(chǔ)有玩家對(duì)象數(shù)據(jù)的服務(wù)器(玩家服務(wù)器)、至少一個(gè)用于承載 回合制戰(zhàn)斗過程的服務(wù)器(戰(zhàn)斗處理服務(wù)器)。 所述的玩家對(duì)象數(shù)據(jù)是與用來表示玩家在網(wǎng)絡(luò)游戲?qū)崿F(xiàn)過程中的實(shí)例化對(duì)象相
關(guān)的數(shù)據(jù),即與存儲(chǔ)于玩家服務(wù)器中玩家對(duì)象相應(yīng)的數(shù)據(jù)段數(shù)據(jù)和代碼段數(shù)據(jù)。 如圖2所示,當(dāng)存儲(chǔ)于玩家服務(wù)器A的玩家對(duì)象1、玩家對(duì)象2和存儲(chǔ)于玩家服務(wù)
器B的玩家對(duì)象3、玩家對(duì)象4共同開啟一場回合制戰(zhàn)斗時(shí),在戰(zhàn)斗處理服務(wù)器C創(chuàng)建一個(gè)
戰(zhàn)斗域,并將所有需要進(jìn)入回合制戰(zhàn)斗的玩家對(duì)象在該戰(zhàn)斗域中生成玩家對(duì)象鏡像,將該
玩家對(duì)象數(shù)據(jù)傳輸給該戰(zhàn)斗域中對(duì)應(yīng)的玩家對(duì)象鏡像,即在戰(zhàn)斗域內(nèi)根據(jù)接收到的數(shù)據(jù)重
新還原成對(duì)應(yīng)邏輯對(duì)象和數(shù)據(jù),與真正玩家對(duì)象一一映射;在戰(zhàn)斗過程中,只針對(duì)所有的玩
家對(duì)象鏡像進(jìn)行訪問,并且在戰(zhàn)斗結(jié)束后,再將與玩家對(duì)象鏡像相關(guān)的數(shù)據(jù)回傳至其對(duì)應(yīng)
的玩家對(duì)象所在的玩家服務(wù)器并覆蓋該玩家對(duì)象的數(shù)據(jù)。
所述的玩家對(duì)象和玩家對(duì)象鏡像的不同之處主要在于 1、數(shù)據(jù)段不同 玩家對(duì)象鏡像的數(shù)據(jù)段所擁有的數(shù)據(jù)部分和玩家對(duì)象的重疊;在玩家對(duì)象戰(zhàn)斗過 程中所需要訪問使用到的數(shù)據(jù)段且玩家對(duì)象擁有的部分即為重疊部分?jǐn)?shù)據(jù);而玩家對(duì)象所 擁有的與戰(zhàn)斗無關(guān)的數(shù)據(jù)則是玩家對(duì)象的獨(dú)有數(shù)據(jù);在戰(zhàn)斗過程中,因?yàn)閼?zhàn)斗過程所產(chǎn)生 的其他臨時(shí)性數(shù)據(jù)則為玩家對(duì)象鏡像的獨(dú)有數(shù)據(jù)。 —般來講,玩家對(duì)象和玩家對(duì)象鏡像都有表示該玩家對(duì)象的生命力、行動(dòng)力、攻擊 力等相關(guān)數(shù)據(jù),這是重疊數(shù)據(jù)部分;但是玩家對(duì)象上用來記錄玩家游戲時(shí)間、游戲坐標(biāo)等與 戰(zhàn)斗過程無關(guān)的數(shù)據(jù)是玩家對(duì)象的獨(dú)有數(shù)據(jù);在戰(zhàn)斗過程中,需要記錄當(dāng)前玩家對(duì)象狀態(tài) 的數(shù)據(jù),比如中毒、禁制等數(shù)據(jù)則是玩家對(duì)象鏡像的獨(dú)有數(shù)據(jù)。 另外,玩家對(duì)象數(shù)據(jù)中需要記錄玩家的網(wǎng)絡(luò)連接端口號(hào),而玩家對(duì)象鏡像數(shù)據(jù)中 需要記錄對(duì)應(yīng)玩家對(duì)象的目標(biāo)數(shù)據(jù)。
2.代碼段不同 由于玩家對(duì)象是用來表示玩家游戲過程中的實(shí)例化對(duì)象,所以其邏輯代碼需要涉 及到游戲過程中的所有操作;而玩家對(duì)象鏡像只用來處理玩家對(duì)象在回合制戰(zhàn)斗過程中的 操作邏輯,所以其代碼段的內(nèi)容與玩家對(duì)象的不同。其中最明顯的區(qū)別在于玩家對(duì)象需要 提供一個(gè)發(fā)送數(shù)據(jù)包的邏輯功能,該段邏輯代碼的主要作用就是將需要發(fā)送給玩家對(duì)象鏡 像的數(shù)據(jù)按照玩家對(duì)象上記錄的網(wǎng)絡(luò)連接端口號(hào)發(fā)送過去;而玩家對(duì)象鏡像明顯不具有該 段邏輯代碼,且也不可能與玩家存在網(wǎng)絡(luò)連接關(guān)系,所以玩家對(duì)象的邏輯代碼其主要功能 是將需要發(fā)送給玩家的數(shù)據(jù)通過遠(yuǎn)程通信調(diào)用的方式先發(fā)送給玩家對(duì)象,再由玩家對(duì)象通 過網(wǎng)絡(luò)連接發(fā)送給玩家。 如圖l所示,本發(fā)明需要開啟一場回合制戰(zhàn)斗時(shí),首先通過創(chuàng)建域的方式在戰(zhàn)斗 處理服務(wù)器上創(chuàng)建一個(gè)戰(zhàn)斗域,隨后將需要參加回合制戰(zhàn)斗的玩家對(duì)象上標(biāo)注戰(zhàn)斗標(biāo)記, 然后將與戰(zhàn)斗相關(guān)的數(shù)據(jù)抽取出來,通過遠(yuǎn)程調(diào)用的方式發(fā)送到該戰(zhàn)斗處理服務(wù)器上的戰(zhàn) 斗域中,并在該戰(zhàn)斗域中根據(jù)接收到的數(shù)據(jù)創(chuàng)建相對(duì)應(yīng)的玩家對(duì)象鏡像,然后,進(jìn)行戰(zhàn)斗流程處理直至戰(zhàn)斗結(jié)束,最后,將玩家對(duì)象鏡像上與戰(zhàn)斗有關(guān)的數(shù)據(jù)抽取出來,通過遠(yuǎn)程調(diào)用 的方式發(fā)送到該對(duì)應(yīng)的玩家對(duì)象所在的玩家服務(wù)器上,并覆蓋玩家對(duì)象原有的數(shù)據(jù),同時(shí) 去掉玩家對(duì)象上的戰(zhàn)斗標(biāo)記。
權(quán)利要求
一種基于分布式服務(wù)器的回合制網(wǎng)絡(luò)游戲的實(shí)現(xiàn)方法,其特征在于當(dāng)需要開啟一場回合制戰(zhàn)斗時(shí),首先通過創(chuàng)建域的方式在戰(zhàn)斗處理服務(wù)器上創(chuàng)建一個(gè)戰(zhàn)斗域,隨后將需要參加回合制戰(zhàn)斗的玩家對(duì)象上與戰(zhàn)斗相關(guān)的數(shù)據(jù)抽取出來,通過遠(yuǎn)程調(diào)用的方式發(fā)送到該戰(zhàn)斗處理服務(wù)器上的戰(zhàn)斗域中,并在該戰(zhàn)斗域中根據(jù)接收到的數(shù)據(jù)創(chuàng)建相對(duì)應(yīng)的玩家對(duì)象鏡像,然后進(jìn)行戰(zhàn)斗流程處理直至戰(zhàn)斗結(jié)束,最后,將玩家對(duì)象鏡像上與戰(zhàn)斗有關(guān)的數(shù)據(jù)抽取出來,通過遠(yuǎn)程調(diào)用的方式發(fā)送到其對(duì)應(yīng)的玩家對(duì)象所在的玩家服務(wù)器上,并覆蓋玩家對(duì)象原有的數(shù)據(jù)。
全文摘要
本發(fā)明公布了一種基于分布式服務(wù)器的回合制網(wǎng)絡(luò)游戲的實(shí)現(xiàn)方法,當(dāng)需要開啟一場回合制戰(zhàn)斗時(shí),首先通過創(chuàng)建域的方式在戰(zhàn)斗處理服務(wù)器上創(chuàng)建一個(gè)戰(zhàn)斗域,隨后將需要參加回合制戰(zhàn)斗的玩家對(duì)象上與戰(zhàn)斗相關(guān)的數(shù)據(jù)抽取出來,通過遠(yuǎn)程調(diào)用的方式發(fā)送到該戰(zhàn)斗處理服務(wù)器上的戰(zhàn)斗域中,并在該戰(zhàn)斗域中根據(jù)接收到的數(shù)據(jù)創(chuàng)建相對(duì)應(yīng)的玩家對(duì)象鏡像,然后進(jìn)行戰(zhàn)斗流程處理直至戰(zhàn)斗結(jié)束,最后,將玩家對(duì)象鏡像的數(shù)據(jù)抽取出來,通過遠(yuǎn)程調(diào)用的方式發(fā)送到其對(duì)應(yīng)的玩家對(duì)象所在的玩家服務(wù)器上,并覆蓋玩家對(duì)象原有的數(shù)據(jù);本發(fā)明能夠更加輕松地處理回合制戰(zhàn)斗游戲過程中的邏輯和數(shù)據(jù),極大地降低了開發(fā)成本,提升了開發(fā)速度。
文檔編號(hào)G06F19/00GK101751513SQ20091011310
公開日2010年6月23日 申請(qǐng)日期2009年12月23日 優(yōu)先權(quán)日2009年12月23日
發(fā)明者盧竑巖, 葉振華 申請(qǐng)人:廈門市吉比特網(wǎng)絡(luò)技術(shù)有限公司