新四季網

多人遊戲的實時通訊方法及系統與流程

2023-05-03 05:30:11

本發明涉及計算機技術領域,尤其涉及一種多人遊戲的實時通訊方法及系統。



背景技術:

目前,現如今的很多單機手遊,很多都會新增聯機模式來讓各個玩家之間進行互動,以此增加遊戲的可玩性。但要實現多人聯機,就必須要有伺服器。以unity遊戲引擎而言,開發者的選擇很多。具體地,可以自己搭建伺服器,也可以是利用unity自帶的networkview,同時,也可選擇利用第三方提供的後端伺服器。

然而,不論是利用unity自帶的networkview,或者是選擇第三方後端伺服器,都在一定程度上存在著局限性和不可擴展性。而且,很多第三方後端伺服器提供的功能較多,插件較大,然而開發者需要用到的可能只有幾個功能,這在一定程度上將導致遊戲的包體較大。此外,如選擇自己搭建伺服器,則通常一個遊戲對應於一個伺服器,如此導致每款遊戲的開發過程和後期維護中,需要各自的服務端和客戶端配合開發。

有鑑於此,針對上述問題,有必要提出進一步的解決方案。



技術實現要素:

本發明的目的在於提供一種多人遊戲的實時通訊方法及系統,以克服現有技術中存在的不足。

為實現上述發明目的,本發明提供一種多人遊戲的實時通訊方法,其包括如下步驟:

s1、請求連接並訪問遊戲的主伺服器;

s2、通過主伺服器提供可供選擇的若干子伺服器,連接並訪問選定的子伺服器;

s3、與由選定的子伺服器所覆蓋的其他玩家通過掛載在遊戲對象上的觀察者腳本組件發送消息,並通過子伺服器轉發該發送的消息;

s4、對發送的消息進行判斷,如滿足接收條件,則遠程調用子伺服器中的函數進行實時通訊,並對接收的消息進行邏輯處理。

作為本發明的多人遊戲的實時通訊方法的改進,所述主伺服器將供選擇的若干子伺服器以遊戲房間列表的形式發送至客戶端供玩家選擇。

作為本發明的多人遊戲的實時通訊方法的改進,所述主伺服器實時更新所述遊戲房間列表的信息。

作為本發明的多人遊戲的實時通訊方法的改進,所述觀察者腳本組件具有多個觀察屬性,多個觀察屬性包括同步遊戲對象的位置、旋轉角度和縮放比例。

作為本發明的多人遊戲的實時通訊方法的改進,所述發送的消息中包括調用的函數名及函數的參數。

為實現上述發明目的,本發明提供一種多人遊戲的實時通訊系統,其包括:

訪問模塊,其用於實現:

請求連接並訪問遊戲的主伺服器;

選擇模塊,其用於實現:

通過主伺服器提供可供選擇的若干子伺服器,連接並訪問選定的子伺服器;

消息發送模塊,其用於實現:

與由選定的子伺服器所覆蓋的其他玩家通過掛載在遊戲對象上的觀察者腳本組件發送消息,並通過子伺服器轉發該發送的消息;

判斷調用模塊,其用於實現:

對發送的消息進行判斷,如滿足接收條件,則遠程調用子伺服器中的函數進行實時通訊,並對接收的消息進行邏輯處理。

作為本發明的多人遊戲的實時通訊系統的改進,所述選擇模塊還用於實現:

通過所述主伺服器將供選擇的若干子伺服器以遊戲房間列表的形式發送至客戶端供玩家選擇。

作為本發明的多人遊戲的實時通訊系統的改進,所述選擇模塊還用於實現:

通過所述主伺服器實時更新所述遊戲房間列表的信息。

作為本發明的多人遊戲的實時通訊系統的改進,所述觀察者腳本組件具有多個觀察屬性,多個觀察屬性包括同步遊戲對象的位置、旋轉角度和縮放比例。

作為本發明的多人遊戲的實時通訊系統的改進,所述發送的消息中包括調用的函數名及函數的參數。

與現有技術相比,本發明的有益效果是:本發明基於一個主伺服器和多個子伺服器實現了服務端與客戶端的解耦,使得伺服器只負責客戶端之間的數據的轉發,客戶端負責數據的邏輯處理,克服了遊戲開發和維護時,需要服務端和客戶端配合開發的問題。

附圖說明

圖1為本發明的多人遊戲的實時通訊方法一具體實施方式的方法流程示意圖。

具體實施方式

下面結合附圖所示的各實施方式對本發明進行詳細說明,但應當說明的是,這些實施方式並非對本發明的限制,本領域普通技術人員根據這些實施方式所作的功能、方法、或者結構上的等效變換或替代,均屬於本發明的保護範圍之內。

如圖1所示,本發明提供一種多人遊戲的實時通訊方法,其包括如下步驟:

s1、請求連接並訪問遊戲的主伺服器。

其中,玩家連接並訪問遊戲的主伺服器時,將以玩家登錄遊戲大廳的形式實現,所述主伺服器同時與若干子伺服器相連接,任一上述子伺服器則對應於遊戲大廳中的若干遊戲房間。

s2、通過主伺服器提供可供選擇的若干子伺服器,連接並訪問選定的子伺服器。

