專利名稱:一種通用的手機角色扮演(rpg)網絡游戲引擎的制作方法
技術領域:
本發(fā)明涉及一種游戲開發(fā)技術領域,特別涉及一種通用的手機角 色扮演(RPG)網絡游戲引擎的設計方案。
背景技術:
無線網絡技術的發(fā)展帶動了手機游戲的發(fā)展。當前主流的幾個手 機游戲開發(fā)平臺為J2ME (KJAVA) 、 Symbian、 Brew和 Windows-Mobile。其中J2ME平臺發(fā)展最為成熟,包含了一整套開 發(fā)手機上音頻播放、視頻動畫之類應用的API函數和獨立的Java虛 擬機(JVM),具有良好的移植性和平臺無關性,因而應用在幾乎所有 手機上。手機軟件開發(fā)平臺的發(fā)展成熟反過來又促進了手機游戲的發(fā) 展。在各種網絡游戲中,大型的多人在線RPG游戲(MMORPG)很 適合手機操作簡單的要求,吸引了越來越多的玩家,具有廣闊的發(fā)展 前景。但是,由于手機在內存容量,屏幕大小等軟、硬件方面的限制, 針對手機平臺上的游戲引擎研究還不多。為此,本發(fā)明在手機等移動 設備的研究的基礎上,提出了一種通用的手機RPG網絡游戲引擎設 計方案。發(fā)明內容本發(fā)明的目的是為了克服現有技術的不足,提出一種通用的手機 角色扮演(RPG)網絡游戲引擎的設計方案,它提供了一個在移動設備, 尤其是手機終端上建立MMORPG的開發(fā)平臺。使用本發(fā)明提供的引 擎,手機游戲開發(fā)商或其他游戲開發(fā)人員可以大大減少開發(fā)同類游戲的代價,縮短游戲的開發(fā)周期,同時能夠讓游戲開發(fā)人員快速地開發(fā)出移動設備上的MMORPG。本發(fā)明的目的通過以下技術方案予以實現本發(fā)明提供的一種通用的手機角色扮演(RPG)網絡游戲引擎由服 務器110、客戶端100、編輯器140、數據庫120、日志文件130以及 游戲資源150這6部分組成。服務器110是網絡游戲服務器,主要接收從客戶端發(fā)送過來的請 求,對其進行響應,以便執(zhí)行玩家要求的行動。同時,服務器也會將 其它玩家的行動結果分發(fā)給所有的客戶端,從而保證所有客戶端對游 戲世界信息的同步性??蛻舳?00是資源受限的移動設備,如手機、PDA,擁有針對玩 家的網絡游戲接口,主要負責收集玩家的指令,接收從服務器發(fā)送過 來的數據,并通過客戶端應用程序將這些數據表現的內容展現在游戲 世界中。編輯器140是一個提供給游戲開發(fā)人員構建游戲世界的工具。游 戲開發(fā)人員利用它創(chuàng)建虛擬的游戲世界地圖,進行非玩家控制角色 (NPC)設置,設定游戲中的事件,并且由它輸出的游戲資源數據可以 直接存入數據庫中或者以日志文件的形式保存。數據庫120存儲了網絡游戲運行過程中的各種數據。曰志文件130記錄了網絡游戲中發(fā)生的各種事件,主要用于監(jiān)控 和維護網絡游戲的正常運行。游戲資源150存儲了用于網絡游戲運行和交互過程中的各種資源文件。本發(fā)明所述的服務器端其架構包括了外部對象160、服務器110 以及系統數據170。外部對象是服務器的一系列外部接口包括客戶端IOO、游戲管理員180和系統web應用程序190,用來向服務器傳送數據或傳達管 理指令;系統數據170為服務器提供數據存儲功能,中間是服務器上 的核心邏輯部分,包含了客戶端軟件模塊200、管理員軟件模塊210、 系統軟件模塊220、命令處理模塊250、邏輯調度管理器230以及各 模塊邏輯240。系統中的三種類型的軟件模塊第一種客戶端軟件模 塊200 ,主要負責接受客戶端的各種請求,并且在客戶訪問結束時將 更新數據發(fā)送到客戶端;第二種管理員軟件模塊210 ,游戲設計師 或系統管理員通過它發(fā)送操作指令,管理整個服務器,比如更新游戲 版本,數據備份和刪除,都是通過管理員軟件模塊完成;最后一種系 統軟件模塊220,是服務器在初始化或結束時調用來進行一些初始化 工作或清除收尾工作。邏輯調度管理器230相當于服務器的中央處理器,起著調度管理 作用,相當于PC機上的控制器,它根據當前的游戲狀態(tài),將處理工 作轉移到具體的各模塊邏輯中進行。本發(fā)明所述的游戲引擎采用以下同步性策略為了描述本發(fā)明所述的引擎的同步機制,我們定義了 一個術語 時間戳。整個游戲世界有一條時間軸,時間戳是用來記錄時間軸上每 一點的變量。這條時間軸記錄了服務器上的更新歷史。每當客戶端的一次更新請求到達時,服務器的時間戳就加l,并且我們將一次更新 等價為游戲世界中某些變量的修改。由于每個客戶端并不是在發(fā)生變化后,請求服務器更新后才訪問 服務器,而是定期訪問服務器,所以整個引擎系統有如下兩種時間戳: 服務器端公共的時間戳和客戶端各自的時間戳。兩者有區(qū)別,但又緊 密聯系著前者是主線,每當客戶端請求一次服務器更新,它的值就 加l;后者是輔助,客戶端每次訪問服務器都必須發(fā)送它的時間戳到 服務器,訪問結束時,服務器將自己的時間戳發(fā)回客戶端,客戶端的 時間戳就被更新為服務器當前的時間戳??偟膩碚f,客戶端的行為影 響服務器時間戳的變化,反過來客戶端的時間戳伴隨服務器時間戳的 變化而變化, 一定是小于或等于服務器的時間戳。本發(fā)明的同步策略為當客戶端訪問服務器時,服務器比較該客 戶端的時間戳和自己的時間戳,如果二者不同,則說明中間肯定是有 其它客戶端的更新請求,游戲世界已經發(fā)生過更新,于是服務器就依 次將中間的更新結果發(fā)送給此客戶端,從而達到了同步。比如客戶端 當前的時間戳為11,服務器的為14,則服務器根據時間軸倒退回去, 將發(fā)生在12、 13、 14處的更新結果依次發(fā)送給客戶端。如果兩個時間戳相等,則說明游戲世界在這段時間內沒有發(fā)生任何變化,服務器 端不進行任何處理。采用這種同步策略,可以避免某個客戶端發(fā)生變化,請求一次更 新后,服務器必須馬上通知其它所有的客戶端進行更新,而可以等到 各個客戶端下一個周期訪問服務器時再告知它更新,所以同一個更新對不同客戶端來說發(fā)生在不同的時候,可以很好地解決同時傳輸時的 網絡堵塞問題。本發(fā)明所述的編輯器是一個可視化的、所見即所得的圖形編輯 器。它最大的特點就是集所有相關功能于一身,例如地圖編輯器、NPC設置(人物編輯器)、事件腳本編寫(事件編輯器)等。另外, 由編輯器加工后的游戲數據可以直接存入服務器的后臺數據庫中,也 可以以日志文件的形式保存。這些數據可以直接輸入游戲引擎,不用 進行任何修改就可以實現一個游戲設計人員想要的虛擬世界。本發(fā)明具有以下有益效果 (l)依照本引擎的設計方案可以快速開發(fā)出一個運行在手機等資源受限的移動設備上的MMORPG;(2) 采用時間戳策略的同步機制可以很好地實現客戶端對游戲世 界信息的同步性,避免服務器必須同時分發(fā)更新數據到各客戶端,使 引擎擁有一條高效實用,并且擴展性很強的信息傳送通道;(3) 本引擎具有功能強大的編輯器,由它制作的各種游戲資源可 以以文件形式輸入游戲引擎或直接存入數據庫中,不用進行任何修改 就可以實現一個游戲設計人員想要的虛擬世界。
圖1是通用手機網絡游戲引擎的總體設計示意圖; 圖2是通用手機網絡游戲引擎的服務器架構圖; 圖3是引擎中采用的同步策略示意圖; 圖4是編輯器構建的一個游戲虛擬世界示意圖;圖5是同步策略組隊同步示意圖。
具體實施方式
圖1 圖5所示為本發(fā)明的實施例,下面結合附圖進一步說明本 發(fā)明提供的一種通用的手機角色扮演(RPG)網絡游戲引擎的具體實施 方式,并結合引擎的兩個實例應用手機上的RPG網絡游戲《戰(zhàn)國》 和《魔獸》給本發(fā)明提供一個具體的實施例。如圖1所示的引擎總體架構圖,本發(fā)明提供的一種通用的手機角 色扮演(RPG)網絡游戲引擎由服務器110、客戶端100、編輯器140、 數據庫120、日志文件130以及游戲資源150這6部分組成。服務器IIO是普通的網絡服務器,主要接收從客戶端發(fā)送過來的 請求,對其進行響應,以便執(zhí)行玩家要求的行動;同時,服務器也會 將其它玩家的行動結果分發(fā)給所有的客戶端,從而保證所有客戶端對 游戲世界信息的同步性??蛻舳?00包括手機、PDA等資源受限的移動設備,是提供給 各個玩家的網絡游戲接口;它主要負責收集玩家的指令,接收從服務 器發(fā)送過來的數據,并通過客戶端應用程序將這些數據表現的內容展 現在游戲世界中。編輯器140是一個提供給游戲開發(fā)人員構建游戲世界的工具。游 戲開發(fā)人員利用它創(chuàng)建虛擬的游戲世界地圖,進行非玩家控制角色 (NPC)設置,設定游戲中的事件等工作。并且由它輸出的游戲資源數 據可以直接存入數據庫120中或者以日志文件130的形式保存。數據庫120存儲了網絡游戲運行過程中的各種數據。日志文件130記錄了網絡游戲中發(fā)生的各種事件,主要用于監(jiān)控 和維護網絡游戲的正常運行。游戲資源150存儲了用于網絡游戲運行和交互過程中的各種資 源文件。所述的服務器端架構如圖2所示,服務器110是普通的網絡服務 器,包含了客戶端軟件模塊200、管理員軟件模塊210、系統軟件模 塊220、命令處理模塊250、邏輯調度管理器230以及各模塊邏輯240, 與服務器110相連的分別是外部對象160和系統數據170。所述的外部對象160是服務器110的一系列外部接口客戶端、 游戲管理員和系統web應用程序,用來向服務器傳送數據或傳達管 理指令;系統數據170為服務器提供數據存儲功能,中間110是服務 器上的核心邏輯部分。所述的系統三種類型的軟件模塊,第一種客戶軟件模塊200,主 要負責接受客戶端的各種請求,并且在客戶訪問結束時將更新數據發(fā) 送到客戶端;第二種管理員軟件模塊210,游戲設計師或系統管理員 通過它發(fā)送操作指令,管理整個服務器,比如更新游戲版本,數據備 份和刪除等,都是通過管理員軟件模塊完成;最后一種系統軟件模塊 220,它被放置在Tomcat、 Weblogic等web容器中,是服務器在初始 化或結束時調用來進行一些初始化工作或清除等收尾工作。邏輯調度管理器230相當于服務器的中央處理器,起著調度管理 作用,相當于PC機上的控制器,它根據當前的游戲狀態(tài),將處理工 作轉移到具體的各模塊邏輯240中進行。所述的本發(fā)明采用的同步策略實施方式為當客戶端訪問服務器 時,服務器比較該客戶端的時間戳和自己的時間戳,如果二者不同, 則說明中間肯定是有其它客戶端的更新請求,游戲世界已經發(fā)生過更 新,于是服務器就依次將中間的更新結果發(fā)送給此客戶端,從而達到 了同步。比如客戶端當前的時間戳為11,服務器的為14,則服務器根據時間軸倒退回去,將發(fā)生在12、 13、 14處的更新結果依次發(fā)送 給客戶端。如果兩個時間戳相等,則說明游戲世界在這段時間內沒有 發(fā)生任何變化,服務器端不進行任何處理。如圖3所示,假設客戶端1第一次訪問服務器110時,它的時 間戳和服務器上的時間戳相等,都為13,而且客戶端1此次訪問沒 有要求更新,那結束時客戶端1和服務上的時間戳仍然是13。緊接 著客戶端2訪問服務器,并且要求服務器更新,那么服務器的時間 戳就加1,變?yōu)?4。那么客戶端1第二次訪問服務器時,自己的時間 戳為13,而服務器的時間戳為14, 二者有差距,所以必定有更新發(fā) 生過,于是服務器將時間戳為14處的更新數據發(fā)送給客戶端1,同 時客戶端1的時間戳置為14,從而達到了客戶端1和客戶端2的信 息同步。所述的編輯器是一個可視化的、所見即所得的圖形編輯器,它最 大的特點就是集所有相關功能于一身,例如地圖編輯器、NPC設置 (人物編輯器)、事件腳本編寫(事件編輯器)等。另外,由編輯器 加工后的游戲數據可以直接存入服務器的后臺數據庫中,也可以以曰 志文件的形式保存。這些數據可以直接輸入游戲引擎,不用進行任何修改就可以實現一個游戲設計人員想要的虛擬世界。結合引擎的兩個實例應用手機上的RPG網絡游戲《戰(zhàn)國》和 《魔獸》,本發(fā)明提供一個具體的實施例,其步驟為 第一步用編輯器制作游戲資源數據在地圖編輯模式下,導入地圖元素文件,通過拖放地圖元素到每一格就可以構建虛擬的游戲世界場景,地圖數據保存在文件map.dat 中;在事件編輯模式下,可以設定每個事件的發(fā)生過程及各個事件發(fā) 生的先后順序,包括設定NPC的各種動作和行為,這些事件數據保 存在文件event.dat中;通過拖放NPC到游戲世界中的不同地圖格就 可以控制NPC出現在合適的地方,NPC設置數據保存在文件 person.dat中。由于我們的編輯器封裝了數據庫的操作,所以由編輯器得到的這 三類資源數據都可以直接存入到服務器的數據庫中,以便持久保存和 隨時更改。圖4是我們用編輯器構建的一個虛擬游戲世界,其中人物為NPC, "Ken: Good Moming"是NPC完成的一個簡單的對話事件。第二步添加游戲的具體邏輯 由于有了第一步制作的游戲資源,加上引擎搭建的框架,剩下的 就是在引擎的合適位置加入游戲的具體邏輯。比如增加一個游戲狀態(tài)的話,只需要在邏輯調度管理器230中增加這個游戲狀態(tài),再在各模 塊邏輯240中增加該狀態(tài)下的具體的邏輯處理函數即可,其中游戲世 界的構建、NPC設置和事件安排只需要讀取第一步中得到的數據,進行相應的處理就可以。第三步游戲中的同步處理圖5是應用本發(fā)明提出的同步策略解決的一個組隊同步示意圖。 一般的網絡游戲中,玩家組隊主要是在服務器上把兩個玩家的數據聯 系起來,只是邏輯上的組隊,在游戲世界中,并不能把組隊的行為直觀 的表現出來。而本發(fā)明的引擎中采用的同步策略得到的是可視化組 隊。當組隊后,作為隊員的玩家會跳轉到隊長身后.在離隊前,隊員 會跟隨隊長移動和戰(zhàn)斗,而這些動作對同一游戲世界中的所有玩家 都是可見的。在玩家對戰(zhàn)或協同打怪中,隊員也可以觀察到自己隊友 及敵方的一舉一動。I是組隊前的一個示意圖;II是組隊后,隊員跟隨隊長移動和戰(zhàn) 斗;III是在隊長指揮下,隊員一起攻擊怪物的示意圖。第四步由一份源碼編譯成適合各款機型的各個版本的手機應用程序首先,在游戲源碼中用預編譯語句進行預編譯處理。因為各款手 機的屏幕大小,內存大小,按鍵值等都不同,所以在程序中必須用預 處理語句對各款手機的特殊情況進行相應的處理;其次,編譯各款手 機版本時,設定不同的編譯參數,激發(fā)對應的預編譯條件成立,就可 以達到將一份源碼編譯成適合各款機型的不同版本應用程序的目的; 最后,逐個版本進行一次完整的編譯、混淆、壓縮、打包。經過這三 步,就整合成能夠運行在各款手機上的應用程序。
權利要求
1、一種通用的手機角色扮演(RPG)網絡游戲引擎,其特征是,由服務器110、客戶端100、編輯器140、數據庫120、日志文件130以及游戲資源150這6部分組成,其中(1)服務器110是普通的網絡服務器,包含了客戶端軟件模塊200、管理員軟件模塊210、系統軟件模塊220、命令處理模塊250、邏輯調度管理器230以及各模塊的邏輯240,與服務器110相連的分別是外部對象160和系統數據170;(2)客戶端100是資源受限的移動設備,如手機、PDA,是提供給各個玩家的網絡游戲接口;(3)編輯器140是一個提供給游戲開發(fā)人員構建游戲世界的工具,游戲開發(fā)人員利用它創(chuàng)建虛擬的游戲世界地圖,進行非玩家控制角色(NPC)設置,設定游戲中的事件,并且由它輸出的游戲資源數據可以直接存入數據庫120中或者以日志文件130的形式保存;(4)數據庫120存儲了網絡游戲運行過程中的各種數據;(5)日志文件130記錄了網絡游戲中發(fā)生的各種事件,主要用于監(jiān)控和維護網絡游戲的正常運行;(6)游戲資源150存儲了用于網絡游戲運行和交互過程中的各種資源文件。
2、 根據權利要求1所述的一種通用的手機角色扮演(RPG)網絡游戲 引擎,其特征是服務器110采用同步性策略保證所有客戶端對 游戲世界信息的同步性。
3、 根據權利要求1所述的一種通用的手機角色扮演(RPG)網絡游戲 引擎,其特征是所述的外部對象160是服務器110的一系列外 部接口包括客戶端、游戲管理員和系統web應用程序,用來 向服務器傳送數據或傳達管理指令。
4、 根據權利要求1所述的一種通用的手機角色扮演(RPG)網絡游戲 引擎,其特征是所述的系統數據170為服務器提供數據存儲功 能,服務器110是服務器端的核心邏輯部分。
5、 根據權利要求1所述的一種通用的手機角色扮演(RPG)網絡游戲 引擎,其特征是所述的服務器端的三種類型的軟件模塊中,客 戶端軟件模塊200包含了聯網模塊,主要負責接受客戶端的各 種請求,并且在客戶訪問結束時將更新數據發(fā)送到客戶端;管理 員軟件模塊210包含了管理員指令模塊游戲設計師或系統管理 員通過它發(fā)送操作指令,管理整個服務器,比如更新游戲版本, 數據備份和刪除,都是通過管理員軟件模塊完成;系統軟件模塊 220包含了服務器啟動初始化工作模塊和服務器關閉清理工作模 塊,是服務器在初始化或結束時調用來進行一些初始化工作或清 除收尾工作。
6、 根據權利要求1所述的一種通用的手機角色扮演(RPG)網絡游戲 引擎,其特征是所述的邏輯調度管理器230相當于服務器的中 央處理器,起著調度管理作用,相當于PC機上的控制器,它根 據當前的游戲狀態(tài),將處理工作轉移到具體的各模塊邏輯240中 進行。
7、 根據權利要求1所述的一種通用的手機角色扮演(RPG)網絡游戲引擎,其特征是所述的同步策略為當客戶端訪問服務器時, 服務器比較該客戶端的時間戳和自己的時間戳,如果二者不同, 則說明中間肯定是有其它客戶端的更新請求,游戲世界已經發(fā)生 過更新,于是服務器就依次將中間的更新結果發(fā)送給此客戶端, 從而達到了同步。
8、 根據權利要求1所述的一種通用的手機角色扮演(RPG)網絡游戲引擎,其特征是所述的編輯器是一個可視化的、所見即所得的圖形編輯器,集地圖編輯器、NPC設置、事件腳本編寫功能于一身,由編輯器加工后的游戲數據可以直接存入服務器的后臺數 據庫中,也可以以日志文件的形式保存,這些數據可以直接輸入 游戲引擎,不用進行任何修改就可以實現一個游戲設計人員想要 的虛擬世界。
全文摘要
本發(fā)明提出了一種通用的手機角色扮演(RPG)網絡游戲引擎的設計方案,它屬于游戲開發(fā)技術領域。它提供了一個面向移動設備,尤其是手機終端建立大規(guī)模用戶網絡游戲(MMORPG)的開發(fā)平臺,具有創(chuàng)新性、靈活性、簡潔性和友好性。引擎包含了游戲內容編輯器、服務器模塊、數據庫和客戶端等網絡游戲組件,可以大大減少手機游戲開發(fā)商,或其他游戲開發(fā)人員開發(fā)同類游戲的代價,縮短游戲的開發(fā)周期,這個開發(fā)平臺自帶有所見即所得的圖形用戶界面的編輯器,能夠讓游戲開發(fā)人員快速地開發(fā)出移動設備上的MMORPG。
文檔編號H04Q7/22GK101335916SQ20081002964
公開日2008年12月31日 申請日期2008年7月22日 優(yōu)先權日2008年7月22日
發(fā)明者王建民, 芳 由, 譚止誠, 郭慶唐 申請人:中山大學;北京拉闊游戲軟件開發(fā)有限公司