欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對象的創(chuàng)建方法和裝置與流程

文檔序號:11878815閱讀:260來源:國知局
對象的創(chuàng)建方法和裝置與流程

本發(fā)明涉及軟件處理領(lǐng)域。具體而言,本發(fā)明涉及一種對象的創(chuàng)建方法和裝置。



背景技術(shù):

興趣區(qū)域(Area Of Interest,英文縮寫為AOI)在大型多人在線角色扮演游戲(massively multiplayer online role-playing game,英文縮寫為MMORPG)服務(wù)器上是不可或缺的技術(shù),通俗的說,就是玩家角色能實時看到的場景中的區(qū)域,玩家能看到場景的大小稱之為視野,在視野范圍內(nèi)能感知周圍對象(其他玩家、NPC、子彈等)的進入和離開,通常的AOI算法是基于玩家視野大小,服務(wù)器根據(jù)一定的算法,計算各個同步對象間的距離,根據(jù)距離和玩家視野大小來觸發(fā)進入或者離開視野的消息。

通常,玩家指玩游戲的人,有時候也指游戲中玩家操作的角色。同步指玩家的移動、動作等狀態(tài)除了自己看到,需要將這些狀態(tài)實時的通知給看到自己的其他玩家的過程。視野指玩家角色可以看到場景中多大的范圍。同步對象指需要進行同步的服務(wù)器對象,如:玩家、場景中NPC、子彈等對象。

視野的大小會對服務(wù)器的性能和網(wǎng)絡(luò)流量產(chǎn)生很大的影響,在相關(guān)技術(shù)方案中,視野是玩家為中心點的圓形或者正方形的區(qū)域。圖1是根據(jù)相關(guān)技術(shù)的AOI的示意圖,如圖1所示,D代表一個主角(玩家),圓圈區(qū)域A1表示的主角服務(wù)器端AOI的視野范圍,圓圈區(qū)域A2代表主角攝像機可見區(qū)域(即,視錐),通常情況下,只要有其他玩家S1(或者NPC)進入圓圈區(qū)域A1,服務(wù)器AOI模塊就會發(fā)送玩家S1(或NPC)進入視野的消息給游戲邏輯服務(wù)器,邏輯服務(wù)器收到后,將進入視野的玩家數(shù)據(jù)打包,發(fā)送給主角D,通知主角D創(chuàng)建S1這個玩家。

這種以圓形和方形視野的同步方案雖然實現(xiàn)簡單,但也造成了網(wǎng)絡(luò)流量的浪費,一般情況下2.5D或者3D游戲中,玩家是以斜視角的方式進行游戲(如圖1),主角D只關(guān)心視錐(圓圈區(qū)域A2)內(nèi)的同步對象(可見玩家或NPC等,如S4),對于視錐外同步對象(如S2、S3)并不關(guān)心,而服務(wù)器的同步范圍(視野范圍)要大于客戶端可見范圍,造成了服務(wù)器、客戶端CPU和網(wǎng)絡(luò)流量的浪費。

針對上述的問題,目前尚未提出有效地解決方案。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例提供了對象的創(chuàng)建方法和裝置,解決了相關(guān)技術(shù)中對象同步方法所導(dǎo)致的問題。

根據(jù)本發(fā)明的一個方面,提供了一種對象的創(chuàng)建方法,包括:接收第一消息,其中,所述第一消息中攜帶有第一數(shù)據(jù);根據(jù)所述第一數(shù)據(jù)創(chuàng)建殼對象,其中,所述殼對象用于在游戲中表示所述對象;接收第二消息,其中,所述第二消息中攜帶有第二數(shù)據(jù),所述第二數(shù)據(jù)用于創(chuàng)建所述殼對象對應(yīng)的對象;至少根據(jù)所述第二數(shù)據(jù)創(chuàng)建所述對象。

根據(jù)本發(fā)明的另一個方面,還提供了一種對象的創(chuàng)建方法,包括:發(fā)送第一消息,其中,所述第一消息中攜帶有第一數(shù)據(jù),所述第一數(shù)據(jù)用于創(chuàng)建殼對象,所述殼對象用于在游戲中表示所述對象;發(fā)送第二消息,其中,所述第二消息中攜帶有第二數(shù)據(jù),所述第二數(shù)據(jù)用于創(chuàng)建所述殼對象對應(yīng)的對象。

