Patent Description:
Many computer games (including games created for personal computers and for gaming consoles) support some form of multiplayer gaming. Early in the history of gaming, multiplayer gaming was in the form of local multiplayer, in which a single copy of a game would receive inputs from multiple users and provide multiplayer features to those multiple users. For many games, these multiplayer features included a "split-screen" mode, in which a single copy or instance of a game would split a display presentation into a grid (e.g., rows and/or columns), with each portion of the grid being dedicated to facilitating a different user's perspective within a local multiplayer game session. Later, as personal computers and gaming consoles gained networking support, remote (i.e., network-based) multiplayer gaming experiences were created, in which different instances of a game would execute at different network-connected computing devices and cooperate to provide a single multiplayer game session to users at the different network-connected computing devices. Some games supported blended local and remote multiplayer experiences, in which at least one of the network-connected computing devices presented a split-screen experience to two or more users at that computing device, but also participated in a remote multiplayer game session with remote users.

As games became more complex, they became increasingly demanding on computing resources-with many game developers aiming to push the limits of available computing hardware with their new game releases. As a result, available computing hardware was unable to support "split screen" multiplayer modes for many games. For example, while available computing devices possessed sufficient processing and memory resources to support a single perspective of a multiplayer game session, those processing and memory resources were insufficient to simultaneously support multiple perspectives of the multiplayer game session. As a result, over time, many game developers ceased implementing local split-screen multiplayer support in new game releases, while focusing on implementing remote multiplayer support (where each computing device only needed to support a single perspective of a multiplayer game session). As a result, many games developed in recent years include remote multiplayer support, but lack local multiplayer support. <CIT> describes a method for gaming. The method includes assigning a default game play profile to a user, wherein the default game play profile includes a default game play style that simulates human game play, and wherein the default game play profile is configured to control game play for the user based on the default game play style. The method includes monitoring a plurality of game plays of the user playing a plurality of gaming applications. The method includes generating a user game play profile of the user by adjusting the default game play style based on the plurality of game plays, wherein the user game play profile incudes a user game play style customized to the user. The method includes controlling an instance of a first gaming application based on the user game play style of the user game play profile. <CIT> describes Techniques for state-based provisioning of image data streams are described herein. In some examples, a plurality of image data streams, such as video streams, may be captured from one or more electronically presented content items. Upon being captured, the image data streams may be transmitted to an image data streaming service, such as a video streaming service, for transmission to spectators or other viewers. In addition to the image data, state data associated with the image data streams may also be transmitted to the image data streaming service. The state data may include information that describes the contents of the image data streams. In some examples, the image data streaming service may use the state data to provision the image data streams, for example to determine one or more image data streams that match a viewer's interest and to transmit those streams to the viewer.

<FIG> illustrates an example computer architecture <NUM> that facilitates presenting a local multiplayer experience to co-located users, for a multiplayer game that may lack local multiplayer support. As shown, computer architecture <NUM> comprises a computer system <NUM>. In some embodiments, the computer system <NUM> is a special-purpose gaming console, while in other embodiments the computer system <NUM> is a more general purpose personal computer. In general, and as will be described, the computer system <NUM> is configured to provide a split-screen local multiplayer experience to a plurality of co-located users of the computer system <NUM>, using remote multiplayer support of a multiplayer game which may lack local multiplayer support.

As used herein, the term "local" means isolated to a given computing device (and its directly-connected peripherals). The term "local multiplayer experience" refers to a multiplayer experience provided to a plurality of co-located users of a single computing device, such as the computer system <NUM>, including a split-screen local multiplayer game session. The term "local multiplayer support" refers to game feature(s) that implement a local multiplayer experience, thereby enabling a single copy of a game that executes at a single computing device to provide a local multiplayer game session to a plurality of co-located users.

As used herein, the term "remote" means remote from a given computing device (e.g., the computer system <NUM>) over one or more networks, such as one or more Personal Area Networks (PANs), one or more Local Area Networks (LANs), one or more Wide Area Networks (WANs) such as the Internet, etc. The term "remote multiplayer experience" refers to a multiplayer experience provided to a plurality of users by a plurality of network-connected computing devices, such as remote multiplayer game session in which each user is presented a single perspective of the multiplayer game session by a different one of the plurality of network-connected computing devices. The term "remote multiplayer support" refers to game feature(s) that implement a remote multiplayer experience, thereby enabling a copy of a game that executes at a given computing device to provide one perspective of a multiplayer game session to one user, while also communicating over one or more networks with one or more other copies of the game that each executes at one or more remote computing devices, and that each provides an additional perspective of the multiplayer game session to an additional user.

As shown, the computer system <NUM> includes one or more processor(s) <NUM>, memory <NUM>, one or more durable storage device(s) <NUM>, and one or more hardware interfaces <NUM>. In embodiments, the processor(s) <NUM> comprises one or more central processing units (CPUs), one or more graphics processing units (GPUs), and the like. In embodiments, durable storage device(s) <NUM> comprise one or more hard disk drives (HDDs), one or more solid-state drives (SSDs), one or more optical media (e.g., CD-ROM, DVD, BLU-RAY, etc.), one or more programmable read-only memory (PROM) chips, and the like. The hardware interfaces <NUM> represent any type of hardware interface used by the computer system <NUM> to interact with peripheral devices and other computer systems, and in embodiments the hardware interfaces <NUM> comprise one or more user I/O interfaces, one or more display interfaces, one or more audio interfaces, one or more network communications interfaces, and the like.

In <FIG>, the computer system <NUM> is communicatively coupled to a display device <NUM>, such as a computer monitor, a television, a projector, and the like. In embodiments, the computer system <NUM> is communicatively coupled to the display device <NUM> using at least one display interface of the hardware interfaces <NUM>. While the display device <NUM> is illustrated as being a peripheral of the computer system <NUM>, in some embodiments the display device <NUM> is integral to the computer system <NUM>; in either case, some embodiments consider the display device <NUM> be a component of the computer system <NUM>.

In <FIG>, the computer system <NUM> is also communicatively coupled to one or more audio devices <NUM> (i.e., audio device 110a to audio device 110n), such as an audio component of display device <NUM>, one or more headsets, a home theater system, and the like. In embodiments, the computer system <NUM> is communicatively coupled to the one or more audio devices <NUM> using at least one audio interface of the hardware interfaces <NUM>. While the audio device(s) <NUM> are illustrated as being peripheral to computer system <NUM>, in some embodiments one or more of the audio devices <NUM> are integral to computer system <NUM>; in either case, some embodiments consider the audio device(s)s <NUM> to be component(s) of computer system <NUM>.

