User:Kousheyo88/sandbox

Cloud gaming, sometimes called gaming on demand, is a type of online gaming that runs games on remote servers and streams them directly to a user’s device, or more colloquially, playing a game remotely from a cloud. The three prominent types of cloud gaming are peer-to-peer gaming, game streaming, and progressive downloading. In 2019, Google’s announcement of Google Stadia increased public attention to the potential of cloud gaming and helped launch it into gaming media.

History
In 2000, G-cluster demonstrated cloud gaming technology at E3. The original offering was cloud gaming service over Wi-Fi to handheld devices. Video game developer Crytek began the research on a cloud gaming system in 2005 for Crysis, but halted development in 2007 to wait until the infrastructure and cable Internet providers were able to complete the task.

OnLive was officially launched in March 2010, and its game service began in June with the sale of its OnLive microconsole. On April 2, 2015, it was announced that Sony Computer Entertainment had acquired OnLive's patents, and OnLive shut down.

In November 2010, SFR launched a commercial cloud gaming service on IPTV in France, powered by G-cluster technology. The following year Orange France unveiled its gaming service on IPTV based on G-cluster technology.

Gaikai was launched internationally on February 27, 2011 with Dead Space 2, The Sims 3, Spore, and Mass Effect 2. Sony Computer Entertainment acquired Gaikai on July 2, 2012, for $380 million USD. Sony announced PlayStation Now on January 7, 2014. The Blade SAS Group launched Shadow, their flagship cloud gaming service in France in 2017. By October 2018, Shadow announced that it was live in 19 states across the east and west coast of the US, with further plans to expand nationwide.

GeForce Now is a cloud-based game-streaming service offered by Nvidia that was launched on October 1, 2015. It allows users to play games directly from the web while its servers encode the frames, sending the data to the wired/wireless Internet connection accordingly. The Nvidia GRID includes both graphics processing and video encoding into a single device which is able to decrease the input to display latency of cloud base video game streaming. This is important due to the impact that latency will have between what the user does and when the action shows on their screen.

Loudplay announced expansion of its cloud gaming service to Ukraine, Belarus and few other Eastern Europe locations on May 18, 2018. On November 21, 2018 Loudplay in partnership with Rostelecom and Huawei has demonstrated the first 5G cloud gaming showcase in Europe (in Innopolis).

Electronic Arts acquired cloud gaming startup GameFly on May 22, 2018. A few months later, on October 29, 2018, Electronic Arts announced their new cloud gaming program, Project Atlas.

Google unveiled Project Stream on October 1, 2018. From October 5, 2018 to January 15, 2019 a limited number of US participants could play Assassin's Creed Odyssey through Google Chrome. The project was formally announced at the 2019 Game Developers Conference on March 19, 2019 as Stadia. Stadia supports gameplay at 4K at 60 fps and future plans for scaling to 8K at 120 fps.

Microsoft unveiled Project xCloud on October 8, 2018, which aims to incorporate Microsoft Azure cloud services into cloud gaming. In May 2019, Sony Interactive Entertainment and Microsoft signed an agreement to co-develop cloud solutions across several divisions, including cloud gaming, with the potential for Sony to use Azure services as part of its offerings. As of May 24, 2019, Microsoft's Corporate Vice President, Kareem Choudry, announced that Project xCloud could already stream 3,500 Xbox titles.

Types of Cloud Gaming
Currently, there are three types of consumer services that are frequently referred to as “cloud gaming:” Game streaming, peer-to-peer gaming, and progressive downloading.

In game streaming, the service most commonly referred to as “cloud gaming,” a user consumes the game content through a thin client.

Game streaming
Game streaming is a type of online gaming that allows direct and on-demand video streaming of games onto computers, consoles, and mobile devices, similar to video on demand, through the use of a thin client. The actual game is stored, executed, and rendered on the remote operator's or game company's server and the video results are streamed directly to a consumer's computers over the internet. This allows access to games without the need of a console and largely makes the capability of the user's computer unimportant, as the server is the system that is running the processing needs. The controls and button presses from the user are transmitted directly to the server, where they are recorded, and the server then sends back the game's response to the input controls.

Peer-to-peer gaming
P2P "cloudless" gaming is a type of cloud gaming, where remote computers for game execution represented by community of individuals. The critical difference from cloud gaming is that game is executed on an actual PC and it is streamed on one-to-one basis. The actual game is stored, executed, and rendered on the remote computer station and the video results are streamed directly to a consumer's computer over the Internet. P2P cloudless gaming allows closing latency gap: the remote computer could be located within one internet provider. The network protocol in P2P cloud gaming smartly chooses the best fit between the remote computer and the consumer's device.