根據(jù)本發(fā)明的另一個方面,還提供了一種對象的創(chuàng)建裝置,包括:第一模塊,用于接收第一消息,其中,所述第一消息中攜帶有第一數(shù)據(jù);第二模塊,用于根據(jù)所述第一數(shù)據(jù)創(chuàng)建殼對象,其中,所述殼對象用于在游戲中表示所述對象;第三模塊,用于接收第二消息,其中,所述第二消息中攜帶有第二數(shù)據(jù),所述第二數(shù)據(jù)用于創(chuàng)建所述殼對象對應(yīng)的對象;第四模塊,用于至少根據(jù)所述第二數(shù)據(jù)創(chuàng)建所述對象。

根據(jù)本發(fā)明的另一個方面,還提供了一種對象的創(chuàng)建裝置,包括:第一模塊,用于發(fā)送第一消息,其中,所述第一消息中攜帶有第一數(shù)據(jù);所述第一數(shù)據(jù)用于創(chuàng)建殼對象,所述殼對象用于在游戲中表示所述對象;第二模塊,用于發(fā)送第二消息,其中,所述第二消息中攜帶有第二數(shù)據(jù),所述第二數(shù)據(jù)用于創(chuàng)建所述殼對象對應(yīng)的對象。

在本發(fā)明實施例中采用了先創(chuàng)建殼對象,在創(chuàng)建殼對象對應(yīng)的對象的方式,從而解決了相關(guān)技術(shù)中對象同步方法所導(dǎo)致的問題,減少了網(wǎng)絡(luò)流量。

附圖說明

此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:

圖1是根據(jù)相關(guān)技術(shù)的AOI的示意圖;

圖2是根據(jù)本發(fā)明的一個實施例的對象的創(chuàng)建方法的流程圖;

圖3是根據(jù)本發(fā)明的一個實施例的對象的創(chuàng)建裝置的示意圖;

圖4是根據(jù)本發(fā)明的另一個實施例的對象的創(chuàng)建方法的流程圖;

圖5是根據(jù)本發(fā)明的示例性實施例的對象的創(chuàng)建裝置的示意圖;

圖6是根據(jù)本發(fā)明實施例的客戶端和服務(wù)器的交互的流程圖;

圖7是根據(jù)本發(fā)明實施例的創(chuàng)建同步對象的另一個實施方式的AOI示意圖。

具體實施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。

需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或模塊的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或模塊,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或模塊。

根據(jù)本發(fā)明實施例,提供了一種可以通過本申請裝置實施例執(zhí)行的方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。

根據(jù)本發(fā)明實施例,提供了一種對象的創(chuàng)建方法。圖2是根據(jù)本發(fā)明的一個實施例的對象的創(chuàng)建方法的流程圖,如圖2所示,該流程包括如下步驟:

步驟S202,接收第一消息,其中,該第一消息中攜帶有第一數(shù)據(jù);

步驟S204,根據(jù)第一數(shù)據(jù)創(chuàng)建殼對象,其中,該殼對象用于在游戲中代表對象;

步驟S206,接收第二消息,其中,該第二消息中攜帶有第二數(shù)據(jù),第二數(shù)據(jù)用于創(chuàng)建該殼對象對應(yīng)的對象;

步驟S208,至少根據(jù)第二數(shù)據(jù)創(chuàng)建對象。

通過上述步驟,將對象創(chuàng)建的步驟分為兩個階段。

在第一個階段,如步驟S202和步驟S204所示的,僅僅接收用于創(chuàng)建在游戲中代表對象的殼對象的第一數(shù)據(jù),由于游戲中的對象可能不全處于玩家的興趣區(qū)域中,因此不需要接收所有對象的全部數(shù)據(jù),所以在該第一階段,對于所有對象僅僅接收能夠在游戲中代表對象的數(shù)據(jù),即創(chuàng)建殼對象的第一數(shù)據(jù)即可。通過這樣的方式,可以顯著減少接收的數(shù)據(jù)量。由此,對于需要創(chuàng)建對象可以選擇性地發(fā)起同步。

在第二個階段,如步驟S206和步驟S208所示的,對于想要創(chuàng)建的對象,接收創(chuàng)建對象所需的第二數(shù)據(jù)以最終創(chuàng)建對象。