In <FIG>, the computer system <NUM> is also communicatively coupled to a plurality of gaming interface devices <NUM> (i.e., gaming interface device 111a to gaming interface device 111n). In embodiments, the computer system <NUM> is communicatively coupled to the one or more gaming interface devices <NUM> using at least one user I/O interface of the hardware interfaces <NUM>. While the gaming interface devices <NUM> are illustrated as being peripheral to computer system <NUM>, in some embodiments one or more of the gaming interface devices <NUM> are integral to computer system <NUM>; in either case, some embodiments consider the gaming interface devices <NUM> to be component(s) of computer system <NUM>. In embodiments, each gaming interface device <NUM> corresponds to a different human player (i.e., user of the computer system <NUM>). In some embodiments, each gaming interface device <NUM> in <FIG> is a single hardware device, such as a single-component game controller. In other embodiments, each gaming interface device <NUM> in <FIG> is a set of two or more hardware devices that operate to receive input from a single player. In one example, one set of hardware devices comprises a keyboard and a mouse. In another example, one set of hardware devices comprises a multi-component game controller that comprises two or more physically distinct components that operate in concert, such as a separate remote and nunchuck, a separate gamepad and motion sensor, a separate gamepad and optical sensor (or emitter), and the like. Accordingly, any reference to "a" gaming interface device <NUM> or "each" gaming interface device <NUM> can refer to a set of two or more related hardware devices.

As shown, each gaming interface device <NUM> comprises one or more inputs <NUM> (i.e., input(s) 112a in gaming interface device 111a and input(s) 112n in gaming interface device 111n). In embodiments, these input(s) <NUM> comprise hardware input mechanisms (e.g., of a keyboard, a mouse, a gaming controller, and the like). In various examples, the input(s) <NUM> comprise one or more keys, one or more buttons, one or more switches, one or more joysticks, one or more touch-sensitive surfaces, one or more optical sensors, one or more microphones, and the like.

As shown, in some embodiments one or more of the gaming interface devices <NUM> also comprises one or more outputs <NUM> (i.e., output(s) 113a in gaming interface device 111a and output(s) 113n in gaming interface device 111n). In embodiments, these output(s) <NUM> comprise output mechanisms such as one or more haptic feedback devices, one or more light-emitting diodes (LEDs), audio devices (e.g., one or more headphone jacks, one or more wireless audio interfaces, one or more speakers, etc.), and the like. In embodiments, when an output <NUM> comprises an audio output, this output <NUM> is one of the audio device(s) <NUM>.

In embodiments, the durable storage device(s) <NUM> store computer-executable instructions that are executable by at least one of the processor(s) <NUM> to facilitate operation of the computer system <NUM>. Although not illustrated, in embodiments the durable storage device(s) <NUM> store computer-executable instructions corresponding to an operating system (OS), or other instructions (e.g., as part of a BIOS, UEFI, etc.) that are used to boot the computer system <NUM>.

