U.S. Pat. No. 11,130,055
SYSTEM AND METHOD FOR GRANTING REMOTE ACCESS TO A VIDEO GAME EXECUTED ON A VIDEO GAME CONSOLE OR NETWORK CLIENT
AssigneeNvidia Corporation
Issue DateApril 28, 2015
Illustrative Figure
Abstract
Systems for granting remote access to, and methods of playing, a video game executing on a video game console coupled to a computer network or video games executing on hosting clients of a computer network. One embodiment of the system includes: (1) a stream distributor configured to receive a video stream conveying a view of a gamespace of the video game from the video game console via the computer network and transmit the video stream toward a remote client via the computer network and (2) a response receiver associated with the stream distributor and configured to receive a response stream from the remote client via the computer network and transmit the response stream toward the video game console.
Description
DETAILED DESCRIPTION As stated above, multi-player video gaming involving a video game hosted on a person's general-purpose computer or video game console has, to this point in time, required the players playing the video game to be physically proximate one another so they could use an input device that was part of the computer or console (“local” to the computer or console). Of course, cloud gaming allows players who are remote to one another to play a game hosted “in the cloud,” but that is of no relevance to the millions of video games hosted on general-purpose computers and video game consoles located in people's homes or businesses. The term, “video game console,” is defined herein as a console machine primarily designed for consumers to use for playing a video game, in which a video game is executed, a gamespace is created and a video signal or visual image is produced to display a view of the gamespace. Because a “video game console” is primarily designed for consumers and for playing video games, commercial arcade machines and general purpose computers, such as personal computers and laptop computers and smartphones, are excluded from the definition. Modern Video game consoles include home video game consoles (that typically allow various video games to be loaded by cartridges or discs), handheld video game consoles and microconsoles (that typically allow various video games to be loaded by wireless connection) and dedicated consoles (that come with one or more preloaded video games and typically do not accommodate additional video games). It is realized herein that many of today's general-purpose computers and video game consoles may be made clients of a computer network, such as the Internet, by a wireline or wireless coupling. However, as those skilled in the pertinent art are aware, this capability has only ...
DETAILED DESCRIPTION
As stated above, multi-player video gaming involving a video game hosted on a person's general-purpose computer or video game console has, to this point in time, required the players playing the video game to be physically proximate one another so they could use an input device that was part of the computer or console (“local” to the computer or console). Of course, cloud gaming allows players who are remote to one another to play a game hosted “in the cloud,” but that is of no relevance to the millions of video games hosted on general-purpose computers and video game consoles located in people's homes or businesses.
The term, “video game console,” is defined herein as a console machine primarily designed for consumers to use for playing a video game, in which a video game is executed, a gamespace is created and a video signal or visual image is produced to display a view of the gamespace. Because a “video game console” is primarily designed for consumers and for playing video games, commercial arcade machines and general purpose computers, such as personal computers and laptop computers and smartphones, are excluded from the definition. Modern Video game consoles include home video game consoles (that typically allow various video games to be loaded by cartridges or discs), handheld video game consoles and microconsoles (that typically allow various video games to be loaded by wireless connection) and dedicated consoles (that come with one or more preloaded video games and typically do not accommodate additional video games).
It is realized herein that many of today's general-purpose computers and video game consoles may be made clients of a computer network, such as the Internet, by a wireline or wireless coupling. However, as those skilled in the pertinent art are aware, this capability has only been exploited to date to enable either: (1) cloud-based gaming or (2) multi-player gaming in which a copy of the same game is hosted on each of the computers or consoles, and the computer network is used to share data or allow the players to communicate with each other.
It is further realized herein that the computer network may be employed to transmit a stream bearing the video output of a general-purpose computer or video game console to one or more remote clients. It is yet further realized that the computer network may be further employed to transmit a stream bearing responses from the one or more remote clients back to the general-purpose computer or video game console. It is yet still further realized that a system to effect such use of a computer network may be embodied in software, firmware or hardware in a general-purpose computer, a video game console, one or more servers in the computer network, or a combination of these. It is still yet further realized that, should the system be embodied in one or more servers, the system may handle video and response streams corresponding to multiple games hosted on multiple corresponding general-purpose computers or video game consoles coupled to the computer network as clients. It is further realized that such server-based system may further serve to coordinate players who are remote from one another, namely to make players aware of opportunities to play games on other players' computers or consoles and allow the players to elect to take advantage of the opportunities.
Accordingly, introduced herein are various embodiments of systems for granting remote access to, and methods of playing, a video game executing on a video game console coupled to a computer network or video games executing on hosting clients of a computer network. In general, the systems and methods make use of a computer network to allow remote players to play computer games without requiring them to be proximate the general-purpose computer or video game console that is hosting the computer game (i.e. within reach of an input device that is part of the computer or console hosting the computer game), also known as “local” to the computer or console.
FIG. 1is a diagram of one embodiment of a computer network including a computer network, i.e. a cloud100, of data processing and storage resources and at least two clients, together with one embodiment of a system for granting remote access to a video game executing on a video game console.FIG. 1shows a video game console110and a remote client120. In the embodiment ofFIG. 1, the video game console110is a video game console. In one embodiment, the remote client120is a general-purpose computer. In another embodiment, the remote client120is a mobile device. In yet another embodiment, the remote client120is another video game console.
The video game console110includes data processing and storage circuitry (not shown) configured to execute video game software (not shown) to bring into being a video game. The data processing and storage circuitry, together with the video game software, is shown inFIG. 1collectively as a game engine130. The video game software configures the game engine130to generate a gamespace within which multiple players play a game. The gamespace may represent, for example, a two-dimensional maze or a three-dimensional landscape. Avatars, which may be characters or objects of various types, populate the gamespace. The multiple players are usually assigned corresponding character avatars and usually interact with each other and the object avatars while playing the video game.
As those skilled in the art understand, the multiple players play the video game by responding to stimuli in the gamespace. Accordingly, the video game console110includes multiple input devices for accepting responses by multiple players. While the input devices are not shown inFIG. 1, they are conventional and may include a keyboard, a mouse, a joystick, a yoke, buttons of various types, switches, pedals, touchscreens or any other conventional input device. Later-developed input devices may also be employed in the video game console110without departing from the scope of the invention.
The video game console110further includes video stream generating hardware (and sometimes also software) (not shown) configured to generate a view of the gamespace that takes the form of a video stream150(i.e. a progressive sequence of video frames at a given frame rate). The frame rate is sufficiently high to make motion appear continuous to humans viewing the video stream150, which those skilled in the pertinent art consider to require at least 16 frames per second. In the embodiment ofFIG. 1, the frame rate is at least 18 frames per second. In various embodiments, the frame rate is about 30 frames per second. An audio stream is typically joined to the video stream150and delivered to a monitor, which may be a computer monitor, a video projector, a television set or other video display in a conventional manner. (The term “video stream” will be used generically herein to encompass not only a video stream that includes an audio stream, but also a video stream that does not include an audio stream.)
The video game console110further includes a system for granting remote access to the video game hosted by the video game console110that takes the form of a remote play engine140. The remote play engine140is generally configured to receive the video stream150, configure the video stream150for transport through the cloud100(typically by encapsulating it in packets according to a standard network protocol) and cause the video stream150to be transmitted toward the remote client120(and, in one embodiment, toward multiple remote clients). The remote play engine140is further generally configured to receive a response stream160from the remote client120via the cloud100, configure the response stream160for delivery to the game engine (typically by removing the response stream160from its packets and otherwise adapting it to cause it to appear to have originated in one of the input devices of the video game console110) and transmit it to the game engine130so the video game may take the responses contained in the response stream160into account.
In the embodiment ofFIG. 1, the remote client120need only receive and render the video stream (together with any audio stream that may be included with it. The remote client120therefore functions as a video player. Input devices (not shown) of the remote client120allow a player using the remote client120to provide responses to the game, which the remote client then provides in the form of the response stream160to the video game console110.
FIG. 2is a block diagram of one embodiment of the remote play engine140ofFIG. 1. The remote play engine140embodiment includes a stream distributor210. The stream distributor210is configured to receive a video stream conveying a view of a gamespace of the video game from the video game console. The stream distributor210is further configured to transmit the video stream toward a remote client (e.g., the remote client120ofFIG. 1) via the computer network (e.g., the cloud100ofFIG. 1) and, in various embodiments, multicast the video stream to further remote clients to enable three or more players to play the video game hosted on the hosted client110.
The remote play engine140embodiment further includes a response receiver220. The response receiver220is associated with the stream distributor210. The response receiver220is configured to receive a response stream from the remote client (e.g., the remote client120ofFIG. 1) via the computer network (e.g., the cloud100ofFIG. 1) and transmit the response stream toward the video game console. In various embodiments, the response receiver is configured to receive multiple response streams from corresponding multiple response clients and transmit them toward the video game console. The game engine130ofFIG. 1ultimately receives the response stream or streams and bases further gameplay on the responses contained therein.
FIG. 3is a diagram of one embodiment of a computer network including a computer network, i.e. a cloud100, of data processing and storage resources and at least two clients, together with one embodiment of a system for granting remote access to video games executing on hosting clients of the computer network.FIG. 3shows a hosting client310and a remote client120. In the embodiment ofFIG. 3, the hosting client310is a general-purpose computer. In another embodiment, the hosting client310is a mobile device. In yet another embodiment, the hosting client310is a video game console. In the embodiment ofFIG. 3, the remote client120is another general-purpose computer. In another embodiment, the remote client120is a mobile device. In yet another embodiment, the remote client120is a video game console.
The hosting client310includes data processing and storage circuitry (not shown) configured to execute software of various kinds, including video game software (not shown) that can bring into being a video game. The data processing and storage circuitry, together with the video game software, is shown inFIG. 3collectively as a game engine330. The video game software configures the game engine330to generate a gamespace within which multiple players play a game.
As with the video game console110ofFIG. 1, the multiple players play the video game by responding to stimuli in the gamespace. Accordingly, the hosting client310includes multiple input devices for accepting responses by multiple players. While the input devices are not shown inFIG. 3, they are conventional and may include a keyboard, a mouse, a joystick, a yoke, buttons of various types, switches, pedals, touchscreens or any other conventional input device. Later-developed input devices may also be employed in the hosting client310without departing from the scope of the invention.
The hosting client310further includes video stream generating hardware (and sometimes also software) (not shown) configured to generate a view of the gamespace that takes the form of a video stream150. As with the embodiment ofFIG. 1, the frame rate is sufficiently high such that a sense of motion is conveyed to a human being viewing the video stream150. In the embodiment ofFIG. 3, the frame rate is at least 18 frames per second. In various embodiments, the frame rate is about 30 frames per second. An audio stream is typically joined to the video stream150and delivered to a monitor, which may be a computer monitor, a video projector, a television set or other video display in a conventional manner.
The hosting client310further includes a portion of a system for granting remote access to the video game hosted by the hosting client310. The portion takes the form of a remote play interface340. The remote play interface340is generally configured to receive the video stream150, configure the video stream150for transport through the cloud100(typically by encapsulating it in packets according to a standard network protocol) and cause the video stream150to be transmitted toward a remote play server350. The remote play interface340is further generally configured to receive a response stream160from the remote play server350via the cloud100and configure the response stream160for delivery to the game engine (typically by removing the response stream160from its packets and otherwise adapting it to cause it to appear to have originated in one of the input devices of the hosting client310) and transmit it to the game engine330so the video game may take the responses contained in the response stream160into account.
The remote play server350is generally configured to receive the video stream150from the hosting client310and other video streams from other hosting clients (not shown), cause the video stream150to be transmitted toward the remote client120and cause the other video streams to be transmitted toward other remote clients (not shown). The remote play server350is further generally configured to receive the response stream160from the remote client120and other response streams from other remote clients (not shown), cause the response stream160to be transmitted toward the hosting client310and cause the other response streams to be transmitted toward other hosting clients (not shown).
As with the embodiment ofFIG. 1, the remote client120need only receive and render the video stream150(together with any audio stream that may be included with it. The remote client120therefore functions as a video player. Input devices (not shown) of the remote client120allow a player using the remote client120to provide responses to the game, which the remote client then provides in the form of the response stream160to the hosting client310.
FIG. 4is a block diagram of one embodiment of the remote play server350ofFIG. 3. The remote play server320embodiment includes a stream distributor410. The stream distributor410is configured to receive a video stream conveying a view of gamespaces of video games from multiple video game consoles. The stream distributor410is further configured to transmit the video streams toward remote clients (e.g., the remote client120ofFIG. 1) via the computer network (e.g., the cloud100ofFIG. 1), which may involve unicasting of video streams to single remote clients or multicasting video streams to multiple remote clients, depending upon the number of remote players playing each game.
The remote play server320embodiment further includes a response receiver420. The response receiver420is associated with the stream distributor410. The response receiver420is configured to receive a response stream from the remote client (e.g., the remote client120ofFIG. 1) via the computer network (e.g., the cloud100ofFIG. 1) and transmit the response stream toward the video game console. In various embodiments, the response receiver is configured to receive multiple response streams from corresponding multiple response clients and transmit them toward the video game console. The game engine130ofFIG. 1ultimately receives the response stream or streams and bases further gameplay on the responses contained therein.
The remote play server320embodiment further includes a remote play coordinator430. The remote play coordinator430is associated with the stream distributor410and the response receiver420. The remote play coordinator430is configured to transmit data regarding opportunities to play the video games toward remote clients. The remote play coordinator430is further configured to receive data from the remote clients indicating elections to play the video games.
In one embodiment, the remote play server320may function as follows. Various candidate players associated with various remote clients browse the remote play server320, where they are presented with a list of games they can play on various hosting systems (i.e. opportunities). The candidate players indicate their desire to play particular games (i.e. elections), whereupon the remote play server320causes the stream distributor410to route video streams corresponding to the selected games to the appropriate remote clients, and further causes the response receiver420to route response streams of the remote clients to the appropriate hosting clients.
FIG. 5is a flow diagram of one embodiment of a method of playing a video game on a video game console. The method begins in a start step510. In a step520, a video stream conveying a view of a gamespace of the video game is received from the video game console into at least one server in the computer network. In a step530, the video stream is transmitted from the at least one server toward a remote client via the computer network. In a step540, a response stream is received into the at least one server from the remote client via the computer network. In a step550, the response stream is transmitted from the at least one server toward the video game console. The method ends in an end step560.
FIG. 6is a flow diagram of one embodiment of a method of playing video games on hosting clients of a computer network. The method begins in a start step610. In a step620, data regarding opportunities to play the video games is transmitted toward remote clients. In a step630, data is received from the remote clients indicating elections to play the video games. In a step640, video streams conveying views of gamespaces of the video games are received from hosting clients via the computer network. In a step650, the video streams are transmitted toward the remote clients via the computer network. In a step660, response streams are received from the remote clients via the computer network. In a step670, the response streams are transmitted toward the hosting clients. The method ends in an end step680.
Those skilled in the pertinent art should understand that multi-player games need not be modified to operate with the systems and methods described herein. Therefore, games that are conventional and later-developed for general-purpose computers, mobile devices and video game consoles are fully qualified to take advantage of the capabilities described herein as they are.
Those skilled in the art to which this application relates will appreciate that other and further additions, deletions, substitutions and modifications may be made to the described embodiments.
Claims
- A method of multiplayer gaming over a computer network, the method comprising: receiving, by a hosting client, input provided from multiple remote clients to a remote play coordinator of a remote play server, the input being transmitted to the hosting client from the remote play coordinator, wherein: the hosting client and multiple remote clients are playing the same game;the remote play coordinator is connected to the multiple remote clients and the hosting client via the computer network;and the computer network comprises the Internet;generating, by a game engine of the hosting client, a video stream conveying a gamespace for the game responsive to the input from the multiple remote clients;unicasting or multicasting via the computer network, depending on a number of remote clients providing input to the remote play coordinator, the video stream from the hosting client by a stream distributor of the remote play server to the multiple remote clients;and receiving by the hosting client via the computer network, a response stream from a response receiver of the remote play server, the response stream comprising responses from the multiple remote clients.
- The method of claim 1 , wherein: the input from the multiple remote clients received by the hosting client from the remote play coordinator is received by a remote play interface of the hosting client;and the response streams received by the hosting client from the response receiver are received by the remote play interface of the hosting client.
- The method of claim 1 wherein the stream distributor and response receiver are embodied in the hosting client.
- The method of claim 1 wherein each of the multiple remote clients are assigned a corresponding avatar and each of the multiple remote clients interact with avatars of others of the multiple remote clients while playing the video game.
- The method of claim 1 wherein the multiple remote clients are selected from the group consisting of: a general purpose computer, a mobile device, and a video game console.
- The method of claim 1 wherein the hosting client is selected from the group consisting of: a general purpose computer, a mobile device, and a video game console.
- The method of claim 1 wherein the video stream has a frame rate of at least 18 frames per second.
- A system for multiplayer gaming over a computer network, the system comprising: a hosting client;multiple remote clients;and a remote play server connected to the hosting client and the multiple remote clients over the computer network, wherein: the computer network comprises the Internet;the hosting client receives input provided from the multiple remote clients to a remote play coordinator of the remote play server, the input being transmitted to the hosting client from the remote play coordinator;the hosting client and multiple remote clients are playing the same game;a game engine of the hosting client generates a video stream conveying a gamespace for the game responsive to the input from the multiple remote clients;the video stream generated by the hosting client is unicasted or multicasted, depending on a number of remote clients providing input to the remote play coordinator, from a stream distributor of the remote play server, via the computer network to the multiple remote clients;and the hosting client, via the computer network, receives a response stream from a response receiver of the remote play server, the response stream comprising responses from the multiple remote clients.
- The system of claim 8 wherein: the input from the multiple remote clients received by the host client from the remote play coordinator is received by a remote play interface of the hosting client;and the response streams received by the host client from the response receiver are received by the remote play interface of the hosting client.
- The system of claim 8 wherein the stream distributor and response receiver are embodied in the hosting client.
- The method of claim 1 wherein each of the multiple remote clients are assigned a corresponding avatar and each of the multiple remote clients interact with avatars of others of the multiple remote clients while playing the video game.
- The system of claim 8 wherein the multiple remote clients are selected from the group consisting of: a general purpose computer, a mobile device, and a video game console.
- The system of claim 8 wherein the hosting client is selected from the group consisting of: a general purpose computer, a mobile device, and a video game console.
- The system of claim 8 wherein the video stream has a frame rate of at least 18 frames per second.
Disclaimer: Data collected from the USPTO and may be malformed, incomplete, and/or otherwise inaccurate.