由于在該方法中,僅用第二數(shù)據(jù)創(chuàng)建對象,而對其余對象,僅創(chuàng)建在游戲中代表其即可的殼對象,以這樣的方式,對象的創(chuàng)建可以選擇性地進行,使得需要接收的數(shù)據(jù)量大大減少,節(jié)約了帶寬和性能消耗。

為了創(chuàng)建在游戲中代表對象的殼對象以及創(chuàng)建對象,可選地,第二數(shù)據(jù)為創(chuàng)建對象需要的全部數(shù)據(jù),第一數(shù)據(jù)為第二數(shù)據(jù)的一部分;或者,第一數(shù)據(jù)與第二數(shù)據(jù)的和為創(chuàng)建對象需要的全部數(shù)據(jù)。

第一數(shù)據(jù)只要能夠創(chuàng)建一個殼對象即可,在實施的過程中可以根據(jù)實際情況的需要來進行選擇。在一個可選的實施例中,第一數(shù)據(jù)可以包括以下至少之一:對象的標(biāo)識信息、對象在游戲中的位置信息。標(biāo)識信息可以起到標(biāo)識對象的作用,位置信息可以起到為對象占位的作用,在該可選實施例中,使用這樣的第一數(shù)據(jù)相比創(chuàng)建對象的數(shù)據(jù)量明顯減少,并且使用這些數(shù)據(jù)能夠在游戲中代表對象,卻無需包括對象的全部數(shù)據(jù),由此創(chuàng)建的對象因此稱為“殼對象”。

為了確定需要創(chuàng)建殼對象的對象,在一個可選實施例中,可以在對象進入角色的同步范圍之后,接收第一消息,其中,角色為玩家在游戲中控制的角色。當(dāng)然,也可以在其他的情況下接收第一消息以創(chuàng)建殼對象。以此可選實施例中的方式,對于角色同步范圍內(nèi)的全部對象將被創(chuàng)建殼對象,而不是直接創(chuàng)建包含全部對象數(shù)據(jù)的對象,減少了需要接收的數(shù)據(jù)。

在上述步驟中,只接收了代表對象所需的殼對象的數(shù)據(jù),還需要接收用于創(chuàng)建對象所需的第二數(shù)據(jù)。在一個可選實施例中,接收該第二數(shù)據(jù)包括在對象進入角色在游戲中的預(yù)定范圍之后,接收第二消息,其中,該預(yù)定范圍小于同步范圍。通過這樣的方式可以在所有殼對象中進行選擇,選出進入角色在游戲中的預(yù)定范圍的對象進行創(chuàng)建。當(dāng)然,也可以以其他的標(biāo)準(zhǔn)進行殼對象中要創(chuàng)建的對象的選擇。以此可選實施例中的方式,創(chuàng)建殼對象對應(yīng)的需要創(chuàng)建的對象。

可選地,在本實施例中,選擇對象基于角色的主角攝像機可見區(qū)域進行。對于進入主角攝像機可見區(qū)域的對象,可以接收同步該對象所需的數(shù)據(jù)。此外,由于網(wǎng)絡(luò)延時的存在,對象進入角色的主角攝像機可見區(qū)域至控制角色的玩家可見有一定的延時,因此,可以根據(jù)角色的移動速度、網(wǎng)絡(luò)延時情況和角色在游戲中的主角攝像機可見區(qū)域大小大概計算出一個比主角攝像機可見區(qū)域大的虛擬視野,基于該虛擬視野選擇對象。因此,在一個可選實施例中,預(yù)定范圍為第一范圍或第二范圍,該第一范圍是角色的主角攝像機可見區(qū)域,該第二范圍大于等于該第一范圍,該第二范圍是根據(jù)角色的移動速度、網(wǎng)絡(luò)延時情況和該第一范圍計算得到的。以此可選實施例中的方式,從殼對象中選擇進入主角攝像機可見區(qū)域的對象以創(chuàng)建對象,此外,可以一定程度上緩解延時的情況。

在可選實施例中,在接收第二消息之前,可以判斷對象是否進入角色在游戲中的預(yù)定范圍;在對象進入該預(yù)定范圍之后,發(fā)送請求消息,其中,該請求消息用于請求第二數(shù)據(jù)。以此可選實施例的方式,可以確定對象進入預(yù)定范圍,從而請求創(chuàng)建對象所需的數(shù)據(jù)。

