Software applications, such as first-person shooter (FPS) games, are available for both gaming consoles (e.g., Microsoft Corporation's Xbox 360™) and personal computers (PCs). However, gaming consoles have not been able to communicate across a network connection with PCs. Therefore, for example, gaming consoles have not been able to play online video games with PCs.
Xbox Live™ is an online multiplayer gaming and content delivery system created and operated by Microsoft Corporation. Microsoft's Live Anywhere™ enables a variety of non-Xbox platforms such as a PC and mobile phones to connect to Xbox Live, though with lesser functionality. For example, cross-platform play is not available, such that PC players cannot compete against Xbox 360 players.
A user of a software application (e.g., game or title) running at a gaming console may interact securely in real-time with a user of a compatible software application running at a general purpose computing device, such as a PC. Thus, a game player on the gaming console may play online with a game player on a PC. The gaming console may securely communicate with the general purpose computing device either via a clearinghouse or directly via a local area network (LAN) connection, for example.
The stack and ports are set to accommodate the cross-platform features. Additionally, a secure key exchange is provided, as well as big-endian and little-endian byte ordering.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Typically, a user may possess a number of game titles. The user may load and run an individual game title onto the gaming console 10 to play an online game with other users that have loaded and run the same game title on their respective gaming console or computing device.
The gaming console 10 is desirably a game-specific console, such as Microsoft Corporation's Xbox 360™ for example, and the general purpose computing device 30 is desirably a PC, handheld device, or mobile phone, for example. The clearinghouse 20 may be an online multiplayer gaming and content delivery service or system, for example, such as Xbox Live™. The gaming console 10 and the computing device 30 may each be in communication with the clearinghouse 20 via the internet or another network, for example. It is also contemplated that the computing device 30 may be another type of gaming console, different from the gaming console 10. In this manner, two different types of gaming consoles may communicate with each other.
The clearinghouse 20 desirably has its own network stack protocol that allows for secure internet access. The network stack protocol, described further below, is used by the gaming console 10, and also by the computing device 30, such that the computing device 30 has code that has the same protocol as the clearinghouse 20. The protocol can talk cross-platform between the gaming console 20 and the computing device 30.
It is contemplated that multiple stack protocols (e.g., protocol A 22 and protocol B 23) may be used by the clearinghouse 20. In this manner, the gaming console 10 may communicate with the clearinghouse 20 using a first protocol (e.g., protocol A), and the computing device 30 may communicate with the clearinghouse 20 using a second protocol (e.g., protocol B). The gaming console 10 and the computing device 30 may also communicate directly with each other, e.g., after the clearinghouse 20 initially gets them matched together, using another protocol (e.g., protocol C).
There is a key exchange that includes platform type (e.g., gaming console, PC, etc.) so that trust can be achieved. The platform type may be included in the key exchange message, and may be sent through the clearinghouse 20 which verifies that the device is a gaming console or a PC, for example. Key exchange is described further below.
A LAN connection allows gaming consoles to connect directly to each other without having to go through the clearinghouse. The protocol for establishing the connection is different from establishing a connection to a console via the clearinghouse. Instead of going through the clearinghouse, the console sends a broadcast packet out and awaits a response, for example. Desirably, the broadcast packets are encrypted using a shared key.
Thus, a user of a software application (e.g., game or title) running at the gaming console may interact in real-time with a user of the same software application running at the computing device. As a result, a game player on a gaming console may play online with a game player on a PC.
Although one gaming console 10 and one computing device 30 are shown in
On the general purpose computing device, multiple processes may run simultaneously, such as when multiple dedicated server instances are running, or when a gaming dashboard is running as a separate application. Therefore, each process or application may need its own broadcast port and perhaps a different game data port.
An IP broadcast is transmitted to a specific port of the general purpose computing device, which can be title specific and possibly configured by the user. Thus, each title can default to a port of its choice or could offer the user a choice of port to use.
The port used in the computing device for cross-platform networked game play may be different from the port using on a gaming console. It is contemplated that the port on the gaming console may vary depending on game title or user configuration, for example.
On a gaming console or computing device, cross-platform communication may or may not be allowed by a particular application. A clearinghouse desirably enforces whether or not cross-platform communication is allowed.
Secure key exchange is desirably performed. For embodiments which use a clearinghouse, an example connection protocol desirably requires that all connections between the clients (gaming consoles and general purpose computing devices) require a key exchange. Packets are inspected to determine whether they were from a general purpose computing device. If so, that information is indicated to the clearinghouse or other destination so that it can handle the data differently, if desired.
The game client 400 sends login credentials 405 to the clearinghouse authentication and key servers 420. The clearinghouse authentication and key servers 420 authenticates the client and responds with a clearinghouse ticket 425 and a pointer 427 to the clearinghouse gateway server 430. The game client 400 may then connect to the clearinghouse gateway server 430 to use the clearinghouse services.
The host game client 500 broadcasts an encrypted communication of its existence and availability 505. The game client 550 decrypts the broadcast and responds with an encrypted broadcast to join the game 510. The host game client 500 decrypts and accepts the join request and initiates a unicast key negotiation 515. The game clients 500, 550 desirably unicast with each other 520, encrypting their communications with the negotiated unicast key to carry out the game session. In computer networks, unicast is the sending of information packets to a single destination. Other implementation techniques are contemplated, based, for example, on the protocols that are to be used.
Regarding byte ordering, in computing, endianness is the ordering used to represent some kind of data as a sequence of smaller units. Typical cases are the order in which integer values are stored as bytes in computer memory (relative to a given memory addressing scheme) and the transmission order over a network. Regarding bytes, endianness is also referred to as byte order.
Most computer processors simply store integers as sequences of bytes, so that, conceptually, the encoded value can be obtained by simple concatenation. For an n-byte integer value this allows n! possible representations (one for each byte permutation). The two most common of them are increasing numeric significance with increasing memory addresses, known as little-endian, and its opposite, called big-endian.
All computer architectures are either big-endian or little-endian. Big-endian architectures are found in Microsoft's Xbox 360 and IBM's Power PC, for example. Intel x86 processors (and their clones) use the little-endian format.
As shown in
The personal computer 120 may further include a hard disk drive 127 for reading from and writing to a hard disk (not shown), a magnetic disk drive 128 for reading from or writing to a removable magnetic disk 129, and an optical disk drive 130 for reading from or writing to a removable optical disk 131 such as a CD-ROM or other optical media. The hard disk drive 127, magnetic disk drive 128, and optical disk drive 130 are connected to the system bus 123 by a hard disk drive interface 132, a magnetic disk drive interface 133, and an optical drive interface 134, respectively. The drives and their associated computer-readable media provide non-volatile storage of computer readable instructions, data structures, program modules and other data for the personal computer 120.
Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 129, and a removable optical disk 131, it should be appreciated that other types of computer readable media which can store data that is accessible by a computer may also be used in the exemplary operating environment. Such other types of media include a magnetic cassette, a flash memory card, a digital video disk, a Bernoulli cartridge, a random access memory (RAM), a read-only memory (ROM), and the like.
A number of program modules may be stored on the hard disk, magnetic disk 129, optical disk 131, ROM 124 or RAM 125, including an operating system 135, one or more application programs 136, other program modules 137 and program data 138. A user may enter commands and information into the personal computer 120 through input devices such as a keyboard 140 and pointing device 142. Other input devices (not shown) may include a microphone, joystick, game pad, satellite disk, scanner, or the like. These and other input devices are often connected to the processing unit 121 through a serial port interface 146 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or universal serial bus (USB). A monitor 147 or other type of display device is also connected to the system bus 123 via an interface, such as a video adapter 148. In addition to the monitor 147, a personal computer typically includes other peripheral output devices (not shown), such as speakers and printers. The exemplary system of
The personal computer 120 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 149. The remote computer 149 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 120, although only a memory storage device 150 has been illustrated in
When used in a LAN networking environment, the personal computer 120 is connected to the LAN 151 through a network interface or adapter 153. When used in a WAN networking environment, the personal computer 120 typically includes a modem 154 or other means for establishing communications over the wide area network 152, such as the internet. The modem 154, which may be internal or external, is connected to the system bus 123 via the serial port interface 146. In a networked environment, program modules depicted relative to the personal computer 120, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.