U.S. Pat. No. 9,403,087
SYSTEM AND METHOD OF PROVIDING ACCESS TO VIRTUAL SPACES THAT ARE ASSOCIATED WITH PHYSICAL ANALOGUES IN THE REAL WORLD
AssigneeDISNEY ENTERPRISES, INC.
Issue DateJune 9, 2008
Illustrative Figure
Abstract
A system and method for associating virtual spaces with physical analogs in the real world. Associating virtual spaces with physical analogs may enable various aspects of the virtual spaces, such as the content of the virtual spaces, the manner in which the virtual spaces are accessed by users, and/or other aspects of the virtual spaces, to correspond to the real world. For example, upon initiation of a client that provides a view of one or more virtual spaces to a user, the user may automatically be provided with a view of a virtual space associated with one or more physical analogs that are proximate to the user in the real world. As another example, content within the virtual space may reflect ambient conditions at or near associated physical analog(s), the presence and/or condition of objects at or near the associated physical analog(s), the location and/or condition of the physical analog(s), and/or other information related to the physical analog in the real world.
Description
DETAILED DESCRIPTION FIG. 1illustrates a system10configured to provide one or more virtual spaces that may be accessible to users. In some embodiments, system10may include a storage module12, a server14, a client16, a space access processor17and/or other components. Storage module12, server14, client16, and space access processor17may be in operative communication with each other. System10may be configured such that information related to a given virtual space may be transmitted from storage module12to server14, which may then execute an instance of the virtual space. Views of the virtual space may be generated by server14from the instance of the virtual space. Information related to the views may be transmitted from server14to client16to enable client16to format the views for display to a user. In some embodiments, one or more of the virtual spaces provided by system10may be associated with physical analogues in the real world. A physical analogue in the real world may include, for example, a physical location (e.g., a street, an intersection, a building, an arena, a campus, a mall, a shop, etc.) or any physical object. In some implementations, the physical object may be mobile (e.g., portable by a user, self-powered by a motor, capable of moving along water or through the air, etc.), and/or, in some implementations, animate (e.g., a person, a pet, a wild animal, a domesticated animal, etc.). System10may be configured such that the virtual space that is viewed by a user via client16may be a function of the physical location, in the real world, of the user (e.g., with respect to the physical analogues). In some implementations, the virtual space that is viewed via client16may be determined according to the distances, in the real world, between client16and the physical analogues. System10may implement a markup language for communication between components (e.g., storage module12, server14, client16, etc.). Information may be ...
DETAILED DESCRIPTION
FIG. 1illustrates a system10configured to provide one or more virtual spaces that may be accessible to users. In some embodiments, system10may include a storage module12, a server14, a client16, a space access processor17and/or other components. Storage module12, server14, client16, and space access processor17may be in operative communication with each other. System10may be configured such that information related to a given virtual space may be transmitted from storage module12to server14, which may then execute an instance of the virtual space. Views of the virtual space may be generated by server14from the instance of the virtual space. Information related to the views may be transmitted from server14to client16to enable client16to format the views for display to a user.
In some embodiments, one or more of the virtual spaces provided by system10may be associated with physical analogues in the real world. A physical analogue in the real world may include, for example, a physical location (e.g., a street, an intersection, a building, an arena, a campus, a mall, a shop, etc.) or any physical object. In some implementations, the physical object may be mobile (e.g., portable by a user, self-powered by a motor, capable of moving along water or through the air, etc.), and/or, in some implementations, animate (e.g., a person, a pet, a wild animal, a domesticated animal, etc.). System10may be configured such that the virtual space that is viewed by a user via client16may be a function of the physical location, in the real world, of the user (e.g., with respect to the physical analogues). In some implementations, the virtual space that is viewed via client16may be determined according to the distances, in the real world, between client16and the physical analogues.
System10may implement a markup language for communication between components (e.g., storage module12, server14, client16, etc.). Information may be communicated between components via markup elements of the markup language. By virtue of communication between the components of system10in the markup language, various enhancements may be achieved. For example, information may be transmitted from storage module12to server14that configures server14to execute an instance of the virtual space may be provided to server14via the markup language at or near the time of instantiation. Similarly, information transmitted from server14to client16may enable client16to generate views of the virtual space by merely assembling the information indicated in markup elements communicated thereto. The implementation of the markup language may facilitate creation of a new virtual space by the user of client16, and/or the customization/refinement of existing virtual spaces.
As used herein, a virtual space may comprise a simulated space (e.g., a physical space) instanced on a server (e.g., server14) that is accessible by a client (e.g., client16), located remotely from the server, to format a view of the virtual space for display to a user of the client. The simulated space may have a topography, express real-time interaction by the user, and/or include one or more objects positioned within the topography that are capable of locomotion within the topography. In some implementations, the topography may be a 2-dimensional topography. In other instances, the topography may be a 3-dimensional topography. In some implementations, the topography may be a single node. The topography may include dimensions of the virtual space, and/or surface features of a surface or objects that are “native” to the virtual space. In some implementations, the topography may describe a surface (e.g., a ground surface) that runs through at least a substantial portion of the virtual space. In some implementations, the topography may describe a volume with one or more bodies positioned therein (e.g., a simulation of gravity-deprived space with one or more celestial bodies positioned therein). A virtual space may include a virtual world, but this is not necessarily the case. For example, a virtual space may include a game space that does not include one or more of the aspects generally associated with a virtual world (e.g., gravity, a landscape, etc.). By way of illustration, the well-known game Tetris may be formed as a two-dimensional topography in which bodies (e.g., the falling tetrominoes) move in accordance with predetermined parameters (e.g., falling at a predetermined speed, and shifting horizontally and/or rotating based on user interaction).
As used herein, the term “markup language” may include a language used to communicate information between components via markup elements. Generally, a markup element is a discrete unit of information that includes both content and attributes associated with the content. The markup language may include a plurality of different types of elements that denote the type of content and the nature of the attributes to be included in the element. For example, in some embodiments, the markup elements in the markup language may be of the form [O_HERE]|objectId|artIndex|x|y|z|name|templateId. This may represent a markup element for identifying a new object in a virtual space. The parameters for the mark-up element include: assigning an object Id for future reference for this object, telling the client what art to draw associated with this object, the relative x, y, and z position of the object, the name of the object, and data associated with the object (comes from the template designated). As another non-limiting example, a mark-up element may be of the form [O_GONE]|objId. This mark-up element may represent an object going away from the perspective of a view of the virtual space. As yet another example, a mark-up element may be of the form [O_MOVE]|objectId|x|y|z. This mark-up element may represent an object that has teleported to a new location in the virtual space. As still another example, a mark-up element may be of the form [O_SLIDE] |objectId|x|y|z|time. This mark-up element may represent an object that is gradually moving from one location in the virtual space to a new location over a fixed period of time. It should be appreciated that these examples are not intended to be limiting, but only to illustrate a few different forms of the markup elements.
Storage module12may include information storage18, a server communication module20, and/or other components. Generally, storage module12may store information related to one or more virtual spaces. The information stored by storage module12that is related to a given virtual space may include topographical information related to the topography of the given virtual space, manifestation information related to the manifestation of one or more objects positioned within the topography and/or unseen forces experienced by the one or more objects in the virtual space, interface information related to an interface provided to the user that enables the user to interact with the virtual space, space parameter information related to parameters of the virtual space, and/or other information related to the given virtual space.
The manifestation of the one or more objects may include the locomotion characteristics of the one or more objects, the size of the one or more objects, the identity and/or nature of the one or more objects, interaction characteristics of the one or more objects, and/or other aspect of the manifestation of the one or more objects. The interaction characteristics of the one or more objects described by the manifestation information may include information related to the manner in which individual objects interact with and/or are influenced by other objects, the manner in which individual objects interact with and/or are influenced by the topography (e.g., features of the topography), the manner in which individual objects interact with and/or are influenced by unseen forces within the virtual space, and/or other characteristics of the interaction between individual objects and other forces and/or objects within the virtual space. The interaction characteristics of the one or more objects described by the manifestation information may include scriptable behaviors and, as such, the manifestation stored within storage module12may include one or both of a script and a trigger associated with a given scriptable behavior of a given object (or objects) within the virtual space. The unseen forces present within the virtual space may include one or more of gravity, a wind current, a water current, an unseen force emanating from one of the objects (e.g., as a “power” of the object), and/or other unseen forces (e.g., unseen influences associated with the environment of the virtual space such as temperature and/or air quality).
In some embodiments, the manifestation information may include information related to the sonic characteristics of the one or more objects positioned in the virtual space. The sonic characteristics may include the emission characteristics of individual objects (e.g., controlling the emission of sound from the objects), the acoustic characteristics of individual objects, the influence of sound on individual objects, and/or other characteristics of the one or more objects. In such embodiments, the topographical information may include information related to the sonic characteristics of the topography of the virtual space. The sonic characteristics of the topography of the virtual space may include acoustic characteristics of the topography, and/or other sonic characteristics of the topography.
According to various embodiments, content included within the virtual space (e.g., visual content formed on portions of the topography or objects present in the virtual space, objects themselves, etc.) may be identified within the information stored in storage module12by reference only. For example, rather than storing a structure and/or a texture associated with the structure, storage module12may instead store an access location at which visual content to be implemented as the structure (or a portion of the structure) or texture can be accessed. In some implementations, the access location may include a URL that points to a network location. The network location identified by the access location may be associated with a network asset22. Network asset22may be located remotely from each of storage module12, server14, and client16. For example, the access location may include a network URL address (e.g., an internet URL address, etc.) at which network asset22may be accessed.
It should be appreciated that not only solid structures within the virtual space may be identified in the information stored in storage module12may be stored by reference only. For example, visual effects that represent unseen forces or influences may be stored by reference as described above. Further, information stored by reference may not be limited to visual content. For example, audio content expressed within the virtual space may be stored within storage module12by reference, as an access location at which the audio content can be accessed. Other types of information (e.g., interface information, space parameter information, etc.) may be stored by reference within storage module12.
The interface information stored within storage module12may include information related to an interface provided to the user that enables the user to interact with the virtual space. More particularly, in some implementations, the interface information may include a mapping of an input device provided at client16to commands that can be input by the user to system10. For example, the interface information may include a key map that maps keys in a keyboard (and/or keypad) provided to the user at client16to commands that can be input by the user to system10. As another example, the interface information may include a map that maps the inputs of a mouse (or joystick, or trackball, etc.) to commands that can be input by the user to system10. In some implementations, the interface information may include information related to a configuration of an interface display provided to the user at client16, through which the user may input information to system10. For example, the interface display may receive communication to other users interacting with the virtual space, input dictating actions to be performed by one or more objects within the virtual space, a request for a different point of view for the view, a request for a more (or less) sophisticated view (e.g., a 2-dimensional view, a 3-dimensional view, etc.), a request for one or more additional types of data to be displayed in the interface display, and/or other information.
The interface display may be configured (e.g., by the interface information stored in storage module12) to provide information to the user about conditions in the virtual space that may not be apparent simply from viewing the space. For example, such conditions may include the passage of time, ambient environmental conditions, and/or other conditions. The interface display may be configured (e.g., by the interface information stored in storage module12) to provide information to the user about one or more objects within the space. For instance, information may be provided to the user about objects associated with the topography of the virtual space (e.g., coordinate, elevation, size, identification, age, status, etc.). In some implementations, information may be provided to the user about objects that represent animate characters (e.g., wealth, health, fatigue, age, experience, etc.). For example, such information may be displayed that is related to an object that represents an incarnation associated with client16in the virtual space (e.g., an avatar, a character being controlled by the user, etc.).
The space parameter information may include information related to one or more parameters of the virtual space. Parameters of the virtual space may include, for example, the rate at which time passes, dimensionality of objects within the virtual space (e.g., 2-dimensional vs. 3-dimensional), permissible views of the virtual space (e.g., first person views, bird's eye views, 2-dimensional views, 3-dimensional views, fixed views, dynamic views, selectable views, etc.), and/or other parameters of the virtual space. In some implementations, the space parameter information includes information related to the game parameters of a game provided within the virtual space. For instance, the game parameters may include information related to a maximum number of players, a minimum number of players, the game flow (e.g., turn based, real-time, etc.), scoring, spectators, and/or other game parameters of a game.
The information related to the plurality of virtual spaces may be stored in an organized manner within information storage18. For example, the information may be organized into a plurality of space records24(illustrated as space record24a, space record24b, and space record24c). Individual ones of space records24may correspond to individual ones of the plurality of virtual spaces. A given space record24may include information related to the corresponding virtual space. In some embodiments, the space records24may be stored together in a single hierarchal structure (e.g., a database, a file system of separate files, etc.). In some embodiments, space records24may include a plurality of different “sets” of space records24, wherein each set of space records includes one or more of space records24that is stored separately and discretely from the other space records24.
Although information storage18is illustrated inFIG. 1as a single entity, this is for illustrative purposes only. In some embodiments, information storage18includes a plurality of informational structures that facilitate management and storage of the information related to the plurality of virtual spaces. Information storage18may include the physical storage elements for storing the information related to the virtual spaces and/or the information processing and storage assets that enable information storage18to manage, organize, and maintain the stored information. Information storage18may include a relational database, an object oriented database, a hierarchical database, a post-relational database, flat text files (which may be served locally or via a network), XML files (which may be served locally or via a network), and/or other information structures.
In some embodiments, in which information storage18includes a plurality of informational structures that are separate and discrete from each other. In such embodiments, system10may include a central information catalog (e.g., managed by storage module12) that includes information related to the location of the space records included information storage18(e.g., network and/or file system addresses of individual space records). In some embodiments, the central information catalog may form a clearing house of information that enables users to initiate instances a chosen virtual space (e.g., to establish a server executing an instance of the chosen virtual space similar to server14). Accordingly, access to the information stored within the central information catalog may be provided to users based on privileges (e.g., earned via monetary payment, administrative privileges, earned via previous game-play, earned via membership in a community, etc.).
Server communication module20may facilitate communication between information storage18and server14. In some embodiments, server communication module20enables this communication by formatting communication between information storage18and server14. This may include, for communication transmitted from information storage18to server14, generating markup elements (e.g., “tags”) that convey the information stored in information storage18, and transmitting the generated markup elements to server14. For communication transmitted from server14to information storage18, server communication module20may receive markup elements transmitted from server14to storage module12and may reformat the information for storage in information storage18.
Server14may be provided remotely from storage module12. Communication between server14and storage module12may be accomplished via one or more communication media. For example, server14and storage module12may communicate via a wireless medium, via a hard-wired medium, via a network (e.g., wireless or wired), and/or via other communication media. In some embodiments, server14may include a communication module26, a location module27, an instantiation module28, a view module30, and/or other modules. Modules26,27,28, and30may be implemented in software; hardware; firmware; some combination of software, hardware, and/or firmware; and/or otherwise implemented. It should be appreciated that although modules26,27,28, and/or30are illustrated inFIG. 1as being co-located within a single unit (server14), in some implementations, server14may include multiple units and modules26,27,28, and/or30may be located remotely from the other modules.
Communication module26may be configured to communicate with storage module12, processor17, and/or client16. Communicating with storage module12, processor17, and/or client16may include transmitting and/or receiving markup elements of the markup language. The markup elements received by communication module26may be implemented by other modules of server14, or may be passed between storage module12and client16via server14(as server14serves as an intermediary therebetween). The markup elements transmitted by communication module26to storage module12or client16may include markup elements being communicated from storage module to client16(or vice versa), or the markup elements may include markup elements generated by the other modules of server14.
Location module27may obtain information related to the physical location of client16(and/or other clients included in system10), physical analogues associated with virtual spaces provided by system10, and/or other objects. Location module27may obtain this information directly from the clients and/or physical analogues, from some other module tracking or storing the physical locations of clients and/or physical analogues (e.g., storage module12, and/or client location module80and/or analogue location module82discussed below). The information obtained by location module27may be implemented by one or both of instantiation module28and/or view module30in the manner described below.
Instantiation module28may be configured to execute one or more instances of one or more virtual spaces, such as an instance32of a virtual space present on server14. Instantiation module28may execute instance32of the virtual space according to information received in markup element form from storage module12. Instantiation module28may comprise an application that is configured to execute instances of virtual spaces based on information conveyed thereto in markup element form. The application may be capable of initiating execution of an instance of a virtual space without accessing a local source of information (local to server14) that describes various aspects of the configuration of the virtual space (e.g., manifestation information, space parameter information, etc.), or without making assumptions about such aspects of the configuration of the virtual space when initiating execution of the virtual space. Instead, such information may be obtained by instantiation module28from the markup elements communicated to server14from storage module12. This may provide one or more enhancements over systems in which an application running on a server executes an instance of a virtual space dictates aspects of the virtual space (e.g., in “World of Warcraft”), such as manifestation information and/or space parameter information, or makes assumptions about such aspects. For example, the application included in instantiation module28may be capable of executing instances of a wider variety of “types” of virtual spaces (e.g., virtual worlds, games, 3-D spaces, 2-D spaces, spaces with different views, first person spaces, birds-eye spaces, real-time spaces, turn based spaces, etc.).
Instance32may be characterized as a simulation of the virtual space that is being executed on server14by instantiation module30. The simulation may include determining in real-time the positions, structure, and manifestation of objects, unseen forces, and topography within the virtual space according to the topography, manifestation, and space parameter information that corresponds to the virtual space. As has been discussed above, various portions of the content that make up the virtual space embodied in instance32may be identified in the markup elements received from storage module12by reference. In such implementations, instantiation module28may be configured to access the content at the access location identified (e.g., at network asset22, as described above) in order to account for the nature of the content in instance32.
As instance32is maintained by instantiation module28on server14, and the position, structure, and manifestation of objects, unseen forces, and topography within the virtual space varies, instantiation module28may implement an instance memory module34to store information related to the present state of instance32. Instance memory module34may be provided locally to server14(e.g., integrally with server14, locally connected with server14, etc.), or instance memory module34may be located remotely from server14and an operative communication link may be formed therebetween.
In some implementations, instance32may be an instance of a virtual space that is associated with a physical analogue in the real world. In such implementations, instance32may include one or more objects that correspond to physical objects that are present in the real world at or near the physical analogue. For example, instance32may include objects associated with users (e.g., avatars, etc.) operating clients (e.g., client16) at or near the physical analogue. In order to properly incorporate this information into instance32, instantiation module28may obtain information related to the location of the physical objects in the real world with respect to the physical analogue. For instance, instantiation module28may obtain information related to the physical location of clients (e.g., client16) that are currently operating in system10, to account for the position of the users of these clients in instance32(e.g., from location module27). In some implementations, instance32may only reflect the position of clients (e.g., client16) that are currently receiving views of instance32. In some implementations, instance32may reflect the position of clients without regard for whether they are currently receiving views of instance32, some other instance of the virtual space of instance32or other virtual space, or are otherwise in communication with system10.
Similarly, one or more unseen forces, ambient conditions, and/or other phenomena present at the physical analogue may be reflected, or otherwise accounted for, in instance32. For example, ambient weather conditions, tidal or surf conditions, snow pack conditions, ground conditions impacting footing, and/or other phenomena may be reflected in instance32. In such implementations, information related to the phenomena may be obtained by instantiation module28. The information may be generated by one or more sensors present at the physical analogue, information manually entered by users and/or administrators, and/or otherwise obtained.
In some implementations, physical analogues associated with a plurality of virtual spaces may become proximate to each other in the real world. This may occur where one or more of the physical analogues is mobile, and moves proximate to another physical analogue such that the areas in the physical world that correspond to these two physical analogues overlap. In an implementation where the physical analogue associated with the virtual space represented in instance32becomes proximate with the physical analogue of another virtual space, instance32may be executed by instantiation module28such that content (e.g., objects, unseen forces, characters, topography, etc.) from the other virtual space appears in instance32. In order to accomplish this, instantiation module28may operate as a client, and may access an instance of the other virtual space being executed on a server (e.g., server14or some other server). As such, instantiation module28may receive view information that describes a view of the other virtual space, and may incorporate the content (e.g., objects, unseen forces, characters, topography, etc.) described in the view into instance32. Upon incorporation of the content of the other virtual space into instance32, instance32effectively includes the content of the other virtual space as well as its own.
By way of non-limiting example, a virtual space may be associated with a person as a physical analogue in the real world. This “personal” virtual space may include, for example, information about the person (e.g., identification, mood, strength, fatigue, etc.), and may include an object associated with the person (e.g., an avatar, accoutrements for an avatar, etc.). If the person comes into proximity with the physical analogue of the virtual space represented in instance32, instantiation module28may access a server executing an instance of the personal virtual space, and receive view information and/or interface information that describes the personal virtual space. This view/interface information may then be incorporated into instance32to enable instance32to effectively include the personal virtual space within instance32.
In some embodiments, the inclusion of one virtual space within another, due to the proximity of the physical analogues associated therewith, may be carried out in accordance with a predetermined hierarchy of virtual spaces. The predetermined hierarchy may be determined by administrators of system10, agreements between entities associated with the virtual spaces (e.g., owners of the virtual spaces, owners of the physical objects and/or locations that are physical locations, etc.), a user preference for one or more virtual spaces, and/or otherwise determined. In some such implementations, the predetermined hierarchy may be determined by a plurality of factors (e.g., administrators of system10, as modified by one or more user preferences). Further, a permission of the virtual space “including” another virtual space (e.g., the virtual space of instance32in the example immediately above) and/or a permission of the virtual space to be “included” in another virtual space (e.g., the personal virtual space in the example above) may be required before instantiation module28provides the content of another virtual space within instance32.
As a non-limiting example, a person that has a personal virtual space (e.g., where the person is the physical analogue for the virtual space, as discussed above) may only provide permission for a pre-selected set of virtual spaces and/or types of virtual spaces to include the content of her personal virtual space. During operation, this pre-selected set of virtual spaces may be augmented by prompting the person (e.g., via a client similar to client16, etc.) as she comes into proximity with physical analogues associated with virtual spaces that are not part of the pre-selected set. Similarly, the virtual space associated with instance32may only provide permission for including content from a pre-selected set of virtual spaces. This set of pre-selected virtual spaces may be augmented, for example by prompting an administrator of the virtual space (or other entity associated with the virtual space) associated with instance32.
View module30may be configured to implement instance32to determine a view of the virtual space. The view of the virtual space may be from a fixed location or may be dynamic (e.g., may track an object). In some implementations, an incarnation associated with client16(e.g., an avatar) may be included within instance32. In these implementations, the location of the incarnation may influence the view determined by view module30(e.g., track with the position of the incarnation, be taken from the perspective of the incarnation, etc.). In some implementations, the physical location of client16in the real world may influence the view determined by view module30. For example, view module30may obtain information related to the physical location of client16in the real world (e.g., from location module27), and the view of the virtual space determined by view module30may track with the position, in the real world, of client16with respect to a physical analogue with which the virtual space is associated. The view determined by view module30may be determined for a variety of different perspectives (e.g., a bird's eye view, an elevation view, a first person view, etc.). The view may be a 2-dimensional view or a 3-dimensional view. These and/or other aspects of the view may be determined for the virtual space based on information stored in a space record24for the virtual space and provided from storage module12via markup elements (e.g., as space parameter information). Determining the view may include determining the identity, shading, size (e.g., due to perspective), motion, and/or position of objects, effects, and/or portions of the topography that would be present in a rendering of the view.
View module30may generate a plurality of markup elements that describe the view based on the determination of the view. The plurality of markup elements may describe identity, shading, size (e.g., due to perspective), and/or position of the objects, effects, and/or portions of the topography that should be present in a rendering of the view. The markup elements may describe the view “completely” such that the view can be formatted for viewing by the user by simply assembling the content identified in the markup elements according to the attributes of the content provided in the markup elements. In such implementations, assembly alone may be sufficient to achieve a display of the view of the virtual space, without further processing of the content (e.g., to determine motion paths, decision-making, scheduling, triggering, etc.).
In some embodiments, the markup elements generated by view module30that describe the view identify content (e.g., visual content, audio content, etc.) to be included in the view by reference only. For example, as was the case with markup elements transmitted from storage module12to server14, the markup elements generated by view module30may identify content by a reference to an access location. The access location may include a URL that points to a network location. The network location identified by the access location may be associated with a network asset (e.g., network asset22). For instance, the access location may include a network URL address (e.g., an internet URL address, etc.) at which network asset22may be accessed.
According to various embodiments, in generating the view, view module30may manage various aspects of content included in views determined by view module30, but stored remotely from server14(e.g., content referenced in markup elements generated by view module30). Such management may include re-formatting content stored remotely from server14to enable client16to convey the content (e.g., via display, etc.) to the user. For example, in some implementations, client16may be executed on a relatively limited platform (e.g., a portable electronic device with limited processing, storage, and/or display capabilities). Server14may be informed of the limited capabilities of the platform (e.g., via communication from client16to server14) and, in response, view module30may access the content stored remotely in network asset22to re-format the content to a form that can be conveyed to the user by the platform executing client16(e.g., simplifying visual content, removing some visual content, re-formatting from 3-dimensional to 2-dimensional, etc.). In such implementations, the re-formatted content may be stored at network asset22by over-writing the previous version of the content, stored at network asset22separately from the previous version of the content, stored at a network asset36that is separate from network asset22, and/or otherwise stored. In implementations in which the re-formatted content is stored separately from the previous version of the content (e.g., stored separately at network asset22, stored at network asset24, cached locally by server14, etc.), the markup elements generated by view module30for client16reflect the access location of the re-formatted content.
As was mentioned above, in some embodiments, view module30may adjust one or more aspects of a view of instance32based on communication from client16indicating that the capabilities of client16may be limited in some manner (e.g., limitations in screen size, limitations of screen resolution, limitations of audio capabilities, limitations in information communication speeds, limitations in processing capabilities, etc.). In such embodiments, view module30may generate markup elements for transmission that reduce (or increase) the complexity of the view based on the capabilities (and/or lack thereof) communicated by client16to server14. For example, view module30may remove audio content from the markup elements, view module30may generate the markup elements to provide a two dimensional (rather than a three dimensional) view of instance32, view module30may reduce, minimize, or remove information dictating motion of one or more objects in the view, view module30may change the point of view of the view (e.g., from a perspective view to a bird's eye view), and/or otherwise generate the markup elements to accommodate client16. In some implementations, these types of accommodations for client16may be made by server14in response to commands input by a user on client16as well as or instead of based on communication of client capabilities by client16. For example, the user may input commands to reduce the load to client16caused by displaying the view to improve the quality of the performance of client16in displaying the view, to free up processing and/or communication capabilities on client16for other functions, and/or for other reasons.
From the description above it should be apparent that as view module30“customizes” the markup elements that describe the view for client16, a plurality of different versions of the same view may be described in markup elements that are sent to different clients with different capabilities, settings, and/or requirements input by a user. This customization by view module30may enhance the ability of system10to be implemented with a wider variety of clients and/or provide other enhancements.
In some embodiments, client16provides an interface to the user that includes a view display38, a user interface display40, an input interface42, and/or other interfaces that enable interaction of the user with the virtual space. Client16may include a server communication module44, a view display module46, an interface module48, and/or other modules. Client16may be executed on a computing platform that includes a processor that executes modules44and46, a display device that conveys displays38and40to the user, and provides input interface42to the user to enable the user to input information to system10(e.g., a keyboard, a keypad, a switch, a knob, a lever, a touchpad, a touchscreen, a button, a joystick, a mouse, a trackball, etc.). The platform may include a desktop computing system, a gaming system, or more portable systems (e.g., a mobile phone, a personal digital assistant, a hand-held computer, a laptop computer, etc.). In some embodiments, client16may be formed in a distributed manner (e.g., as a web service). In some embodiments, client16may be formed in a server. In these embodiments, a given virtual space instanced on server14may include one or more objects that present another virtual space (of which server14becomes the client in determining the views of the first given virtual space).
Server communication module44may be configured to receive information related to the execution of instance32on server14from server14. For example, server communication module44may receive markup elements generated by storage module12(e.g., via server14), view module30, and/or other components or modules of system10. The information included in the markup elements may include, for example, view information that describes a view of instance32of the virtual space, interface information that describes various aspects of the interface provided by client16to the user, and/or other information. Server communication module44may communicate with server14via one or more protocols such as, for example, WAP, TCP, UDP, and/or other protocols. The protocol implemented by server communication module44may be negotiated between server communication module44and server14.
View display module48may be configured to format the view described by the markup elements received from server14for display on view display38. Formatting the view described by the markup elements may include assembling the view information included in the markup elements. This may include providing the content indicated in the markup elements according to the attributes indicated in the markup elements, without further processing (e.g., to determine motion paths, decision-making, scheduling, triggering, etc.). As was discussed above, in some implementations, the content indicated in the markup elements may be indicated by reference only. In such implementations, view display module46may access the content at the access locations provided in the markup elements (e.g., the access locations that reference network assets22and/or36, or objects cached locally to server14). In some of these implementations, view display module46may cause one or more of the content accessed to be cached locally to client16, in order to enhance the speed with which future views may be assembled. The view that is formatted by assembling the view information provided in the markup elements may then be conveyed to the user via view display38.
As has been mentioned above, in some implementations, the capabilities of client16may be relatively limited. In some such implementations, client16may communicate these limitations to server14, and the markup elements received by client16may have been generated by server14to accommodate the communicated limitations. However, in some such implementations, client16may not communicate some or all of the limitations that prohibit conveying to the user all of the content included in the markup elements received from server14. Similarly, server14may not accommodate all of the limitations communicated by client16as server14generates the markup elements for transmission to client16. In these instances, view display module48may be configured to exclude or alter content contained in the markup elements in formatting the view. For example, view display module48may disregard audio content if client16does not include capabilities for providing audio content to the user. As another example, if client16does not have the processing and/or display resources to convey movement of objects in the view, view display module48may restrict and/or disregard motion dictated by motion information included in the markup elements.
Interface module48may be configured to configure various aspects of the interface provided to the user by client16. For example, interface module48may configure user interface display40and/or input interface42according to the interface information provided in the markup elements. User interface display40may enable display of the user interface to the user. In some implementations, user interface display40may be provided to the user on the same display device (e.g., the same screen) as view display38. As was discussed above, the user interface configured on user interface display40by interface module38may enable the user to input communication to other users interacting with the virtual space, input actions to be performed by one or more objects within the virtual space, provide information to the user about conditions in the virtual space that may not be apparent simply from viewing the space, provide information to the user about one or more objects within the space, and/or provide for other interactive features for the user. In some implementations, the markup elements that dictate aspects of the user interface may include markup elements generated at storage module12(e.g., at startup of instance32) and/or markup elements generated by server14(e.g., by view module30) based on the information conveyed from storage module12to server14via markup elements.
In some implementations, interface module48may configure input interface42according to information received from server14via markup elements. For example, interface module48may map the manipulation of input interface42by the user into commands to be input to system10based on a predetermined mapping that is conveyed to client16from server14via markup elements. The predetermined mapping may include, for example, a key map and/or other types of interface mappings (e.g., a mapping of inputs to a mouse, a joystick, a trackball, and/or other input devices). If input interface42is manipulated by the user, interface module48may implement the mapping to determine an appropriate command (or commands) that correspond to the manipulation of input interface42by the user. Similarly, information input by the user to user interface display40(e.g., via a command line prompt) may be formatted into an appropriate command for system10by interface module48. In some implementations, the availability of certain commands, and/or the mapping of such commands may be provided based on privileges associated with a user manipulating client16(e.g., as determined from a login). For example, a user with administrative privileges, premium privileges (e.g., earned via monetary payment), advanced privileges (e.g., earned via previous game-play), and/or other privileges may be enabled to access an enhanced set of commands. These commands formatted by interface module48may be communicated to server14by server communication module44.
Upon receipt of commands from client16that include commands input by the user (e.g., via communication module26), server14may enqueue for execution (and/or execute) the received commands. The received commands may include commands related to the execution of instance32of the virtual space. For example, the commands may include display commands (e.g., pan, zoom, etc.), object manipulation commands (e.g., to move one or more objects in a predetermined manner), incarnation action commands (e.g., for the incarnation associated with client16to perform a predetermined action), communication commands (e.g., to communicate with other users interacting with the virtual space), and/or other commands. Instantiation module38may execute the commands in the virtual space by manipulating instance32of the virtual space. The manipulation of instance32in response to the received commands may be reflected in the view generated by view module30of instance32, which may then be provided back to client16for viewing. Thus, commands input by the user at client16enable the user to interact with the virtual space without requiring execution or processing of the commands on client16itself.
It should be that system10as illustrated inFIG. 1is not intended to be limiting in the numbers of the various components and/or the number of virtual spaces being instanced. For example,FIG. 2illustrates a system50, similar to system10, including a storage module52, a plurality of servers54,56, and58, and a plurality of clients60,62, and64. Storage module52may perform substantially the same function as storage module12(shown inFIG. 1and described above). Servers54,56, and58may perform substantially the same function as server14(shown inFIG. 1and described above). Clients60,62, and64may perform substantially the same function as client16(shown inFIG. 1and described above).
Storage module52may store information related to a plurality of virtual spaces, and may communicate the stored information to servers54,56, and/or58via markup elements of the markup language, as was discussed above. Servers54,56, and/or58may implement the information received from storage module52to execute instances66,68,70, and/or70of virtual spaces. As can be seen inFIG. 2, a given server, for example, server58, may be implemented to execute instances of a plurality of virtual spaces (e.g., instances70and72). Clients60,62, and64may receive information from servers54,56, and/or58that enables clients60,62, and/or64to provide an interface for users thereof to one or more virtual spaces being instanced on servers54,56, and/or58. The information received from servers54,56, and/or58may be provided as markup elements of the markup language, as discussed above.
Due at least in part to the implementation of the markup language to communicate information between the components of system50, it should be appreciated from the foregoing description that any of servers54,56, and/or58may instance any of the virtual spaces stored on storage module52. The ability of servers54,56, and/or58to instance a given virtual space may be independent, for example, from the topography of the given virtual space, the manner in which objects and/or forces are manifest in the given virtual space, and/or the space parameters of the given virtual space. This flexibility may provide an enhancement over conventional systems for instancing virtual spaces, which may only be capable of instancing certain “types” of virtual spaces. Similarly, clients60,62, and/or64may interface with any of the instances66,68,70, and/or72. Such interface may be provided without regard for specifics of the virtual space (e.g., topography, manifestations, parameters, etc.) that may limit the number of “types” of virtual spaces that can be provided for with a single client in conventional systems. In conventional systems, these limitations may arise as a product of the limitations of platforms executing client16, limitations of client16itself, and/or other limitations.
Returning toFIG. 1, space access processor17may be configured to manage information related to the location of instances of virtual spaces (e.g., network addresses of servers executing instances of the virtual spaces), information related to the physical analogues associated with the virtual spaces, information related to the physical location of clients attempting to access the virtual spaces, information related to users of system10, and/or other information. More specifically, space access processor17may be configured to manage this information to ensure that a client (e.g., client16) attempting to access a virtual space to provide a view of the virtual space to the user is directed to the appropriate virtual space (e.g., based on the physical location of the user, etc.). As such, space access processor17may include one or more of a digital processor, an analog processor, a digital circuit designed to process information, an analog circuit designed to process information, a state machine, and/or other mechanisms for electronically processing information.
Although processor17is shown inFIG. 1as a single entity, this is for illustrative purposes only. In some implementations, processor17may include a plurality of processing entities. These processing entities may be physically located within the same device, or processor17may represent processing functionality of a plurality of devices operating in coordination.
In some implementations, some or all of the functionality attributed herein to space access processor17may be provided by a device (or devices) also providing the functionality of one or more other components of system10. For instance, space access processor17and storage module12may include a device (or devices) in common.
Communication between space access processor17and one or more other components of system10(e.g., storage module12, server14, client16, etc.) may be accomplished via one or more communication links. For example, server14and storage module12may communicate via a wireless medium, via a hard-wired medium, via a network (e.g., wireless or wired), and/or via other communication links. In some embodiments, space access processor17may include a request module76, a user profile module78, a client location module80, an analogue location module82, a space correlation module84, a server access module86, and/or other modules. Modules76,78,80,82,84, and/or86may be implemented in software; hardware; firmware; some combination of software, hardware, and/or firmware; and/or otherwise implemented. It should be appreciated that although modules76,78,80,82,84, and/or86are illustrated inFIG. 1as being co-located within a single entity (space access processor17), in some implementations, space access processor17may include multiple entities, and one or more of modules76,78,80,82,84, and/or86may be located remotely from the other modules.
In some embodiments, request module76may be configured to receive a request from client16for access to a virtual space. In some implementations, a request from client16may be generated for request module76automatically by client16upon invocation. In some implementations, a request from client may be generated in response to a command input to client16(e.g., via interface module48). The request may be communicated from request module76to client16via a HyperText Transfer Protocol, a Domain Name System communication, and/or other protocols and/or formats.
Request module76may be configured to identify client16and/or a user controlling client16. For example, the request received by request module76(and/or subsequent communication between request module76and client16) may include an identifier (e.g., a username, an ID number, a user login, etc.) that request module76may implement to identify client16and/or the user. The identification may be secure. To enable a secure identification by request module76, the request received from client16(and/or subsequent communication between request module76and client16) may include a password, or other security token, that enables authentication of client16and/or the user by request module76.
In some embodiments, user profile module78may be configured to manage user profiles of users of system10(e.g., a user accessing a virtual space via client16). The user profile of a given user may store information related to the given user. This information may include one or more of payment information (e.g., a method of payment), subscription information (e.g., one or more virtual spaces to which the user subscribes), demographic information, information related to one or more preferences of the user (e.g., preferred control schemes via elements40,42, and/or48), preferred virtual spaces, preferred servers that execute instances of virtual spaces, etc.), authorization information (e.g., authorization to access a virtual space, a zone within a virtual space, etc.), account information, and/or other information related to the given user.
According to various embodiments, client location module80may be configured to obtain the physical location in the real world of client16. This may include receiving a transmission of information related to the physical location of client16, and determining the physical location of client16from this information. The transmission may include information generated by client16and/or a server, a transceiver, and/or other device (or devices) in communication with client16. The information related to the physical location of client16may include some form of geolocation information that specifies the physical location of client16. For example, the information related to the physical location of client16may include one or more of Internet protocol address, MAC address, RFID information, Wi-Fi connection location, GPS coordinates, information entered to client16by a user (e.g., specifying the location of client16), and/or other information.
In some embodiments, analogue location module82may be configured to obtain the physical locations in the real world of the physical analogues associated with the virtual spaces. One or more of the physical analogues may be located at relatively fixed locations in the real world. Obtaining the physical location of these physical analogues may include receiving the physical location via user input, via a database, over a network, etc. One or more of the physical analogues may be mobile. For example, a physical analogue may be an object that is portable, an object capable of powered movement, and/or an animate object capable of living motion. Obtaining the physical location of a given one of these physical analogues may include receiving an identification of the physical location of the given physical analogue (e.g., from the physical analogue, from a locator module in communication with the physical analogue, etc.), receiving a transmission of information related to the physical location of the given physical analogue and determining the physical location of the given physical analogue from this information, and/or otherwise obtaining the physical location of the given physical analogue.
In some embodiments, space correlation module84may be configured to correlate client16with one of the virtual spaces provided by system10. This correlation may be based on one or more factors including, for instance, the physical location in the real world of client16, the physical location in the real world of the physical analogues associated with the virtual spaces, information related to the user of client16stored in a user profile, and/or other factors. By way of non-limiting example, if the physical location of client16corresponds with the physical location of the physical analogue associated with a given one of the virtual spaces, then client16may be correlated with the given virtual space. In some implementations, space correlation module84may determine which of the physical analogues is closest, in the real world, to the physical location of client16, and may correlate client16with the associated virtual space. In some implementations, a physical analogue may correspond to a zone (e.g., within a predefined boundary, within a threshold distance to the physical analogue, etc.) in the real world, and if client16is determined to be within the zone, then space correlation module84may correlate client16with the virtual space associated with the physical analogue.
As was mentioned above, in some implementations, information stored in a user profile that corresponds to the user of client16may influence the correlation of client16with a virtual space. For example, space correlation module84may obtain an identity of the user from request module76, and may access a user profile associated with the identified user that is stored and/or managed by user profile module78. Based on the information stored therein (e.g., subscriptions, invitations, rewards, privileges, preferences, etc.), space correlation module84may determine which of the virtual spaces that the identified user should be given access to, and may correlate client16with an appropriate virtual space. As should be appreciated, this may enable the creation of virtual spaces that are restricted for one or more reasons. For example, a given virtual space may be restricted to users with a predetermined skill level (e.g., earned through gameplay), invited users, paying users, and/or other sets of users.
In some embodiments, server access module86may be configured to generate a network location (e.g., a URL, a location within a network directory, etc.) at which client16will be able to access a server (e.g., server14) executing an instance of the virtual space correlated with client16by space correlation module84. Accessing the server at the location generated by server access module86enables client16to receive views of the instance of the virtual space being executed by the server. In some implementations, to provide this functionality, server access module86may maintain a record of all of the servers that are executing instances of virtual spaces, the identities of the virtual spaces that have instances being executed, and the network locations at which these servers can be accessed. In some implementations, server access module86may merely interface with one or more other components of system10managing this information (e.g., the central information catalog discussed above). The network location generated by server access module86may be transmitted to client16to enable client16to access the appropriate server and begin receiving view information for a view of the virtual space correlated with client16by space correlation module84.
As was mentioned previously, space access processor17enables system10to operate such that client16provides a view of a virtual space to the user of client16that is dependent (one or both of the virtual space and/or the view thereof) on the physical location of the user in the real world. As a non-limiting example, a given virtual space may be associated with a physical analogue that is (or corresponds to) a public place (e.g., a shop, a restaurant, a commons, an arena, a classroom, a social meeting place, etc.). When client16is being operated at the public place, space access processor17may direct client16to a server that is executing an instance of the given virtual space. In some implementations, the virtual space that corresponds to the public place may be designed to be viewed while being located at the public place. For example, views of the virtual space may include information that would not be available to people that are present at the public place without having access to views of the virtual space. Such information may include, for example, identifications of other people present at the public place (e.g., via an identification by the server executing an instance of the virtual space of the clients currently located at physical locations that correspond to the public place), special offers for goods and/or services being sold at the public place, listings of upcoming events at the public place, semantic tags, ratings, links to further info, avatars of uses not physically present at the physical analogue (e.g., remote users), and/or other information.
In some embodiments, client16may access a virtual space without being at a physical location that corresponds to a physical analogue of the virtual space. Views of this virtual space may provide the user of client16with information about conditions at the physical analogue without being physically present. In fact, in some implementations where client16is not physically present at the physical analogue, an object associated with client16(e.g., an avatar, etc.) may travel within the topography of the virtual space (which may correspond to physical topography at the physical analogue), and/or interact with objects in the virtual space that correspond to objects at or near the physical analogue (e.g., avatars associated with other clients that are physically present at the physical analogue). This type of access to the virtual space (where client16is not present at the physical analogue) may be reserved for users meeting certain criteria, or may be open to the public. The criteria determining whether a user that is not physically present at the physical analogue may access the virtual space may include, for example, administrative privileges, a paid subscription fee (e.g., in real or virtual currency), an admission fee (e.g., in real or virtual currency), an invitation to the virtual space, and/or other criteria.
In some implementations, upon initiating client16, system10may operate in the above-described manner to provide the user with information (e.g., views of a virtual space) that is dependent on physical location in the real world. This feature may be mandatory (e.g., client16only provides physical location dependent views upon initiation) or voluntary (e.g., the user sets client16to provide only physical location dependent views upon initiation). In some implementations, after receiving physical location dependent views of a virtual space from client16, the user may input a command to begin viewing another virtual space that is not associated with a physical analogue that corresponds to the physical location of client16.
In some embodiments, physical analogues in the real world for separate virtual spaces may overlap. In such implementations, if client16is present at a physical location that corresponds to physical analogues associated with two or more virtual spaces, space correlation module84may correlate client16with one of the virtual spaces based on a predetermined hierarchy of virtual spaces. The predetermined hierarchy may be determined by administrators of system10, agreements between entities associated with the virtual spaces (e.g., owners of the virtual spaces, owners of the physical objects and/or locations that are physical locations, etc.), a user preference for one or more virtual spaces, and/or otherwise determined. In some such implementations, the predetermined hierarchy may be determined by a plurality of factors (e.g., administrators of system10, as modified by one or more user preferences). In some implementations, the predetermined hierarchy may specify a default virtual space, but one or more of the other overlapping virtual spaces may be accessed by client16in response to a command input at client16by the user (e.g., to enable “toggling” between virtual spaces associated with overlapping physical analogues).
In some embodiments, system10may enable the user to create a virtual space. In such embodiments, the user may select a set of characteristics of the virtual space on client16(e.g., via user interface display48and/or input interface42). The characteristics selected by the user may include characteristics of one or more of a topography of the virtual space, the manifestation in the virtual space of one or more objects and/or unseen forces, an interface provided to users to enable the users to interact with the new virtual space, space parameters associated with the new virtual space, and/or other characteristics of the new virtual space.
In creating a virtual space, or at some point thereafter, the virtual space may be associated with one or more physical analogues. This association may be accomplished by the creating user(s), or some other party. In some implementations, the physical analogues to which a virtual space can be associated may be restricted. Similarly, one or more geographic locations may be “restricted” in that physical analogues are not permitted therein (at least not without appropriate permission). In such implementations, control over the association with virtual spaces of physical analogues (e.g., a list of possible physical analogues, physical analogues within a geographic area, etc.) may be given over to an entity based on privileges that are earned, bought, or otherwise distributed. By way of non-limiting example, a retailer may pay to control the association of one or more retail locations with virtual spaces.
FIG. 3illustrates a method88of enabling access to a virtual space. In the description of method88and one or more of its operations below, specific reference is made to the components of system10(illustrated inFIG. 1and described above). However, this should not be viewed as limiting. Instead, method88should be appreciated as being usable with a variety of systems. Further, the particular arrangement of the operations of method88illustrated inFIG. 3and described hereafter is not intended to be limiting. In some implementations, various ones of the operations could be performed in an order other than the one set forth (or concomitantly with other ones of the operations), various ones of the operations may be combined with others and/or be omitted altogether, and/or various additional operations may be added without departing from the scope of the disclosure, as should be appreciated.
At an operation90, a request may be received for access to a virtual space. The request may be received from a client, such as a client that is the same as or similar to client16(illustrated inFIG. 1and described above). In some embodiments, operation90may be performed by a request module that is the same as or similar to request module76(illustrated inFIG. 1and described above).
At an operation92, the client from which the request was received at operation90, or a user operating the client, may be identified. This may include identifying the client and/or the user (or group of users) from an identifier included in the request. The identification at operation92may, in some implementations, be a secure identification that requires the receipt of one or more passwords and/or tokens from the client to authenticate the identification. In some embodiments, operation92may be performed by a request module that is the same as or similar to request module76(illustrated inFIG. 1and described above).
At an operation94, a physical location of the client from which the request was received at operation90is obtained. This may include receiving a transmission of information related to the physical location of the client, and determining the physical location of the client from the received information. The information related to the physical location of the client may be received from the client, or from some other source. In some embodiments, operation94may be performed by a client location module that is the same as or similar to client location module80(illustrated inFIG. 1and described above).
At an operation96one or more of a plurality of virtual spaces may be associated with physical analogues that are present in the real world. This may include associating individual ones of the virtual spaces with one or more physical analogues. As has been discussed above, physical analogues may include a physical place, a physical region, a physical object, and/or other physical entities in the real world.
At an operation98, the locations of one or more of the physical analogues associated with the virtual spaces may be obtained. In some embodiments, operation98may be performed by a analogue location module that is the same as or similar to analogue location module82(illustrated inFIG. 1and described above).
At an operation100, the client from which the request was received at operation90may be correlated with a virtual space. The correlation of the client with a virtual space may be based on one or more of a physical location of the client in the real world, the physical locations of the physical analogues associated with the virtual spaces, user information (e.g., a user preference, a user privilege, a user subscription or membership, etc.) stored in a user profile associated with the client and/or user(s) identified at operation92, and/or other information related to the client/user(s), the virtual spaces, and/or the physical analogues. In some embodiments, operation100may be performed by a space correlation module that is the same as or similar to space correlation module84(illustrated inFIG. 1and described above).
At an operation102, information related to servers executing instances of the virtual spaces may be obtained. The information obtained at operation102may include, for example, network locations at which the servers may be accessed, a listing of which servers are executing instances of which virtual spaces, and/or other information. For example, such information may be obtained from a storage module that is the same as or similar to storage module12(illustrated inFIG. 1and described above).
At an operation104, a network location at which the client will be able to access a server executing an instance of the virtual space that was correlated with the client at operation100is generated. Accessing the network location generated at operation104will enable the client to receive view information from a server that describes a view of an instance of the virtual space correlated with the client at operation100. This view information may be assembled by the client to provide a displayed view of the virtual space to a user on the client. In some embodiments, operation104may be performed by a server access module that is the same as or similar to server access module86(illustrated inFIG. 1and described above).
Although the invention has been described in detail for the purpose of illustration based on what is currently considered to be the most practical and preferred embodiments, it is to be understood that such detail is solely for that purpose and that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover modifications and equivalent arrangements that are within the spirit and scope of the appended claims. For example, it is to be understood that the present invention contemplates that, to the extent possible, one or more features of any embodiment can be combined with one or more features of any other embodiment.
Claims
- A server configured to provide access to virtual spaces based on current location in the real world, the server comprising: one or more processors configured to execute computer program modules, the computer program modules comprising: a request module configured to receive requests from client computing platforms for access to virtual spaces;a location module configured to obtain, in real time or near real time, a current location in the real world of a first client computing platform associated with a first user;a space correlation module configured to, responsive to reception of a request from the first client computing platform for virtual space access, correlate the current location in the real world of the first client computing platform with one of a plurality of virtual spaces by comparing the current real world location of the first client computing platform with the real world locations of physical analogues that are associated with the different virtual spaces, wherein the virtual spaces are separate simulated spaces, and wherein the virtual spaces comprise a first virtual space and a second virtual space;and a server access module configured to provide access for the first client computing platform to the virtual space with which the current location of the first client computing platform has been correlated such that, responsive to the current location of the first client computing platform being correlated with the first virtual space, access to the first virtual space is provided for the first client computing platform by facilitating communication between the first client computing platform and a space server executing an instance of the first virtual space, wherein such communication enables an avatar associated with the first client computing platform to be controlled within the instance of the first virtual space from the first client computing platform to interact in the instance of the first virtual space with avatars being controlled by other client computing platforms.
- The system of claim 1 , wherein the physical analogue associated with the first virtual space is either a physical location or a physical object in the real world.
- The system of claim 1 , wherein the physical analogue associated with the first virtual space is mobile in the real world.
- The system of claim 1 , wherein the server access module is further configured such that an initial view of the instance of the first virtual space received by the first client computing platform reflects the location of the first client computing platform in the real world.
- The system of claim 4 , wherein the server access module is further configured such that the initial view is from a point of view at a location in the instance of the first virtual space that corresponds to the location of the first client computing platform in the real world.
- The system of claim 1 , wherein the avatar controlled from the first client computing platform is a character associated with a user account that corresponds to a first user of the first client computing platform.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.