對于進入預(yù)定范圍,或主角攝像機可見區(qū)域或虛擬視野的對象的篩選可以以建立篩選列表的形式進行,可選地,根據(jù)本實施例的方法還包括:在對象進入預(yù)定范圍之后,發(fā)送請求消息包括:從篩選列表中篩選出進入角色的預(yù)定范圍的殼對象,其中,該殼對象在被建立之后加入到該篩選列表中;將篩選出的殼對象放入列表中;從該列表中讀取殼對象并發(fā)送請求消息,該請求消息用于請求該殼對象對應(yīng)的對象的第二數(shù)據(jù)。需要理解的是,可以定時進行篩選,篩選的時間間隔是可以根據(jù)網(wǎng)絡(luò)和游戲環(huán)境按需調(diào)整的。以此可選實施例中的方式,通過建立篩選列表篩選進入預(yù)定范圍的殼對象,再通過建立列表的方式,請求列表中的殼對象對應(yīng)的需要創(chuàng)建的對象的數(shù)據(jù)。

此外應(yīng)理解的是,本實施例中的對象是游戲中的其他玩家、NPC或子彈中的至少之一,也可以是對象在本領(lǐng)域中的其他表達形式。本實施例中的角色的同步范圍可以是興趣區(qū)域,該興趣區(qū)域可以是由服務(wù)器計算得出的,還應(yīng)理解,興趣區(qū)域也可以是以任何合適的方式計算得出的興趣區(qū)域。

通過本實施例描述的方法,既減少了需要接收的數(shù)據(jù)量,又保證了選擇性地接收需要創(chuàng)建對象的數(shù)據(jù)以創(chuàng)建對象,有效降低了創(chuàng)建同步對象的數(shù)量,節(jié)約了網(wǎng)絡(luò)流量和CPU性能。

相應(yīng)地,根據(jù)本發(fā)明實施例也可以提供一種可以執(zhí)行根據(jù)上述實施例的方法的裝置。圖3是根據(jù)本發(fā)明的一個實施例的對象的創(chuàng)建裝置的示意圖,如圖3所示,該裝置包括如下模塊。

第一模塊301,用于接收第一消息,其中,第一消息中攜帶有第一數(shù)據(jù);

第二模塊303,用于根據(jù)第一數(shù)據(jù)創(chuàng)建殼對象,其中,該殼對象用于在游戲中代表對象;

第三模塊305,用于接收第二消息,其中,第二消息中攜帶有第二數(shù)據(jù),第二數(shù)據(jù)用于創(chuàng)建與該殼對象對應(yīng)的對象;

第四模塊307,用于至少根據(jù)第二數(shù)據(jù)創(chuàng)建對象。

本實施例中的對象的創(chuàng)建裝置可以執(zhí)行參考上述實施例中描述的對象的創(chuàng)建方法,本實施例在此不再贅述。

以上是根據(jù)本發(fā)明實施例的客戶端側(cè)的方法和裝置,其從客戶端側(cè)完成殼對象和與該殼對象對應(yīng)的對象的創(chuàng)建。根據(jù)本發(fā)明的實施例還包括服務(wù)器側(cè)的方法和裝置,其細節(jié)在以下內(nèi)容中詳細描述。

根據(jù)本發(fā)明的另一個實施例,還提供了一種對象的創(chuàng)建方法。圖4是根據(jù)本發(fā)明的另一個實施例的對象的創(chuàng)建方法的流程圖,在該流程中執(zhí)行與如上客戶端側(cè)的方法相對應(yīng)的方法。如圖4所示,該方法的流程如下。

步驟S402,發(fā)送第一消息,其中,第一消息中攜帶有第一數(shù)據(jù);

第一數(shù)據(jù)用于創(chuàng)建殼對象,其中,該殼對象用于在游戲中代表對象;

步驟S404,發(fā)送第二消息,其中,第二消息中攜帶有第二數(shù)據(jù),第二數(shù)據(jù)用于創(chuàng)建與該殼對象對應(yīng)的對象。

通過上述步驟,將對象創(chuàng)建的步驟分為兩個階段。

在第一個階段,如步驟S402所示的,僅僅發(fā)送用于創(chuàng)建在游戲中代表對象的殼對象的第一數(shù)據(jù),由于游戲中的對象可能不全處于玩家的興趣區(qū)域中,因此不需要發(fā)送所有對象的全部數(shù)據(jù),所以在該第一階段,對于所有對象僅僅發(fā)送能夠在游戲中代表對象的數(shù)據(jù),即創(chuàng)建殼對象的第一數(shù)據(jù)即可。通過這樣的方式,可以顯著減少發(fā)送的數(shù)據(jù)量,由此,對于需要創(chuàng)建對象可以選擇性地發(fā)起同步。