Progressive downloading
Cloud gaming based on file streaming, also known as "progressive downloading", deploys a thin client in which the actual game is run on the user's gaming device, such as a mobile device, a PC, or a console. A small part of a game, usually less than 5% of the total game size, is downloaded initially so that the gamer can start playing quickly. The remaining game content is downloaded to the end user's device while playing. This allows instant access to games with low bandwidth Internet connections without lag. The cloud is used for providing a scalable way of streaming the game content and big data analysis. Cloud gaming based on file streaming requires a device that has the hardware capabilities to operate the game. Often, downloaded game content is stored on the end user's device where it is cached.

Infrastructure
Cloud gaming requires significant technical infrastructure in order to enable the services to work as intended. High-bandwidth internet is a requirement for the delivery of huge amounts of video content. Very large data centers or server farms are required in order to deliver game streams to many consumers at once. Consumer game-playing hardware (game consoles, home PCs, and mobile phones) need to be sufficiently powerful to process the kind of data being transmitted in cloud gaming.

The infrastructure required to make cloud gaming feasible was, for many years, not available in most geographic areas, or unavailable to consumer markets. For example, average consumer internet speeds in the U.S. have only recently reached levels sufficient for cloud gaming; in the third quarter of 2007, average internet speed in the U.S. was only 3.67 Mbps, while consumer game streaming services require anywhere from 3 to 18Mbps for a minimum connection.

Server
A server is a remote computer providing some kind of software service from which a client receives information. Game streaming provides a unique way to play video games by actually running the game software on a remote server, as opposed to on a game console or other local device. This provides several unique advantages upon which game streaming services are intended to capitalize.

Server processing power
Dedicated servers for game streaming companies will be significantly more powerful than consumer hardware; a Google or an Amazon can put significantly more resources into its computers than a consumer's home equipment. By simply renting time on these hugely powerful servers, consumers are able to access hardware that may have previously been unfeasible for them, whether for financial or simple accessibility reasons.

Server optimization
Besides access to more powerful computers, companies that run the same software across many different computers are able to find other performance benefits that the consumer sees in their final product. Distributed computing allows a fleet of servers to operate as more than the sum of their parts, increasing overall performance. Streaming services can send similar data to multiple users who are playing the same game, meaning that two players could play the same game for less than twice the amount of operating cost than what would be expected.

Client
A client is is a piece of software intended to request and receive information from a remote service (i.e., a server). The client is typically located on a computer or other machine and can be accessed via a network. Clients first originated for devices which could not run their own programs, instead they were connected to remote machines via a network that were able to perform the task for the client. At this time, clients were called dumb terminals and were served by time-sharing mainframe computer, a computer which allows multiple users to utilize it concurrently while sitting at dumb terminals.

Types of Client and Relevance to Cloud Gaming
Clients are integral to understanding how cloud gaming is able to stream video games to machines that do not have the proper specifications. A server can process graphics in a game and return a video stream to the user with a small amount of latency to simulate real-time responses.


 * Thin Client A thin client is a client with minimum capabilities besides displaying results processed by a server. It completely relies on the server to do all or most of the processing. An example of a thin client is a web browser. Without a network connection, they offer minimal functionality, however with a connection, browsers display a wide range of functionality by connecting to a variety of web servers.


 * Thick Client A thick client, also known as a fat client, can do most of the processing itself and does not rely entirely on a remote server. It may need to request information from a remote server in order to receive information, upload data, or update a program itself. An example of a thick client is anti-virus software. This software does not necessarily need to connect to a remote service to complete its job, however, may utilize a server for program updates.


 * Hybrid Client A hybrid client is a combination of both a thick client and thin client. It may do most processes by itself but relies on a remote service for storage or critical data processing.

Latency
Latency describes any sort of delay to an action. In computers latency can come from input devices, hardware like disk access latency, and even processing time. For cloud gaming the additional factor is network latency. Instructions need to travel from the host device to a game render server and return with corresponding actions. The round-trip delay time (RTT) of the packet would be limited by the speed of the medium packets are traveling along. In the case of fiber optic cables theoretically, the best case transfer speed would be the speed of light (3x10^8 m/s). Regardless of how much game streaming providers decrease their processing delay, game streaming with always be limited by the added latency caused by the propagation delay of packets being sent over the internet.

Packet Loss
Packet loss occurs when data packets traveling across a network does not make it to their final destination and are therefore “dropped” or “lost”. The large amount of data being transferred from remote servers in order to provide a gaming experience could increase the chances of packet loss, a phenomenon that already occurs when transmitting nominal amounts of data.

