U.S. patent application number 11/717387 was filed with the patent office on 2008-09-18 for secured cross platform networked multiplayer communication and game play.
This patent application is currently assigned to Microsoft Corporation. Invention is credited to Daniel Caiafa, Kareem Ahmad Choudhry, Brian Andrew Moore, Vance O'Neill, Robert Sanfilippo, Martin J. Sleeman.
Application Number | 20080227548 11/717387 |
Document ID | / |
Family ID | 39759908 |
Filed Date | 2008-09-18 |
United States Patent
Application |
20080227548 |
Kind Code |
A1 |
Choudhry; Kareem Ahmad ; et
al. |
September 18, 2008 |
Secured cross platform networked multiplayer communication and game
play
Abstract
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. Thus, a game player on the gaming console may
play online over a secured communication channel with a game player
on a PC, for example.
Inventors: |
Choudhry; Kareem Ahmad;
(Redmond, WA) ; Sleeman; Martin J.; (Redmond,
WA) ; Moore; Brian Andrew; (Sammamish, WA) ;
Sanfilippo; Robert; (Kirkland, WA) ; O'Neill;
Vance; (Redmond, WA) ; Caiafa; Daniel;
(Redmond, WA) |
Correspondence
Address: |
WOODCOCK WASHBURN LLP (MICROSOFT CORPORATION)
CIRA CENTRE, 12TH FLOOR, 2929 ARCH STREET
PHILADELPHIA
PA
19104-2891
US
|
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
39759908 |
Appl. No.: |
11/717387 |
Filed: |
March 13, 2007 |
Current U.S.
Class: |
463/42 |
Current CPC
Class: |
A63F 13/323 20140902;
A63F 2300/532 20130101; H04L 67/12 20130101; A63F 13/34 20140902;
A63F 2300/552 20130101; H04L 63/06 20130101; A63F 13/12 20130101;
A63F 13/71 20140902; H04L 63/08 20130101 |
Class at
Publication: |
463/42 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A cross-platform system, comprising: a first computing device
having a first platform running an application; and a second
computing device having a second platform running the application
and in communication with the first computing device, the second
platform being different from the first platform, wherein the first
computing device and the second computing device are both operable
to interact online in real-time with the application.
2. The system of claim 1, wherein the application is a game
title.
3. The system of claim 1, wherein the first computing device is a
gaming console and the second computing device is a general purpose
computing device.
4. The system of claim 3, wherein the gaming console has a network
stack protocol which is ported to the general purpose computing
device.
5. The system of claim 1, wherein the first computing device and
the second communication device are in communication with each
other directly via a network.
6. The system of claim 1, wherein the first computing device and
the second communication device are in communication with each
other directly via a clearinghouse.
7. The system of claim 6, wherein the clearinghouse comprises a
multiplayer gaming and content delivery service or system.
8. The system of claim 6, wherein the clearinghouse is operable to
verify the type of the first computing device and the type of the
second computing device.
9. A method of cross-platform communication, comprising: a first
computing device having a first platform running an application
connecting to a clearinghouse; and a second computing device having
a second platform running the application connecting to the
clearinghouse, the second platform being different from the first
platform, wherein the first computing device and the second
computing device are both operable to interact online in real-time
with the application.
10. The method of claim 9, further comprising authenticating the
first computing device prior to connecting to the
clearinghouse.
11. The method of claim 10, wherein authenticating the first
computing device comprises: the first computing device logging into
an authentication server and a key server; and providing a
clearinghouse ticket and pointer to the first computing device.
12. The method of claim 11, wherein the connecting is performed
responsive to the clearinghouse ticket and the pointer.
13. The method of claim 9, wherein the application is a game
title.
14. The method of claim 9, wherein the first computing device is a
gaming console and the second computing device is a general purpose
computing device.
15. The method of claim 9, wherein the clearinghouse comprises a
multiplayer gaming and content delivery service or system.
16. A method of cross-platform communication, comprising:
broadcasting an availability request from a first computing device
to a second computing device, the first computing device having a
first platform and the second computing device having a second
platform different from the first platform; directly connecting the
first computing device and the second computing device; and running
an application on the first computing device and the second
computing device such that the first computing device and the
second computing device are both operable to interact online in
real-time with the application.
17. The method of claim 16, wherein the first computing device
transmits a session key to the second computing device prior to
connecting the first computing device and the second computing
device.
18. The method of claim 16, wherein the application is a game
title.
19. The method of claim 16, wherein the first computing device is a
gaming console and the second computing device is a general purpose
computing device.
20. The method of claim 16, wherein the first computing device and
the second computing device unicast with each other.
Description
BACKGROUND
[0001] Software applications, such as first-person shooter (FPS)
games, are available for both gaming consoles (e.g., Microsoft
Corporation's Xbox 360.TM.) 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.
[0002] Xbox Live.TM. is an online multiplayer gaming and content
delivery system created and operated by Microsoft Corporation.
Microsoft's Live Anywhere.TM. 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.
SUMMARY
[0003] 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.
[0004] 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.
[0005] 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 is a block diagram of an exemplary cross-platform
networked system.
[0007] FIG. 2 is a block diagram of another exemplary
cross-platform networked system.
[0008] FIG. 3 is a flow diagram of an example port selection
technique.
[0009] FIG. 4 is a diagram of an example key exchange process for a
clearinghouse embodiment.
[0010] FIG. 5 is a diagram of an example key exchange process for a
LAN embodiment.
[0011] FIG. 6 depicts an exemplary operating environment.
DETAILED DESCRIPTION
[0012] FIG. 1 is a block diagram of an exemplary cross-platform
system in which a gaming console 10 is networked to a general
purpose computing device 30, via a clearinghouse 20. The gaming
console 10 may be any computing device that supports online gaming.
For example, the gaming console 10 may be a personal computer (PC)
loaded with one or more online game titles. The gaming console 10
may be a handheld device, and may be enabled for use with one or
more game titles. A game title may be a discrete application that
may be loaded and run on the gaming console 10.
[0013] 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.
[0014] The gaming console 10 is desirably a game-specific console,
such as Microsoft Corporation's Xbox 360.TM. 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.TM.. 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.
[0015] 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.
[0016] 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).
[0017] 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.
[0018] FIG. 2 is a block diagram of an exemplary system in which a
gaming console 10 is networked to a general purpose computing
device 30, not via a clearinghouse 20 as in FIG. 1, but directly
via a local area network (LAN) connection, for example.
[0019] 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.
[0020] 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.
[0021] Although one gaming console 10 and one computing device 30
are shown in FIGS. 1 and 2, it is contemplated that multiple
consoles 10 and computing devices 30 may be networked together, via
a clearinghouse, LAN, or other means.
[0022] 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.
[0023] 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.
[0024] FIG. 3 is a flow diagram of an example port selection
technique in a LAN connection configuration. At step 200, a game
title or other application is activated on a general purpose
computing device. At step 210, the computing device determines
which port to use. The port may be based on the game title or
application that has been activated, or may be set by a user. At
step 220, the computing device sets the port accordingly.
[0025] 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.
[0026] 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.
[0027] 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.
[0028] FIG. 4 is a diagram of an example key exchange process for a
clearinghouse embodiment, and shows a client 400, such as a game
client, in communication with a clearinghouse authentication and
key servers 420, and a clearinghouse gateway server 430. The
authentication server and the key server may be separate entities
or may be part of the same entity.
[0029] 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.
[0030] FIG. 5 is a diagram of an example key exchange process for a
LAN connection embodiment. FIG. 5 shows a game client 500 that acts
as a host and another game client 550. The clients may be in
communication over a LAN subnet, for example. Additional game
clients are contemplated on the network, although they are not
shown.
[0031] 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.
[0032] 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.
[0033] 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.
[0034] 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.
[0035] FIG. 6 and the following discussion are intended to provide
a brief general description of a suitable computing environment in
which the present invention and/or portions thereof may be
implemented. Although not required, the invention is described in
the general context of computer-executable instructions, such as
program modules, being executed by a computer, such as a client
workstation or a server. Generally, program modules include
routines, programs, objects, components, data structures and the
like that perform particular tasks or implement particular abstract
data types. Moreover, it should be appreciated that the invention
and/or portions thereof may be practiced with other computer system
configurations, including hand-held devices, multi-processor
systems, microprocessor-based or programmable consumer electronics,
network PCs, minicomputers, mainframe computers and the like. The
invention may also be practiced in distributed computing
environments where tasks are performed by remote processing devices
that are linked through a communications network. In a distributed
computing environment, program modules may be located in both local
and remote memory storage devices.
[0036] As shown in FIG. 6, an exemplary general purpose computing
system includes a conventional personal computer 120 or the like,
including a processing unit 121, a system memory 122, and a system
bus 123 that couples various system components including the system
memory to the processing unit 121. The system bus 123 may be any of
several types of bus structures including a memory bus or memory
controller, a peripheral bus, and a local bus using any of a
variety of bus architectures. The system memory includes read-only
memory (ROM) 124 and random access memory (RAM) 125. A basic
input/output system 126 (BIOS), containing the basic routines that
help to transfer information between elements within the personal
computer 120, such as during start-up, is stored in ROM 124.
[0037] 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.
[0038] 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.
[0039] 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 FIG. 6 also includes a host adapter 155, a Small Computer
System Interface (SCSI) bus 156, and an external storage device 162
connected to the SCSI bus 156.
[0040] 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 FIG. 6. The logical connections depicted in
FIG. 6 include a local area network (LAN) 151 and a wide area
network (WAN) 152. Such networking environments are commonplace in
offices, enterprise-wide computer networks, intranets, and the
internet.
[0041] 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.
[0042] 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.
* * * * *