在第二個階段,如步驟S404所示的,對于想要創(chuàng)建的對象,發(fā)送用于最終創(chuàng)建對象的創(chuàng)建對象所需的第二數(shù)據(jù)。

由于在該方法中,僅用第二數(shù)據(jù)創(chuàng)建對象,而對其余對象,僅創(chuàng)建在游戲中代表其即可的殼對象,以這樣的方式,對象的創(chuàng)建可以選擇性地進行,使得需要發(fā)送的數(shù)據(jù)量大大減少,節(jié)約了帶寬和性能消耗。

為了創(chuàng)建在游戲中代表對象的殼對象以及創(chuàng)建對象,可選地,第二數(shù)據(jù)為創(chuàng)建對象需要的全部數(shù)據(jù),第一數(shù)據(jù)為第二數(shù)據(jù)的一部分;或者,第一數(shù)據(jù)與第二數(shù)據(jù)的和為創(chuàng)建對象需要的全部數(shù)據(jù)。

第一數(shù)據(jù)只要能夠創(chuàng)建一個殼對象即可,在實施的過程中可以根據(jù)實際情況的需要來進行選擇。在一個可選的實施例中,第一數(shù)據(jù)可以包括以下至少之一:對象的標(biāo)識信息、對象在游戲中的位置信息。標(biāo)識信息可以起到標(biāo)識對象的作用,位置信息可以起到為對象占位的作用,在該可選實施例中,使用這樣的第一數(shù)據(jù)相比創(chuàng)建對象的數(shù)據(jù)量明顯減少,并且使用這些數(shù)據(jù)能夠在游戲中代表對象,卻無需包括對象的全部數(shù)據(jù),由此創(chuàng)建“殼對象”。

為了確定需要創(chuàng)建殼對象的對象,在一個可選實施例中,可以在對象進入角色的同步范圍之后,發(fā)送第一消息,其中,角色為玩家在游戲中控制的角色。當(dāng)然,也可以在其他的情況下發(fā)送第一消息以創(chuàng)建殼對象。以此可選實施例中的方式,對于角色同步范圍內(nèi)的全部對象將被創(chuàng)建殼對象,而不是直接創(chuàng)建包含全部對象數(shù)據(jù)的對象,減少了需要接收的數(shù)據(jù)。

在一個可選的實施例中,發(fā)送第一消息可以包括判斷對象是否進入角色的同步范圍;在確定對象進入該同步范圍之后,發(fā)送第一消息。以此方式,根據(jù)該可選實施例的方法可以確定角色是否進入同步范圍。

在上述步驟中,只發(fā)送了代表對象所需的殼對象的數(shù)據(jù),還需要發(fā)送用于創(chuàng)建對象所需的第二數(shù)據(jù)。在一個可選實施例中,發(fā)送該第二數(shù)據(jù)包括在對象進入角色在游戲中的預(yù)定范圍之后,發(fā)送第二消息,其中,該預(yù)定范圍小于同步范圍。通過這樣的方式可以在所有殼對象中進行選擇,選出進入角色在游戲中的預(yù)定范圍的對象進行創(chuàng)建。當(dāng)然,也可以以其他的標(biāo)準(zhǔn)進行殼對象中要創(chuàng)建的對象的選擇。以此可選實施例中的方式,創(chuàng)建殼對象對應(yīng)的需要創(chuàng)建的對象。

在可選實施例中,在發(fā)送第二消息之前,可以接收請求消息,其中,該請求消息用于請求第二數(shù)據(jù)。以此可選實施例的方式,可以發(fā)送創(chuàng)建所請求的確定進入預(yù)定范圍的對象所需的數(shù)據(jù)。