其中,主伺服器提供可供選擇的若干子伺服器時,所述主伺服器將供選擇的若干子伺服器以遊戲房間列表的形式發送至客戶端供玩家選擇。同時,當子伺服器新增或變更時,其對應的遊戲房間被創建或刪除。此時,所述主伺服器實時更新所述遊戲房間列表的信息。其具體表現為:上述遊戲的大廳會跟隨實時刷新。此外,客戶端創建了一個房間後,根據需要還可以對房間進行多個屬性的設置,比如設置密碼、遊戲難度、人數上限等。

s3、與由選定的子伺服器所覆蓋的其他玩家通過掛載在遊戲對象上的觀察者腳本組件發送消息,並通過子伺服器轉發該發送的消息。

其中,為了能夠確保消息能夠發送和接收成功,還需要確保該消息發送方和接收方一直存在在遊戲中。同時,發送的消息可以為同一個房間內的客戶端互相發送網絡信息,還可以發送緩存消息。此外,緩存消息也將被發送到未來連接進來的玩家,比如有新的玩家進入遊戲房間。

所述觀察者腳本組件具有多個觀察屬性,多個觀察屬性包括同步遊戲對象的位置、旋轉角度和縮放比例,上述觀察屬性可供開發者進行自由選擇。上述觀察者腳本組件可採用現有通用的用於實現發送消息的腳本組件。

s4、對發送的消息進行判斷,如滿足接收條件,則遠程調用子伺服器中的函數進行實時通訊,並對接收的消息進行邏輯處理。

如此,伺服器只負責客戶端之間的數據的轉發,客戶端負責數據的邏輯處理,從而克服了遊戲開發和維護時,需要服務端和客戶端配合開發的問題。此外,為了函數的調用,所述發送的消息中包括調用的函數名及函數的參數。從而,當判斷滿足接收條件後,依據發送消息中的函數名及其參數進行調用。同時,消息的接收方調用函數後,則被調用的函數可以始終以與其相匹配的客戶端為目標。

基於如上所述的多人遊戲的實時通訊方法,本發明還提供一種多人遊戲的實時通訊系統,其包括:訪問模塊、選擇模塊、消息發送模塊、判斷調用模塊。

所述訪問模塊用於實現:請求連接並訪問遊戲的主伺服器。

具體地,所述訪問模塊基於玩家的設備終端。此時,玩家連接並訪問遊戲的主伺服器時,以玩家登錄遊戲大廳的形式實現,所述主伺服器同時與若干子伺服器相連接,任一上述子伺服器則對應於遊戲大廳中的若干遊戲房間。

所述選擇模塊用於實現:通過主伺服器提供可供選擇的若干子伺服器,連接並訪問選定的子伺服器。

具體地,所述選擇模塊基於玩家所在的玩家所在的網絡運營商等。此時,所述主伺服器將供選擇的若干子伺服器以遊戲房間列表的形式發送至客戶端供玩家選擇。同時,當子伺服器新增或變更時,其對應的遊戲房間被創建或刪除。此時,所述主伺服器實時更新所述遊戲房間列表的信息。其具體表現為:上述遊戲的大廳會跟隨實時刷新。此外,客戶端創建了一個房間後,根據需要還可以對房間進行多個屬性的設置,比如設置密碼、遊戲難度、人數上限等。

所述消息發送模塊用於實現:與由選定的子伺服器所覆蓋的其他玩家通過掛載在遊戲對象上的觀察者腳本組件發送消息,並通過子伺服器轉發該發送的消息。

其中,所述消息發送模塊基於遊戲對象上的觀察者腳本組件。具體地,所述觀察者腳本組件具有多個觀察屬性,多個觀察屬性包括同步遊戲對象的位置、旋轉角度和縮放比例,上述觀察屬性可供開發者進行自由選擇。上述觀察者腳本組件可採用現有通用的用於實現發送消息的腳本組件。

此外,為了能夠確保消息能夠發送和接收成功,還需要確保該消息發送方和接收方一直存在在遊戲中。同時,發送的消息可以為同一個房間內的客戶端互相發送網絡信息,還可以發送緩存消息。此外,緩存消息也將被發送到未來連接進來的玩家,比如有新的玩家進入遊戲房間。

所述判斷調用模塊用於實現:對發送的消息進行判斷,如滿足接收條件,則遠程調用子伺服器中的函數進行實時通訊,並對接收的消息進行邏輯處理。

具體地,所述訪問模塊基於玩家的設備終端,其可用於實現數據的邏輯處理以及函數的調用。如此,伺服器只負責客戶端之間的數據的轉發,客戶端負責數據的邏輯處理,從而克服了遊戲開發和維護時,需要服務端和客戶端配合開發的問題。

此外,為了函數的調用,所述發送的消息中包括調用的函數名及函數的參數。從而,當判斷滿足接收條件後,依據發送消息中的函數名及其參數進行調用。同時,消息的接收方調用函數後,則被調用的函數可以始終以與其相匹配的客戶端為目標。

綜上所述,本發明基於一個主伺服器和多個子伺服器實現了服務端與客戶端的解耦,使得伺服器只負責客戶端之間的數據的轉發,客戶端負責數據的邏輯處理,克服了遊戲開發和維護時,需要服務端和客戶端配合開發的問題。

對於本領域技術人員而言,顯然本發明不限於上述示範性實施例的細節,而且在不背離本發明的精神或基本特徵的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示範性的,而且是非限制性的,本發明的範圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和範圍內的所有變化囊括在本發明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。

此外,應當理解,雖然本說明書按照實施方式加以描述,但並非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施例中的技術方案也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