1. Field of the Invention
Embodiments of the invention relate to presenting users with an immersive virtual environment. More specifically, embodiments of the invention allow users of the virtual environment to determine where to use and acquire inventory objects as well as notify users of useful inventory items when an avatar is at a particular location within the virtual environment.
2. Description of the Related Art
A virtual world is a simulated environment in which users may inhabit and interact with one another via avatars. Users may also interact with virtual objects and locations of the virtual world. An avatar generally provides a graphical representation of an individual within the virtual world environment. Avatars are usually presented to other users as two or three-dimensional graphical representations that resembles a human individual. Frequently, virtual worlds allow multiple users to enter the virtual environment and interact with one another. Virtual worlds are said to provide an immersive environment, as they typically appear similar to the real world and objects tend to follow rules related to gravity, topography, locomotion, physics and kinematics. Of course, virtual worlds can suspend or alter these rules as well as provide other imaginative or fanciful environments. Users typically communicate with one another through their avatars using text messages sent between avatars, real-time voice communication, gestures displayed by avatars, symbols visible in the virtual world, and the like.
Virtual worlds may be persistent. A persistent world provides an immersive environment (e.g., a fantasy setting used as a setting for a role-playing game, or a virtual world complete with land, buildings, towns, and economies) that is generally always available, and world events happen continually, regardless of the presence of a given avatar. Thus, unlike more conventional online games or multi-user environments, the virtual world continues to exist, and plot and events continue to occur as users enter (and exit) the virtual world.
Within the virtual environment, avatars may have the ability to carry objects used to interact with elements of the virtual world. Depending on the particular environment (or location within an environment) different objects in an avatar's inventory may have a variety of uses at various locations. Moreover, certain objects may be more useful than others, depending upon the location of the avatar in the virtual world. Furthermore, an avatar may need to obtain an object from one location in the virtual world before using it at another location. For example, some virtual environments have matured to the point where economies have developed and goods may be bought and sold using virtual money. In such a case, a user might purchase virtual items at one location (e.g., virtual fishing equipment or camping gear) for use at different locations of the virtual world (e.g., a virtual lake). As another example, a user might enroll in classes offered by a virtual school and need to acquire certain virtual objects to participate in a given course.
One embodiment of the invention includes a method for identifying objects which may be used by an avatar at a first location within a virtual environment. The method may generally include identifying a first set of virtual objects in an inventory of the avatar representing the first user in the virtual environment, identifying the first location of the avatar within the virtual environment, and determining, for each identified virtual object, an interaction metric. The interaction metric provides a measure of how frequently each respective virtual object has been used by users of the virtual environment at the first location. The method may also include displaying a list of virtual objects that includes at least a first virtual object having an interaction metric that exceeds a specified threshold.
Another embodiment of the invention includes a computer-readable storage medium containing a program which, when executed, performs an operation for identifying objects which may be used by an avatar at a first location within a virtual environment. The operation may generally include identifying a first set of virtual objects in an inventory of the avatar representing the first user in the virtual environment, identifying the first location of the avatar within the virtual environment, and determining, for each identified virtual object, an interaction metric. The interaction metric provides a measure of how frequently each respective virtual object has been used by users of the virtual environment at the first location. The operation may also include displaying a list of virtual objects that includes at least a first virtual object having an interaction metric that exceeds a specified threshold.
Still another embodiment of the invention includes a system having a processor and a memory containing a program, which when executed by the processor, is configured to perform an operation for identifying objects which may be used by an avatar at a first location within a virtual environment. The operation may generally include identifying a first set of virtual objects in an inventory of the avatar representing the first user in the virtual environment, identifying the first location of the avatar within the virtual environment, and determining, for each identified virtual object, an interaction metric. The interaction metric provides a measure of how frequently each respective virtual object has been used by users of the virtual environment at the first location. The operation may also include displaying a list of virtual objects that includes at least a first virtual object having an interaction metric that exceeds a specified threshold.
So that the manner in which the above recited features, advantages and objects of the present invention are attained and can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to the embodiments thereof which are illustrated in the appended drawings.
It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
A virtual world is a simulated environment in which users may inhabit and interact with one another via avatars. Further, users may also interact with elements of the virtual world. Objects in an avatar's inventory, also referred to as inventory items, may have a variety of uses at various locations of the virtual world. However, the user may not know where a given object can be used or acquired (or in some cases even the existence of a given object). Moreover, when a user's avatar arrives at a particular location, the usefulness of an inventory object or potential inventory object may not be readily apparent.
For example, users may encounter (or acquire) objects within the virtual world without realizing that there is a way to interact with the virtual object by using another object already in the Avatar's possession. For example, a user that sees a small lake next to a path may not realize that a fishing pole can be used at the lake. Further, the user may not even know that a fishing pole can be acquired at a nearby virtual store. Moreover, even if the user has a fishing pole on hand as an inventory item, the user may have forgotten about it. If the user's list of inventory items is large, then it is possible that items may go unnoticed or forgotten. This may occur frequently as an avatar may “carry” a large amount of inventory items. In such cases, it may be extremely time-consuming for a user to examine all inventory items for usefulness every time a new object or location is encountered.
Embodiments of the invention provide techniques for helping users determine the “best” places to use and acquire inventory objects within a virtual environment as well as notify users of useful inventory items when an avatar is at a particular location in the virtual environment. Generally, an object index may be used to store data describing attributes of virtual objects, and a user index may be used to store data describing the interactions of multiple users with a variety of virtual objects. When a user selects an object from the avatar's inventory, or an object which may be acquired and added to an avatar's inventory, one or more external objects are recommended for use with the object, based upon the interaction records stored in the user index. If the object is not in the avatar's inventory, the user may be guided to a location where it may be acquired. Otherwise, the user may be guided to a location of a given external object which may be used with the object in inventory. Additional objects may also be recommended for use with the external object. If an avatar is in the same location as an external object, the user may be informed of what objects may be most useful with the external object.
In the following, reference is made to embodiments of the invention. However, it should be understood that the invention is not limited to specific described embodiments. Instead, any combination of the following features and elements, whether related to different embodiments or not, is contemplated to implement and practice the invention. Furthermore, in various embodiments the invention provides numerous advantages over the prior art. However, although embodiments of the invention may achieve advantages over other possible solutions and/or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of the invention. Thus, the following aspects, features, embodiments and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s). Likewise, reference to “the invention” shall not be construed as a generalization of any inventive subject matter disclosed herein and shall not be considered to be an element or limitation of the appended claims except where explicitly recited in a claim(s).
One embodiment of the invention is implemented as a program product for use with a computer system. The program(s) of the program product defines functions of the embodiments (including the methods described herein) and can be contained on a variety of computer-readable storage media. Illustrative computer-readable storage media include, but are not limited to: (i) non-writable storage media (e.g., read-only memory devices within a computer such as CD-ROM disks readable by a CD-ROM drive and DVDs readable by a DVD player) on which information is permanently stored; and (ii) writable storage media (e.g., floppy disks within a diskette drive, a hard-disk drive or random-access memory) on which alterable information is stored. Such computer-readable storage media, when carrying computer-readable instructions that direct the functions of the present invention, are embodiments of the present invention. Other media include communications media through which information is conveyed to a computer, such as through a computer or telephone network, including wireless communications networks. The latter embodiment specifically includes transmitting information to/from the Internet and other networks. Such communications media, when carrying computer-readable instructions that direct the functions of the present invention, are embodiments of the present invention. Broadly, computer-readable storage media and communications media may be referred to herein as computer-readable media.
In general, the routines executed to implement the embodiments of the invention, may be part of an operating system or a specific application, component, program, module, object, or sequence of instructions. The computer program of the present invention typically is comprised of a multitude of instructions that will be translated by the native computer into a machine-readable format and hence executable instructions. Also, programs are comprised of variables and data structures that either reside locally to the program or are found in memory or on storage devices. In addition, various programs described hereinafter may be identified based upon the application for which they are implemented in a specific embodiment of the invention. However, it should be appreciated that any particular program nomenclature that follows is used merely for convenience, and thus the invention should not be limited to use solely in any specific application identified and/or implied by such nomenclature.
In one embodiment, server system 120 includes a CPU 122, which obtains instructions and data via a bus 121 from memory 126 and storage 124. The processor 122 could be any processor adapted to support the methods of the invention. The memory 126 is any memory sufficiently large to hold the necessary programs and data structures. Memory 126 could be one or a combination of memory devices, including Random Access Memory, nonvolatile or backup memory, (e.g., programmable or Flash memories, read-only memories, etc.). In addition, memory 126 and storage 124 may be considered to include memory physically located elsewhere in a server 120, for example, on another computer coupled to the server 120 via bus 121. Server 120 may be operably connected to the network 115, which generally represents any kind of data communications network. Accordingly, the network 115 may represent both local and wide area networks, including the Internet.
As shown, memory 126 includes virtual world 130. In one embodiment, virtual world 130 may be a software application that accepts connections from multiple clients, allowing users to explore and interact with an immersive virtual environment by controlling the actions of an avatar. Illustratively, virtual world 130 includes virtual objects 132. Virtual objects 132 represent the content present within the environment provided by virtual world 130, including both elements of the “world” itself as well as elements controlled by a given user. Illustratively, storage 124 includes an object index 125, a user index 105, and interaction records 106. In one embodiment, the object index 125 may store data describing characteristics of virtual objects 132 included in virtual world 130, and may be accessed to perform searches of virtual objects 132. The user index 105 may store records describing interactions between users and elements of the virtual world. Such characteristics may include, e.g., the name of the object's owner/creator, when the object was created, the object's cost, type, dimensions, color, shape, location, attributes, etc. The use of object index 125 in performing searches is discussed below with reference to client application 109.
As shown, each client computer 110 includes a central processing unit (CPU) 102, which obtains instructions and data via a bus 111 from client memory 107 and client storage 104. CPU 102 is a programmable logic device that performs all the instruction, logic, and mathematical processing in a computer. Client storage 104 stores application programs and data for use by client computer 110. Client storage 104 includes hard-disk drives, flash memory devices, optical media and the like. Client computer 110 is operably connected to the network 115.
Client memory 107 includes an operating system (OS) 108 and a client application 109. Operating system 108 is the software used for managing the operation of the client computer 110. Examples of OS 108 include UNIX, a version of the Microsoft Windows® operating system, and distributions of the Linux® operating system. (Note, Linux is a trademark of Linus Torvalds in the United States and other countries.)
In one embodiment, client application 109 provides a software program that allows a user to connect to a virtual world 130, and once connected, to explore and interact with virtual world 130. Further, client application 109 may be configured to generate and display a visual representation of the user within the immersive environment, generally referred to as an avatar. The avatar of the user is generally visible to other users in the virtual world, and the user may view avatars representing the other users. The client application 109 may also be configured to generate and display the immersive environment to the user and to transmit the user's desired actions to virtual world 130 on server 120. Such a display may include content from the virtual world determined from the user's line of sight at any given time. For the user, the display may include the avatar of that user or may be a camera eye where the user sees the virtual world through the eyes of the avatar representing this user.
For instance, using the example illustrated in
The user may view the virtual world using a display device 140, such as an LCD or CRT monitor display, and interact with the client application 109 using input devices 150 (e.g., a keyboard and a mouse). Further, in one embodiment, the user may interact with client application 109 and virtual world 130 using a variety of virtual reality interaction devices 160. For example, the user may don a set of virtual reality goggles that have a screen display for each lens. Further, the goggles could be equipped with motion sensors that cause the view of the virtual world presented to the user to move based on the head movements of the individual. As another example, the user could don a pair of gloves configured to translate motion and movement of the user's hands into avatar movements within the virtual reality environment. Of course, embodiments of the invention are not limited to these examples and one of ordinary skill in the art will readily recognize that the invention may be adapted for use with a variety of devices configured to present the virtual world to the user and to translate movement/motion or other actions of the user into actions performed by the avatar representing that user within virtual world 130.
Within virtual world 130, avatars can interact with other avatars. For example, a user with avatar A could click on an avatar B to start an instant message conversation with the user associated with avatar B. Additionally, a user may interact with virtual objects 132. As used herein, the term “user interaction” is broadly defined to include any interactions with virtual objects 132 or with other avatars. For example, the user may click on a building within the virtual world labeled as a store (e.g., store 220 shown in
In one embodiment, client application 109 may be configured to enable users to determine where a given inventory item (or potential inventory item) can be used (or acquired). For example, an avatar may hold a particular credit card as an inventory item. Based upon data from interaction records 106, the credit card and the store 220 may have a strong “interaction metric,” which would signify that users have often used the credit card with the store in the past. The interaction metric may be a calculated numeric value or some other value that indicates how useful a particular item is for an external object. For example, non-numeric values might include “none,” “low,” “medium,” or “high.” If the interaction metric is high enough, the credit card may be considered a “hot item,” and the application 109 may suggest that the avatar could travel to the store 220 to use the credit card. Furthermore, the application 109 may provide a list of all potential inventory items. If an avatar does not have a particular credit card, the application 109 may obtain the location of the credit card from the object index 125 and guide the avatar to that location so the avatar can obtain it.
In another embodiment, client application 109 may be configured to notify users of useful inventory items (or potential inventory items) when an avatar is near a particular location within the virtual environment. For example, an avatar may hold a credit card as one of its inventory items while it walks near a store 220. If the interaction metric between the store 220 and the credit card is high, then the application 109 may display the credit card as a hot item when the user views the inventory. Alternatively, assume the avatar is displayed holding the card in its hand. In such a case, when the avatar passes by the store, the card could become highlighted or otherwise emphasized in the display of the virtual world presented to the user. If the avatar does not have the credit card, then the inventory list may display the credit card as a “hot” item and guide the avatar to another location so the avatar can obtain it. As another example, assume the user's avatar has a virtual key in its possession. In such a case, the user might not know where the key may be used. Assume further that the virtual key allows the user to enter a number of related stores in the virtual world. In such a case, the user could request a display of where the key could be used, and the client application 109 could respond with the list of stores their absolute location in the virtual world as well as their locations relative to the avatars' current position. Further, the key could begin to glow (or otherwise be emphasized in the display of the virtual world whenever the user approached a store where the key authorized entry.
Of course, the embodiments described above are intended to be illustrative, and are not limiting of the invention. Other embodiments are broadly contemplated. For example, the search functionality of client application 109 may be incorporated into a server-side application, such as an application hosting the virtual world 130, or in a separate application (e.g., a web browser). In yet another example, object index 125 and the user index 105 may be combined in a single data structure. In another example, object index 125 and user index 105 may store data describing the actions of other users (i.e., avatars) of virtual world 130.
As shown, the display 400 also lists the selected item 410 along with a related items list 445. In one embodiment, the application 109 may generate the related items list 445 using the interaction records 106. For example, if the interaction metric between a canoe 445 and the lake 430 exceeds a predefined threshold, then the canoe 445 may be listed in the related items list 445. Moreover, if a user often uses a canoe with a fishing pole, then the canoe 445 is more likely to be listed as a related item simply because it is used in conjunction with the fishing pole (or close in time). The threshold itself may be set as a matter of user preference. Furthermore, buttons 415 may allow a user to learn where items in the list 445 may be used and where such items may be acquired (e.g., using the icon 450 to indicate a virtual location where an item may be purchased). If the user selects multiple items, then the map 405 may also show the most efficient route to acquire and use all of the items. For example, if the user wants to acquire both a fishing lure and a canoe, whether the lake 430 or the lake 435 is suggested may depend upon where these objects can be acquired. For example, as shown, the map 405 indicates that a fishing lure may be acquired at one location using icon 450 and used at lake 435, as this lake is closer to the location where the fishing lure may be acquired.
In one embodiment, interaction records may reflect a particular user's preferences for using objects. For example, if a user (through their avatar) interacts with a fishing pole much more often than the other users, then the interaction metric for the fishing pole is much stronger for that user. Furthermore, if a user (through their avatar) interacts with the fishing pole regardless of which external objects are nearby, then the interaction records may include this information. Thus, the fishing pole may appear as a hot item even though no lake is present.
As shown, method 800 begins at step 820, where a virtual world identifies an interaction between an object in an avatar's inventory and an element of the virtual world (i.e., with an external object). In response, an interaction record 106 may be created and stored in the user index 105 at step 830. At step 840, object identifiers may be stored in the interaction record 106. For example, the object identifier may be an object name, an alphanumeric code, etc. At step 850, data describing the object's location may be stored in the interaction record. Such location data may include, e.g., the object's location coordinates, the object's distance from the user when the interaction took place, the object's position relative to other objects in the virtual world, etc.
At step 860, data describing the user's actions may be stored in the interaction record. Such data may include the user's interaction with the object (e.g., “caught fish with fishing pole,” “picked up box,” etc.). Further, the data may also include information characterizing the nature of the interaction (e.g., “caught eleven fish in lake,” “operated all controls on kiosk,” “glanced at billboard,” etc.). Furthermore, the data may also characterize other activities engaged in buy the user (i.e., other than the interaction itself) at the time of interaction (e.g., “read billboard while walking,” etc.). After step 860, the method 800 terminates. Of course, the method 800 is provided for illustrative purposes only, and is not limiting of the invention. It is contemplated that the steps of method 800 may be modified to incorporate other data describing user interactions into the user index. Such modifications may be made to suit particular situations, and are thus contemplated to be in the scope of the invention.
At step 925, the user may select one of the objects. At step 935, if the selected object is in the avatar's inventory (i.e., the object is in the list of objects generated at step 915), then the client application 109 may display a map of locations where the object can be used (step 940). However, if the selected object is not in the avatar's inventory (i.e., the object is in the list of objects generated at step 920), the client application 109 may display a map highlighting locations in the virtual world where the selected object can be acquired (step 945). At step 950, the client application 109 may generate a list that includes the selected object and any related “hot” objects. As described above, e.g., if a fishing pole object were “hot” at the lake, then the related item of a “fishing lure” may be identified if it is also a “hot” object at a lake.
At step 955, client the application 109 may determine whether there is another object in the list of related, “hot” objects. As described for
Advantageously, as described above, embodiments of the invention allow users interacting with a virtual world to determine the “best” places to use and acquire inventory objects within the virtual world. Further embodiments of the invention may be configured to notify users of useful inventory items when an avatar is at a particular location in the virtual environment. In particular, in one embodiment, interaction records store every interaction users of the virtual world engage in with virtual objects. The interaction records are stored on a central server associated with the virtual world. If many users interact with a particular object at a particular location, then that object may be identified as “hot.” Doing so allows the virtual world application to leverage other users' past experiences to guide a user's interactions with an avatar's inventory objects and external elements of the virtual world. By using this method, a person may explore a virtual world in a more effective and efficient manner.
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
Number | Name | Date | Kind |
---|---|---|---|
6476830 | Farmer et al. | Nov 2002 | B1 |
7173177 | Gould et al. | Feb 2007 | B1 |
7257552 | Franco | Aug 2007 | B1 |
7409647 | Elber et al. | Aug 2008 | B2 |
20020059120 | Milton | May 2002 | A1 |
20030115132 | Iggland | Jun 2003 | A1 |
20040266505 | Keam et al. | Dec 2004 | A1 |
20050261980 | Hadi | Nov 2005 | A1 |
20060277145 | Raccah et al. | Dec 2006 | A1 |
20070112624 | Jung et al. | May 2007 | A1 |
20070118420 | Jung et al. | May 2007 | A1 |
20070211047 | Doan et al. | Sep 2007 | A1 |
20070259713 | Fiden et al. | Nov 2007 | A1 |
20080153596 | Nguyen | Jun 2008 | A1 |
20080204448 | Dawson et al. | Aug 2008 | A1 |
20100050100 | Dettinger et al. | Feb 2010 | A1 |
Entry |
---|
Dettinger, et al., U.S. Patent Application entitled, “Virtual World Object Presentation, Recommendations and Navigation.” |
Number | Date | Country | |
---|---|---|---|
20100045660 A1 | Feb 2010 | US |