可選地,在本實施例中,選擇對象基于角色的主角攝像機可見區(qū)域進行。對于進入主角攝像機可見區(qū)域的對象,可以接收同步該對象所需的數(shù)據(jù)。此外,由于網(wǎng)絡(luò)延時的存在,對象進入角色的主角攝像機可見區(qū)域至控制角色的玩家可見有一定的延時,因此,可以根據(jù)角色的移動速度、網(wǎng)絡(luò)延時情況和角色在游戲中的主角攝像機可見區(qū)域大小大概計算出一個比主角攝像機可見區(qū)域大的虛擬視野,基于該虛擬視野選擇對象。因此,在一個可選實施例中,預(yù)定范圍為第一范圍或第二范圍,該第一范圍是角色的主角攝像機可見區(qū)域,該第二范圍大于等于該第一范圍,該第二范圍是根據(jù)角色的移動速度、網(wǎng)絡(luò)延時情況和該第一范圍計算得到的。當(dāng)然,對第二范圍的計算可以在客戶端側(cè)進行,也可以在服務(wù)端進行。以此可選實施例中的方式,從殼對象中選擇進入主角攝像機可見區(qū)域的對象以創(chuàng)建對象,此外,可以一定程度上緩解延時的情況。

此外應(yīng)理解的是,本實施例中的對象是游戲中的其他玩家、NPC或子彈中的至少之一,也可以是對象在本領(lǐng)域中的其他表達形式。本實施例中的角色的同步范圍可以是興趣區(qū)域,該興趣區(qū)域可以是由服務(wù)器計算得出的,還應(yīng)理解,興趣區(qū)域也可以是以任何合適的方式計算得出的興趣區(qū)域。

通過本實施例描述的方法,既減少了需要接收的數(shù)據(jù)量,又保證了選擇性地接收需要創(chuàng)建對象的數(shù)據(jù)以創(chuàng)建對象,有效降低了創(chuàng)建同步對象的數(shù)量,節(jié)約了網(wǎng)絡(luò)流量和CPU性能。

相應(yīng)地,根據(jù)本發(fā)明實施例也可以提供一種可以執(zhí)行根據(jù)上述實施例的方法的裝置。圖5是根據(jù)本發(fā)明的示例性實施例的對象的創(chuàng)建裝置的示意圖,如圖5所示,該方法包括如下模塊。

第一模塊501,用于發(fā)送第一消息,其中,第一消息中攜帶有第一數(shù)據(jù);

第一數(shù)據(jù)用于創(chuàng)建殼對象,其中,該殼對象用于在游戲中代表對象;

第二模塊503,用于發(fā)送第二消息,其中,第二消息中攜帶有第二數(shù)據(jù),該第二數(shù)據(jù)用于創(chuàng)建該殼對象對應(yīng)的對象。

本實施例中的對象的創(chuàng)建裝置可以執(zhí)行參考上述實施例中描述的服務(wù)器側(cè)的對象的創(chuàng)建方法,本實施例在此不再贅述。

在以上內(nèi)容中描述了根據(jù)本發(fā)明實施例的對象的創(chuàng)建方法和裝置,在以上實施例中,客戶端側(cè)和服務(wù)器側(cè)的方法和裝置既可以單獨實施,也可以同時實施。

本發(fā)明的實施例在現(xiàn)有的服務(wù)器同步策略的基礎(chǔ)上改進對象創(chuàng)建流程,將客戶端視錐篩選融入到現(xiàn)有的同步策略中,減少視錐外同步的數(shù)量,包括:

修改服務(wù)器同步創(chuàng)建協(xié)議,將原來的創(chuàng)建對象消息攜帶的大量數(shù)據(jù)去除,僅發(fā)送對象ID,位置等簡單消息通知客戶端同步對象已進入到本客戶端主角視野中。

客戶端收到該創(chuàng)建協(xié)議后,根據(jù)對象ID,位置創(chuàng)建該對象的殼對象(該客戶端對象,僅僅只有對象ID和位置等簡單數(shù)據(jù),非真正的客戶端同步對象,故而簡稱為殼對象)。

將該殼對象放入到客戶端視錐篩選列表中,參與視錐篩選。

客戶端定時視錐篩選,進入視錐的殼對象放入到待創(chuàng)建列表中。

客戶從待創(chuàng)建列表中取出殼對象,獲取對象id,發(fā)送創(chuàng)建對象消息,請求創(chuàng)建真正的同步對象。

服務(wù)器收到客戶端請求創(chuàng)建的消息,將對應(yīng)的同步對象數(shù)據(jù)打包發(fā)送給客戶端。

客戶端收到同步對象數(shù)據(jù),創(chuàng)建真正的同步對象,至此,同步對象創(chuàng)建完成。

