US 20060178216 A1
A system, apparatus and method for enabling users to launch and invite users to join multi-user sessions, such as multi player game sessions, via Instant Messages are described herein.
1. A computer implemented method comprising:
facilitating composition at an inviter device an invitation comprising control information for formation of a multi-user session;
transmitting said invitation to an instant messaging server for delivery to a recipient device associated with an instant messaging identifier;
executing at said inviter device a process specified by said control information; and
if first multi-user session data is received from said recipient device, responding with second multi-user session data to said recipient device.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. A computing device having a processor and a memory containing computer executable instructions for performing the method of
14. A computer readable medium containing computer executable instructions for performing the method of
15. A computer implemented method comprising:
facilitating acceptance, at a recipient device, an instant message invitation, from an inviter device, comprising control information for formation of a multi-user session;
in response to accepting said invitation, executing a process specified by said control information; and
transmitting to said inviter device data generated by said process to contribute to the formation of said multi-user session.
16. The method of
17. A computing device having a processor and a memory containing computer executable instructions for performing the method of
18. A computer readable medium containing computer executable instructions for performing the method of
This application claims the benefit of U.S. Provisional Application No. 60/487,773 filed on Jul. 15, 2003, and entitled WILDTANGENT IM GAME LAUNCHING AND INVITATION.
The present invention relates to the field of electronic data/information processing. More specifically, the present invention relates to methods and apparatuses for initiating multi-user sessions, such as multi-player computer gaming.
Advances in microprocessor related technology have lead to widespread development and the adoption of computing devices. Computing powers that used to be available only in expensive mainframe computers requiring special operating environments are now available in many personal-computing devices. The form factors vary from desktop, laptop, palm sized and so forth. A number of these computing devices are packaged as “special purpose” devices, such as set top boxes, entertainment personal digital assistants (“PDA”), pagers, text messengers, smart appliances and wireless mobile phones.
Concurrently, advances in networking, telecommunications and related technologies, in particular, in the area of wireless networking/communications, have lead to increased connectivity between computing devices, over local, private, wide area, and/or public networks. Of particular notoriety is the Internet.
Together, these and other related factors contributed to the availability of rich content and functionality available from a variety of devices. Recently, this availability of connected devices has made significant advances in the electronic gaming environment.
To facilitate communications between a wide range of devices, instant messaging (“IM”) protocols and services have been implemented by a variety of service providers, such as America On-Line's AIM protocol and Microsoft's MSN Instant Messenger protocol.
However, these IM protocols and services do not indicate how IM protocols or services could initiate multi-player gaming sessions.
The present invention will be described by way of exemplary embodiments but not limitations, illustrated in the accompanying drawings in which like references to note similar elements, and in which:
In the following description, reference is made to the accompanying drawings which form a part hereof wherein like numerals designate like parts throughout, and in which are shown, by way of illustration, specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents.
Embodiments of the present invention include a user-friendly technique for having an invited multi-user sessions, such as multi-player gaming session between computing devices. For ease of understanding, the description will be presented primarily in the context of multi-player gaming. However, embodiments of the present invention are not so limited, and may be practiced for other multi-user session applications.
In the following description, various aspects of selected embodiments of the present invention will be described. However, it will be apparent to those of ordinary skill in the art and others that alternate embodiments may be practiced with only some or all of the aspects of the present invention. For purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to those of ordinary skill in the art and others that alternate embodiments may be practiced without the specific details. In other instances, well-known features are omitted or simplified in order not to obscure the illustrated embodiments.
The various operations will be described as multiple discreet steps in turn, in a manner that is most helpful to understanding of the present invention. However, the order of description should not be construed to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation.
The phrase “in one embodiment” is used repeatedly. The phase generally does not refer to the same embodiment, however, it may. The terms “comprising,” “having” and “including” are synonymous, unless the context dictates otherwise.
Referring now to
In various embodiments, the inviter device 200, IM provider server 110, relay server 120, central game server 130 and recipient device 150 are coupled to each other wirelessly, i.e., they are members of a wireless network. In other embodiments, the inviter device 200, IM provider server 110, relay server 120, central game server 130 and recipient device 150 are coupled to each other as members of a wire-based or mixed wireless and wire-based network. Regardless of the manner the devices are coupled to each other, for various embodiments, inviter device 200, IM provider server 110, relay server 120 and recipient device 150 are equipped to operate in accordance with the at least one IM protocol, if needed. In various embodiments, recipient device 150 may be an inviter device 200 and operate in the role of an inviter to initiate one or more gaming sessions of one or more games. Thus, the terms inviter device and recipient device, as used herein, for the purpose of this specification, including the claims, shall be interpreted with the meaning of of an appropriately equipped device, operating a corresponding one of the inviter or recipient role.
The inviter device 200 also includes a processing unit 210, a display 240 and a memory 250, all interconnected along with the communications interface 230 via a bus 220. The memory 250 generally comprises a random access memory (“RAM”), a read only memory (“ROM”) and a permanent mass storage device, such as a disk drive, flash RAM or the like. The memory 250 stores an operating system 255, an instant messenger 260, a game 265 and game catalog manager (“GCM”) 275. In alternate embodiments, bus 220 may be an hierarchy of bridged buses. While for ease of understanding, operating system 255, instant messenger 260, game 265 and GCM 275 are illustrated as separate software components, in alternate embodiments, they may be comprised of multiple software components, implemented in hardware, or may be subparts of one or more integrated software components.
The GCM is adapted to present a list of games for a user of the inviter device 200 to choose from (e.g. in a hierarchical or otherwise arranged fashion). In various embodiments, GCM may be embedded into the instant messenger 260, via a plug-in interface, or may be a separate component external to the instant messenger 260. One embodiment utilizes a GCM that is an active program that runs on the inviter device 200, while in an alternate embodiment the GCM may comprise a static collection of links provided by a remote computer or the like.
It will be appreciated that the software components may be loaded from a computer readable medium into memory 250 of the inviter device 200 using a mechanism (not shown) associated with the computer readable medium such as a floppy, tape, DVD (Digital Versatile Disk)/CD (Compact Disk)-ROM drive, flash RAM or communications interface 230. In various embodiments, the loading may be performed during the manufacturing of device 200, or in the field. In other embodiments, the software components may be downloaded from one or more networked servers.
In various embodiments, the communications interface 230 may facilitate the connection of remote devices to the inviter device 200. For example, devices for reading and/or writing in machine readable media, digital cameras, printers, digital music players/recorders (such as MP3 players, etc.), Smart appliances, televisions, and the like. Various input mechanisms may also be coupled to the inviter device 200, such as, for example, keyboards and/or mice (not shown).
In embodiments of the present invention the inviter device 200 initiates a gaming session at the inviter device 200 but “invites” (e.g., sends an IM message to) a recipient device 150 to participate in the gaming session.
The link can be a uniform resource locator (“URL”) pointing to the location of the game with the parameters necessary to launch the game (e.g., session ID as described below). A similar link may be used to launch the game on the inviter device 200, potentially with additional parameters (e.g. that this game client instance will be the host). In both situations, this means that the game 265 does not necessarily need to be installed on either the recipient device 150 or inviter device 200 before the invitation is composed and sent. Also, the fact that the link is a URL means that the invitation does not need to be distinctly supported by the IM protocol used by the instant messenger 260 and IM provider server 110.
Meanwhile, at the recipient device 150, the game invitation link is accepted 325 and in due course, the game is launched 330 on one or both of devices 150 and 200. With one or both the inviter device 200 and the recipient device 150 executing the game, the recipient device 150 and the inviter device 200 exchange game event data 335 to commence and play the gaming session.
In various embodiments, the communications described above and shown in
In various embodiments, the communications are performed using an IM protocol. In other embodiments, different transmission protocols for gaming sessions may be employed. The exact type of gaming protocol employed is not significant to embodiment of the invention.
In general, the various embodiments, the invitation link contains the information necessary to connect players before any game clients are launched. This may be accomplished by two separate but similar ideas: the earlier described session ID and the reservation ID. The choice between the two may be determined by the network topology a given game uses. The session ID may be used for games where players connect to each other in a peer-to-peer fashion, as described earlier. In particular, the inviter device 200 could be the host and the recipient device 150 would connect directly to the host. The reservation ID may be used if a Relay Server 120 (see
The generation of the two ID types may follow industry standard practices, as long as they were unique for the participants of the IM conversation. One method for generating IDs is to take the IM screen name (assumed to be unique) of the inviter and append a random number (e.g. “Joe9375873934”). Another method is to generate a GUID (Globally Unique Identifier), using well-known algorithms. The location of ID generation may be determined by whether the GCM is an active program that runs on the inviter device or not. If so, the appropriate ID would be generated on demand when the user selects a game to play. If the GCM is a collection of static links provided by a web server, the IDs would be generated beforehand while creating the GCM itself.
In accordance with the above-described peer-to-peer communications between an inviter device 200 and a recipient device 150,
In various embodiments, e.g. where game play requires multiple players, the game play may be suspended until the recipient joins the gaming session. Accordingly, in decision block 430, processing loops in a waiting period until it is determined that game data has been received from at least sufficient number of the recipient devices 150 in response to the sent invitation(s) for the game to commence. Once decision block 430 determines that “sufficient” game data has been received from the required number of recipients (which may be zero or more), processing proceeds to block 435 where inviter device 200 responds and game play commences. Decision black 440 determines if game play (and the game) is still active and if so, continues the game play process by cycling back to decision black 430. Once decision black 440 determines that game play is no longer active, then the gaming session may end at block 445.
In alternate embodiments, the inviter device's address (e.g., Internet Protocol address) might not be available in a reliable fashion for peer-to-peer games (e.g. the user is behind a network address translation [“NAT”] device). Accordingly, in one embodiment, session IDs are then used in conjunction with a Relay Server 120 in order to establish reliable connections between participants. In such an embodiment, the Relay Server may provide two services in order to accomplish this—IP Exchange and Data Relay. The devices (also referred to as Clients in this context) may connect to the Relay Server using standard Internet protocols (e.g. TCP/IP). The IP Exchange may be used for game clients to translate a given session ID into a collection of IP Addresses for all participants. Since the session ID is unique to a given IM Conversation, and reasonably random in generation, only the appropriate clients will have access to these IP Addresses. After the IP Addresses have been exchanged, the clients will attempt to make a direct connection to a designated host. If the connection was not successful, they may rely on the Relay Server to proxy data between the clients. In one embodiment, the Relay Server does not contain any game logic and only ferries the data, ignorant of its meaning. If the GCM 275 is an active application, and can figure out the IP Address of the inviter, that information can be appended to the invitation link. In that case, the relay server 120 would only be used in the case that the clients could not directly connect to the host. The Relay Server and direct connections to the host can be used in combination to transmit data between all participants. Furthermore, even if the relay server 120 is used for an initial connection, in some embodiments, further attempts to connect at a peer-to-peer level may be attempted.
Meanwhile, at the recipient device 150, the game invitation link is accepted 525 and another copy the game may also be optionally launched 530 on the recipient device 150. With one or both the inviter device 200 and the recipient device 150 executing the game, both the recipient device 150 and the inviter device 200 send 535 their user names and session IDs to the relay server 120. The relay server 120 associates 540 all the user names with the same session IDs as part of the same game session. Next, the relay server 120 returns access data 545 (e.g., IP address and connection IDs) along with a list of current user names to each of the inviter device 200 and recipient device(s) 150. The recipient device(s) 150 and inviter device 200 respond with game event data 550 back to the relay server 120 to commence and play the gaming session.
In various embodiments, the communications described above and shown in
In accordance with the above-described communications between an inviter device 200 and a recipient device 150 using a relay server 120,
As described earlier, Central Game Server(s) 130 may be used in the case of games that have true client/server topologies, and game logic is run on the game server to facilitate play. Games of this variety may use reservation IDs for invitations that are sent via an IM Message. The reservation ID provides clients a facility to designate a location to meet “within” the Central Game Server. The clients provide the reservation ID to the central game server when a connection is established. If that reservation ID is currently in use, the Central Game Server 130 will provide all the necessary routing information for the client to navigate to it. If the reservation ID is not currently in use, the central game server will create a new instance of that game and then provide the routing information. This allows the clients to connect in any order and still arrive at the same “location.” In addition, the reservation ID can be queried from the central game server during game play, such that an invitation can be composed while the game is already in progress. Again, the reservation ID is generated in a manner that ensures only participants in the IM conversation should have access to the game instance.
In the central game server embodiment, a reservation ID is sent from the inviter device 200 to the recipient device 150 via an IM message. The game client 265 is launched on both machines with the reservation ID. The reservation ID is sent to the central game server 130 at connect time. The central game server 130 will provide routing information to let the client navigate to the correct game instance. It will also create the game instance as needed. After both clients navigate directly, the central game server 130 will perform game logic and be sending/receiving game play data. The specific communications between the devices are shown in
Meanwhile, at the recipient device 150, the game invitation link is accepted 725 and another “thin client” of the game is launched 730 on recipient device 150. With both the inviter device 200 and the recipient device 150 executing the game, both the recipient device 150 and the inviter device 200 send 735 their user names and reservation IDs to the central game server 130. The central game server 130 associates 740 all the user names with the same reservation IDs as part of the same game session. The central game server 130 also creates 745 (or accesses and existing) game instance corresponding to the reservation ID. Next, the central game server 130 returns 750 access data (e.g., IP address and connection IDs) along with a list of current user names to each of the inviter device 200 and recipient device(s) 150. The recipient device(s) 150 and inviter device 200 respond with game event data 755 back to the central game server 130 to commence and play the gaming session.
In various embodiments, the communications described above and shown in
When the inviter device 200 and all recipient devices 150 connect to the central game server 130 as clients, they would communicate a reservation ID from the invitation link, and the central game server 130 would direct them to a specific instance of the game hosted at the central game server 130. These reservation IDs can be generated before the games 265 have been launched, or even installed. While an existing game 265 is in progress, the appropriate reservation ID would be queried from the game instance and included in an invitation link.
In accordance with the above-described communications between an inviter device 200 and a recipient device 150 having a central game server 130 hosted gaming session,
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art and others, that a wide variety of alternate and/or equivalent implementations may be substituted for the specific embodiment shown in the described without departing from the scope of the present invention. For example, while illustrative linear on-line gaming sessions have been described above; in various embodiments more complex games having multiple threads and flows of operation may be implemented. This application is intended to cover any adaptations or variations of the embodiment discussed herein. Therefore, it is manifested and intended that the invention be limited only by the claims and the equivalence thereof.