Embodiments of the inventive subject matter generally relate to the field of virtual universe systems, and, more particularly, to dynamic spawning virtual universe systems.
Virtual universe applications allow people to socialize and interact in a virtual universe. A virtual universe (“VU”) is a computer-based simulated environment intended for its residents to traverse, inhabit, and interact through the use of avatars. Many VUs are represented using 3-D graphics and landscapes, and are populated by many thousands of users, known as “residents.” Other terms for VUs include metaverses and “3D Internet.”
Various embodiments are disclosed of a method and apparatus for dynamically spawning auxiliary focal point objects within a virtual universe. According to one embodiment, the number of virtual universe avatars within a predetermined proximity from a designated first object in a virtual universe is determined. The designated first object is associated with transmissions of information within the virtual universe. A condition that affects a load on a server computer supporting the designated focal point object in the virtual universe is determined. A second object is dynamically spawned within the virtual universe in response to determining that the number of virtual universe avatars within the predetermined proximity from the designated first object is greater than a first predetermined threshold and determining that the condition on the server computer is greater than a second predetermined threshold. The second object is associated with transmissions of information within the virtual universe.
The present embodiments may be better understood, and numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The description that follows includes exemplary systems, methods, techniques, instruction sequences and computer program products that embody techniques of the present inventive subject matter. However, it is understood that the described embodiments may be practiced without these specific details. For instance, examples refer to avatars comprising virtual universe receiver objects having embedded software for interpreting and processing transmissions of information in a virtual universe, but in other embodiments the avatars may interpret and process the transmissions without the virtual universe receiver objects. In other instances, well-known instruction instances, protocols, structures and techniques have not been shown in detail in order not to obfuscate the description.
In various embodiments, the proximity of an avatar with respect to a designated focal point object within a virtual universe is determined, and information associated with the designated focal point object is identified. A first of a plurality of representations of the information is selected based, at least in part, on the determined proximity of the avatar with respect to the designated focal point object. The first representation of the information is then transmitted to the avatar. Proximity-based transmission of information disseminates relevant information to avatars. Virtual universe businesses can use proximity-based transmission of information to encourage avatars to move near the designated focal point object within the virtual universe so that the avatars can be exposed to products and advertisements. Additionally, in some embodiments, multiple broadcasts of information can be provided to the avatars via one or more virtual universe transmitters. In these embodiments, avatars can select one or more of the available broadcasts and can switch between broadcasts as desired. Furthermore, in some embodiments, the density of a plurality of avatars within a predetermined proximity from a designated focal point object in the virtual universe is determined. One or more auxiliary focal point objects associated with the designated focal point object are dynamically spawned within the virtual universe based on the determined density of the virtual universe avatars. Dynamic spawning of auxiliary focal point objects reduces the load on virtual universe host servers and the corresponding client devices, and thus improves performance of the virtual universe system.
A perspective 123 of the virtual universe rendered at the client 101A depicts the avatar 105 in a shopping area of a city region hosted by virtual universe server 120A. At a stage A, virtual universe server 120A determines the proximities of the avatars with respect to a designated focal point object 125 within the virtual universe. For example, virtual universe server 120A may detect that avatar 105 is a virtual distance X (e.g., 35 virtual feet) away from the designated focal point object 125, which is within an area R1 (e.g., an area with a radius of 50 virtual feet). At a stage B, virtual universe server 120A transmits information to the avatars based on the determined proximities. For instance, virtual universe server 120A may determine the content level and/or content type associated with the transmission based on the detected proximities. In the example shown in
The virtual universe can include a plurality of designated focal point objects 125. In various implementations, the focal point objects 125 may serve as reference points for determining the proximity measurements with respect to the avatars. The focal point objects 125 may also serve as virtual universe transmitters for transmitting the information to the avatars. In other implementations, the designated focal point objects 125 may only be used as reference points for determining the proximity measurements. In these implementations, the virtual universe server 120 can transmit the information to the avatars by other mechanisms, e.g., via other virtual universe objects, such as broadcast towers or buildings.
One or more virtual universe transmitters (e.g., the designated focal point object 125 and/or other virtual universe objects) can transmit information to all the avatars within the virtual universe. It is noted, however, that in other implementations the virtual universe transmitter may transmit information only to avatars that are located within a predetermined virtual distance from the designated focal point object 125. In both cases, the content level and/or content type associated with the transmission may be based on the detected proximities of the avatars to a designated focal point object 125.
The information transmitted to the avatars may be one or more of news, music, advertisements, multimedia, video feeds, financial information, and entertainment information, among others. In one specific example, virtual universe businesses (e.g., virtual car dealership) or other entities may lease the virtual universe transmitter (e.g., certain time slots) from the virtual universe administrator for transmitting advertisements, coupons, and product information to avatars. Proximity-based transmission of information can encourage avatars to move near the designated focal point object 125, which may be placed at or near the virtual universe business. This may lead to increased visits to the store, product exposure, and business transactions. Also, since avatars may receive increasing content level as they move closer to the designated focal point object 125, proximity-based transmission of information may encourage avatars to return to the relevant location. In other examples, coordinators for virtual universe events (e.g., music concerts) may lease the virtual universe transmitters to broadcast music or other multimedia content. It is noted, however, that virtual universe businesses, groups, or other entities may also have the option to buy the virtual universe transmitters.
It is noted that in some implementations, the proximity-based information is transmitted to both avatars having a virtual universe receiver object and avatars that do not have a virtual universe receiver object. However, in these implementations, only the avatars having a virtual universe receiver object may be able to interpret and process the transmitted information.
At block 210, information associated with the designated focal point object 125 is determined. For instance, virtual universe server 120A determines what information is scheduled to be transmitted to the avatars, e.g., at a current time slot. In the example shown in
In some implementations, after determining the information associated with the designated focal point object 125, a first subset of the information can be selected for transmission to certain avatars, and a second subset of the information can be selected for transmission to other avatars. For example, the information associated with the designated focal point object 125 may include an advertisement for a virtual universe clothing store, an advertisement for a virtual universe car dealership, and an audio stream of the current top 40 songs. In this example, all three transmissions may be selected for certain avatars, and a subset of the transmissions (e.g., the car dealership ad and the audio stream, or only the audio stream) may be selected for other avatars. For each avatar, the selection of the information can be based on preference data associated with the avatar, e.g., preference information associated with the profile of the avatar and/or preference information associated with a membership type.
At block 215, one or more of a plurality of representations of the information are selected based, at least in part, on the determined proximities of the virtual universe avatars with respect to the designated focal point object 125. In various implementations, the plurality of representations of the information comprise a hierarchy of representations of the information, where the hierarchy corresponds to a plurality of proximities with respect to the designated focal point object 125. For instance, in some examples, the virtual universe server 120A may determine the content level (e.g., amount of content) and/or content type (e.g., text, audio, and/or video content) associated with the transmission of the information based on the detected proximities. It is noted that a representation of the information can comprise a portion of the information available for transmission, or all of the information available for transmission. For example, a first representation of the information can comprise a first portion of a document, a second representation of the information can comprise a second portion of the document, and a third representation of the information can comprise all of the document. It is further noted that a representation of the information can comprise a portion of the information or all of the information in one or more formats, e.g., in text, audio, and/or video format.
At block 220, the information is transmitted to the avatars of the virtual universe. In other words, the one or more selected representations of the information are transmitted to the corresponding avatars. In the example shown in
The content type associated with the transmission may also vary based on the detected proximities. For example, avatar 105 and all the other avatars within area R1 may receive audio and video content (e.g., video clip of the products that are on sale), whereas the avatars in areas R2 and R3 may only receive text. In other examples, avatars within areas R1 and R2 may be offered coupons or other special offers that expire unless the avatar responds within a predetermined amount of time (e.g., 10 minutes). For instance, a virtual car dealership may offer discounts on selected virtual universe vehicles.
At block 225, the transmitted information is presented to the users controlling the avatars. For example, the information may be generated next an avatar on a user's display or the information may be presented on a pop-up window. In some cases, the users controlling the avatars may be given the option to respond to the presented information. For example, the user may receive a special offer for a product that expires within a predetermined amount of time. In this example, the user may be given the option to accept or decline the offer, and if the user accepts the offer, the user may be prompted to enter some form of identification information.
At block 315, information associated with the designated focal point object 125 is determined. At block 320, one or more of a plurality of representations of the information are selected based, at least in part, on the determined proximities of the avatars with respect to the designated focal point object 125. For example, the virtual universe server 120A may determine the content level and/or content type associated with the transmission of the information based on the detected proximities. At block 325, the information is transmitted to the avatars having a virtual universe receiver object within the virtual universe. For example, in the example shown in
It is noted, however, that in some implementations, the proximity-based information is transmitted to all of the avatars within the virtual universe, or to all the avatars located within a predetermined proximity from the designated focal point object 125. In these implementations, although the information is transmitted to all the avatars, only avatars having a virtual universe receiver object may be able to interpret and process the transmitted information (e.g., using embedded software associated with the proximity-based service). It is further noted that, in some instances, the virtual universe administrator may provide limited access (e.g., a “sneak peak” preview or one-day trials) to the proximity-based service to avatars that do not have a virtual universe receiver object to encourage the avatars to obtain receivers, and/or may send messages to the avatars offering the avatars a virtual universe receiver for a monthly fee or at no cost.
In some examples, the virtual administrator may also offer optional services to avatars, for example, music and/or video streaming services. A fee may be required for the optional services. Alternatively, the optional services may be supported by advertisements, and therefore can be provided at no cost to the users controlling the avatars as long as the users subscribe to the service.
At block 410, for each avatar, at least one of the broadcasts is selected based on preference information associated with the avatar. In some implementations, avatars may obtain a virtual universe receiver object to interpret and process the broadcasted information. In these implementations, for each avatar that includes a virtual universe receiver object, at least one of the broadcasts is selected based on preference information received from a user controlling the avatar. In one example, after providing the broadcasts to an avatar, a preview or an indication of the available broadcasts may be presented to the avatar. In this example, the user controlling the avatar may select one or more of the broadcasts and send the preference information to the virtual universe server for selection of the desired broadcasts. In another example, at least one of the broadcasts is selected based on preference information associated with a virtual universe account associated with the avatar (e.g., profile, membership type, historical information, etc.). In this example, one or more broadcasts may be automatically selected after accessing the virtual universe account and reading the preference information. It is noted, however, that in some cases the broadcasts may be selected based on both preference information submitted by the user and preference information read from the virtual universe account associated with the avatar. At block 415, for each avatar, the information associated with the selected broadcast(s) is presented to the user controlling the avatar. The user controlling the avatar may subsequently switch between different broadcasts or select additional broadcasts by providing preference information to the virtual universe server.
It is further noted that in some implementations, rather than providing the broadcasts of information to the avatars, a preview or an indication of the available broadcasts is first provided to the avatars. In response to receiving an indication of the available broadcasts, the user controlling the avatar may provide preference information to the virtual universe server for selection of one or more broadcasts. After selection, the one or more selected broadcasts can be provided to the avatar. In other implementations, the avatar may initiate communications with a virtual universe transmitter, e.g., requesting that the virtual universe transmitter provide the avatar all the available broadcasts (or a preview of the broadcasts).
In some implementations, the plurality of broadcasts of information is provided to the avatars via a plurality of virtual universe channels. In these implementations, avatars may obtain a multi-channel virtual universe receiver object for selecting one or more virtual universe channels and for switching between channels.
At block 510, it is determined whether the density of the avatars is above a predetermined density threshold level. In one specific example, the predetermined density threshold may be 10 avatars in a virtual universe area of 1256.64 virtual square feet. The predetermined density threshold level may be determined based on the number of avatars that will likely cause an overload condition on the virtual universe host server, e.g., due, at least in part, to a large demand for computing resources at the server. The density threshold may be set at a level that can prevent overload conditions, which can impact the performance of the virtual universe and therefore user satisfaction. For example, if 12 avatars within a certain virtual universe area will likely cause an overload condition, the density threshold level may set at 10 avatars within that area.
In some implementations, multiple density threshold levels can be set to determine how many auxiliary focal point objects to dynamically spawn. For instance, one auxiliary focal point object may be dynamically spawned for every threshold that is exceeded. In the example shown in
At block 515, if the detected density of the avatars is above the predetermined density threshold, the location(s) of the one or more auxiliary focal point objects within the virtual universe are determined. In one example, the locations for the auxiliary focal point objects can be determined by a load balancing algorithm, which, for example, examines the server capabilities (e.g., CPU, memory, bandwidth, etc.) of various virtual universe servers. In another example, an on-the-fly bidding process may be used to determine the locations, e.g., an island owner receives a signal that a new auxiliary focal point is predicted to be needed within 5 minutes, and the owner bids $10 to have the auxiliary focal point on his island. In other examples, historical information of past placements of auxiliary focal point objects may be analyzed, e.g., search for examples of past placements that that were effective in performing virtual universe load balancing. Also, predicted migration patterns of avatars and avatar population data may be used for determining effective locations for the placement of the auxiliary focal point objects.
At block 520, the one or more auxiliary focal point objects are dynamically spawned within the virtual universe. For instance, in the example shown in
In various embodiments, to reduce the density of avatars around the designated focal point object 125, the virtual universe server can send requests to a subset of the avatars requesting that the avatars relocate (e.g., teleport) to the area near one of the auxiliary focal point objects. In some cases, the requests may be accompanied by offers of goods and services to encourage avatars to relocate. In other cases, messages sent to the avatars may require that the avatars relocate or risk being removed from the region, or the avatars may be automatically teleported to another area having one of the auxiliary focal point objects. It is noted, however, that in some implementations, relocation requests may not be sent to avatars, because the mere addition of auxiliary focal point objects can effectively implement a load balancing function as new user-controlled avatars are attracted to a transmission or the focal point of a transmission. It is further noted, that in other implementations, preference data associated with the avatars may be read to determine which avatars to teleport to an area having an auxiliary focal point object. In one example, preference data may be obtained from the profiles of the avatars, based on the membership type of the avatars, etc.
The dynamic spawning of auxiliary focal point objects may be made permanent according to various criteria, such as whether the benefits outweigh the cost of the maintaining the auxiliary focal point object. In one example, an auxiliary focal point object may be made permanent if the owner of the focal point object (e.g., the virtual universe administrator or a virtual universe business) determines that the location is useful in reaching a significant number of avatars and/or attracting sales.
In various other implementations, the dynamic spawning of one or more auxiliary focal point objects within the virtual universe can be based on one or more determined loading conditions (e.g., bandwidth, memory, CPU, power, etc.) on the virtual universe host server, in addition to the detected density of the avatars within a predetermined proximity from the designated focal point object. For example, one or more auxiliary focal point objects may be dynamically spawned within the virtual universe if the detected density of the virtual universe avatars is greater than a predetermined density threshold and the determined one or more loading conditions on the virtual universe host server are greater than one or more predetermined overload thresholds.
It should be understood that the depicted flow diagrams are examples meant to aid in understanding embodiments and should not be used to limit embodiments or limit scope of the claims. Embodiments may perform additional operations, fewer operations, operations in a different order, operations in parallel, and some operations differently. For instance, referring to
Embodiments may take the form of an entirely hardware embodiment, a software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, embodiments of the inventive subject matter may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium. The described embodiments may be provided as a computer program product, or software, that may include a machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic device(s)) to perform a process according to embodiments, whether presently described or not, since every conceivable variation is not enumerated herein. A machine readable medium includes any mechanism for storing (“machine-readable storage medium”) information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable storage medium may include, but is not limited to, magnetic storage medium (e.g., floppy diskette); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions.
Computer program code for carrying out operations of the embodiments may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on a user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN), a personal area network (PAN), or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
While the embodiments are described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative and that the scope of the inventive subject matter is not limited to them. In general, techniques for proximity-based transmissions and/or dynamic spawning of auxiliary focal point objects within the virtual universe environment as described herein may be implemented with facilities consistent with any hardware system or hardware systems. Many variations, modifications, additions, and improvements are possible.
Plural instances may be provided for components, operations or structures described herein as a single instance. Finally, boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the inventive subject matter. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the inventive subject matter.
This application is a continuation application claiming priority to U.S. application Ser. No. 12/103,525 filed Apr. 15, 2008.
Number | Date | Country | |
---|---|---|---|
Parent | 12103525 | Apr 2008 | US |
Child | 13439800 | US |