Cloud Gaming
Caio Valente
Cloud Gaming ou Gaming on Demand
Stream de um jogo que fica armazenado em
servidores remotos e é transmitido de
maneira similar a serviços de “Video on
Demand” como YouTube. A transmissão
ocorre através de um aplicativo ou mesmo do
browser.
Tópicos
• Motivação
• Arquitetura
Captura de vídeo
Encode
Transmissão
• Hardware
• Vantagens
• Problemas
• Serviços existentes
Motivação
• “Video games will be the fastest-growing and
most exciting form of mass media over the
coming decade” -- The Economist
Receita em bilhões de dólares por ano
90
80
70
60
50
40
30
20
10
0
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2017
Motivação
• Cloud Gaming é uma tecnologia relativamente
nova, mas que já está sendo incorporada na
indústria de jogos.
Motivação
• Cloud Gaming é uma forma de obter alta
qualidade gráfica num dispositivo móvel, que
apresenta limitações devido ao tamanho e
bateria.
Motivação
• Renderização em tempo real
• Pode ser custoso dependendo da qualidade gráfica
desejada.
Motivação
Motivação
Comparação de
alguns dispositivos
móveis com GPUs
antigas.
Para se ter uma
noção da
diferença de
processamento
uma GeForce
TITAN atinge 709.8
Fps no mesmo
teste.
Arquitetura
Arquitetura - Cliente
Cliente tem 2 tarefas:
• Vídeo Recebe os dados de vídeo vindo do
servidor, faz o decode e a exibição para o usuário
• Comandos Ao receber um comando cria um
pacote e manda para o servidor
Arquitetura - Servidor
• No modo de operação
normal o servidor tem 3
funções distintas:
1  Captura do vídeo, encode
e transmissão para o cliente
2  Receber os comandos
vindos do cliente e enviar esses
comandos para o jogo
3  Executar o jogo
Arquitetura – Servidor
• Servidor inicializa com um processo num estado
de espera
• Ao receber uma requisição faz um fork() e o
processo filho inicializa uma instancia de algum
jogo
• O processo filho então e muda para o modo de
operação normal
• Jogos baseados em Direct3D ou OpenGL
Arquitetura – Servidor
Método mais recente
• Uso de virtualização
• GPUs virtualizadas
Transmissão
• Uso de TCP durante a primeira fase, para
autenticação
Transmissão
• Real-Time Transport Protocol (RTP) 
Protocolo padrão para transporte de
vídeo/áudio em redes IP
• Fica na camada de aplicações, usa UDP na
camada de transporte.
Transmissão
• Uso de RTCP para informações de controle,
sincronização e parâmetros de QoS
• RTP usa algum outro protocolo como SDP para
descrever a mídia
Transmissão
RTP é usado pois:
• Detecção da ordem de chagada de dados
• Compensação de Jitter
• Permite o uso de multicast para transmissão para
vários usuários
Transmissão
• Comandos são passados por UDP
• Basta transmitir para varias pessoas ao
mesmo tempo para que possam acompanhar
o progresso de um jogador
Ferramentas para captura de vídeo
Há varias ferramentas disponíveis para isso,
alguns exemplos são:
• http://taksi.sourceforge.net/
• http://www.x.org/wiki/
Codec
• Programa usado para
comprimir/descomprimir um sinal
• É usado para reduzir o impacto causado sobre
a rede na transmissão do vídeo
Codec
• É usado normalmente H.264/MPEG-4 AVC
• “Today, H.264 is the only codec that can reach
98% of the installed base of computers”
• Uma ferramenta para realizar o encode é
FFMpeg http://www.ffmpeg.org/
Codec
• H.264/MPEG-4 AVC pode ser dividido em duas
partes VCL e NAL
• VCL  Video Coding Layer
• Responsável pelo tratamento do vídeo
• Subdivide cada frame do vídeo e enviando
apenas pedaços que foram alterados
Codec
• NAL  Network Abstraction Layer
• Facilita o mapeamento do VCL para por
exemplo:
• RTP/IP
• MP4
• MPEG-2
Hardware
•
•
•
•
Nvidia Grid
20 servidores GRID por rack
240 GPUs por rack
720 jogadores simultâneos por
rack
• 7.200 assinantes por rack
Hardware
Hardware
• Radeon Sky
• AMD Radeon™ Sky Series graphics card can
support up to six HD (720p) game streams
each
Vantagens
• Não é necessário ter o
jogo instalado
• Computador do usuário
não é importante
• Acessível por diversos
meios, desktop,
notebook, tablet e
smartphone
Problemas
• Demanda muito da rede – 2 Mbit/s é requisito
mínimo no OnLive, 5Mbit/s é o recomendado
• Compressão de vídeo antes da transmissão, o
que aumenta a latência e implica em perda de
qualidade gráfica
Problemas
Banda gasta fica em torno de 700KB/s
Gráfico de tempo por bytes/segundo
Problemas
• Input lag: Tempo entre a realização de uma ação e
sua resposta na tela
• Normalmente temos:
Input lag = controller lag + frame processing + display lag
• Para soluções em nuvem:
Input lag = controller lag + frame processing + display lag + network lag + encode lag + decode lag
166ms começa a se tornar um problema
Controller lag >= 3*frame processing – 50ms a 60fps
Problemas
• Internet pode ter um peso muito alto na
latência
 "The reason location is so critical is because of the speed of light.
