Planetóide X

OnLive - O Console do Futuro?

quinta-feira, junho 25, 2009 José Guilherme Wasner Machado 1 Comentários Categoria: ,

A semana passada foi agitada com o anúncio da tecnologia OnLive, a aplicação "cloud computing" para o mundo dos games. A idéia em si nada tem de tão original - é bem similar ao processo de virtualização de aplicativos, como oferecido em produtos como o Citrix Presentation Server/XenApp, por exemplo.

Fonte: Citrix Systems, Inc - White Paper


A idéia da virtualização de aplicativos é basicamente a seguinte: separar o local onde a aplicação é usada do local onde ela está sendo executada. No caso da solução da Citrix, a coisa funciona mais ou menos assim: temos um usuário em sua estação, utilizando um programa como o Word, por exemplo, que por sua vez está sendo executado em um servidor remoto. Uma aplicação no lado cliente captura os inputs do usuário (a movimentação e os cliques do mouse, as teclas pressionadas, etc) e os envia para a instância do Word que está rodando no servidor remoto. Essa instância executa a ação comandada pelo usuário, e daí resulta um feedback visual - por exemplo, a letra que foi teclada sendo exibida na tela. O lado servidor do aplicativo de virtualização captura esse feedback visual, comprime a informação e envia de volta à aplicação cliente, que faz a descompressão e exibe para o usuário as modificações que ocorreram na tela. Se a conexão for boa, e a tecnologia de comunicação entre o lado cliente e o servidor for eficiente, o resultado é transparente para o usuário. Ou seja, ele utiliza a aplicação como se ela estivesse instalada na sua própria máquina. A grande vantagem do processo é que dispensa múltiplas licenças e instalação local, e a estação de trabalho do usuário pode ser bem light, sem grande poder de processamento.


No caso da OnLive, a idéia é a mesma. Localmente, você teria apenas os dispositivos de entrada e o software da OnLive, e o jogo estaria sendo executado remotamente, com qualidade "top de linha". Em um mundo perfeito, essa é uma idéia maravilhosa. Pense bem: você não precisaria de ter um mega-computador ou um console next-gen, com uma solução gráfica sofisticadíssima (e caríssima), para poder desfrutar de um Far Cry 2 ou de um God of War 3 "com tudo ligado". Tampouco precisaria comprar o jogo em si... Bastaria assinar o serviço e desfrutar do game, mais ou menos como quem assiste um filme ou uma série na TV a Cabo. Também não precisaria se preocupar com instalação, espaço em disco, drivers atualizados ou incompatibilidades de hardware. Perfeito.

Só que as coisas não são tão simples quando se trata de games, e as razões para isso veremos a seguir.


OnLive: o futuro?

Existem aplicações que se adaptam melhor a processo de virtualização... normalmente são aquelas em que a maior parte da tela permanece estática, ou essa é atualizada em uma frequência mais baixa. Por exemplo, um processador de texto. Quando o usuário digita, apenas uma pequena porção da tela é modificada... então o servidor não precisa mandar a tela inteira de volta para o cliente, apenas aquela pequena porção que foi modificada. Quanto maior a área da tela modificada, maior o pedaço que tem de ser enviado de volta, e consequentemente, maior o tempo de envio, mesmo com compressão. Por exemplo, é muito comum ocorrerem lags e "saltos" na rolagem de uma tela, justamente porque uma área maior tem que ser enviada de volta para o cliente, em uma frequência mais elevada. No caso dos jogos eletrônicos, esse é um fator crítico, uma vez que, normalmente, a tela inteira está sendo atualizada. Afinal, jogos são dinâmicos, faz parte da sua natureza (há as exceções, claro... mas essas não costumam exigir grande poder de processamento gráfico). Seu personagem estará olhando para os lados, os inimigos estarão vindo de todas as direções, seu carro estará correndo célere pela pista, etc. Não é acidental que uma placa gráfica tem que lidar com bilhões de cálculos por segundo.

Há também a questão da frequência. Em um jogo, a frequência mínima desejada de atualização é em torno de 30 frames a cada segundo, na maior parte das vezes independente do que o jogador estiver fazendo. Ao contrário de um aplicativo comum, como o World ou Eexcel, que serão atualizados no mesmo ritmo das ações do usuário, ou seja, uma ou duas vezes por segundo - a menos que alguma animação ou outro processo visual esteja ocorrendo.

