The present invention provides a highly scalable architecture for a three-dimensional graphical, multi-user, interactive virtual world system. In a preferred embodiment a plurality of users interact in the three-dimensional, computer-generated graphical space where each user executes a client process to view a virtual world from the perspective of that user. The virtual world shows avatars representing the other users who are neighbors of the user viewing the virtual word. In order that the view can be updated to reflect the motion of the remote user's avatars, motion, information is transmitted to a central server process which provides positions updates to client processes for neighbors of the user at that client process. The client process also uses an environment database to determine which background objects to render as well as to limit the movement of the user's avatar. |
Citations|
| US5195086 | Apr 12, 1990 | Mar 16, 1993 | AT&T Bell Laboratories | Multiple call control method in a multimedia conferencing system | | US5206934 | Aug 15, 1989 | Apr 27, 1993 | Group Technologies, Inc. | Method and apparatus for interactive computer conferencing | | US5347306 | Dec 17, 1993 | Sep 13, 1994 | Mitsubishi Electric Research Laboratories, Inc. | Animated electronic meeting place | | US5388196 | Sep 7, 1990 | Feb 7, 1995 | Xerox Corporation | Hierarchical shared books with database | | US5491743 | May 24, 1994 | Feb 13, 1996 | International Business Machines Corporation | Virtual conference system and terminal apparatus therefor | | US5572248 | Sep 19, 1994 | Nov 5, 1996 | Teleport Corporation | Teleconferencing method and system for providing face-to-face, non-animated teleconference environment | | US5596426 | Jun 7, 1995 | Jan 21, 1997 | Canon Kabushiki Kaisha | Image processing method and apparatus | | US5659691 | Sep 23, 1993 | Aug 19, 1997 | Virtual Universe Corporation | Virtual reality network with selective distribution and updating of data to reduce bandwidth requirements | | US5736982 | Aug 1, 1995 | Apr 7, 1998 | Nippon Telegraph and Telephone Corporation | Virtual space apparatus with avatars and speech | | US5827120 | Jul 8, 1996 | Oct 27, 1998 | Fujitsu Limited | Network game system having communication characters for conversation changing into action characters for action gaming | | US5829041 | Sep 14, 1995 | Oct 27, 1998 | Kabushiki Kaisha Toshiba | Method and apparatus for managing single virtual space suitable for distributed processing | | US5841980 | May 15, 1996 | Nov 24, 1998 | RTime, Inc. | Distributed system for communication networks in multi-user applications | | US6042477 | Dec 12, 1996 | Mar 28, 2000 | | Method of and system for minimizing the effects of time latency in multiplayer electronic games played on interconnected computers | | US6229533 | Aug 2, 1996 | May 8, 2001 | Fujitsu Limited | Ghost object for a virtual world | | USRE36574 | Feb 9, 1998 | Feb 15, 2000 | | Video game |
Referenced by|
| US7465212 | Dec 30, 2004 | Dec 16, 2008 | Ganz | System and method for toy adoption and marketing | | US7468729 | Dec 21, 2004 | Dec 23, 2008 | AOL LLC, a Delaware Limited Liability Company | Using an avatar to generate user profile information | | US7484176 | Dec 30, 2003 | Jan 27, 2009 | AOL LLC, a Delaware Limited Liability Company | Reactive avatars | | US7503006 | Sep 25, 2003 | Mar 10, 2009 | Microsoft Corporation | Visual indication of current voice speaker | | US7534157 | Dec 30, 2004 | May 19, 2009 | Ganz | System and method for toy adoption and marketing | | US7568964 | Oct 14, 2008 | Aug 4, 2009 | Ganz | System and method for toy adoption and marketing | | US7604525 | Jan 22, 2009 | Oct 20, 2009 | Ganz | System and method for toy adoption and marketing | | US7636755 | Dec 30, 2003 | Dec 22, 2009 | AOL LLC | Multiple avatar personalities | | US7677948 | Dec 30, 2004 | Mar 16, 2010 | Ganz | System and method for toy adoption and marketing | | US7789726 | Oct 31, 2007 | Sep 7, 2010 | Ganz | System and method for toy adoption and marketing | | US7846004 | Oct 2, 2007 | Dec 7, 2010 | Ganz | System and method for toy adoption marketing | | US7862428 | Jul 2, 2004 | Jan 4, 2011 | Ganz | Interactive action figures for gaming systems | | US7908554 | Dec 29, 2004 | Mar 15, 2011 | AOL Inc. | Modifying avatar behavior based on user action or mood | | US7913176 | Dec 21, 2004 | Mar 22, 2011 | AOL Inc. | Applying access controls to communications with avatars | | US7967657 | Nov 5, 2008 | Jun 28, 2011 | Ganz | System and method for toy adoption and marketing | | US8000328 | May 22, 2007 | Aug 16, 2011 | Qurio Holdings, Inc. | Filtering messages in a distributed virtual world based on virtual space properties | | US8002605 | Jan 27, 2009 | Aug 23, 2011 | Ganz | System and method for toy adoption and marketing | | US8116323 | Apr 12, 2007 | Feb 14, 2012 | Qurio Holdings, Inc. | Methods for providing peer negotiation in a distributed virtual environment and related systems and computer program products | | US8126985 | Dec 31, 2008 | Feb 28, 2012 | Qurio Holdings, Inc. | Prioritizing virtual object downloads in a distributed virtual environment | | US8128500 | Jul 14, 2008 | Mar 6, 2012 | Ganz | System and method for generating a virtual environment for land-based and underwater virtual characters | | US8135018 | Mar 29, 2007 | Mar 13, 2012 | Qurio Holdings, Inc. | Message propagation in a distributed virtual world | | US8144633 | Sep 22, 2009 | Mar 27, 2012 | Avaya Inc. | Method and system for controlling audio in a collaboration environment | | US8161398 | May 8, 2009 | Apr 17, 2012 | International Business Machines Corporation | Assistive group setting management in a virtual world | | US8191001 | Apr 3, 2009 | May 29, 2012 | Social Communications Company | Shared virtual area communication environment based apparatus and methods | | US8205158 | Dec 5, 2007 | Jun 19, 2012 | Ganz | Feature codes and bonuses in virtual worlds |
Claims1. A method for enabling a first user to interact with other users in a virtual space, wherein the first user and the other users each have an avatar and a client process associated therewith, and wherein each client process is in communication with a server process, wherein the method comprises: - (a) receiving a position of less than all of the other users' avatars from the server process; and
- (b) determining, from the received positions, a set of the other users' avatars that are to be displayed to the first user,
- wherein steps (a) and (b) are performed by the client process associated with the first user.
2. The method of claim 1, further comprising the steps of - (c) monitoring an orientation of the first user's avatar; and
- (d) displaying the set of the other users' avatars from based on the orientation of the first user's avatar as monitored is step (c),
- wherein steps (c) and (d) are performed by the client process associated with the first user.
3. The method of claim 1, wherein step (a) further comprises - (a)(1) receiving an orientation of less than all of the other users' avatars from the server process.
4. The method of claim 1, wherein step (1b) comprises - (b)(1) determining from the received positions an actual number of the other users' avatars;
- (b)(2) determining a maximum number of the other users' avatars to be displayed; and
- (b)(3) comparing the actual number to the maximum number to determine which of the other users' avatars are to be displayed wherein steps (b)(1)–(b)(3) are performed by the client process associated with the first user.
5. The method of claim 1, wherein step (b) comprises determining, from the received positions, the set of the other users' avatars that are to be displayed to the first user, wherein the number in the set is less than the number of avatars corresponding to the received positions. 6. A method for enabling a plurality of users to interact in a virtual space, wherein each user has a computer associated therewith, wherein each computer has a client process associated therewith, wherein each client process has an avatar associated therewith, and wherein each client process is in communication with a server process, comprising: - (a) monitoring, by each client process, a position of the avatar associated with the client process;
- (b) transmitting, by each client process to the server process, the position of the avatar associated with the client process;
- (c) transmitting, by the server process to each client process, the positions of less than all of the avatars that are not associated with the client process; and
- (d) determining from the positions transmitted in step (c), by each client process, a set of the avatars that are to be displayed.
7. The method of claim 6, wherein the step (c) comprises the step of automatically transmitting, by the server process to each client process, the positions of the less than all of the avatars that are not associated with the client process. 8. The method of claim 6, wherein step (d) comprises - (d)(1) determining an actual number of avatars that are not associated with the client process based on the positions transmitted by the server process;
- (d)(2) determining a maximum number of avatars that can be displayed; and
- (d)(3) comparing the actual number to the maximum number to determine which of the avatars are to be displayed.
9. A method for operating a server to enable a plurality of users to interact in a virtual space, wherein each user has a computer associated therewith, wherein each computer has a client process associated therewith, wherein each client process has an avatar associated therewith, wherein the server has a process associated therewith, and wherein each client process is in communication with the server process, comprising: - (a) receiving, from each client process by the server process, data indicating a position of the avatar associated with the client process; and
- (b) synchronously disseminating less than all of the positions of the avatars not associated with a particular client process to each of the other client processes so that the particular client process can determine from the positions a set of avatars that are to be displayed.
10. A system for enabling a first user to interact with other users in a virtual space, wherein the first user and the other users each have an avatar associated therewith, and wherein the system comprises a first process associated with the first user, other client processes associated with the other users, and a server process in communication with the first client process and the other client processes, wherein - (a) each of the other client processes is operable to
- 1. monitor a position of the avatar associated with the other user;
- 2. transmit the position of the avatar to the server process;
- (b) the server process is operable to
- 1. receive the positions of the avatars associated with the other users;
- 2. transmit the positions of the avatars associated with less than all of the other users to the first client process; and
- (c) the first client process is operable to
- 1. receive the positions of the avatars associated with less than all of the other users; and
- 2. determine from the received positions a set of the other users' avatars that are to be displayed.
11. A software program recorded on a machine-readable medium for enabling a first user interact with other users in a virtual space, wherein the first user and the other users each have an avatar a client process associated therewith, and wherein each client process is in communication with a server process, - wherein the software program comprises instructions for causing the client process associated with the first user to perform the following steps:
- (a) receiving a position of at less than all of the other users' avatar from the server process; and
- (b) determining, from the received positions, a set of the other users' avatars that are to be displayed to the first user.
12. The software program of claim 11, wherein the software program further comprises instructions for causing the client process associated with the first user to perform the following steps: - (c) monitoring an orientation of the first user's avatar; and
- (d) displaying the set of the other users' avatars from based on the orientation of the first user's avatar as monitored is step (c).
13. The software program of claim 11, wherein step (b) comprises instructions for - (b)(1) determining from the received positions an actual number of the other users' avatars;
- (b)(2) determining a maximum number of the other users' avatars to be displayed; and
- (b)(3) comparing the actual number to the maximum number to determine which of the other users' avatars are to be displayed.
14. The software program of claim 11, wherein the instruction for step (b) comprises determining, from the received positions, the set of the other users' avatars that are to be displayed to the first user, wherein the number in the set is less than the number of avatars corresponding to the received positions. 15. A software program recorded on a machine-readable medium for enabling a plurality of users to interact in a virtual space, wherein each user has a computer associated therewith, wherein each computer has a client process associated therewith, wherein each client process has an avatar associated therewith, and wherein each client process is in communication with a server process, wherein the software program includes instructions for: - (a) monitoring, by each client process, a position of the avatar associated with the client process;
- (b) transmitting, by each client process to the server process, the position of the avatar associated with the client process;
- (d) transmitting, by the server process to each client process, the positions of less than all of the avatars that are not associated with the client process; and
- (d) determining from the positions transmitted in step (c), by each client process, a set of the avatars that are to be displayed.
16. The software program of claim 15, wherein step (d) comprises - (d)(1) determining an actual number of avatars that are not associated with the client process based on the positions transmitted by the server process;
- (d)(2) determining a maximum number of avatars that can be displayed; and
- (d)(3) comparing the actual number to the maximum number to determine which of the avatars are to be displayed.
17. A computer readable medium including the software program of claim 15. 18. A software program recorded on a machine-readable medium for operating a server to enable a plurality of users to interact in a virtual space, wherein each user has a computer associated therewith, wherein each computer has a client process associated therewith, wherein each client process has an avatar associated therewith, wherein the server has a process associated therewith, and wherein each client process is in communication with the server process, wherein the software program comprises instructions for: - (a) receiving from each client process by the server process, data indicating a position of the avatar associated with the client process; and
- (b) synchronously disseminating the positions of less than all of the avatars not associated with a particular client process to each of the other client processes so that the particular client process can determine from the positions a set of avatars that are to be displayed.
19. A computer readable medium including the software program of claim 11. 20. A computer readable medium including the software program of claim 18. |