If you are more than 1000 miles from an OnLive data center, then the
round trip communications delay ('ping' time) between your home and
OnLive will be too long for fast-action video games."
• Em relação a dispositivos móveis, nem todos
os jogos são viáveis. Controle?
•
•
•
•
294 jogos
Demo de 30 minutos para cada jogo
Suporte a PC, Mac, Smartphone, Tablet e TV
Compra dos jogos separados, ou mensalidade que
libera 200+ jogos
• Uma das features mais interessantes é poder
acompanhar o progresso de um jogador
• Serviço criado como concorrente ao OnLive,
foi comprado pela Sony por U$380mi
• Deve ser usado para fazer stream de demos e
jogos para o PS4, permitindo inclusive
compatibilidade com versões anteriores do
Playstation ( Stream de jogos do PS3 no PS4 )
Modelo de negócio:
• Compra
• Assinatura
• Comerciais
Uso do browser como ao invés de um cliente
Outros serviços
Para os interessados em testar
• https://games.onlive.com/go/signup
• 30 minutos de graça nos seguintes jogos:
•
•
•
•
•
•
Civilization 5
Homefront
Just Cause 2
Driver
Mafia 2
NBA 2K12
Demo
Duvidas?
Referências
•
http://projekter.aau.dk/projekter/files/43185443/d501a_release_3_1_11.pdf
•
http://www.cs.ucsb.edu/~manasa/cs276.pdf
•
http://www.ciinow.com/cloud-gaming-service-technology/
•
http://en.wikipedia.org/wiki/Cloud_gaming
•
http://navi.cx/~micah/wiov08/dowty-wiov08-slides.pdf
•
http://www.economist.com/node/21541164
•
http://vgsales.wikia.com/wiki/Video_game_industry
•
http://www.forbes.com/fdc/welcome_mjx.shtml
•
http://en.wikipedia.org/wiki/Global_illumination
Referências
•
http://www.anandtech.com/show/6877/the-great-equalizer-part-3/2
•
http://gfxbench.com/device.jsp?benchmark=gfx27&D=NVidia+GeForce+GTX+TITA
N
•
http://www.tomshardware.com/news/Cloud-Gaming-Xbox-Gaikai,22331.html
•
http://www.bigfishgames.com/
•
http://www.onlive.com/
•
http://www.gaikai.com/
•
http://gaminganywhere.org/index.html
•
http://en.wikipedia.org/wiki/Real-time_Transport_Protocol
•
http://en.wikipedia.org/wiki/Session_Description_Protocol
Referências
•
http://www.streamingmedia.com/Articles/Editorial/What-Is-.../What-is-H.264-74735.aspx
•
http://www.nvidia.com.br/object/cloud-get-started-br.html
•
http://www.amd.com/us/products/desktop/workstation/cloud/Pages/cloud-gaming.aspx#1
•
http://venturebeat.com/2012/09/21/after-onlive-heres-why-nvidia-believes-cloud-gaming-is-justgetting-started-interview/
•
http://ovum.com/2012/05/28/nvidia-enables-gpu-virtualization-and-talks-up-cloud-for-gamingand-vdi/
•
http://www.eurogamer.net/articles/onlive-beta-latency-issues-explained
•
http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC
•
http://www.cisco.com/en/US/tech/tk652/tk698/technologies_tech_note09186a00800945df.shtml
•
Octree-Based Sparse Voxelization for Real-Time Global Illumination, Cyril Crassin NVIDIA Research
Download

Cloud Gaming