Bandwidth Usage
Most internet service providers do not offer unlimited bandwidth to customers. Data caps, arbitrary ceilings of how much data a consumer can download per month, often kick in at high bandwidth usage levels. A report found that Google’s Stadia could consume as much as 15.75 gigabytes per hour when used at the highest settings, making it entirely possible for a home of multiple users to reach their data cap relatively quickly.

Advantages
Through various services, games can be played on low power laptops, phones, anything with a browser, and even smart TVs. With a reliable internet connection, games can be loaded up and continued on any device. Cloud gaming supports click-and-play, which removes the necessity to wait hours to download games to a device. The game can be purchased and played instantly.

In recent years the size of games has increased leading to long game download times. Improvements in game visuals and audio quality are drastically affecting game sizes. As a result, the only viable way for many people to play games going forwards may be through game streaming. The Witcher 3, one of the largest games to be released in 2015, is about 50 GB. In 2017, games like Forza 7 Motorsport were reaching sizes of around 100 GB. Hosting games on servers alleviates both the need to wait for downloads as well as the local storage needs that games demand.

Gaming consoles or PCs required to play most games constitute a large upfront cost when it comes to gaming. They can cost from hundreds to thousands of dollars. Local machines also wear overtime and have decreased performance. Cloud gaming servers are continuously upgraded as technology develops at no extra cost to the consumer. Google Stadia, for example, is currently offering the capability to play games at 4K resolution and 60 frames per second, with promises of 8K resolutions in the future at no extra cost to the user. Monthly subscriptions range from free to $25 a month depending on the provider.

Game streaming also supports features not yet seen in local gaming. Google Stadia, for example, is supporting features called State Share and Crowd Play. State Share allows game save states to be shared through links. This allows users to share save states easily and have someone instantly jump into a game where they left off. Crowd Play is a way to for game streamers on YouTube to allow viewers to wait in a queue to play with the content creator.

Disadvantages
Cloud gaming requires both a fast and stable internet connection as well as close proximity to game servers. The current generation of streaming services require between 10Mbps to 35Mbps. Cloud computing company Akamai claims that, “only one in five households in America could get 25 Mbps download speeds. The average speed of American internet is 18.7 Mbps”. With bandwidth being split between an entire household, game streaming may not be accessible for many people in the United States until the internet infrastructure has been improved.

High latency can be detrimental to a gaming experience. Latency is contributed by many factors such as the display being used, distance to the server, and even controllers/input devices. The amount of time it takes for an instruction to be input on a controller, sent to the server, rendered, sent back, and displayed to the user can add up to a significant amount of time. Studies have shown that for fast paced first person shooters, as little as 100ms of delay can completely ruin the experience and place players at a disadvantage. Even the best TVs boast input delay close to 15-50ms. This leaves game streaming providers with a small margin to provide content.

GPU Resource Sharing
A proposed method to improve game streaming's scalability is adaptive graphics processing unit (GPU) resource scheduling. Most cloud gaming providers are using dedicated GPUs to each person playing a game. This leads to the best performance but can waste resources. With better GPU resource scheduling algorithms, if the game does not fully utilize that GPU it can be used to help run someone else’s game simultaneously. In the past, “GPU virtualization was not used due to the inferior performance of the resource scheduling algorithm”. However new resource management algorithms have been developed that can allow up to 90% of the GPUs original power to be utilized even while being split among many users. Further advancements in GPU resource scheduling can lead to a more efficient use of hardware by cloud gaming services and therefore, a better or possibly cheaper experience for the user.

Negative Latency
As latency is one of the issues plaguing the viability of cloud gaming, Google claims to be working on a potential solution to counteract latency with negative legacy. Stadia’s head of engineering, Majd Bakar, claims that negative latency refers to “reducing latency to the point where it’s basically nonexistent.” Such an advancement would require some form of a predictive system that would guess the player’s inputs based on previous inputs and algorithms. This information would be used to render the game frames early so that when the player does choose the input, the screen is ready to display the correct frames.

Infrastructure
The International Future Computing Association (TIFCA) describes an even more advanced future for cloud gaming and other applications with "any place, any time, and any device" environments that give content and application developers a write-once reach many model that takes advantage of the unique characteristics of the client devices being used. The industry is also working towards an interoperable ecosystem that collaboratively processes and delivers this data, content, and applications according to where and how they are most effective to be handled to streamline the data transmission and maximize the user experience on all devices. The development of this computing era is called the "Client-to-Cloud Revolution"

See also:


 * Cloud computing
 * Remote mobile virtualization for mobile gaming as a service