專利名稱:一種數據同步方法和游戲服務器的制作方法
技術領域:
本發(fā)明涉及一種網絡游戲領域,尤其涉及一種數據同步方法和游戲服務器。
背景技術:
現有的網絡經營類游戲中,客戶端需要和服務器保持長連接或者頻繁與服務器進行數據交互,這樣客戶端才能將客戶端前臺的游戲動畫表現作為用戶行為上報給后臺服務器作為數據變更的依據。比如在餐廳經營網絡游戲中,當用戶通過客戶端運行游戲時,客戶端前臺中的動畫動態(tài)的顯示餐廳的上菜、收銀等情況,并當動畫中發(fā)生經營績效數據變化動作時(如,服務員向就餐者進行收銀并完成收銀的動畫發(fā)生時),根據該動作的發(fā)生實時改變客戶端前臺場景中顯示的經營績效數據,如經驗值、金幣值、剩余主菜數目等;同時,客戶端會將這些經營績效數據實時的發(fā)送給服務器端,服務器端保存這些數據。如根據完成收銀動畫的顯示,客戶端會向服務器發(fā)送收銀完成動作觸發(fā)的數據,告訴服務器消耗了一道菜肴,并且獲得了多少金幣,服務器接收到客戶端發(fā)來的數據后會將此數據更新服務器上的用戶數據?,F有技術的數據產生和同步模式,給服務器造成了很大的壓力,特別是當用戶數量達到一定數目時,其數據的上報會非常頻繁,這樣游戲的運營成本就會增多。而且,在客戶端運行游戲的時候,經營績效數據是客戶端發(fā)送給服務器存儲的,客戶端就可能通過外掛模擬用戶行為非法獲取經驗或者金錢,對其他不通過作弊外掛正常運行游戲的用戶不公平,不利于游戲的健康發(fā)展。
發(fā)明內容
本發(fā)明實施例所要解決的技術問題在于,提供一種數據同步方法和游戲服務器。 使得服務器不會因為在線用戶過多需要同步數據導致壓力增大,而且在數據同步上杜絕了用戶利用外掛篡改用戶游戲數據的可能。為了解決上述技術問題,本發(fā)明實施例提供了一種數據同步方法,用于經營類網絡游戲中,該方法包括
服務器端從客戶端獲取經營函數的輸入參數的當前值,其中,所述經營函數的輸入參數包括使用所述客戶端的用戶的基礎參數;
所述服務器端根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果, 所述輸出結果包括所述游戲的當前經營績效數據;
當所述客戶端啟動所述游戲時,所述服務器端向所述客戶端發(fā)送所述經營績效數據供所述客戶端顯示。其中,該方法還可進一步包括
當客戶端啟動所述游戲時,從所述服務器端獲取所述經營函數的輸入參數的當前值和所述經營績效數據以進行游戲狀態(tài)顯示;
當客戶端運行所述游戲時,所述客戶端根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,并顯示所述輸出結果中的經營績效數據。其中,所述經營函數的輸入參數還包括時間參數。另一方面,本發(fā)明實施例還提供了一種游戲服務器,用于經營類網絡游戲中并與客戶端連接,該游戲服務器包括
參數輸入模塊,用于從客戶端獲取經營函數的輸入參數的當前值,其中,所述經營函數的輸入參數包括使用所述客戶端的用戶的基礎參數;
函數計算模塊,用于根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,所述輸出結果包括所述游戲的當前經營績效數據;
第一數據發(fā)送模塊,用于當所述客戶端啟動所述游戲時,向所述客戶端發(fā)送所述經營績效數據供所述客戶端顯示。其中,游戲服務器還可進一步包括
第二數據發(fā)送模塊,用于當客戶端啟動所述游戲時,向所述客戶端發(fā)送所述經營函數的輸入參數的當前值和所述經營績效數據以便所述客戶端進行游戲狀態(tài)顯示。其中,所述經營函數的輸入參數還包括時間參數。相應的,本發(fā)明實施例還提供了一種游戲運行客戶端,用于經營類網絡游戲中,該客戶端包括
獲取模塊,用于當啟動所述游戲時,從所述服務器端獲取所述經營函數的輸入參數的當前值和所述經營績效數據以進行游戲狀態(tài)顯示;
運行模塊,用于當運行所述游戲時,根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,并顯示所述輸出結果中的經營績效數據。其中,所述經營函數的輸入參數還包括時間參數。該客戶端還可進一步包括第三數據發(fā)送模塊,用于向所述服務器端發(fā)送經營函數的輸入參數的當前值。在本發(fā)明實施例中,當客戶端運行游戲時,服務器端根據從客戶端獲知的經營函數的輸入參數的當前值和經營函數來自行生成經營績效數據,而不需要客戶端實時的上報,一方面減少了與客戶端通過通訊傳輸的數據,另一方面也杜絕了客戶端利用外掛篡改用戶游戲數據的可能。
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本發(fā)明實施例中的數據同步方法的一個具體流程示意圖2是本發(fā)明實施例中客戶端計算績效和實時顯示動畫的一個具體流程示意圖; 圖3是本發(fā)明實施例中的游戲服務器的一個具體組成示意圖; 圖4是本發(fā)明實施例中的游戲運行客戶端的一個具體組成示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。對于經營類網絡游戲,通常用戶對實時性操作的要求不高,而是重在設定經營的方式和狀態(tài)等。如,對于餐廳經營游戲,用戶一般只需要維持服務員、廚師數目、準備可經營的主菜和配菜、對餐廳進行個人偏好的設置等即可,并不需要用戶進行具體餐廳經營活動的實時操作,而用戶也通常比較關心的是一段時間后根據之前設定的經營策略所得到的經營績效。那么在考慮游戲數據同步時,可以不必實時的根據前臺動畫顯示的經營活動來更新服務器的數據。本發(fā)明人研究發(fā)現了上述的經營類網絡游戲的特點,并據此提出根據不同的經營類游戲來制定不同的盈利公式(或可稱為經營函數,該函數的輸入通常為用戶設定的經營策略的參數,輸出則為經營績效),比如餐廳通過用戶的雇員數量,桌椅數量和擺放方式這幾個因素(這些因素即體現了用戶的經營策略)來制定一條公式,此公式在服務器上運行, 這樣即使前臺正在運行游戲,服務器(即后臺)也不需要實時的獲取客戶端(即前臺)上的經營績效數據就可以獲得根據用戶設置的經營策略所能夠達到的經營績效。為了能使用戶的體驗更逼真,還可以在客戶端也采用相同的公式來計算績效,并根據該公式的計算結果在其前臺的動畫表現中進行實時播放。以下則結合具體實施例進行描述。如圖1所示,本發(fā)明實施例提供了一種數據同步方法,用于經營類網絡游戲中,該方法包括
101、服務器端從客戶端獲取經營函數的輸入參數的當前值,其中,所述經營函數的輸入參數包括使用所述客戶端的用戶的基礎參數。如,對于餐廳經營游戲,該基礎參數可包括當前正在工作的廚師數目、服務員數目、可提供的主菜、餐廳桌椅數目、餐廳桌椅擺放位置等。上述的參數可根據用戶的喜歡在一定范圍內進行設置。102、服務器端根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,所述輸出結果包括所述游戲的當前經營績效數據。其中,該輸入參數還可包括一時間參數,這樣服務器就只需要在一定時間點才進行經營績效的計算,該績效結果可模擬出經過一定時間之后的績效情況。103、當所述客戶端啟動所述游戲時,所述服務器端向所述客戶端發(fā)送所述經營績效數據供所述客戶端顯示。由于績效數據是以服務器根據經營函數計算獲得的為準,所以當每次客戶端啟動游戲時,都需要從服務器載入最新的績效數據。進一步具體來說,采用了本發(fā)明中的實施例后服務器和客戶端之間在動畫過程中不進行任何通信,在如餐廳經營等經營類游戲中,依照公式
金錢=時間長度*業(yè)務具體的函數(因素1,因素2,因素3) 來計算“時間長度”段時間內增加的金錢數目,其中,因素是根據具體的業(yè)務邏輯可以是桌椅的數量,服務員的數量,以及路徑的因素等等。服務器端會在客戶端每次訪問主頁的時候計算一次這個金錢數值(根據上一次訪問的時間點和這一次訪問的時間點得出時間長度,進而得出獲得的金錢),并將該金錢數值發(fā)送給客戶端。
即對于服務器端來說,不論客戶端是否運行該游戲,服務器都會根據既定的函數計算當前的經營績效。當然,考慮到服務器的負擔,服務器可以每隔一段時間進行績效的計算,或是只有當客戶端啟動游戲進行顯示時才進行計算。當然,如前所述,為了獲得更逼真的游戲體驗,客戶端也可以采用同樣的函數和輸入值來計算績效,則本方法還可進一步包括
A、當客戶端啟動所述游戲時,從所述服務器端獲取所述經營函數的輸入參數的當前值和所述經營績效數據以進行游戲狀態(tài)顯示;
B、當客戶端運行所述游戲時,所述客戶端根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,并顯示所述輸出結果中的經營績效數據。如圖2所示,以餐廳經營為例,說明客戶端計算績效和實時顯示動畫的過程,該過程包括
201、在客戶端動態(tài)顯示餐廳進入一個顧客。202、利用公式計算距離上一個顧客進來時到現在的盈利額度。203、判斷該盈利額度是否已達到消耗一份菜肴的要求,若是則轉入步驟204、否則轉入步驟205。204、對201步驟中進入的顧客進行正常服務,動畫顯示為顧客找到凳子、等待上
菜、就餐等。205、等待下一個顧客進入,對201步驟中進入的顧客顯示為找不到凳子或等待時
間超時、顧客走出餐廳等。在本發(fā)明實施例中,當客戶端運行游戲時,服務器端根據從客戶端獲知的經營函數的輸入參數的當前值和經營函數來自行生成經營績效數據,而不需要客戶端實時的上報,一方面減少了與客戶端通過通訊傳輸的數據,另一方面也杜絕了客戶端利用外掛篡改包括經營績效數據在內的用戶游戲數據(如,用戶利用外掛刷游戲經驗值、金幣值等)的可能。另一方面,本發(fā)明實施例還提供了一種游戲服務器,用于經營類網絡游戲中并與客戶端連接,該游戲服務器1包括
參數輸入模塊10,用于從客戶端獲取經營函數的輸入參數的當前值,其中,所述經營函數的輸入參數包括使用所述客戶端的用戶的基礎參數;
函數計算模塊12,用于根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,所述輸出結果包括所述游戲的當前經營績效數據;
第一數據發(fā)送模塊14,用于當所述客戶端啟動所述游戲時,向所述客戶端發(fā)送所述經營績效數據供所述客戶端顯示。其中,游戲服務器1還可進一步包括
第二數據發(fā)送模塊16,用于當客戶端啟動所述游戲時,向所述客戶端發(fā)送所述經營函數的輸入參數的當前值和所述經營績效數據以便所述客戶端進行游戲狀態(tài)顯示。如圖3顯示,為上述各模塊均包括的情況。相應的,本發(fā)明實施例還提供了一種游戲運行客戶端,用于經營類網絡游戲中,該客戶端2包括
獲取模塊20,用于當啟動所述游戲時,從所述服務器端獲取所述經營函數的輸入參數的當前值和所述經營績效數據以進行游戲狀態(tài)顯示;
運行模塊22,用于當運行所述游戲時,根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,并顯示所述輸出結果中的經營績效數據。其中,所述經營函數的輸入參數還包括時間參數。由于用戶可能在客戶端2修改當前的經營策略,即修改輸入參數,因此,當該參數修改后客戶端2應將該參數發(fā)送給服務器1,以便服務器1在后臺計算績效數據。相應的, 則該客戶端2還可進一步包括第三數據發(fā)送模塊對,用于向所述服務器端發(fā)送經營函數的輸入參數的當前值。如圖4所示,為客戶端還包括第三數據發(fā)送模塊M的情況。在本發(fā)明實施例中,當客戶端運行游戲時,服務器端根據從客戶端獲知的經營函數的輸入參數的當前值和經營函數來自行生成經營績效數據,而不需要客戶端實時的上報,一方面減少了與客戶端通過通訊傳輸的數據,另一方面也杜絕了客戶端利用外掛篡改包括經營績效數據在內的用戶游戲數據(如,用戶在游戲中的經驗值、金幣值等)的可能。本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。以上所揭露的僅為本發(fā)明一種較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,因此依本發(fā)明權利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
權利要求
1.一種數據同步方法,用于經營類網絡游戲中,其特征在于,所述方法包括服務器端從客戶端獲取經營函數的輸入參數的當前值,其中,所述經營函數的輸入參數包括使用所述客戶端的用戶的基礎參數;所述服務器端根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果, 所述輸出結果包括所述游戲的當前經營績效數據;當所述客戶端啟動所述游戲時,所述服務器端向所述客戶端發(fā)送所述經營績效數據供所述客戶端顯示。
2.如權利要求1所述的方法,其特征在于,所述方法包括當客戶端啟動所述游戲時,從所述服務器端獲取所述經營函數的輸入參數的當前值和所述經營績效數據以進行游戲狀態(tài)顯示;當客戶端運行所述游戲時,所述客戶端根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,并顯示所述輸出結果中的經營績效數據。
3.如權利要求1或2所述的方法,其特征在于,所述經營函數的輸入參數還包括時間參數。
4.一種游戲服務器,用于經營類網絡游戲中并與客戶端連接,其特征在于,所述游戲服務器包括參數輸入模塊,用于從客戶端獲取經營函數的輸入參數的當前值,其中,所述經營函數的輸入參數包括使用所述客戶端的用戶的基礎參數;函數計算模塊,用于根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,所述輸出結果包括所述游戲的當前經營績效數據;第一數據發(fā)送模塊,用于當所述客戶端啟動所述游戲時,向所述客戶端發(fā)送所述經營績效數據供所述客戶端顯示。
5.如權利要求4所述的游戲服務器,其特征在于,所述游戲服務器還包括第二數據發(fā)送模塊,用于當客戶端啟動所述游戲時,向所述客戶端發(fā)送所述經營函數的輸入參數的當前值和所述經營績效數據以便所述客戶端進行游戲狀態(tài)顯示。
6.如權利要求4或5所述的游戲服務器,其特征在于,所述經營函數的輸入參數還包括時間參數。
7.一種游戲運行客戶端,用于經營類網絡游戲中,其特征在于,所述客戶端包括獲取模塊,用于當啟動所述游戲時,從所述服務器端獲取所述經營函數的輸入參數的當前值和所述經營績效數據以進行游戲狀態(tài)顯示;運行模塊,用于當運行所述游戲時,根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,并顯示所述輸出結果中的經營績效數據。
8.如權利要求7所述的客戶端,其特征在于,所述經營函數的輸入參數還包括時間參數。
9.如權利要求7或8所述的客戶端,其特征在于,所述客戶端還包括第三數據發(fā)送模塊,用于向所述服務器端發(fā)送經營函數的輸入參數的當前值。
全文摘要
本發(fā)明實施例公開了一種數據同步方法和游戲服務器,用于經營類網絡游戲中,該方法包括服務器端從客戶端獲取經營函數的輸入參數的當前值,其中,所述經營函數的輸入參數包括使用所述客戶端的用戶的基礎參數;所述服務器端根據所述經營函數和輸入參數的當前值獲得所述經營函數的輸出結果,所述輸出結果包括所述游戲的當前經營績效數據;當所述客戶端啟動所述游戲時,所述服務器端向所述客戶端發(fā)送所述經營績效數據供所述客戶端顯示。采用本發(fā)明,使得服務器不會因為在線用戶過多需要同步數據導致壓力增大,而且在數據同步上杜絕了用戶利用外掛篡改用戶游戲數據的可能。
文檔編號H04L29/06GK102571695SQ20101059104
公開日2012年7月11日 申請日期2010年12月16日 優(yōu)先權日2010年12月16日
發(fā)明者盧歆, 王 琦 申請人:騰訊科技(深圳)有限公司