Patent Publication Number: US-2013239227-A1

Title: Group licenses for virtual objects in a distributed virtual world

Description:
RELATED APPLICATION 
     This application is a continuation of co-pending U.S. patent application Ser. No. 11/762,459, entitled “GROUP LICENSES FOR VIRTUAL OBJECTS IN A DISTRIBUTED VIRTUAL WORLD,” which was filed on Jun. 13, 2007, and which is hereby incorporated herein by reference in its entirety. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to a distributed virtual world and more specifically to validating virtual objects within a distributed virtual world. 
     BACKGROUND OF THE INVENTION 
     Validation of virtual objects is crucial in preventing cheating in virtual worlds. More specifically, it is desirable to validate virtual objects or licenses issued to a user or avatar representing the user in the virtual world before permitting the user or avatar to interact with the virtual objects. However, there may be tens, hundreds, thousands, or even millions of users or avatars active in a virtual world at a particular point in time and each of the users or avatars may interact with a large number of virtual objects. As such, validating each virtual object individually before permitting a user or avatar to interact with the virtual object places a large load on the system and more specifically on a virtual world authority operating to issue and validate licenses as the number of users or avatars and virtual objects increases. Thus, there is a need for a system and method for efficiently validating virtual objects in a virtual world. 
     SUMMARY OF THE INVENTION 
     The present invention provides a group licensing scheme for validating groups of virtual objects within a distributed virtual world. In general, each of a number of distributed virtual world servers hosts a cell, or virtual space, of the virtual world. In one embodiment, a first virtual world server categorizes virtual objects within the virtual space hosted by the first virtual world server or associated with an avatar within the virtual space hosted by the first virtual world server into a number of groups. Either before or after creating the groups, the first virtual world server interacts with a virtual world authority to validate each virtual object individually. Once the virtual objects are validated and the groups are formed, the first virtual world server generates a group license for each of the groups. When a group of virtual objects or an avatar associated with one or more groups of virtual objects moves to a virtual space hosted by a second virtual world server, the corresponding group licenses are provided to the second virtual world server. Thereafter, the second virtual world server validates the one or more groups of virtual objects based on the group licenses rather than validating each of the virtual objects individually. 
     Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures. 
     Brief Description of the Drawing Figures 
     The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention. 
       FIG. 1  illustrates a system implementing a distributed virtual world according to one embodiment of the present invention; 
       FIG. 2  illustrates a process for generating groups of virtual objects, issuing a group license for the virtual objects, and validating the group of virtual objects based on the group license according to one embodiment of the present invention; and 
       FIG. 3  is a block diagram of one of the nodes of  FIG. 1  according to one embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims. 
       FIG. 1  illustrates a system  10  implementing a distributed virtual world according to one embodiment of the present invention. In general, the virtual world may be any virtual environment wherein a user is enabled to control an avatar to move throughout and to interact with the virtual environment. An avatar may be, for example, a two-dimensional or three-dimensional graphical representation of a user or a character controlled by the user. For example, the virtual world may be a Massively Multiplayer Online Role Playing Game (MMORPG), a virtual environment such as Second Life, or the like. 
     The system  10  includes a number of network nodes, or nodes,  12 - 1  through  12 -N and a virtual world authority  14  interconnected via a network  16 . The network  16  may be a Local Area Network (LAN), Wide Area Network (WAN), or the like, or any combination thereof. The network  16  may include wired components, wireless components, or a combination thereof. For example, the network  16  may be the Internet. 
     The nodes  12 - 1  through  12 -N may be network devices such as, for example, a number of distributed gaming servers. Alternatively, the nodes  12 - 1  through  12 -N may be user devices communicating via a Peer-to-Peer (P2P) overlay network to provide a distributed P2P virtual world. For example, each of the nodes  12 - 1  through  12 -N may be a user device such as a gaming console such as an Xbox®, Playstation®, or Nintendo® Wii; a mobile gaming device such as a Playstation Portable® or Nintendo DS®; a mobile terminal such as a Personal Digital Assistant or mobile telephone; a personal computer; or the like. 
     The nodes  12 - 1  through  12 -N include virtual world servers  18 - 1  through  18 -N, respectively. The virtual world servers  18 - 1  through  18 -N may be implemented in software, hardware, or a combination thereof. Each of the virtual world servers  18 - 1  through  18 -N hosts a cell, or virtual space, of the virtual world. Clients  20 - 1  through  20 -M communicate with the virtual world servers  18 - 1  through  18 -N in order to render the virtual world to associated users and to enable those users to control their avatars to interact with the virtual world. In this example, clients  20 - 1  and  20 - 2  are associated with avatars currently within the virtual space hosted by the virtual world server  18 - 1 . As such, the clients  20 - 1  and  20 - 2  are communicatively coupled to the virtual world server  18 - 1 . 
     Likewise, the client  20 -M is associated with an avatar currently within the virtual space hosted by the virtual world server  18 -N. As such, the client  20 -M is communicatively coupled to the virtual world server  18 -N. 
     The clients  20 - 1  through  20 -M may be implemented in software and/or hardware and communicate with the virtual world servers  18 - 1  through  18 -N to enable associated users to move their avatars throughout the virtual world and to interact with the virtual world. The clients  20 - 1  through  20 -M may be implemented in user devices such as, for example, personal computers, gaming consoles, mobile gaming devices, mobile terminals, or the like. In one embodiment, if the nodes  12 - 1  through  12 -N are user devices and the virtual world servers  18 - 1  through  18 -N interact to provide a distributed P2P virtual world, at least some of the clients  20 - 1  through  20 -M may be implemented on the nodes  12 - 1  through  12 -N. The client devices  20 - 1  through  20 -M may communicate with the nodes  12 - 1  through  12 -N and more specifically the virtual world servers  18 - 1  through  18 -N via the network  16  or via some separate network. 
     For more details of an exemplary distributed virtual world wherein each server hosts a virtual space of the virtual world, the interested reader is directed to U.S. patent application Ser. No. 11/693,152, entitled MESSAGE PROPAGATION IN A DISTRIBUTED VIRTUAL WORLD, which was filed March  29 ,  2007  and is hereby incorporated by reference in its entirety. 
     The virtual world authority  14  operates to validate virtual objects within the virtual world. Validation of the virtual objects may be desired, for example, to prevent cheating in the virtual world by gaining access to or otherwise interacting with virtual objects that one has not legitimately obtained. More specifically, as discussed below, the virtual world authority  14  operates to issue licenses enabling users or their avatars to access or interact with virtual objects, validate licenses, and revoke licenses when appropriate. Note that while the virtual world authority  14  is illustrated as a single block, the virtual world authority  14  may be implemented on a single network device such as a server or implemented on a number of network devices in a distributed fashion. 
       FIG. 2  illustrates the operation of the system  10  of  FIG. 1 . First, when the avatar associated with the client  20 - 1  enters the virtual space hosted by the virtual world server  18 - 1 , the client  20 - 1  establishes communication with the virtual world server  18 - 1  (step  100 ). In one embodiment, prior to permitting the avatar to access or interact with virtual objects, the virtual world server  18 - 1  validates the virtual objects or licenses issued to the user represented by the avatar for those virtual objects (step  102 ). More specifically, in one embodiment, the avatar or may carry with it or otherwise be associated with a number of virtual objects such as, for example, clothing, weapons, maps, or the like. Before permitting the avatar to access or interact with those virtual objects, the virtual world server  18 - 1  validates the virtual objects or licenses issued to the avatar or the user associated with the avatar for those virtual objects in order to ensure that the virtual objects have been legitimately obtained and are legitimately retained by the avatar or user. In another embodiment, the virtual world server  18 - 1  may validate the virtual objects when the avatar enters the virtual space hosted by the virtual world server  18 - 1  or just prior to the time that the avatar enters the virtual space hosted by the virtual world server  18 - 1 . 
     In one embodiment, the virtual world server  18 - 1  validates the virtual objects by requesting licenses for the virtual objects from the virtual world authority  14 . The licenses include information defining the access rights of the avatar or user with respect to the virtual objects. In another embodiment, the avatar or user already has licenses for the virtual objects. The licenses may be stored by the client  20 - 1 , provided to the virtual world server  18 - 1  when the avatar enters its virtual space, or the like. As such, the virtual world server  18 - 1  validates the virtual objects by validating the avatar&#39;s or user&#39;s licenses for the virtual objects. 
     The virtual world server  18 - 1  may validate the licenses for the virtual objects in any manner known in the art. For example, the licenses may be digitally signed by the virtual world authority  14 . The virtual world server  18 - 1  may then validate the licenses using the digital signature. More specifically, as will be understood by one of ordinary skill in the art upon reading this disclosure, a license includes, for example, information defining the access rights of the avatar or user, information identifying the issuer of the license which in this case is the virtual world authority  14 , and the like. When issuing a license, the virtual world authority  14  may process the contents of the license using a hashing process to generate a message digest. The message digest is then encrypted using a private key of the virtual world authority  14  to provide the digital signature of the virtual world authority  14  for the license. The digital signature is then appended to the license. Thereafter, the virtual world server  18 - 1  may validate the license by decrypting the digital signature using a public key of the virtual world authority  14  to obtain the message digest. If the decryption process was successful, the virtual world server  18 - 1  knows that the digital signature is that of the virtual world authority  18 - 1 . The virtual world server  18 - 1  also processes the contents of the license to generate its own message digest for the license. If the message digest resulting from the digital signature and the message digest generated by the virtual world server  18 - 1  match, then the license is validated. In addition, the virtual world server  18 - 1  may interact with the virtual world authority  14  to further validate the license by, for example, querying the virtual world authority  14  to determine whether the license is still valid and has not been revoked. Still further, as will be apparent to one of ordinary skill in the art, additional measures may be taken for validation such as, for example, using a digital certificate to validate the public key of the virtual world authority  14 . 
     In this example, at some point after the virtual objects have been validated individually, the virtual world server  18 - 1  categorizes the virtual objects into one or more groups of virtual objects (step  104 ). Alternatively, the virtual world server  18 - 1  may validate the virtual objects individually after creating the groups. The virtual world server  18 - 1  may group the virtual objects in any desired manner. For example, the virtual world server  18 - 1  may group the virtual objects based on the time of last interaction or amount of time since the virtual objects were last interacted with or accessed, frequency of interaction, object location, user rights and/or security, related content category, and/or object affinity. These types of groupings are generally predictive in nature. 
     More specifically, grouping based on the time of last interaction enables virtual objects that are more likely to be interacted with or accessed in the near future to be grouped together. For example, virtual objects last interacted with or accessed within the past 24 hours may be grouped together to form a first group, virtual objects last interacted with or accessed more than 24 hours ago but less than 5 days ago may be grouped together to form a second group, and so on. Note that if grouping of this type is desired, for each virtual object, information defining the last time the virtual object was accessed or interacted with is stored either at the client  20 - 1  or the node  12 - 1  hosting the virtual world server  18 - 1 . 
     Grouping based on frequency of interaction enables virtual objects that are interacted with or accessed most frequently to be grouped together. As such, as discussed below, one validation process is used to validate the entire group. Each virtual object does not need to be validated individually, thereby substantially reducing the load placed on the system  10  with respect to validation of virtual objects. As an example, virtual objects interacted with or accessed over 100 times may be grouped together to form a first group, virtual objects interacted with or accessed less than 100 times but more than 50 times may be grouped together to form a second group, virtual objects interacted with or accessed less than 50 times but more than 25 times may be grouped together to form a third group, and so on. 
     Grouping based on location in the virtual world allows virtual objects that are often related or accessed or interacted with at or near the same time to be grouped together. Further, grouping based on location enables the virtual world server  18 - 1  to validate the group when the avatar is within or near the same location within the virtual world. Note that the location of a virtual object may be at a specific location within the virtual world or within another virtual object within the virtual world. For example, a house is a virtual object that may contain additional virtual objects such as furniture or the like. Thus, for example, all virtual objects within a defined area of the virtual world, or more specifically within a defined area of the virtual space hosted by the virtual world server  18 - 1 , may be grouped together. As another example, the virtual space hosted by the virtual world server  18 - 1  may be divided into a number of static or dynamic areas, where virtual objects within those areas are grouped together. As another example, all virtual objects within a certain virtual object may be grouped together. 
     With respect to grouping based on user rights and/or security, virtual object licenses reflect the rights of various users or avatars to interact with, access, and/or possess the virtual object. Additionally, the owner of a virtual object, or user owning or having the right to possess a virtual object, may be able to assign similar rights. For example, an owner may give his friends access to use the virtual object. Grouping based on user rights and/or security can prevent validation operations for virtual objects that a user or users cannot interact with, access, or possess. Also, these types of groups can also provide quick validation for virtual objects shared by a group of users performing a group activity within the virtual world. For example, all virtual objects belonging to a certain user or avatar may be grouped together, all objects belonging to a certain group of users or avatars may be grouped together, all virtual objects accessible to a certain user or avatar may be grouped together, all virtual objects accessible by a certain group of users or avatars may be grouped together, all virtual objects with which a certain user may interact may be grouped together, all virtual objects with which a certain group of users may interact may be grouped together, or the like. Similarly, all virtual objects not belonging to a certain user or avatar may be grouped together, all objects not belonging to a certain group of users or avatars may be grouped together, all virtual objects not accessible to a certain user or avatar may be grouped together, all virtual objects not accessible by a certain group of users or avatars may be grouped together, all virtual objects with which a certain user may not interact may be grouped together, all virtual objects with which a certain group of users may not interact may be grouped together, or the like. 
     With respect to grouping based on related content categories, the system  10  may maintain an ontology, taxonomy, or the like that describes virtual objects or types of virtual objects and their relationships with other virtual objects or other types of virtual objects. This information may be stored by the virtual world authority  14 , stored by each of the nodes  12 - 1  through  12 -N, distributed among the nodes  12 - 1  through  12 -N, stored by one or more other network nodes associated with the system  10 , or the like. Based on this information describing relationships between virtual objects or types of virtual objects, the virtual world server  18 - 1  may categorize the virtual objects into groups of related virtual objects. For example, all clothing virtual objects may be grouped together, all weapons may be grouped together, and the like. 
     Once the one or more groups are formed, the virtual world server  18 - 1  generates a group license for each of the groups (step  106 ). Preferably, the group licenses are temporary. However, the present invention is not limited thereto. More specifically, each of the group licenses is similar to the licenses issued by the virtual world authority  14  but is for the associated group of virtual objects and the issuer of the group license is the virtual world server  18 - 1  rather than the virtual world authority  14 . In addition, the group licenses are preferably digitally signed by the virtual world server  18 - 1  using the private key of the virtual world server  18 - 1 . Note that while the digital signature is discussed herein, other techniques may be used to authenticate the source of the group licenses and to validate the contents of the group licenses. 
     It should be noted that in an alternative embodiment, the one or more groups may be formed by the virtual world authority  14  based on, for example, validation requests from the virtual world server  18 - 1 . For example, if the virtual world authority  14  receives requests to validate multiple virtual objects associated with an avatar, the virtual world authority  14  may group the virtual objects or instruct the virtual world server  18 - 1  to group the virtual objects. In addition, whether or not the one or more groups are formed by the virtual world authority  14  or the virtual world server  18 - 1 , the one or more group licenses may alternatively be generated by the virtual world authority  14  rather than the virtual world server  18 - 1 . The group licenses may be temporary or permanent. More specifically, if the virtual world server  18 - 1  forms the one or more groups, the virtual world server  18 - 1  may then request a group license for each of the one or more groups from the virtual world authority  14 . 
     Thereafter, in this example, the avatar associated with the client  20 - 1  moves from the virtual space hosted by the virtual world server  18 - 1  to the virtual space hosted by the virtual world server  18 - 2 . As such, the client  20 - 1  establishes communication with the virtual world server  18 - 2  (step  108 ). In this example, at some point after the avatar has moved to the virtual space hosted by the virtual world server  18 - 2 , the virtual world server  18 - 1  provides the one or more temporary group licenses associated with the avatar to the virtual world server  18 - 2  (step  110 ). Alternatively, the group licenses may be stored by the client  20 - 1 , and the client  20 - 1  may provide the group licenses to the virtual world server  18 - 2 . As another alternative, the virtual world server  18 - 1  or the client  20 - 1  may provide the group licenses to the virtual world server  18 - 2  in a predictive fashion. More specifically, based on the location and possible previous activities of the avatar, the virtual world server  18 - 1  or the client  20 - 1  may predict that the avatar will soon enter the virtual space hosted by the virtual world server  18 - 2 . As such, the virtual world server  18 - 1  or the client  20 - 1  may provide the group licenses associated with the avatar to the virtual world server  18 - 2  in advance. The virtual world server  18 - 2  may then validate the groups in the manner described below prior to or at some point after the avatar enters its virtual space. 
     As yet another alternative, the virtual world server  18 - 2  may request the group licenses from the virtual world server  18 - 1  or the client  20 - 1  when desired. 
     After receiving the one or more group licenses, the virtual world server  18 - 2  validates the one or more groups of virtual objects based on their associated group licenses (step  112 ). As such, for each group, the group of virtual objects is validated using a single validation operation. Each virtual object in the group does not need to be validated individually, thereby reducing the load on the system  10  with respect to validation of virtual objects. Note that group licenses may include an explicit time-out period or similar information defining when the group licenses are to expire. 
     In one embodiment, in order to validate a group of virtual objects, the virtual world server  18 - 2  first decrypts a digital signature appended to the group license to obtain a message digest for the group license using a public key of the issuer of the group license, which in this example is the virtual world server  18 - 1 . Successful decryption validates that the group license is from the virtual world server  18 - 1 . Note that the public key may be obtained from the virtual world server  18 - 1 . Alternatively, the public key may be provided by or authenticated by a trusted authority such as, for example, the virtual world authority  14  or a certificate issued by the trusted authority. The virtual world server  18 - 2  also generates its own message digest from the contents of the group license and compares this message digest to the message digest resulting from the decryption of the digital signature. If the two message digests match, the contents of the group license are validated. If the group license includes an explicit time-out period, then the virtual world server  18 - 2  determines whether the group license has expired. If so, the virtual world server  18 - 2  then proceeds to validate each virtual object in the group individually in the manner described above with respect to step  102 . If the group license has not expired, the virtual world server  18 - 2  may interact with the virtual world server  18 - 1  to ensure that the group license has not been revoked and is still valid and may further interact with the virtual world authority  14  to ensure that the virtual world server  18 - 1  is a valid issuer of the group license. At this point, the group license is validated. 
     Once the group license is validated, the avatar or user associated with the avatar is enabled to access or interact with the virtual objects in the group as permitted by the group license. 
     In order to illustrate the principals of the invention, the following exemplary scenario is provided. However, this example is not intended to limit the scope of the present invention. First, an avatar acquires a number of virtual objects such as, for example, clothes, jewelry, weapons, and the like. The avatar may acquire the virtual objects by, for example, completing specified tasks within the virtual world or as a result of an e-commerce transaction wherein the associated user purchases the virtual objects. The virtual world authority  14  issues licenses for the virtual objects giving the avatar the right and permission to possess, access, interact with or otherwise use the virtual objects as applicable. The virtual objects and the licenses may be stored by the associated client, which in this example is the client  20 - 1 . At some point thereafter, the avatar enters the virtual space hosted by the virtual world server  18 - 1 . Assuming that the licenses of the virtual objects need to be validated, the virtual world server  18 - 1  validates the licenses for the virtual objects individually. Either before or after validating the licenses, the virtual world server  18 - 1  categorizes the virtual objects associated with the avatar into one or more groups. Once the virtual objects are validated individually, the virtual world server  18 - 1  issues a group license for each of the groups of virtual objects. Thereafter, when the avatar moves to the virtual space hosted by the virtual world server  18 - 2 , the group licenses are provided to the virtual world server  18 - 2  either from the virtual world server  18 - 1  or the client  20 - 1 . At some point such as, for example, an initial attempt of the avatar to access or interact with a virtual object in one of the groups, the virtual world server  18 - 2  validates the group license for the associated group. As a result, each virtual object in the group is validated, and the avatar is free to access or interact with all of the virtual objects in the group as permitted by the group license. 
       FIG. 3  is a block diagram of the node  12 - 1  of  FIG. 1  according to one embodiment of the present invention. This discussion is equally applicable to the other nodes  12 - 2  through  12 -N. In general, the node  12 - 1  includes a control system  22  having associated memory  24 . In this example, the virtual world server  18 - 1  is implemented in software and stored in the memory  24 . However, the present invention is not limited thereto. The virtual world server  18 - 1  may be implemented in software, hardware, or a combination thereof. The node  12 - 1  also includes one or more communication interfaces  26  communicatively coupling the node  12 - 1  to the network  16  and the clients  20 - 1  and  20 - 2  ( FIG. 1 ). Note that the node  12 - 1  may communicate with the other nodes  12 - 2  through  12 -N, the virtual world authority  14 , and the clients  20 - 1  and  20 - 2  via a single communication interface or via separate communication interfaces. The node  12 - 1  also includes a user interface  28 , which may include, for example, one or more user input devices, a display, speakers, and the like. 
     The present invention provides substantial opportunity for variation without departing from the spirit or scope of the present invention. For example, while the present invention has been discussed above with respect to a distributed virtual world, the present invention is applicable to any distributed architecture including a number of distributed network nodes wherein it is desirable to validate the same virtual object at different network nodes over time. In addition, while much of the discussion above focuses on validating virtual objects associated with an avatar, the present invention is not limited thereto. 
     For example, the present invention may be used to validate any virtual objects that may be accessed or interacted with from the virtual spaces of multiple virtual world servers in a distributed virtual world architecture. 
     Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.