The durable storage device(s) <NUM> are shown as storing a local multiplayer presentation component <NUM> (presentation component <NUM>). In general, the presentation component <NUM> establishes a plurality of game streams, each corresponding to a different instance of a multiplayer game (which includes remote multiplayer support, but which may lack local multiplayer support). Then, in some embodiments, the local presentation component <NUM> generates a new composite stream from the plurality of game streams. In other embodiments, a remote presentation component (e.g., presentation component <NUM>', discussed later) generates the new composite stream and communicates that composite stream to the local presentation component <NUM>, which then presents the remotely-generated composite stream at the display device <NUM>. Whether generated locally or remotely, this new composite stream arranges the individual game streams into a split-screen display format. While presenting this composite stream at the display device <NUM>, the presentation component <NUM> routes user inputs from each of the gaming interface devices <NUM> to an associated game stream. While presenting this composite stream at the display device <NUM>, the presentation component <NUM> also routes audio output from one or more of the game streams to the audio device(s) <NUM>.

In some embodiments, each of the game streams is engaged in a single multiplayer session of the multiplayer game, using the remote multiplayer support of the multiplayer game. As such, the presentation component <NUM> uses the remote multiplayer support of the multiplayer game to present a local split-screen multiplayer experience at the computer system <NUM>-even when the multiplayer game lacks local multiplayer support. In alternate embodiments, at least a first of the game streams is engaged in a multiplayer session of the multiplayer game using local multiplayer support of the multiplayer game, and at least a second of the game streams is engaged in the multiplayer session of the multiplayer game using remote multiplayer support of the multiplayer game. In these alternate embodiments, the presentation component <NUM> uses the remote multiplayer support of the multiplayer game to enable a greater number of co-located players to engage in a local multiplayer experience than is supported by the local multiplayer support of the multiplayer game. In either embodiment, in <FIG>, a local split-screen multiplayer experience is shown on display device <NUM> as a composite stream <NUM>, which includes a plurality of game streams <NUM> (i.e., game stream 116a to game stream 116n) arranged into a composite grid-like pattern. In embodiments, the presentation component <NUM> uses the remote multiplayer support of a game to create or extend a local split-screen multiplayer experience for the game without any modification to the game, itself. As such, the presentation component <NUM> is generically operable with a variety of un-modified multiplayer games, in order to create or extend local split-screen multiplayer experiences for those games.

As mentioned, the presentation component <NUM> establishes a plurality of game streams, each corresponding to a different instance of a multiplayer game. In some embodiments, one or more of these game streams corresponds to one or more game instances executing at the computer system <NUM>; as such, the durable storage device(s) <NUM> are also shown as potentially storing computer-executable instructions and data for at least one copy of a multiplayer game <NUM>, at least one instance of which executes at the computer system <NUM> (e.g., using processor(s) <NUM> and memory <NUM>). In some embodiments, each copy of the multiplayer game <NUM> is restricted (e.g., by licensing) to support execution of only a single running instance, and the durable storage device(s) <NUM> store multiple copies of the multiplayer game <NUM>, which are used to support execution of multiple instances of the multiplayer game <NUM> at the computer system <NUM>. In some embodiments, the multiplayer game <NUM> is remote only, meaning that it includes remote multiplayer support, but lacks local multiplayer support (i.e., the multiplayer game <NUM> is itself incapable providing a local split-screen multiplayer experience).

In additional, or alternative, embodiments, one or more of these game streams corresponds to one or more game instances executing at one or more remote game sources <NUM> (i.e., remote game source 109a to remote game source 109n); thus, <FIG> shows one or more remote game streams <NUM> (i.e., remote game stream 117a to remote game stream 117n) communicated between the computer system <NUM> and the remote game source(s) <NUM>.

<FIG> illustrates additional details of one of the remote game source(s) <NUM>, according to one or more embodiments. As shown, each remote game source <NUM> is a computer system that comprises one or more processor(s) <NUM> (e.g., CPU(s), GPU(s), etc.), memory <NUM>, durable storage device(s) <NUM>, and at least one network communications interface <NUM>. Each remote game source <NUM> can take a variety of forms, such as a gaming console device, a personal computer, or a server (e.g., cloud service computer system).

The durable storage device(s) <NUM> are illustrated as storing a game streamer component <NUM> and one or more copies of the multiplayer game <NUM> (shown as multiplayer game <NUM>') described in connection with <FIG>. The game streamer component <NUM> streams (i.e., over the network communications interface <NUM>) one or more instances of the multiplayer game <NUM> that execute at the remote game source <NUM> (i.e., using the processor(s) <NUM> and the memory <NUM>). In embodiments, this streaming includes exporting a video stream and an audio stream to the network communications interface <NUM>, and receiving user inputs from the network communications interface <NUM>. As shown, in some embodiments, the durable storage device(s) <NUM> also store a local multiplayer presentation component <NUM>'.

(presentation component <NUM>'), which includes a least a portion of the functionality of the presentation component <NUM> of <FIG>. Thus, it will be appreciated that in various embodiments functionality of the presentation component <NUM> is carried out by one, or both, of the presentation component <NUM> at the computer system <NUM> or a presentation component <NUM>' at remote game source(s) <NUM>. As such, any description of presentation component <NUM> is applicable to presentation component <NUM>'.

<FIG> illustrates additional details of the presentation component <NUM>, according to one or more embodiments. As illustrated, the presentation component <NUM> comprises a variety of components (i.e., a game stream manager <NUM>, an inputs/outputs manager <NUM>, an audio manager <NUM>, a multiplayer manager <NUM>, and a game stream presenter <NUM>) that represent functions that the presentation component <NUM> implements in accordance with various embodiments described herein. It will be appreciated that the depicted components-including their identity, sub-components, and arrangement-are presented merely as an aid in describing various embodiments of the presentation component <NUM> described herein, and that these components are non-limiting to how software and/or hardware might implement various embodiments of the presentation component <NUM> described herein, or of the particular functionality thereof.

The game stream manager <NUM> establishes and manages a plurality of game streams, each corresponding to a different instance of the multiplayer game <NUM>. In embodiments, the game stream manager <NUM> establishes one or more local game streams corresponding to one or more instance(s) of the multiplayer game <NUM> executing at the computer system <NUM>. In embodiments, the game stream manager <NUM> additionally, or alternatively, establishes one or more remote game streams <NUM> corresponding to instance(s) of the multiplayer game <NUM> executing at the remote game source(s) <NUM>. In some embodiments, the game stream manager <NUM> at the presentation component <NUM> cooperates with game stream manager(s) <NUM> at one or more remote presentation component(s) <NUM>' to establish and/or manage at least one game stream. In embodiments, each game stream comprises once or more downstream data channels (e.g., game video, game audio, haptic feedback data, etc.), as well as one or more upstream data channels (e.g., user inputs, voice chat data, etc.).

The inputs/outputs manager <NUM> identifies the gaming interface devices <NUM> (e.g., corresponding to each player), and associates each of the gaming interface devices <NUM> with one of plurality of game streams. In some embodiments, the inputs/outputs manager <NUM> maps each gaming interface device <NUM> to a different one of the plurality of game streams, so that there is a <NUM>:<NUM> correspondence between gaming interface devices <NUM> and game streams. In other embodiments, the inputs/outputs manager <NUM> maps two or more gaming interface device <NUM> with a single game stream, so that there is a N:<NUM> correspondence between gaming interface devices <NUM> and game streams (i.e., so that two or more players are associated with a single game stream, or two devices used by a single player are associated with a single game stream, etc.). The inputs/outputs manager <NUM> manages inputs received from the gaming interface devices <NUM> (i.e., input(s) <NUM>) and any outputs sent by a game to the gaming interface devices <NUM> (i.e., output(s) <NUM>). For example, on the identified associations, the an inputs router <NUM> routes any inputs received from each gaming interface device <NUM> to its associated game stream, and an outputs router <NUM> routes any outputs generated by each gaming stream (e.g., LED outputs, rumble pack outputs, etc.) to its associated gaming interface device <NUM>.

The audio manager <NUM> manages output of audio from the plurality of game streams to the audio device(s) <NUM>. As will be appreciated, each game stream would typically have a corresponding audio stream, and thus there are a plurality of audio streams corresponding to the plurality of game streams. The illustrated embodiment of the audio manager <NUM> includes an audio router <NUM> and audio mixer <NUM>, which operate to route and/or mix these audio streams to the audio device(s) <NUM>. In embodiments, the particular manner of this routing/mixing varies depending on a number of available audio device(s) <NUM>, the richness of information available within the audio streams, implementation choices, and the like.

In some configurations, there is a single audio device 110a, such as an audio component of the display device <NUM> or a home theater system. In embodiments, when a single audio device configuration is present, the audio mixer <NUM> mixes the plurality of audio streams together into a combined audio stream, and the audio router <NUM> routes this combined audio stream to the audio device 110a.

In other configurations, there are a plurality of audio devices <NUM>, each corresponding a different player (e.g., as headsets, as audio devices within gaming controllers, etc.). In embodiments, when an audio device is present for each player, the audio router <NUM> associates each audio stream with a different audio device <NUM>, and individually routes those audio streams to their associated audio device <NUM>.

Additional configurations may present a mixed audio environment, in which there are a plurality of audio devices <NUM>, one or more of which is individually associated with a corresponding individual player (e.g., a headset, an audio device within a gaming controller, etc.), and one or more of which is associated with a plurality of players (e.g., an audio component of the display device <NUM>, a home theater system, etc.). In embodiments, when a mixed audio environment is present, the audio router <NUM> and the audio mixer <NUM> operate to route audio that is "common" to the audio streams-such as a music track-to an audio device associated with a plurality of players, and route audio that is "individual" to an appropriate audio device while potentially "subtracting" (i.e., reducing or removing) the common audio.

In one audio mixing and routing example, the audio mixer <NUM> identifies a commonality between a plurality of audio steams, such as a music track played by each of the audio steams. In embodiments, the audio mixer <NUM> subtracts this commonality from an audio stream (if any) that is to be routed by the audio router <NUM> to an audio device associated with an individual player (e.g., a headset, a controller audio device, etc.), but preserves this commonality in an audio stream that is to be routed by the audio router <NUM> to an audio device associated with more than one player (e.g., a display device, a home theater system, etc.).

In some embodiments, the audio mixer <NUM> identifies a commonality (e.g., a background music track and/or a menu sound effect) between audio steams, even if that commonality is not actually present among all the audio steams at the same time, or is time-shifted among the audio streams. In one example, the audio mixer <NUM> identifies a music track as being common between audio streams, even if that music track is not synchronized among the audio streams. Thus, in this example, the audio mixer <NUM> can subtract a music track from an audio stream that is routed by the audio router <NUM> to an audio device that is associated an individual player, even when music tracks are not perfectly in sync with a music track being routed by the audio router <NUM> to an audio device associated with more than one player. Additionally, in this example, the audio mixer <NUM> can subtract all but on instance of the commonality from audio streams that are mixed and routed by the audio router <NUM> to an audio device that is associated one or more players. In another example, the audio mixer <NUM> identifies a plurality of different music tracks that can be common between audio streams (e.g., a library of possible music tracks identified using machine learning or other categorization techniques), and performs subtraction even when different music tracks are being played in different audio streams at the same time. Thus, in this example, the audio mixer <NUM> can subtract a first music track from an audio stream that is routed by the audio router <NUM> to an audio device that is associated an individual player, even when the first music track is different from a second music track being routed by the audio router <NUM> to an audio device associated with more than one player. In embodiments, the audio mixer <NUM> identifies a known commonality (e.g., background music, menu sound effect, etc.) with respect to a single audio stream, and applies a subtraction of that commonality to that single audio stream, even when the commonality is not actually present in any other audio stream.

In another audio mixing and routing example (which is combinable with identifying and subtracting commonalities), the audio mixer <NUM> mixes unique audio from audio tracks that are being routed by the audio router <NUM> to an audio device associated with more than one player (e.g., a display device, a home theater system, etc.), without mixing unique audio from audio tracks that are being routed by the audio router <NUM> to audio devices associated with individual players (e.g., a headset, a controller audio device, etc.). Thus, in this example, individual player sound effects for players using a common audio device are mixed, while individual player sound effects for players using personal audio devices are not mixed. In embodiments, the audio manager <NUM> detects one or more "individual" audio device(s) that correspond to individual users, and one or more "common" audio device(s) that correspond to a plurality of users. In examples, the audio manager <NUM> detects a particular audio device <NUM> as being an "individual" audio device when the audio device is an output <NUM> of a gaming interface device <NUM>, when the audio device <NUM> is assigned to either an individual game stream or to an individual user, or when the audio device <NUM> is detected to be a hardware type that typically corresponds to individual use (e.g., a BLUETOOTH headset, a headset attached to a gaming interface device, a personal computing device such as a tablet or mobile phone, and the like). In examples, the audio manager <NUM> detects a particular audio device <NUM> as being a "common" audio device when the audio device is assigned to two or more individual game streams or to two or more users, or when the audio device <NUM> is detected to be a hardware type that could correspond to multi-user use (e.g., a display speaker, a wireless speaker, a home theater receiver, and the like).

In some embodiments, one or both of the audio router <NUM> or the audio mixer <NUM> determine which portion(s) of audio to mix, and/or which portion(s) of audio to route, based on different audio channels in a multi-channel audio stream. In additional, or alternative embodiments one or both of the audio router <NUM> or the audio mixer <NUM> determine which portion(s) of audio to mix, and/or which portion(s) of audio to route, based on identifying particular audio objects in object-based sound formats, such as DOLBY ATMOS and DTS:X, and the like.

In some embodiments, the audio manager <NUM> provides suggested audio settings, such as to mute a music track in all but one game stream, while playing sound effects in the other game streams. For example, <FIG> illustrates an example of providing suggested audio settings, according to one or more embodiments. In particular, <FIG> illustrates an example <NUM> in which a display device <NUM> displays a split-screen local multiplayer presentation that includes four game streams 402a-402d arranged into a grid. In example <NUM>, the display device <NUM> also displays a message dialog <NUM> (e.g., initiated by the audio manager <NUM>) that suggests that the music volume should be muted (<NUM>%) for all but one player, and the sound effects (SFX) volume should be set as desired for each player. In embodiments, the suggestion in the message dialog <NUM> is customized per-game.

In some embodiments, the audio manager <NUM> automatically adjusts audio settings within each of the plurality of game streams. For example, the durable storage device(s) <NUM> in <FIG> are shown as potentially storing game settings <NUM>, while the durable storage device(s) <NUM> in <FIG> are shown as potentially storing game settings <NUM>'. In embodiments the game settings <NUM>/<NUM>' are appliable to the multiplayer game <NUM>, and the audio manager <NUM> automatically adjusts audio settings in one or both of the game settings <NUM>/<NUM>'. In embodiments, the particular audio settings are customized per-game. In some embodiments, a game may obtain audio settings that are stored in association with a user account, and audio manager <NUM> the adjusts audio settings within that user account.

As discussed, the presentation component <NUM> enables a local split-screen multiplayer experience of a multiplayer game by creating a composite view of a plurality of game streams-where each game stream corresponds to a locally or remotely-executing instance of the multiplayer game. In embodiments, this local split-screen multiplayer experience is enabled using remote multiplayer support of the multiplayer game, possibly in combination with local multiplayer support of the multiplayer game. In embodiments, each instance of the multiplayer game is associated with one or more players (e.g., a single player when an instance uses remote multiplayer support, two or more players when an instance uses local multiplayer support, etc.). As such, each game stream is associated with one or more user identifiers, each associated with a different player. In some embodiments, each user identifier corresponds to a different account on one or more gaming services. Additionally, or alternatively, at least one user identifier corresponds to a guest account, such as a temporary account that is derived from a "parent" account on a gaming service. In one example, the same user account (e.g., "USERNAME") is used multiple times across one or more game streams (e.g., as user identifiers USERNAME, USERNAME(<NUM>), USERNAME(<NUM>), and so on).

In some embodiments, individual players using the computer system <NUM> utilize the multiplayer features of the multiplayer game <NUM> to manually join one or both of a multiplayer lobby or a multiplayer game session. In one example, each player uses one of the gaming interface devices <NUM> to input a user identifier (and any additional information, such as a password) for a game stream established by the game stream manager <NUM>, to navigate to a multiplayer lobby of the multiplayer game <NUM>, to search for the other players that will participate in the split-screen local multiplayer experience provided by the presentation component <NUM>, and to initiate a multiplayer game session.

In additional, or alternative, embodiments the multiplayer manager <NUM> facilitates the process of joining players to a multiplayer game session. In some embodiments, the multiplayer manager <NUM> stores user information (e.g., user identifiers, passwords, etc.) for one or more players, and automatically enters this user information for one or more of the game streams established by the game stream manager <NUM>. In additional, or alternative, embodiments the multiplayer manager <NUM> automatically joins players associated with the game streams established by the game stream manager <NUM> into a multiplayer lobby of the multiplayer game <NUM> and/or starts a multiplayer session of the multiplayer game <NUM> with these players.

In one embodiment, the multiplayer manager <NUM> determines which players to join to a multiplayer lobby and/or multiplayer session based on those players having interacted with game streams via the presentation component <NUM> (e.g., by using the gaming interface devices <NUM> to enter their user identifiers/passwords). In another embodiment, the multiplayer manager <NUM> facilitates joining players to a multiplayer lobby and/or multiplayer session based on game instances associated with those player's user identifiers operating on a common network. In one example, one or more multiplayer managers <NUM> operating at one or more remote game source(s) <NUM> ensure that a plurality of instances of the multiplayer game <NUM> operate within a common network by ensuring that they operate on the same LAN segment (e.g., using virtualized networking, VLAN tagging, etc.), that they operate on the same Internet Protocol (IP) subnet, etc. In some embodiments, these instances of the multiplayer game <NUM> then discover one another using local network discovery mechanisms-such as IP broadcast or IP multicast-and use that discovery to join associated players to a multiplayer lobby and/or multiplayer game session. In another embodiment, the multiplayer manager <NUM> uses discovery that multiple instances of the multiplayer game <NUM> are operating on a common network as a hint to automatically join associated users to a multiplayer lobby or game session.

Regardless of whether players are joined manually or automatically, <FIG> illustrates an example of use of remote multiplayer features to create a local multiplayer experience. In particular, <FIG> shows an example <NUM> in which a display device <NUM> displays a split-screen local multiplayer presentation that includes four game streams 502a-502e arranged into a grid, and in which each game stream shows corresponding players joined to a multiplayer lobby.

The game stream presenter <NUM> generates and outputs a composite stream <NUM> for display at the display device <NUM>. In embodiments, the game stream presenter <NUM> generates a composite stream <NUM> that is formatted to be displayed at a single display device (i.e., display device <NUM>), while simultaneously including each of the plurality of game streams. Thus, in embodiments, the game stream presenter <NUM> generates a composite stream <NUM> having a split-screen display format (e.g., by arranging the game streams in a grid-like format). In embodiments, the game stream presenter <NUM> scales one or more of the pixel dimensions (i.e., height and/or width) of the video frames of at least one game stream in order to generate the split-screen display format. In embodiments, this scaling adjusts one or more of a pixel resolution or an aspect ratio of those video frames.

In some embodiments, the game stream presenter <NUM> arranges one or more of the plurality of game streams within the composite stream <NUM> in a manner that is at least partially associated with the physical location(s) of one more of the co-located players (e.g., based on detecting a position of one or more of the gaming interface devices <NUM> acoustically, optically, and/or via radio communications). For example, recent revisions to the BLUETOOTH wireless communications standard provide directional notification for a wireless radio connection. In this example, if one or more of the gaming interface devices <NUM> supports directional notifications under the BLUETOOTH standard, the game stream presenter <NUM> detects a position of these gaming interface device(s) <NUM> (e.g., relative to the computer system <NUM>, relative to the display device <NUM>, relative to one or more other gaming interface device(s) <NUM>, etc.) using radio communications, and determines a placement of game streams corresponding to those gaming interface device(s) <NUM> within the composite stream <NUM> based on these relative position(s). As a simple example, for a 2x2 grid of four game streams each with one corresponding player, the two grid locations located to the left of the screen may be assigned to, and based on, the two players furthest to the left of the display or gaming console (e.g., computer system <NUM>). In yet another example, for a <NUM> wide x <NUM> high grid of twelve game streams each with a corresponding player, the bottom three grid locations may be assigned to, and based on, the three players closest to the display or gaming console (e.g., computer system <NUM>).

In a more particular example, <FIG> illustrates an example <NUM> in which a plurality of players (i.e., User1, User2, User3, and User4) are co-located around computer system <NUM>, with a composite stream being displayed at a display <NUM>. Here, the composite stream includes three game streams 702a-702c. In particular, a first game stream 702a is associated with User1 (e.g., using remote multiplayer features of the multiplayer game <NUM>) and occupies a top-left portion of the display <NUM>, a second game stream 702b is associated with User2 (e.g., using remote multiplayer features of the multiplayer game <NUM>) and occupies a top-right portion of the display <NUM>, and a third game stream 702c is associated with both User3 and User4 (e.g., using both local split-screen multiplayer features and remote multiplayer features of the multiplayer game <NUM>) and occupies a bottom portion of the display <NUM>. In example <NUM>, these game streams 702a-702c are arranged to generally correspond to the physical position of the players relative to the computer system <NUM>.

In another more particular example, <FIG> illustrates an example <NUM> in which a plurality of players (i.e., User1, User2, User3, and User4) are co-located around computer system <NUM>, with a composite stream being displayed at a display <NUM>. Here, the composite stream also includes three game streams 802a-802c. In particular, a first game stream 802a is associated with User1 (e.g., using remote multiplayer features of the multiplayer game <NUM>) and occupies a top-left portion of the display <NUM>, a second game stream 802b is associated with User2 (e.g., using remote multiplayer features of the multiplayer game <NUM>) and occupies a bottom-left portion of the display <NUM>, and a third game stream 802c is associated with both User3 and User4 (e.g., using both local split-screen multiplayer features and remote multiplayer features of the multiplayer game <NUM>) and occupies a right portion of the display <NUM>. In example <NUM>, these game streams 802a-802c are also arranged to generally correspond to the physical position of the players relative to the computer system <NUM>.

The following discussion now refers to a number of methods and method acts. Although the method acts may be discussed in certain orders, or may be illustrated in a flow chart as occurring in a particular order, no particular ordering is required unless specifically stated, or required because an act is dependent on another act being completed prior to the act being performed.

<FIG> illustrates a flow chart of an example method <NUM> for presenting a local multiplayer experience for a multiplayer game. In some embodiments, method <NUM> presents a local multiplayer experience for a multiplayer game that lacks local multiplayer support. In other embodiments, method <NUM> uses a game's remote multiplayer support to increase a number of co-located players that can participate in a local multiplayer experience beyond those supported by the game's local multiplayer support. Method <NUM> will be described with respect to the components and data of computer architecture <NUM>.

Method <NUM> comprises an act <NUM> of establishing a plurality of game streams. In some embodiments, act <NUM> comprises establishing a plurality of game streams, in which each game stream corresponds to a different instance of the multiplayer game. In some embodiments, the multiplayer game includes remote multiplayer support, but lacks local multiplayer support. In other embodiments, the multiplayer game includes both remote multiplayer support and local multiplayer support. In an example, the game stream manager <NUM> at the presentation component <NUM> executing at the computer system <NUM> establishes a plurality of game streams. Each game stream corresponds to a different instance of the multiplayer game <NUM>, which includes remote multiplayer support, but which may lack local multiplayer support.

In some embodiments, these game streams include one more local game streams (i.e., executing at the computer system <NUM>). Thus, in embodiments, at least one of the plurality of game streams corresponds to a particular instance of the multiplayer game that executes at the computer system. In embodiments, including local game stream(s) provides a technical benefit of leveraging local computing resources of the computer system <NUM> for supporting at least one instance of the multiplayer game that is part of a multiplayer game session, and reduces a dependence on remote computing resources and/or use of network resources. In additional, or alternative, embodiments these game streams include one more remote game streams <NUM> executing at one or more of the remote game source(s) <NUM>. Thus, in embodiments, at least one of the plurality of game streams corresponds to a particular instance of the multiplayer game that executes at a remote computer system. In embodiments, this remote computer system is one of a gaming console device, a personal computer, or a cloud service computer system. In embodiments, when the game streams include one or more remote game streams <NUM>, the game stream manager <NUM> at the presentation component <NUM> cooperates with one or more game stream managers at one or more remote presentation components <NUM>'. In embodiments, including remote game stream(s) provides a technical benefit of leveraging remote computing resources for supporting at least one instance of the multiplayer game that is part of the multiplayer game session, and which can reduce a processing load on the computer system <NUM> and enable a number of participants in the multiplayer game session that exceeds a number that the computer system <NUM> could alone support. As described above, in various embodiments, by using the methods described herein, no changes are required at the remote computing system and the local-multiplayer mode is enabled at the local computer system.

After act <NUM>, method <NUM> proceeds to one or more of an act <NUM> of associating a different gaming interface with each game stream, an act <NUM> of associating audio device(s) with the game streams, or an act <NUM> of facilitating joining of users to the game streams. As shown, there is no particular ordering among acts <NUM> to <NUM>. In embodiments, these acts (if present) are performed serially or at least partially in parallel. In some embodiments, one or more of these acts (if present) are performed-at least partially-as part of act <NUM>. For example, the association of a gaming interface device, an audio device, and/or a user identifier with a game stream may be made prior, or during, establishment of the game stream. Acts <NUM> and <NUM> are shown in broken lines, indicating that, in some embodiments, method <NUM> omits one or both of these acts.

In some embodiments, act <NUM> comprises identifying a plurality of gaming interface devices connected to the one or more user I/O interfaces and associating each of the plurality of gaming interface devices with a different game stream of the plurality of game streams. In an example, the inputs/outputs manager <NUM> identifies each of the gaming interface devices <NUM>, and forms a mapping or association between those gaming interface devices <NUM> and the game streams established in act <NUM>. In embodiments, there is a <NUM>:<NUM> mapping between the gaming interface devices <NUM> and the game streams, such that each gaming interface device <NUM> is uniquely mapped to a different game stream. In some embodiments, N:<NUM> mappings between the gaming interface devices <NUM> and the game streams are supported, such that two or more gaming interface device <NUM> are mapped to at least one game stream. In embodiments, identifying gaming interface devices and mapping those gaming interface devices with game streams provides a technical benefit of enabling the routing of user inputs to each of the plurality of game streams, whether those game streams are provided locally or remotely. In embodiments, a technical benefit includes increasing the number of gaming interface devices <NUM> that a single user may use for their associated game stream.

In some embodiments, act <NUM> comprises identifying one or more audio devices connected to the one or more audio interfaces, and associating each of the one or more audio devices with one or more game streams of the plurality of game streams. In an example, the audio manager <NUM> identifies each of the audio device(s) <NUM>, and forms a mapping or association between those audio devices <NUM> and the game streams established in act <NUM>. In embodiments, there is a <NUM>:<NUM> mapping between the audio devices <NUM> and the game streams, such that each audio device <NUM> is uniquely mapped to a different game stream. In some embodiments, N:<NUM> mappings between the audio devices <NUM> and the game streams are supported, such that two or more audio devices <NUM> are mapped to at least one single game stream (e.g., when the game steam utilizes local multiplayer support, such that two or more players having individual audio devices are associated with the game stream). In some embodiments, <NUM>:M mappings between the audio devices <NUM> and the game streams are supported, such that a single audio device <NUM> is mapped to two or more game streams (e.g., when the audio device is a common audio device). Notably, in some embodiments act <NUM> is omitted, and all game streams are routed to the same default audio device (e.g., an audio component of the display device <NUM>, a home theater system, etc.) without forming an active mapping or association. In embodiments, identifying audio devices and mapping those audio devices with game streams provides a technical benefit of enabling the routing of audio output from the game streams to appropriate audio devices, whether those game streams are provided locally or remotely.

Although not shown, in some embodiments method <NUM> comprises providing a display of suggested audio settings. For example, <FIG> illustrated an example <NUM> in which the audio manager <NUM> caused a display device <NUM> to display a message dialog <NUM> that suggests that the music volume for a particular game should be muted (<NUM>%) for all but one player, and the SFX volume for the game should be set as desired for each player. In embodiments, providing a display of suggested audio settings provides a technical benefit of enabling the use of audio settings that result in a clear presentation of audio generated by the plurality of game streams.

Although not shown, in some embodiments method <NUM> comprises modifying a game settings file for at least one instance of the multiplayer game in order to adjust audio settings for the at least one instance of the multiplayer game. In an example, the audio manager <NUM> adjusts audio settings on one or both of the game settings <NUM> at the computer system <NUM> or the game setting(s) <NUM>' at the remote game source(s) <NUM>. In embodiments, modifying a game settings file in order to adjust audio settings provides a technical benefit of enabling the use of audio settings that result in a clear presentation of audio generated by the plurality of game streams.

As discussed, method <NUM> may include an act <NUM> of facilitating joining of users to the game streams. Whether act <NUM> is present or omitted, in embodiments each game stream established in act <NUM> corresponds to a different user identifier of a plurality of user identifiers, and each of the plurality of user identifiers is joined to a single multiplayer session of the multiplayer game using the remote multiplayer support of the multiplayer game.

In some embodiments, act <NUM> is omitted and the association of user identifiers to game streams, as well as the joining to the single multiplayer session, is performed manually by players. For example, the players use the gaming interface devices <NUM> to navigate and utilize the remote multiplayer features of the multiplayer game <NUM>.

In some embodiments, act <NUM> is present and act <NUM> comprises the computer system facilitating joining of the plurality of user identifiers to the single multiplayer session of the multiplayer game using the remote multiplayer support of the multiplayer game. In an example, the multiplayer manager <NUM> at the presentation component <NUM> determines which user identifiers to join to a multiplayer lobby and/or multiplayer session based on those user identifiers having been entered via the presentation component <NUM>. In additional, or alternative, embodiments a cloud service computer system (e.g., one of the remote game source(s) <NUM>) facilitates joining of the plurality of user identifiers to the single multiplayer session of the multiplayer game using the remote multiplayer support of the multiplayer game.

In embodiments, facilitating joining of the plurality of user identifiers to the single multiplayer session of the multiplayer game using the remote multiplayer support of the multiplayer game comprises automatically joining the plurality of user identifiers to at least one of a multiplayer lobby of the multiplayer game or the single multiplayer session of the multiplayer game. In one example, the presentation component <NUM> uses remote multiplayer support of the multiplayer game <NUM> to automatically join players to a multiplayer game lobby or game session.

In some embodiments, facilitating joining of the plurality of user identifiers to the single multiplayer session of the multiplayer game using the remote multiplayer support of the multiplayer game comprises identifying an association between the plurality of user identifiers based on each of the plurality of user identifiers as being identified by a component that establishes the plurality of game streams, such as by one or more of the presentation component <NUM> at the computer system <NUM> or by a presentation component <NUM>' at one of the remote game source(s) <NUM>.

In some embodiments, facilitating joining of the plurality of user identifiers to the single multiplayer session of the multiplayer game using the remote multiplayer support of the multiplayer game comprises identifying an association between the plurality of user identifiers based on each of the plurality of user identifiers as being associated with a common network. For example, as discussed, in some embodiments one or more multiplayer managers <NUM> operating at one or more remote game source(s) <NUM> ensure that a plurality of instances of the multiplayer game <NUM> operate within a common network by ensuring that they operate on the same LAN segment (e.g., using virtualize networking, VLAN tagging, etc.), that they operate on the same Internet Protocol (IP) subnet, etc. Thus, user identifiers associated with these game instances are also associated with this common network, and in embodiments these associations are used as a hint for joining users to a multiplayer lobby or multiplayer game session.

In embodiments, facilitating joining of users to the game streams, in whatever form that facilitation takes, provides a technical benefit of streamlining the process of utilizing multiplayer game features (for example, reducing the time taken, reducing the likelihood of errors, having corresponding reduced power utilization, reduced CPU usage, reduced network bandwidth consumption, and/or reduced memory usage).

Method <NUM> also comprises an act <NUM> of outputting a composite stream of the game streams. In some embodiments, act <NUM> comprises outputting, to the display interface, a composite stream of the plurality of game streams. In an example, the game stream presenter <NUM> generates the composite stream <NUM>, and outputs it to the display device <NUM>.

As shown, act <NUM> comprises one or more an act <NUM> of simultaneously presenting the game streams in a split-screen format, an act <NUM> of routing inputs from the gaming interface devices to associated game streams, or an act <NUM> of routing audio to associated audio device(s). As shown, there is no particular ordering among acts <NUM> to <NUM>. In embodiments these acts (if present) are performed serially or at least partially in parallel. Act <NUM> is shown in broken lines, indicating that, in some embodiments, method <NUM> omits act <NUM>.

In some embodiments, act <NUM> comprises, outputting the composite stream of the plurality of game streams, which includes each of the plurality of game streams in a split-screen display format for display at a single display device. In an example, the composite stream <NUM> displayed in <FIG> simultaneously shows two (or more) game streams <NUM> displayed side-by side in a single-row grid. <FIG> and <FIG>, on the other hand, each simultaneously show four game streams (i.e., 402a-402d and 502a-502d) in a two-by-two grid. Notably, embodiments include any type of split-screen layout that simultaneously shows the plurality of game streams, and are not limited to the examples shown. In embodiments, outputting a composite stream of the game streams provides a technical benefit of enabling a simultaneous display of each of the game streams, whether those game streams are provided locally or remotely.

In embodiments, when the game stream presenter <NUM> generates the composite stream <NUM>, the game stream presenter <NUM> alters a size, resolution, aspect, etc. of one or more of the game streams. Thus, in embodiments, outputting the composite stream of the plurality of game streams comprises scaling one or more pixel dimensions of a plurality of frames of at least one of the plurality of game streams to fit the plurality of frames within a portion of the split-screen display format. In embodiments, altering a size, resolution, aspect, etc. of one or more of the game streams provides a technical benefit of ensuring that each game stream can simultaneously fit on a single display device. In various examples, the altering of a size, resolution, aspect, etc. may be performed in different ways for different ones of the plurality of game streams, for example, such that one game stream is scaled by a different amount to another game stream. This addresses a conflict in technical requirements: displaying an enlarged portion of an image for one user whilst maintaining an overview of a larger zone of interest for another user. In various examples, the game stream presenter <NUM> may generate a composite stream with different size portions of the overall display area being utilized for different ones of the plurality of game streams, to further address the conflict in technical requirements.

In some embodiments, act <NUM> comprises, while outputting the composite stream of the plurality of game streams, causing one or more input signals received from each of the plurality of gaming interface devices to be routed to its associated game stream. In an example, the inputs router <NUM> utilizes the associations made in act <NUM> to route the input(s) <NUM> of each gaming interface device <NUM> to an associated game stream. In embodiments, causing one or more input signals received from each of the plurality of gaming interface devices to be routed to its associated game stream provides a technical benefit of enabling players to interact with the game streams, whether those game streams are provided locally or remotely. In embodiments, when a game stream is provided remotely, a remote computing system does not need any adaptation as a consequence of this routing by the local computing device, and there is thus no additional overhead on the remote computing system as a result of having inputs for multiple game streams.

In some embodiments, act <NUM> comprises, while outputting the presentation of the plurality of game streams, outputting to the one or more audio interfaces, at least a portion of an audio stream of a plurality of audio streams, each audio stream of the plurality of audio streams corresponding to a single game stream. Notably, in some embodiments act <NUM> is omitted, and all audio streams are routed to the same default audio device (e.g., an audio component of the display device <NUM>, a home theater system, etc.) irrespective of an active mapping or association. In embodiments, outputting at least a portion of an audio stream to the one or more audio interfaces provides a technical benefit of enabling players to hear audio generated by their corresponding game stream, whether their game stream is provided locally or remotely, whilst keeping to a low level the amount of noise caused by the other game streams of the co-located users.

In embodiments, act <NUM> comprises the audio mixer <NUM> mixing portions of two or more audio streams into a single audio stream, for routing by the audio router <NUM> at a "common" audio device(s) <NUM> associated with two or more users (e.g., display audio, a home theater system, etc.). Thus, in embodiments outputting, to the one or more audio interfaces, at least a portion of each of the plurality of audio streams corresponding to the plurality of game streams comprises combining at least a portion of a first of the plurality of audio streams with at least a portion of a second of the plurality of audio streams into a single audio stream. In embodiments, mixing portions of two or more audio streams into a single audio stream provides a technical benefit of enabling use of a single audio device by multiple players.

In embodiments, act <NUM> comprises the audio router <NUM> routing unique portions of two or more audio streams to "individual" audio device(s) <NUM>, each associated with a single user (e.g., an audio headset, controller audio, etc.). Thus, in embodiments outputting, to the one or more audio interfaces, at least a portion of each of the plurality of audio streams corresponding to the plurality of game streams comprises routing at least a first portion of a first of the plurality of audio streams to a first audio output device corresponding to a first user (e.g., because the first audio streams corresponds to a first game stream to which the first user is associated), and routing at least a second portion of a second of the plurality of audio streams to a second audio output device corresponding to a second user (e.g., because the second audio streams corresponds to a second game stream to which the first user is associated). In embodiments, the "individual" audio device(s) <NUM> comprise common device types, such as audio headsets. Thus, in one example, the first audio output device is an audio headset, and the second audio output device is an audio headset. In other embodiments, the "individual" audio device(s) <NUM> comprise a mixture of device types, such as a mixture of audio headsets and controller audio. Thus, in another example the first audio output device is one of the plurality of gaming interface devices, and the second audio output device is one of the plurality of gaming interface devices. In embodiments, routing unique portions of audio streams to "individual" audio devices provides a technical benefit of ensuring that audio reaches an intended user, and a technical benefit of preventing the audio from reaching unintended users, which assists both with privacy and with clarity of the resulting sound, thereby making the sound more easily heard and understood.

In embodiments, act <NUM> comprises identifying a commonality between audio streams (even if time shifted), and subtracting (i.e., reducing or removing) the commonality in audio routed to one or more audio devices. For example, act <NUM> may comprise subtracting music tracks from audio routed to "individual" audio device(s) <NUM>, while retaining it in audio routed to "common" audio device(s) <NUM>. Thus, in embodiments outputting, to the one or more audio interfaces, at least the portion of the audio stream of the plurality of audio streams also includes routing a commonality between the first audio stream and the second audio stream to a third audio output device corresponding to both the first user and the second user, and reducing or removing the commonality from one or both of (i) the first audio stream routed to the first audio output device, or (ii) the second audio stream routed to the second audio output device. In some embodiments, the third audio output device is the same as the first audio output device discussed previously. In embodiments, identifying and subtracting audio commonalities provides a technical benefit of presenting multiple audio streams at a single audio device clearly, by avoiding the duplicate presentation of audio that is present in more than one audio stream.

As discussed, in various embodiments, commonalties are identified based on audio channel (e.g., in multi-channel audio), based on object detection (e.g., in object-based audio), or based on machine learning or pattern detection. Thus, in embodiments, detecting the commonality between the first audio stream and the second audio stream in act <NUM> is based on at least one of identifying an object type in an object-based audio format, identifying an audio channel in a multi-channel audio format, or detecting an audio similarity between the first audio stream and the second audio stream.

Although not shown, act <NUM> can comprise outputting one or more types of output data, generated by a game stream, a gaming interface device <NUM> associated with the game stream in act <NUM>. For example, a game stream may generate one or more light outputs or haptic outputs for an output <NUM> of a game controller. In these embodiments, the presentation component <NUM> routes this output data to an associated gaming interface device <NUM>. Thus, in some embodiments, method <NUM> comprises, while outputting the composite stream of the plurality of game streams, causing one or more haptic output signals received from each of the plurality of game streams to be routed to its associated gaming interface device. In other embodiments, method <NUM> comprises, while outputting the presentation of the plurality of game streams, causing one or more light output signals received from each of the plurality of game streams to be routed to its associated gaming interface device. In embodiments, outputting data generated by a game stream to a gaming interface device provides a technical benefit of enabling a game instance to provide feedback data directly to an appropriate player's gaming interface device.

Accordingly, the embodiments described herein address a technical problem of enabling multiple co-located players to engage in a multiplayer session of a game, even when that game lacks (or has limited) local multiplayer support. These embodiments address this technical problem by establishing multiple separate game streams (at least some of which utilize remote multiplayer support of a multiplayer game to join one or more of those co-located players), generating and presenting a composite stream which includes each of these multiple separate game streams, and appropriately mapping and routing inputs and outputs with respect to those multiple separate game streams. Additionally, by enabling game instances to be streamed from remote computer systems, at least some embodiments herein overcome the technical and hardware limitations that motivated the dropping of support for local split-screen multiplayer experiences games-that is, that a single computer system lacked sufficient processing and memory resources to support the execution and rendering of multiple perspectives of a multiplayer game session.

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 described features or acts described above, or the order of the acts described above.

Embodiments of the present invention may comprise or utilize a special-purpose or general-purpose computer system that includes computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. Such computer-readable media can be any available media that can be accessed by a general-purpose or special-purpose computer system. Computer-readable media that store computer-executable instructions and/or data structures are computer storage media. Computer-readable media that carry computer-executable instructions and/or data structures are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media and transmission media.

Computer storage media are physical storage media that store computer-executable instructions and/or data structures. Physical storage media include computer hardware, such as RAM, ROM, EEPROM, SSDs, flash memory, phase-change memory ("PCM"), optical disk storage, magnetic disk storage or other magnetic storage devices, or any other hardware storage device(s) which can be used to store program code in the form of computer-executable instructions or data structures, which can be accessed and executed by a general-purpose or special-purpose computer system to implement the disclosed functionality of the invention.

Further, upon reaching various computer system components, program code in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a "NIC"), and then eventually transferred to computer system RAM and/or to less volatile computer storage media at a computer system.

Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, pagers, routers, switches, and the like. As such, in a distributed system environment, a computer system may include a plurality of constituent computer systems.

A cloud computing model can be composed of various characteristics, such as on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, and so forth. A cloud computing model may also come in the form of various service models such as, for example, Software as a Service ("SaaS"), Platform as a Service ("PaaS"), and Infrastructure as a Service ("laaS"). The cloud computing model may also be deployed using different deployment models such as private cloud, community cloud, public cloud, hybrid cloud, and so forth.

Claim 1:
A computer system (<NUM>) for presenting a local multiplayer experience for a multiplayer game (<NUM>) that lacks local multiplayer support, comprising:
one or more processors (<NUM>);
one or more user input/output (I/O) interfaces (<NUM>);
a display interface (<NUM>); and
a hardware storage device (<NUM>) that stores computer-executable instructions (<NUM>) that are executable by the processor to cause the computer system to perform at least the following:
establish (<NUM>) a plurality of game streams (<NUM>), in which:
each game stream comprises one or more downstream data channels and one or more upstream data channels,
each game stream corresponds to a different instance of the multiplayer game, which includes remote multiplayer support, but which lacks local multiplayer support, and
each game stream corresponds to a different user identifier of a plurality of user identifiers, each of the plurality of user identifiers being joined to a single multiplayer session of the multiplayer game using the remote multiplayer support of the multiplayer game;
identify a plurality of gaming interface devices (<NUM>) connected to the one or more user I/O interfaces;
associate (<NUM>) each of the plurality of gaming interface devices with a different game stream of the plurality of game streams;
output (<NUM>), to the display interface, a composite stream (<NUM>) of the plurality of game streams that simultaneously includes each of the plurality of game streams in a split-screen display format for display at a single display device (<NUM>); and
while outputting the composite stream of the plurality of game streams, causing one or more input signals received from each of the plurality of gaming interface devices to be routed to its associated game stream and outputs generated by each gaming stream to be routed to its associated gaming interface device.