US2010113159A1PendingUtilityA1
Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems
Est. expiryNov 6, 2028(~2.3 yrs left)· nominal 20-yr term from priority
H04L 67/131H04L 67/1001A63F 13/12G06Q 50/10A63F 3/04H04L 67/1029A63F 13/358A63F 2003/0439A63F 9/24H04L 67/1008A63F 2300/534H04L 67/1025A63F 2300/5533H04L 67/1021A63F 13/30
42
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
A method and system for hosting an online virtual world system on game engine servers, is provided. One implementation involves obtaining a map representing a virtual world in the game, partitioning the map into multiple partitions, and selecting a game engine server for each partition as responsible for executing the game for detected game entities in that partition, wherein the selection is based on load balancing between the game engine servers.
Claims
exact text as granted — not AI-modified1 . A method for hosting an online virtual world system on game engine servers, comprising:
obtaining a map representing a virtual world in the game; partitioning the map into multiple partitions; and selecting a game engine server for each partition as responsible for executing the game for detected game entities in that partition, wherein the selection is based on load balancing between the game engine servers.
2 . The method of claim 1 further including performing dynamic load balancing among the servers.
3 . The method of claim 2 further including:
determining a management grid for the map, the grid including multiple cells, wherein:
partitioning the map further includes partitioning the map into multiple partitions, each partition corresponding to one or more grid cells; and
selecting a game engine server further includes selecting a game engine sever for each partition for executing the game for detected clients in each cell of the partition.
4 . The method of claim 3 , wherein dynamic load balancing further includes selecting servers to balance the load on the servers based on the computational capacities and the geospatial relationships of the areas of responsibility.
5 . The method of claim 4 further including:
for each cell, determining a unique topic name within a topic space of a publication and subscription framework, wherein the topics name may be used to publish data relevant for the cell to the framework, and wherein interested servers may subscribe to the topics in order to receive such data from the framework.
6 . The method of claim 5 , wherein dynamic load balancing further includes:
dynamically changing the partitioning by publishing requests with the framework to the different servers, and dynamically adjusting responsibility for one or more cells between the servers for balancing the load therebetween.
7 . The method of claim 6 , wherein dynamic load balancing further includes:
detecting a game entity is moving out of a current cell into a destination cell; a first server responsible for the current cell publishing the game state information of the entity to the topic for the destination cell; a second server responsible for the destination cell, having previously subscribed to the topics of all the cells it is responsible for, receiving from the framework the state of the moving entity as published by the first server; and the second server resurrecting state information of the entity, as responsible for publishing future state change data for the entity; thereby achieving dynamic load balancing between the first and second servers.
8 . A computer program product for hosting an online virtual world system on game engine servers, comprising a computer usable medium including a computer readable program, wherein the computer readable program when executed on a computer causes the computer to perform:
partitioning a map representing a virtual world in the game, into multiple partitions; and selecting a game engine server for each partition as responsible for executing the game for detected game entities in that partition, wherein the selection is based on load balancing between the game engine servers.
9 . The computer program product of claim 8 , wherein the computer readable program when executed on the computer further causes the computer to further perform dynamic load balancing among the servers.
10 . The computer program product of claim 9 , wherein the computer readable program when executed on the computer further causes the computer to further perform:
determining a management grid for the map, the grid including multiple cells, wherein:
partitioning the map further includes partitioning the map into multiple partitions, each partition corresponding to one or more grid cells; and
selecting a game engine server further includes selecting a game engine sever for each partition for executing the game for detected clients in each cell of the partition.
11 . The computer program product of claim 10 , wherein the computer readable program when executed on the computer further causes the computer to further perform dynamic load balancing by selecting servers to balance the load on the servers based computational capacities and the geospatial relationships of the areas of responsibility.
12 . The computer program product of claim 11 , wherein the computer readable program when executed on the computer further causes the computer to further perform:
for each cell, determining a unique topic name within a topic space of a publication and subscription framework, wherein the topics name may be used to publish data relevant for the cell to the framework, and wherein interested servers may subscribe to the topics in order to receive such data from the framework.
13 . The computer program product of claim 12 , wherein the computer readable program when executed on the computer further causes the computer to further perform dynamic load balancing by dynamically changing the partitioning by publishing requests with the framework to the different servers, and dynamically adjusting responsibility for one or more cells between the servers for balancing the load therebetween.
14 . The computer program product of claim 13 , wherein the computer readable program when executed on the computer further causes the computer to further perform:
detecting a game entity is moving out of a current cell into a destination cell; for a first server responsible for the current cell, publishing the game state information of the entity to the topic for the destination cell; for a second server responsible for the destination cell, having previously subscribed to the topics of all the cells it is responsible for, receiving from the framework the state of the moving entity as published by the first server; and for the second server, resurrecting state information of the entity, as responsible for publishing future state change data for the entity; thereby achieving dynamic load balancing between the first and second servers.
15 . A system for hosting an online virtual world game, comprising:
a manager including a partitioner configured for partitioning a map representing a virtual world in the game into multiple partitions; and a load balancer configured for selecting a game engine server for each partition as responsible for executing the game for detected game entities in that partition, wherein the selection is based on load balancing between the game engine servers.
16 . The system of claim 15 , wherein the load balancer is further configured for performing dynamic load balancing among the servers.
17 . The system of claim 16 , wherein the partitioner is further configured for determining a management grid for the map, the grid including multiple cells, wherein partitioning the map further includes partitioning the map into multiple partitions, each partition corresponding to one or more grid cells, and the load balancer is further configured for selecting a game engine sever for each partition for executing the game for detected clients in each cell of the partition.
18 . The system of claim 17 , wherein the load balancer is further configured for dynamic load balancing by selecting servers to balance the load on the servers based on computational capacities and the geospatial relationships of the areas of responsibility.
19 . The system of claim 18 , wherein the partitioner is further configured for determining a unique topic name for each cell, within a topic space of a publication and subscription framework, wherein the topics name may be used to publish data relevant for the cell to the framework, and wherein interested servers may subscribe to the topics in order to receive such data from the framework.
20 . The system of claim 19 , wherein the load balancer is further configured for dynamically changing the partitioning by publishing requests with the framework to the different servers, and dynamically adjusting responsibility for one or more cells between the servers for balancing the load therebetween.
21 . The system of claim 20 , wherein the load balancer includes distributed modules for dynamic load balancing by:
detecting a game entity is moving out of a current cell into a destination cell; a first server responsible for the current cell publishing the game state information of the entity to the topic for the destination cell; a second server responsible for the destination cell, having previously subscribed to the topics of all the cells it is responsible for, receiving from the framework the state of the moving entity as published by the first server; and the second server resurrecting state information of the entity, as responsible for publishing future state change data for the entity; thereby achieving dynamic load balancing between the first and second servers.Join the waitlist — get patent alerts
Track US2010113159A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.