Outro grande problema é que normalmente aplicações são virtualizadas dentro da rede local de uma empresa... então estamos falando de conexões de 100 Mbps, em um ambiente onde normalmente não há concorrência do tráfego externo. Já serviços como o OnLive estarão disponibilizados via Internet... mesmo com conexões de altíssima banda, tenho minhas dúvidas quanto à capacidade de transmissão. Vejam bem... estamos falando de telas em resolução HD (1080p ou 720p), true color, geradas à taxas de pelo menos 30 quadros por segundo (se queremos uma experiência de qualidade). Isso é bastante informação trafegando de lá para cá. Chutando uns 500 Kb para cada tela 1080p, já devidamente comprimida, isso dá 15 Mb de informação para cada segundo. Mesmo sabendo que os algoritmos de compressão irão enviar apenas as partes da tela que diferem do frame anterior, não vejo esse montante caindo o suficiente, a menos que haja grande perda de informação. Resultado: muitos e muitos artefatos de compressão visíveis na tela, com consequente perda de qualidade visual. Digo, GRANDE perda de qualidade visual. Ou a resolução terá que ser mais baixa - digamos, 480p (eca...). Afinal, não existe almoço grátis.

Se a perda de qualidade visual é considerável, que "vantagem Maria leva" afinal? Se é para a experiência não ser "state of the art", é mais negócio investir numa placa baratinha (em torno de $100) e rodar o jogo localmente, mesmo se tiver que ser em uma resolução menor, ou com vários recursos desligados. A experiência visual certamente será melhor do que enfrentar baixas resoluções ou blocos e mais blocos de artefatos de compressão - quem já assistiu um filme muito comprimido sabe do que estou falando.


Imagem "Normal" (na verdade, com baixa compressão)


A mesma imagem, comprimida,
exibindo artefatos de compressão
.

Vale lembrar ainda que essa informação toda estará trafegando na internet. Ou seja, é imprevisível dizer quais serão as flutuações de tráfego que podem ocorrer a qualquer momento. Prevejo muitas frustrações para o jogador que, no momento em que for finalmente desferir o golpe final no chefão da fase (após 50 tentativas infrutíferas), tem o azar de sofrer um lag, que colocará tudo a perder. A OnLive afirma que sempre haverá um servidor a menos de 80 quilômetros de cada cliente. Mas isso, bem... não é garantia de nada.

Há também que se ponderar sobre a viabilidade econômica dessa arquitetura... para ter servidores suficientes, à distâncias próximas o suficiente, com poder de processamento bruto o suficiente... bem, acho que não vai ter grana suficiente para tudo isso! A menos que as mensalidades sejam BEM caras. E aí, não é melhor comprar um XBox 360/PS3, ou uma GeForce/Radeon tinindo de nova pro seu computador?

Ainda é cedo para falar alguma coisa com absoluta certeza. Sem dúvida é uma boa idéia. Mesmo não sendo exatamente original, sua aplicação ao universo dos jogos é brilhante. A questão aqui não é debater a validade da idéia, mas o seu momento. Acho que ainda é muito cedo. Acho que ainda não é a hora. Penso que muita água ainda precisa passar debaixo da ponte para algo assim funcionar, pelo menos com qualidade suficiente para substituir com vantagens o processamento local, e ainda ser viável do ponto de vista comercial. Digamos, daqui a dez ou quinze anos.

Se essa coisa funcionar a contento, com milhares de usuários simultâneos, de forma estável, com pouco ou nenhum lag, e qualidade top de imagem, eu ficarei muito surpreso. Mas só acredito vendo.

PC Gaming e o "Fator Sofá": finalmente uma solução?

Por outro lado (sempre há um outro lado), vejo essa tecnologia como algo extremamente aplicável a outro tipo de problema: o de libertar o PC Gaming do escritório doméstico. Com algo assim, seria fácil manter seu PC no escritório ou no quarto, enquanto você joga no conforto do sofá da sala, usando sua TV de plasma 60" 1080p, e home-theater DTS de sei-lá-quantos-watts de potência.



Já se imaginou jogando World of Warcraft num home-cinema?

O "fator sofá" sempre foi um dos principais calcanhares-de-aquiles do PC Gaming em relação aos consoles, e é algo de difícil solução. Com uma tecnologia assim, seria fichinha resolver esse problema. Se uma solução "doméstica" do OnLive for colocada à venda, eu serei um dos primeiros da fila para comprar.

OUTROS POSTS

1 comentários

  1. Bom meu amigo eu vejo muita coerencia em tudo que vc diz,porem vejo tambem um ambiente muito favoravel a que isso de certo nos EUA e maioria dos paises europeus devido a tecnologia ja existente é facil ser um sucesso ja no inicio do lancamento e nos primeiros anos,aqui no brasil com o barateamento do serviço de internet e pelas condiçoes favoraveis que o brasil já demostra,daqui a uns 3 anos teremos igual condiçoes como os paises citados,vamos torcer para que o encetivo governamental que regula o precosso do cerviço de banda larga se concretize.

    ResponderExcluir

Por favor, fique à vontade para comentar, criticar ou sugerir. Mas não será permitido trolling, bullying, spam, preconceito e ataques meramente pessoais ou destrutivos.