The invention generally relates to virtual environments, and more particularly to systems and methods for communicating in virtual environments.
The concept of a virtual universe (also called a virtual world, virtual environment, or a metaverse) is rapidly becoming a popular part of today's culture. In general, a virtual universe (VU) is a digital world (e.g., a three-dimensional computer-generated landscape) in which a user controls an avatar (e.g., a graphical representation of the user in the VU) to interact with objects and other avatars within the VU. Examples of popular VUs include SECOND LIFE (a registered trademark of Linden Research, Inc. in the United States, other countries, or both) and ACTIVEWORLDS (a registered trademark of Activeworlds, Inc. in the United States, other countries, or both).
Generally, a host computing system stores data regarding the landscape, objects, and users of the VU. A client software program runs on each user computer. The client program communicates (e.g., through a network connection) with the host system, and provides a visual (and, sometimes, audible) representation of the VU on the user computer. As the user moves his or her avatar throughout the VU, the visual representation displayed on the user computer changes according to the avatar location in the VU. In this manner, a user may cause his or her avatar to approach other avatars or objects and interact with the other avatars or objects. For example, one avatar may approach and communicate with another avatar via VOIP (voice over IP) and/or text-based communication through the network.
Other types of communication include instant messaging and chat sessions. However, these communication methods are time consuming in that they require users to constantly accept invitations for a chat session.
In a first aspect of the invention, there is a method of providing communication in a virtual universe (VU) comprising: instantiating and assigning an information channel to a first client of the VU; associating at least one additional client of the VU to the information channel; and, conveying data placed on the information channel to the first client and the at least one additional client.
In another aspect of the invention, there is a method of providing communication is a virtual universe (VU) having a plurality of clients. The method includes instantiating an information channel in the VU and associating a subset of the plurality of clients with the information channel based upon a characteristic that is common to each client of the subset of the plurality of clients. The method also includes presenting data that is placed on the information channel to each client of the subset of the plurality of clients.
In another aspect of the invention, there is a computer program product comprising a computer usable medium having a computer readable program embodied in the medium. The computer readable program, when executed on a computing device, is causes the computing device to associate a subset of a plurality of clients of a virtual universe (VU) with an information channel of the VU based upon a characteristic that is common to each client of the subset of the plurality of clients and transmit data that is placed on the information channel to each client of the subset of the plurality of clients. The data comprises at least one of text data and audio data, and the characteristic is at least one of: a geographic location within the VU, a profile parameter, and an inventory item that is common to each client of the subset of the plurality of clients.
In another aspect of the invention, there is a method for communicating in a virtual universe (VU). The method includes providing a computer infrastructure structured and arranged to: assign a VU information channel to a first VU client; associate a plurality of VU clients to the VU information channel, wherein the plurality of VU clients includes the first VU client; receive data from one of the plurality of clients via the information channel; and, transmit the data to the plurality of clients other than the one of the plurality of clients.
The present invention is described in the detailed description which follows, in reference to the noted plurality of drawings by way of non-limiting examples of exemplary embodiments of the present invention.
The invention generally relates to virtual environments, and more particularly to systems and methods for communicating in virtual environments. In embodiments, a virtual universe host implements and manages information channels that are associated with various clients. For example, the host may allocate and assign at least one information channel to each client of the virtual universe. In embodiments, clients may further manage their assigned channel by, for example, inviting other clients to subscribe to their channel. Any data (e.g., text, audio, etc.) that is placed onto a channel is received by all clients subscribed to the channel. In even further embodiments, plural channels may be linked together, such that any data placed onto one of the linked channels is received by all clients subscribed to any one of the linked channels. In this manner, implementations of the invention provide a dynamic communication system within the virtual universe.
As virtual worlds expand, there exists the need to implement a data communication method that allows avatars and objects within the virtual world to communicate with each other. Implementations of the invention provide a communication system that includes audio and/or data transfer, as well as the ability to dynamically change which avatars and/or objects are connected to each other during a data transfer. As such, systems and methods according to aspects of the invention provide a dynamic “multi-to-multi” data transfer in a virtual environment.
For example, implementations of the invention allow multiple avatars having a common interest or otherwise having a need for group communication to dynamically join one or more information channels to send and receive data and/or audio amongst each other. In further embodiments, information channels according to aspects of the invention provide a data link between avatars and receiver/transmitter objects (e.g., applications, business logic, RSS data feed transceivers, etc.) within the virtual world. In even further embodiments, virtual environment components of an application (e.g., a business application) may be linked by information channels to share data in order to support the application.
The processor 20 executes computer program code (e.g., program control 44), which is stored in memory 22A and/or storage system 22B. While executing computer program code, the processor 20 can read and/or write data to/from memory 22A, storage system 22B, and/or I/O interface 24. The bus 26 provides a communications link between each of the components in the computing device 14.
The computing device 14 can comprise any general purpose computing article of manufacture capable of executing computer program code installed thereon (e.g., a personal computer, server, wireless notebook, smart phone, personal digital assistant, etc.). However, it is understood that the computing device 14 is only representative of various possible equivalent computing devices that may perform the processes described herein. To this extent, in embodiments, the functionality provided by the computing device 14 can be implemented by a computing article of manufacture that includes any combination of general and/or specific purpose hardware and/or computer program code. In each embodiment, the program code and hardware can be created using standard programming and engineering techniques, respectively.
Similarly, the computer infrastructure 12 is only illustrative of various types of computer infrastructures for implementing the invention. For example, in embodiments, the computer infrastructure 12 comprises two or more computing devices (e.g., a server cluster) that communicate over any type of communications link, such as a network, a shared memory, or the like, to perform the processes described herein. Further, while performing the processes described herein, one or more computing devices in the computer infrastructure 12 can communicate with one or more other computing devices external to computer infrastructure 12 using any type of communications link. The communications link can comprise any combination of wired and/or wireless links; any combination of one or more types of networks (e.g., the Internet, a wide area network, a local area network, a virtual private network, etc.); and/or utilize any combination of transmission techniques and protocols.
In embodiments, the invention provides a business method that performs the steps of the invention on a subscription, advertising, and/or fee basis. That is, a primary service provider, such as a Solution Integrator, could offer to perform the processes described herein. In this case, the primary service provider can create, maintain, deploy, support, etc., a computer infrastructure that performs the process steps of the invention for one or more customers. In return, the primary service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the primary service provider can receive payment from the sale of advertising content to one or more third parties.
As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely 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, the present invention 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.
Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following:
In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.
Computer program code for carrying out operations of the present invention 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 the 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. This may include, for example, a local area network (LAN) 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).
In embodiments, the client 220 comprises a computing device, such as, for example, a general purpose computing device comprising at least a processor, memory, I/O interface, and I/O device. Such computing devices are known in the art, such that further explanation is not believed necessary. In embodiments, the client 220 operates a client program of the VU. The client 220 allows a human user to create a persona for use in the VU. For example, the persona may take the form of an avatar that is moveable throughout portions of the VU. Additionally, a profile of attributes of the user may be associated with the avatar. The profile may contain user-entered data regarding any suitable attributes of the user, such as, for example: age, gender, address, country of citizenship, occupation, hobbies, interests, etc. The profile data may be stored at the client 220 or at the host 210 (e.g., in a database, not shown). Moreover, there may be any suitable number of clients 220 (e.g., 220a, 220b, etc.) interacting with the host 210.
As used herein, a “channel” or “information channel” is a virtual universe equivalent of a citizen band (CB) radio channel or online chat. Channels per se are known, such that further explanation is not believed necessary. For example, in the popular virtual world SECOND LIFE, channel 0 is an open (e.g., public) channel, and any data (e.g., text or audio) placed on this channel by any first avatar will be received by all other avatars within a predefined distance (e.g., 20 meters) of the first avatar. In contrast to the open channel, private channels exist in which a scripted listening device (e.g., object) is required to send/receive data.
In embodiments of the invention, the VU host 210 assigns at least one private channel to each client (e.g., avatar, registered virtual world object). The host 210 may assign the channels in any suitable fashion. For example, the host 210 may designate a unique identifier for each channel and keep track of all existing channels. When a new client 220 registers with the host 210, the host 210 may assign a new channel having a new unique identifier to that new client 220. The identifiers may be, for example, alpha-numeric (e.g., channel “1000”), and the host 210 may generate identifiers in any suitable fashion (e.g., randomly, by sequence, etc.). These functions of the host 210 may be performed, for example, through programming of the VU engine.
In embodiments, an owner of a channel grants access to the channel by informing the host 210 of the identity of the client 220 to grant access to. For example, client 220a may send an invitation to client 220b inviting client 220b to join channel 310. When client 220b responds by accepting the invitation, client 220a sends a message to the host 210 instructing the host 210 to grant client 220b access to channel 310. The invitation and response may be transmitted in any suitable way, such as, for example, as a message on open channel 0, via out-of-world communication (e.g., email, telephone, etc.). In embodiments, the message from owner to host 210 includes identification of the channel and of the client to grant access to.
In embodiments, the clients 220 are associated with avatars. In this manner, human users of the VU can communicate with each other via their avatars using the private channel 310. Alternatively, the clients 220 may be associated with objects registered with the VU. For example, client 220a may be a VU business object such as a web server, and clients 220b and 220c may be data storage objects. In this manner, a business application may be operated that includes the web server sending and receiving data to and from the data storage objects.
Although three clients are shown in
In addition to private channels described above with respect to
In embodiments, public channels may be automatically created by the host 210 based upon common characteristics of clients 220. For example, the host 210 may examine the profile and/or inventory of each avatar and subscribe avatars having common profile characteristics or inventory item to a particular public channel. In further embodiments, clients 220 have the ability to opt into or opt out of an automatic public channel subscription. For example, the host 210 may, after identifying a client 220 for potential inclusion with a public channel but before actually subscribing the client 220 to the public channel, prompt the client 220 asking the client 220 whether they wish to be subscribed to the public channel. The client 220 may then accept or reject subscription to the public channel. In this manner, clients 220 may avoid unwanted or unsolicited communication from a channel that they are not interested in.
In the embodiment shown in
Although linking of two private channels is described, the invention is not limited to linking only two private channels. For example, a public channel may be linked to a private channel. Additionally or alternatively, more than two channels may be linked in any suitable manner. For example, a first private channel may be linked to a public channel by a host bridge, and the public channel may be linked to a second private channel by a linking client 220.
In embodiments, virtual world objects may be assigned private channels.
An aspect of the invention involves the ability to “daisy chain” multiple private and/or public channels together. For example, still referring to
In embodiments, VU objects associated with a channel may function as transceivers of data. For example, as shown in
Although a loudspeaker transceiver object 705 is described, the invention is not limited to this example. Instead, any suitable type of transceiver object may be used within the scope of the invention, such as, for example: a loudspeaker, microphone, rich site summary (RSS) feed, visual VU screen, external application linkage, etc.
Implementations of the invention contemplate and include the creation of predefined VU objects that are designed to function with aspects of the invention as described above. For example, such predefined objects may be designed to integrate with at least one of: third party applications, data feeds from outside the VU, application servers, websites, data storage devices, etc. Through the use of such predefined objects, embodiments of the invention utilize information channels that can be used to link not only VU objects, but also objects external to the VU.
In embodiments, when an avatar is associated with more than one channel, the avatar is provided with the ability to choose (e.g., select) a particular channel on which to send and/or receive data. This may be accomplished, for example, through the use of virtual sockets that are implemented in the programming of the VU, e.g., via appropriate script(s). The channels available to an avatar may be presented to the client of the avatar via graphical user interface (GUI), such as a drop down menu on the user's display. Using the GUI, the user is able to select the channel on which they would like for their avatar to communicate. The drop down menu may also be used to provide additional features, such as allowing a user to request connection to a private channel that they do not own, check the status of all available channels, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. The software and/or computer program product can be implemented in the environments of
At step 810, at least one other client to be associated with the channel is identified. This may be performed in a manner similar to that described with respect to
At step 815, the host associates the at least one other client identified in step 810 with the channel. This may be performed in a manner similar to that described with respect to
At step 820, data is communicated using the channel. This may be performed in a manner similar to that described with respect to
Step 820 may include transmitting the data placed on the channel to any other channels that are linked to the channel. This may be performed in a manner similar to that described with respect to
At step 915, at least some of the clients identified in step 910 are associated with the public channel. This may be performed in a manner similar to that described with respect to
At step 920, data is communicated using the channel. This may be performed similar to step 820, described with respect to
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below, where applicable, are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. Accordingly, while the invention has been described in terms of embodiments, those of skill in the art will recognize that the invention can be practiced with modifications and in the spirit and scope of the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
6020885 | Honda | Feb 2000 | A |
6023270 | Brush, II et al. | Feb 2000 | A |
6476830 | Farmer et al. | Nov 2002 | B1 |
6560707 | Curtis et al. | May 2003 | B2 |
6734885 | Matsuda | May 2004 | B1 |
6772195 | Hatlelid et al. | Aug 2004 | B1 |
6772335 | Curtis et al. | Aug 2004 | B2 |
6865607 | de Jong et al. | Mar 2005 | B1 |
7036082 | Dalrymple et al. | Apr 2006 | B1 |
7086005 | Matsuda | Aug 2006 | B1 |
7124372 | Brin | Oct 2006 | B2 |
7234117 | Zaner et al. | Jun 2007 | B2 |
7299257 | Boyer et al. | Nov 2007 | B2 |
20030080989 | Matsuda et al. | May 2003 | A1 |
20030131001 | Matsuo | Jul 2003 | A1 |
20060053389 | Michelman | Mar 2006 | A1 |
20060075055 | Littlefield | Apr 2006 | A1 |
20060123127 | Littlefield | Jun 2006 | A1 |
20070005694 | Popkin et al. | Jan 2007 | A1 |
20070168863 | Blattner et al. | Jul 2007 | A1 |
20100115422 | Schroeter et al. | May 2010 | A1 |
20100117849 | Clayton et al. | May 2010 | A1 |
20100154003 | Bi et al. | Jun 2010 | A1 |
Number | Date | Country | |
---|---|---|---|
20100153859 A1 | Jun 2010 | US |