Abstract:
A method for deterministic teleportation within a virtual world, comprising creating and storing an association between a set of user conditions and a set of teleporter exit destinations. When a user engages the teleporter entrance, a user condition set is retrieved from the incoming user. The set of retrieved incoming user conditions is stored and compared to the association. A correct teleporter exit destination is selected from the set of teleporter exit destinations corresponding to a data match between the set of retrieved incoming user conditions and the set of user conditions associated with the exit destination.

Description:
BACKGROUND 
       [0001]    1. Field of the Invention 
         [0002]    This disclosure relates to virtual worlds, and more particularly, to virtual teleporters, especially those used for computer and video gaming, online communities, and interactive computing. 
         [0003]    2. Description of Related Art 
         [0004]    Teleporters serve as virtual transportation inside virtual worlds. Virtual world developers and users of the virtual world may use teleporters to link two areas that are not physically connected in virtual space. Teleporters also have secondary functions in virtual worlds. Their uses include, but are not limited to, serving as plot devices, blocking and redirecting user traffic, helping with virtual world security, increasing the interactiveness of the virtual world, creating strategic advantages for users, and engaging a user in a different or unexpected way. Teleporters have been implemented in several different ways. 
         [0005]    “Static destination” teleporters allow user transportation to a single preprogrammed destination. The computer game “Starcraft” includes two examples of this type of teleporter. Users may build a “nydus canal,” which enables instantaneous teleportation between an entrance and exit of the nydus canal. An “arbiter” unit allows users to teleport troops from any in-world location to the arbiter&#39;s physical location. 
         [0006]    “User&#39;s choice” teleporters implement a user selection mechanism enabling or requiring users to select one of several preprogrammed exit destinations before teleporting. In Super Mario Bros., for example, a user in a “warp zone,” is presented with a choice of destinations. The user selects the destination by “ducking” into the desired pipe, which then teleports him to the selected destination. 
         [0007]    “Random destination” teleporters consist of a single entrance point with multiple destinations. The actual destination is selected by a process invisible to the user. The “Counterstrike Source” fan community has developed the methodology implementing a teleporter capable of sending a user to a random destination selected from a predefined list of possible destinations. 
         [0008]    Many other teleporter variations exist. For instance, the game “Portal” utilizes a “portal gun” that enables a user wielding the gun to create a teleporter with an entrance and exit portal anywhere in the game world within the user&#39;s line of sight. The user exploits this system to solve puzzles and defeat enemies. The game “Prey” utilizes teleporters to create physically impossible environments. For instance, the interior space of a small room may comprise a vast underground cavern. 
         [0009]    Another feature common to virtual environments is the “user condition.” A user condition is any real or virtual information that attaches to the user or the user&#39;s virtual avatar. Conditions take many forms including, but not limited to, user association with virtual objects, virtual access levels, virtual locations, virtual associations, social networks, user authentication, real world user account information, flags or notifiers attached to the user account or avatar, or virtual keys related to user history or preference. There are conceptually an infinite number of user condition types. User conditions are useful in that they enable the virtual world to respond to user action, behavior, or preference. They function by triggering events, methods, routines or any other virtual world function when the presence or absence of the desired user condition is detected. 
         [0010]    In all previous implementations of virtual world teleporters, the teleporter has but a single exit destination, the destination is actively selected by the user, or the end destination is randomly selected. A deterministic teleporter, or a teleporter that can meaningfully select specific destinations absent user control, has not yet been implemented. 
         [0011]    It is desirable to implement a deterministic teleporter that can send a user&#39;s virtual avatar to a variety of destinations based on any combination of user conditions. This would allow developers and users greater creative freedom in virtual world design and interactability. 
       BRIEF SUMMARY 
       [0012]    In one aspect of this disclosure, a computer-implement method is provided for deterministic teleportation within a virtual world. The method comprises creating and storing an association between a set of user conditions and a set of teleporter exit destinations. When a user engages the teleporter entrance, a user condition set is retrieved from the incoming user. The set of retrieved incoming user conditions is stored and is compared to the association. A correct teleporter exit destination is selected from the set of teleporter exit destinations corresponding to a data match between the set of retrieved incoming user conditions and the set of user conditions associated with the exit destination. 
         [0013]    The foregoing has outlined rather generally the features and technical advantages of one or more embodiments of this disclosure in order that the following detailed description may be better understood. Additional features and advantages of this disclosure will be described hereinafter, which may form the subject of the claims of this application. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0014]    This disclosure is further described in the detailed description that follows, with reference to the drawings, in which: 
           [0015]      FIG. 1  is an exemplary high level diagram of multiple computer systems running both the client-side software and the host virtual world software; and 
           [0016]      FIG. 2  is a flow chart illustrating a preferred sequence of steps to implement deterministic teleporters within a virtual environment. 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    This disclosure is directed to a preferred method of implementing deterministic teleporters within a virtual environment. The preferred method may be implemented as a series of instructions executing on a computer. Such computers executing programs are well known in the art and may be implemented, for example, using a well-known computer processor, memory units, storage devices, computer software, and other components. For example, the deterministic teleporter method may be a Windows application or part of a Windows application executing on a desktop or laptop computer. 
         [0018]    A high-level block diagram of four exemplary computers, labeled  101 ,  111 ,  121 , and  141 , is shown in  FIG. 1 . Computer  101  contains a processor  107  that controls the overall operation of computer  101  by executing computer program instructions defining such operation. The computer program instructions may be stored in a storage device  108  (e.g., magnetic disk) or any other computer-readable medium, and loaded into memory  109  when execution of the computer program instructions is desired. Thus, in one embodiment, the deterministic teleporter comprises computer program instructions stored in memory  109  and/or storage device  108 , and executed by processor  107 . Computer  101  also includes one or more network interfaces  105  for communicating with other devices via a network. Computer  101  may also include input/output devices  106 , which represent devices allowing for user interaction with computer  101  (e.g., display, keyboard, mouse, speakers, buttons, etc.). Computers  111 ,  121  and  141  function in the substantially same way as computer  101 . One skilled in the art will recognize that an implementation of an actual computer may contain additional components and that  FIG. 1  contains a high level representation of some of the components of such a computer for illustrative purposes. 
         [0019]    In accordance with this disclosure, the preferred method enables implementation of deterministic teleportation in virtual worlds by utilizing user conditions. A user condition is any indicia of information that has attached to the user or the user&#39;s virtual avatar and is retrievable. The implementation that allows users to edit virtual world deterministic teleporters may be part of the client-side software for the virtual world. For instance, User A runs virtual world client software  150  on computer  141  and owns virtual space in the virtual world created by the virtual world host software  110 , which is hosted on server computer  101 . User A desires automatic transportation of users engaging his teleporter to four different destinations depending on whether they possess none, one of, or both of two specific virtual objects. User A therefore decides to implement a deterministic teleporter. 
         [0020]      FIG. 2  illustrates a preferred sequence of steps for implementing a deterministic teleporter in a virtual world. In step  201 , the teleporter manager (e.g., programmer, user, etc.) selects the user condition set for the teleporter. The ability to enter the user condition data would preferably be included in client software  150  through an intuitive graphic user interface that allows the user to select a logical function (e.g., possession) and associate it with an item (e.g., a “Nice People Rock” virtual shirt). The user condition data set could be temporarily stored in random access memory  149 . 
         [0021]    User A selects the possession of a “Nice People Rock” virtual shirt and a “Foods Network” virtual cooking card as the basis for the teleporter user condition set. User A permutates the possible combinations of these two items and creates the teleporter user condition set, which comprises four cases: (1) possession of the shirt and the cooking card; (2) the shirt but not the cooking card; (3) the cooking card but not the shirt; and (4) neither the shirt nor the cooking card. 
         [0022]    In step  202 , the teleporter manager may then select a set of teleporter destinations. The ability to enter the teleporter destination data would preferably be included in client software  150  through the same intuitive graphic user interface utilized to enter the user condition data. The teleporter destination data set could be temporarily stored in random access memory  149 . User A selects “Harsh Reality,” “Hell&#39;s Kitchen,” “Happy Paradise” and “Cooking School” as the set of possible destinations. 
         [0023]    In step  203 , the teleporter manager may associate the entries in the user condition set with the teleporter destinations. The ability to associate the user condition data set with the teleporter exit destinations would preferably be included in client software  150  through the same intuitive graphic user interface User A utilized to enter the user condition data and the teleporter exit destinations, and the associations may be represented by a table such as the one depicted below. 
         [0000]    
       
         
               
               
               
             
           
               
                   
               
               
                 Case 
                 Teleporter User Condition Set 
                 Teleporter Exit Destination 
               
               
                   
               
             
             
               
                 1 
                 Shirt &amp; Card 
                 Cooking School 
               
               
                 2 
                 Shirt Only 
                 Happy Paradise 
               
               
                 3 
                 Card Only 
                 Hell&#39;s Kitchen 
               
               
                 4 
                 No Shirt &amp; No Card 
                 Harsh Reality 
               
               
                   
               
             
          
         
       
     
         [0024]    In step  204 , the user association table would preferably be stored on the computer  101  that is hosting the virtual world. When User A is finished, she may indicate to client software  150  that the modifications are complete and are ready to be implemented. Client software  150  would preferably then instruct CPU  147  to encapsulate the association table into an information packet and send it through network device  145  and network  199  to server computer  101 . Server computer  101  would preferably receive the packet through network device  105  and store the packet in random access memory  109 . Virtual world host software  110  would then apply the association table using the stored packet information to User A&#39;s teleporter in the virtual world, and the settings would be saved in permanent storage  108  and random access memory  109 . 
         [0025]    In step  205 , User B and User C both engage User A&#39;s teleporter inside the virtual world via computers  111  and  121 , respectively. In step  206 , the incoming user condition data set of the user who engages the teleporter is retrieved. Preferably, virtual world server computer  101  manages all aspects of users&#39; virtual inventory information. Virtual world host software  110  may therefore obtain the user condition information relating to User B and User C&#39;s virtual inventories from storage device  108  and, in step  207 , store both user condition information sets in random access memory  109  for computing. 
         [0026]    In step  208 , virtual world host software  110  may instruct CPU  107  to compare the user condition information sets of User B and User C to the teleporter association table, which is stored in random access memory  109 . In the example illustrated in the above association table, CPU  107  would determine that User B&#39;s user condition set matches Case  2  of the teleporter user condition set contained in the association table, and User C&#39;s user condition set matches Case  3  of the teleporter user condition set contained in the association table. 
         [0027]    In step  209 , the teleporter exit destination may be selected. Host virtual world software  110  preferably instructs CPU  107  to determine what exit corresponds to Case  2  and Case  3  on the teleporter association table. CPU  107  would identify that Case  2  is associated with “Happy Paradise” and Case  3  is associated with “Hell&#39;s Kitchen.” In step  210 , the host virtual world software  110  may implement teleportation by updating the virtual position of User B and User C&#39;s virtual avatars, placing User B&#39;s virtual avatar in “Happy Paradise” and User C&#39;s virtual avatar in “Hell&#39;s Kitchen.” 
         [0028]    This information is preferably encapsulated and sent through network  199  to computers  111  and  121 . User B&#39;s client software  120  receives the location update and instructs CPU  117  to render the new location on the output device  116 . User B would see his virtual avatar transported to “Happy Paradise.” User C&#39;s client software  130  receives the location update and instructs CPU  127  to render the new location on the output device  126 . User C would see her virtual avatar transported to “Hell&#39;s Kitchen.” The deterministic teleporter disclosed herein therefore teleports virtual avatars to separate locations based on the logic in the association table created by the teleporter manager. 
         [0029]    This disclosure is not limited to the client software being executed on the client&#39;s computers  111 ,  121 , or  141 , or the storage being located on the server computer  101 . Other configurations are also applicable to this disclosure. The storage device may be external, or even remotely connected to the client&#39;s computer, or connected to the host computer. This disclosure relates to all virtual worlds including those with multiple users or a single user, regardless of whether the user is human or simulated. The role of teleporter manager is not limited to users. The manager may be a developer, a computer or some other third party. 
         [0030]    No limitations on implementation are to be inferred from the preferred embodiment. The scope of the disclosure is as broad as the claims permit. There is no limitation on the appropriate time to implement the deterministic teleporter. It may be implemented during operation of the virtual world, or it can be created during software development and therefore pre-included in the virtual world. The comparison step may be altered as needed to account for an infinite variety of outcomes, such as incomplete user condition sets, or other logical problems. The association data set does not need to be stored in a table. Any structure with the ability to encapsulate the data may be used. 
         [0031]    The deterministic teleporter has important secondary functions as well, as it can be adapted to multitude of other uses, including flagging virtual avatars, logging user traffic through an area, serving as a virtual world census, or triggering virtual world moderator attention to an issue. The selection of an exit teleporter location based on a comparison of user conditions by the teleporter is highly applicable to other functions. Virtual avatars may be flagged based on predefined conditions detected by the teleporter as they pass through the teleporter. Such a flagging function would be highly useful in detecting abuse or cheating in virtual worlds (e.g., the presence of a item obtained through hacking could be detected upon avatar engagement with a teleporter). The response is not limited to flagging. Any desired response may be adopted as long as it is logically expressible. The teleporter itself does not need to be visible in the virtual world. Users may interact with a virtual teleporter regardless of whether they are actively aware of the interaction. Therefore, deterministic teleporters are highly relevant to the problem of implementing virtual world security schema. 
         [0032]    Having described and illustrated the principles of this application by reference to one or more preferred embodiments, it should be apparent that the preferred embodiment(s) may be modified in arrangement and detail without departing from the principles disclosed herein and that it is intended that the application be construed as including all such modifications and variations insofar as they come within the spirit and scope of the subject matter disclosed herein.