本技術涉及計算機,尤其涉及一種虛擬場景的更新方法、裝置、電子設備、存儲介質及程序產品。
背景技術:
1、虛擬場景是應用程序在終端上運行時顯示(或提供)的虛擬場景。該虛擬場景可以是對真實世界的仿真環境,也可以是半仿真半虛構的虛擬環境,還可以是純虛構的虛擬環境。
2、相關技術中,對于虛擬場景的更新,通常是隨著虛擬場景的更新進程而不斷更新,由于虛擬場景中的玩家角色可以在不同的時刻處于在線狀態或者離線狀態,在玩家角色處于離線狀態沒有對于虛擬場景的更新需求,相關技術中對于虛擬場景還是在不斷的進行更新,導致相關技術中對于虛擬場景的更新成本較高。
技術實現思路
1、本技術實施例提供一種虛擬場景的更新方法、裝置、電子設備、計算機可讀存儲介質及計算機程序產品,能夠有效節約虛擬場景的更新成本。
2、本技術實施例的技術方案是這樣實現的:
3、本技術實施例提供一種虛擬場景的更新方法,包括:
4、在對所述虛擬場景進行更新的過程中,響應于所述虛擬場景中各玩家角色的狀態在第一時刻均處于離線狀態,暫停對所述虛擬場景進行更新;
5、響應于存在所述玩家角色的狀態在第二時刻由所述離線狀態切換至在線狀態,對所述虛擬場景在所述第二時刻的更新進度進行預測,得到預測更新進度,所述第二時刻晚于所述第一時刻;
6、基于所述虛擬場景在所述第一時刻的更新進度及所述預測更新進度,繼續對所述虛擬場景進行更新。
7、本技術實施例提供一種虛擬場景的更新裝置,包括:
8、暫停更新模塊,用于在對所述虛擬場景進行更新的過程中,響應于所述虛擬場景中各玩家角色的狀態在第一時刻均處于離線狀態,暫停對所述虛擬場景進行更新;
9、預測模塊,用于響應于存在所述玩家角色的狀態在第二時刻由所述離線狀態切換至在線狀態,對所述虛擬場景在所述第二時刻的更新進度進行預測,得到預測更新進度,所述第二時刻晚于所述第一時刻;
10、繼續更新模塊,用于基于所述虛擬場景在所述第一時刻的更新進度及所述預測更新進度,繼續對所述虛擬場景進行更新。
11、上述方案中,上述暫停更新模塊,還用于響應于所述虛擬場景中各所述玩家角色的狀態在所述第一時刻均處于所述離線狀態,從所述第一時刻開始進行計時,得到計時時長;響應于所述計時時長達到時長閾值、且在計時的過程中不存在所述玩家角色的狀態由所述離線狀態切換至在線狀態,暫停對所述虛擬場景進行更新。
12、上述方案中,所述虛擬場景在所述第一時刻包括多個更新任務,所述虛擬場景在所述第一時刻的更新進度包括各所述更新任務的任務進度;上述預測模塊,還用于基于各所述更新任務的任務進度,在多個所述更新任務中,確定在所述第一時刻未開始執行的第一更新任務的第一數量、以及在所述第一時刻已開始執行的第二更新任務的第二數量;基于所述第一數量和所述第二數量,對所述虛擬場景在所述第二時刻的更新進度進行預測,得到所述預測更新進度。
13、上述方案中,所述預測更新進度包括各所述更新任務在所述第二時刻的任務進度,上述預測模塊,還用于當所述第一數量和所述第二數量均不為零時,對各所述第二更新任務在所述第二時刻的任務進度進行預測,得到各所述第二更新任務的第一任務進度;基于各所述第二更新任務的第一任務進度,對各所述第一更新任務在所述第二時刻的任務進度進行預測,得到各所述第一更新任務的第二任務進度。
14、上述方案中,上述預測模塊,還用于針對各所述第二更新任務分別執行以下處理:獲取所述第二更新任務的任務更新速度,及所述第二更新任務剩余的未更新任務量;確定所述第一時刻和所述第二時刻之間的時間差,并將所述任務更新速度和所述時間差的乘積,確定為所述第二更新任務的最大任務量;基于所述最大任務量和所述未更新任務量,對所述第二更新任務在所述第二時刻的任務進度進行預測,得到所述第二更新任務的第一任務進度。
15、上述方案中,所述第一更新任務和所述第二更新任務通過所述虛擬場景中的任務處理單元實現,上述預測模塊,還用于當存在所述第一任務進度指示相應的所述第二更新任務在所述第二時刻之前能夠完成時,將指示能夠完成的所述第一任務進度對應的第二更新任務,確定為第三更新任務;將執行所述第三更新任務的任務處理單元,確定為目標任務處理單元,并基于所述目標任務處理單元,對各所述第一更新任務在所述第二時刻的任務進度進行預測,得到各所述第一更新任務的第二任務進度;上述繼續更新模塊,還用于通過所述目標任務處理單元執行所述第三更新任務;當所述第三更新任務被執行完成,且所述目標任務處理單元能夠處理的目標任務類型與所述第一更新任務的任務類型匹配時,基于所述第二任務進度,通過所述目標任務處理單元執行所述第一更新任務。
16、上述方案中,上述預測模塊,還用于將所述目標任務處理單元能夠處理的目標任務類型與各所述第一更新任務的任務類型進行匹配,得到各所述第一更新任務對應的匹配結果;當存在所述匹配結果指示所述任務類型與所述目標任務類型相同時,將與所述目標任務類型匹配的所述第一更新任務,確定為第四更新任務;基于所述目標任務處理單元,對各所述第四更新任務在所述第二時刻的任務進度進行預測,得到各所述第四更新任務的第二任務進度。
17、上述方案中,所述第一更新任務通過所述虛擬場景中的任務處理單元實現,上述預測模塊,還用于當所述第一數量不為零,且所述第二數量為零時,針對各所述第一更新任務分別執行以下處理:將所述任務處理單元能夠處理的目標任務類型與所述第一更新任務的任務類型進行匹配,得到所述第一更新任務對應的匹配結果;當所述匹配結果指示所述第一更新任務的任務類型與所述目標任務類型不同時,將所述第一更新任務的第二任務進度,確定為所述第一更新任務在所述第二時刻不能夠完成;當所述匹配結果指示所述第一更新任務的任務類型與所述目標任務類型相同時,基于所述任務處理單元,對所述第一更新任務在所述第二時刻的任務進度進行預測,得到所述第一更新任務的第二任務進度。
18、上述方案中,上述預測模塊,還用于將所述第一更新任務確定為目標更新任務,并確定所述任務處理單元針對所述目標更新任務的任務更新速度;當所述目標更新任務的任務更新速度不為零時,獲取所述第一更新任務的任務量;確定所述第一時刻和所述第二時刻之間的時間差,并將所述任務更新速度和所述時間差的乘積,確定為所述第一更新任務的最大任務量;當所述最大任務量大于或等于所述任務量時,將所述第一更新任務的第二任務進度,確定為所述第一更新任務在所述第二時刻能夠完成;當所述目標更新任務的任務更新速度為零時,將所述目標更新任務的第二任務進度,確定為所述目標更新任務在所述第二時刻無法完成。
19、上述方案中,上述預測模塊,還用于獲取所述任務處理單元的初始更新速度,及與所述任務處理單元匹配的第一更新任務的數量;當與所述任務處理單元匹配的所述第一更新任務的數量為一個時,將所述初始更新速度,確定為所述任務處理單元針對所述目標更新任務的任務更新速度;當與所述任務處理單元匹配的所述第一更新任務的數量為多個時,將與所述任務處理單元匹配的各所述第一更新任務的任務量進行求和,得到總體任務量;將所述目標更新任務的任務量除以所述總體任務量,得到所述目標更新任務的任務占比,將所述初始更新速度乘以所述任務占比,得到所述任務處理單元針對所述目標更新任務的任務更新速度。
20、上述方案中,上述預測模塊,還用于獲取所述任務處理單元針對所述更新任務的任務更新速度,及所述多個更新任務剩余的未更新任務總量;確定所述第一時刻和所述第二時刻之間的時間差,并將所述任務更新速度和所述時間差的乘積,確定為所述虛擬場景在所述第二時刻的最大完成任務量;將所述最大完成任務量和所述未更新任務總量進行比較,當所述最大完成任務量小于或等于所述未更新任務總量時,將所述最大完成任務量除以所述未更新任務總量,得到所述預測更新進度。
21、上述方案中,上述預測模塊,還用于將所述最大完成任務量除以所述未更新任務總量,得到所述虛擬場景在所述第二時刻的初始更新進度;獲取所述虛擬場景中影響所述更新任務的更新進度的影響因子,基于所述影響因子,對所述初始更新進度進行調整,得到所述預測更新進度。
22、上述方案中,所述虛擬場景在各時刻還包括至少一個具有無限任務量的常態更新任務,上述預測模塊,還用于針對各所述常態更新任務分別執行以下處理:獲取所述常態更新任務的任務更新速度,并確定所述第一時刻和所述第二時刻之間的時間差,并將所述任務更新速度和所述時間差的乘積,確定為所述常態更新任務在所述第一時刻至所述第二時刻之間能夠完成的第一任務量;將所述第一任務量和所述常態更新任務在所述第一時刻已完成的第二任務量相加,得到第三任務量,將所述第一任務量除以所述第三任務量,得到所述常態更新任務在所述第二時刻的任務完成量;上述繼續更新模塊,還用于基于所述虛擬場景在所述第一時刻的更新進度、所述預測更新進度及所述常態更新任務在所述第二時刻的任務完成量,繼續對所述虛擬場景進行更新。
23、上述方案中,所述虛擬場景在所述第一時刻還包括多個更新任務,所述更新任務通過所述虛擬場景中的任務處理單元實現;上述預測模塊,還用于獲取所述常態更新任務的初始更新速度,及所述任務處理單元執行所述更新任務的預測執行進度;當所述預測執行進度指示所述任務處理單元能夠在所述第二時刻之前完成對所述更新任務的執行時,提高所述初始更新速度,得到所述任務更新速度;當所述預測執行進度指示所述任務處理單元不能夠在所述第二時刻之前完成對所述更新任務的執行時,將所述初始更新速度,確定為所述任務更新速度。
24、上述方案中,上述繼續更新模塊,還用于將所述第一時刻的虛擬場景,確定為第一虛擬場景,并基于所述虛擬場景在所述第一時刻的更新進度和所述預測更新進度之間的進度差異,確定所述第一時刻和所述第二時刻之間需要完成的更新任務;基于所述第一時刻和所述第二時刻之間需要完成的更新任務,對所述第一虛擬場景進行更新,得到所述第二時刻的第二虛擬場景,并繼續對所述第二虛擬場景進行更新。
25、本技術實施例提供一種電子設備,包括:
26、存儲器,用于存儲計算機可執行指令或者計算機程序;
27、處理器,用于執行所述存儲器中存儲的計算機可執行指令或者計算機程序時,實現本技術實施例提供的虛擬場景的更新方法。
28、本技術實施例提供一種計算機可讀存儲介質,存儲有計算機可執行指令或者計算機程序,用于引起處理器執行時,實現本技術實施例提供的虛擬場景的更新方法。
29、本技術實施例提供了一種計算機程序產品,該計算機程序產品包括計算機程序或計算機可執行指令,該計算機程序或計算機可執行指令存儲在計算機可讀存儲介質中。電子設備的處理器從計算機可讀存儲介質讀取該計算機可執行指令,處理器執行該計算機可執行指令,使得該電子設備執行本技術實施例上述的虛擬場景的更新方法。
30、本技術實施例具有以下有益效果:
31、通過在虛擬場景進行更新的過程中,響應于虛擬場景中各玩家角色的狀態在第一時刻均處于離線狀態,暫停對虛擬場景進行更新,響應于存在玩家角色的狀態在第二時刻由離線狀態切換至在線狀態,對虛擬場景在第二時刻的更新進度進行預測,得到預測更新進度,并基于虛擬場景在第一時刻的更新進度及預測更新進度,繼續對虛擬場景進行更新。如此,由于在玩家角色處于離線狀態沒有對于虛擬場景的更新需求,通過響應于虛擬場景中各玩家角色的狀態在第一時刻均處于離線狀態,暫停對虛擬場景進行更新,從而有效節省虛擬場景的更新成本,通過響應于存在玩家角色的狀態在第二時刻由離線狀態切換至在線狀態,對虛擬場景在第二時刻的更新進度進行預測,得到預測更新進度,并基于虛擬場景在第一時刻的更新進度及預測更新進度,繼續對虛擬場景進行更新,從而通過對虛擬場景在第二時刻的更新進度進行預測,得到預測更新進度,能夠在存在玩家角色的狀態在第二時刻由離線狀態切換至在線狀態時,快速同步暫停對虛擬場景進行更新的過程中損失的更新進度,并基于虛擬場景在第一時刻的更新進度及預測更新進度,繼續對虛擬場景進行更新,實現暫停更新的過程無感知,從而能夠有效節約虛擬場景的更新成本。