基于此,本發(fā)明示例性實施例還提供了一種創(chuàng)建對象的客戶端和服務(wù)器的示例性交互。圖6是根據(jù)本發(fā)明實施例的客戶端和服務(wù)器的交互的流程圖,本圖只畫出本發(fā)明的核心模塊,其他外圍的輔助或者無關(guān)的內(nèi)容不在這里闡述。下面詳細介紹下各個模塊之間的交互。如圖6所示,

S601是服務(wù)器(server)的AOI模塊進行同步計算后,將計算結(jié)果返回結(jié)果給服務(wù)器邏輯。

S602服務(wù)器邏輯收到AOI模塊返回結(jié)果,將結(jié)果通知服務(wù)器同步對象預(yù)創(chuàng)建模塊。

S603服務(wù)器同步對象預(yù)創(chuàng)建模塊打包同步殼對象所需的簡單數(shù)據(jù)(對象Id,位置等),將數(shù)據(jù)發(fā)送給對應(yīng)的客戶端CL。

S604客戶端收到服務(wù)器發(fā)來的同步殼對象創(chuàng)建消息,然后通知同步殼對象創(chuàng)建模塊創(chuàng)建同步殼對象,然后將殼對象插入到視錐篩選列表中。

S605客戶端視錐篩選模塊對視錐篩選列表進行視錐篩選,將進入視錐的殼對象放入待創(chuàng)建同步對象列表中。

S606同步對象請求模塊將創(chuàng)建同步對象列表中的數(shù)據(jù)取出,向服務(wù)器請求相應(yīng)同步對象的創(chuàng)建數(shù)據(jù)。

S607服務(wù)器同步創(chuàng)建模塊接收到客戶端請求,打包對應(yīng)的同步對象數(shù)據(jù),發(fā)送給相應(yīng)客戶端。

S608客戶端同步對象創(chuàng)建模塊收到服務(wù)器發(fā)來的數(shù)據(jù),根據(jù)數(shù)據(jù)創(chuàng)建同步對象。

至此對象創(chuàng)建完成。

相應(yīng)地,本發(fā)明示例性實施例還提供了一種創(chuàng)建對象的客戶端和服務(wù)器的示例性布置,根據(jù)本發(fā)明的一個實施方式的系統(tǒng)包括如下模塊。

AOI模塊:服務(wù)器模塊,負責(zé)服務(wù)器對象AOI計算,并將計算結(jié)果通知服務(wù)器(server)。

服務(wù)器同步對象預(yù)創(chuàng)建模塊:服務(wù)器模塊,負責(zé)將同步對象對應(yīng)的客戶端殼對象所需的數(shù)據(jù)打包,通知到對應(yīng)的客戶端CL,該模塊的輸入端是服務(wù)器AOI模塊輸出的AOI結(jié)果,根據(jù)AOI模塊的結(jié)果,將對應(yīng)的同步對象數(shù)據(jù)打包發(fā)送給特定的客戶端創(chuàng)建殼對象。該模塊實現(xiàn)上述實施例中的服務(wù)器側(cè)的第一模塊501的作用。

客戶端同步殼對象創(chuàng)建模塊:客戶端模塊,負責(zé)接收服務(wù)器同步對象創(chuàng)建模塊發(fā)送來的同步對象消息,創(chuàng)建對于的客戶端同步對象。該模塊實現(xiàn)上述實施例中的客戶端側(cè)的第一模塊301和第二模塊303的作用。

客戶端視錐篩選模塊:客戶端模塊,該發(fā)明核心模塊,利用客戶端攝像機視錐對客戶端殼對象進行視錐篩選,將進入視錐的殼對象輸出給客戶端同步對象請求創(chuàng)建模塊。

客戶端同步對象請求模塊:客戶端模塊,該模塊負責(zé)向服務(wù)器請求同步對象數(shù)據(jù),該模塊根據(jù)客戶端視錐篩選模塊的輸出結(jié)果,向服務(wù)器發(fā)送同步對象創(chuàng)建請求。

服務(wù)器同步對象創(chuàng)建模塊:服務(wù)器模塊,負責(zé)接收客戶端同步對象請求消息,將對象的同步對象數(shù)據(jù)打包發(fā)送給請求的客戶端。該模塊實現(xiàn)上述實施例中的服務(wù)器側(cè)的第二模塊503的作用。

客戶端對象創(chuàng)建模塊:客戶端模塊,根據(jù)服務(wù)器發(fā)返回的同步對象數(shù)據(jù)創(chuàng)建真正的客戶端同步對象。該模塊實現(xiàn)上述實施例中的客戶端側(cè)的第三模塊305和第四模塊307的作用。

本技術(shù)方案有效降低了創(chuàng)建同步對象的數(shù)量,節(jié)約了網(wǎng)絡(luò)流量和CPU性能。

下面結(jié)合圖7描述根據(jù)本發(fā)明的另一個實施方式的創(chuàng)建同步對象的方法。

圖7是根據(jù)本發(fā)明實施例的創(chuàng)建同步對象的另一個實施方式的AOI示意圖。

由于該技術(shù)方案是進入視錐后才向服務(wù)器請求數(shù)據(jù)創(chuàng)建同步對象,由于網(wǎng)絡(luò)延時的存在,對象進入視錐到玩家可見有一定的延時??稍诒景l(fā)明的基礎(chǔ)上,根據(jù)玩家的移動速度、網(wǎng)絡(luò)延時情況和玩家視錐大小大概計算出一個比真實的相機視錐大的虛擬視錐做篩選,一定程度上緩解了延時的情況。

在圖7中,圓圈區(qū)域A1是主角服務(wù)器端AOI的視野范圍,圓圈區(qū)域A2是主角視錐范圍,D代表主角(玩家),S1、S2、S3和S4代表對象(其他玩家或NPC等),圓圈區(qū)域A3為大于圓圈區(qū)域A2的區(qū)域。

例如,當(dāng)S1進入圓圈區(qū)域A2時,由于網(wǎng)絡(luò)延時的存在,使得主角D沒有在S1進入圓圈區(qū)域S2的同時得到S1進入其視錐的同步信息?;诖耍?wù)器根據(jù)玩家的移動速度、網(wǎng)絡(luò)延時情況和與圓圈區(qū)域A2的大小大概計算出比圓圈區(qū)域大的圓圈區(qū)域A3。例如,當(dāng)S1進入圓圈區(qū)域A3時,就對S1進行上文中的對象同步處理。由此,既一定程度上緩解了延時的情況,又避免了對整個服務(wù)器視野范圍內(nèi)的對象執(zhí)行同步處理,節(jié)約了客戶端帶寬和性能消耗。

在如上的實施方式中描述了本發(fā)明的各個實施例。本發(fā)明在現(xiàn)有的服務(wù)器同步策略的基礎(chǔ)上改進對象創(chuàng)建流程,將客戶端視錐篩選融入到現(xiàn)有的同步策略中,減少視錐外同步的數(shù)量。

在本發(fā)明的實施方式中描述的技術(shù)方案中,僅同步了視錐內(nèi)同步對象的同步數(shù)據(jù),對于在服務(wù)器視野范圍內(nèi),不在視錐內(nèi)的同步對象,只同步殼對象需要的極少量數(shù)據(jù),大大減少了同步的數(shù)據(jù)量和打包同步數(shù)據(jù)的CPU消耗,節(jié)約了服務(wù)器帶寬和性能消耗,同樣,客戶端也減少網(wǎng)絡(luò)消耗和解壓同步數(shù)據(jù)的壓力,節(jié)約了客戶端帶寬和性能消耗。

此外,同步對象的減少,大大緩解了客戶端IO的壓力和創(chuàng)建對象造成的消耗,從而使客戶端更加流暢。

而且,該發(fā)明讓客戶端成為創(chuàng)建同步對象的發(fā)起端,讓客戶端有了參與同步創(chuàng)建的機會,可以根據(jù)客戶端情況采取更多的創(chuàng)建策略。

在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。

在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的客戶端,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個模塊或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,模塊或模塊的間接耦合或通信連接,可以是電性或其它的形式。

所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。

另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。

以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
隆子县| 出国| 夹江县| 南昌市| 林周县| 独山县| 调兵山市| 汾西县| 佛坪县| 仲巴县| 文水县| 郎溪县| 宁安市| 裕民县| 额尔古纳市| 郧西县| 兖州市| 盐城市| 阳信县| 林口县| 玉林市| 青浦区| 永修县| 海门市| 翁牛特旗| 宁城县| 绥江县| 泰州市| 湖北省| 应用必备| 黄大仙区| 邓州市| 汉寿县| 高平市| 东平县| 浦县| 客服| 保山市| 福州市| 伊春市| 商都县|