Ex programador da Naughty Dog: Melhorar gráficos com a cloud será muito difícil

xbox-one-cloud-powered

Uma coisa é Cloud Computing, outra coisa é servidores mais participativos. E ao longo dos tempos a Microsoft alterou a sua conversa da primeira ideologia para a segunda bastante mais realista e fácil de implementar. Agora um ex programador da Naughty Dog vem referir o como seria difícil implementar a ideia inicial da Microsoft. E com os mesmos argumentos que já tínhamos usado!

xbox-one-cloud-powered

Talvez muitos não tenham a exacta noção da realidade, mas a promessa inicial da Microsoft referia-se a um Cloud Computing onde por processamento remoto se auxiliava o processamento local, quer de CPU, quer de GPU da Xbox One com cada consola a ser ajudada isoladamente, inclusive a nível gráfico (jogos single player). E nessa altura fizemos vários artigos a referir que tal tarefa era dantesca referindo argumentos como os que poderão ler de seguida pela boca de um programador. Podem ver um desses artigos aqui.

No entanto com o passar dos tempos a conversa da Microsoft mudou. E mudou com Phil Spencer!

Poderá parecer repetitivo que elogiemos Phil Spencer novamente, mas o certo é que com a sua direcção a Xbox mudou como da água para o vinho. Tornou-se mais clara, mais transparente, mais máquina de jogos, mais orientada e acima de tudo… melhor!

E uma das primeiras diferenças que Phil fez questão de salientar é que afinal o Cloud Computing… eram servidores na cloud!

Ora os servidores na Cloud podem efetivamente ser participativos. Podem efetivamente aliviar a consola de muito trabalho. Mas fazem-no com uma limitação: Mundos online, partilhados entre dezenas, centenas ou mesmo milhares de utilizadores que partilham a mesma física de mundo. E essa não era a ideia, ou pelo menos a imagem, inicialmente passada pela Microsoft onde se percebia que cada consola poderia obter da Cloud os ganhos que precisava, sem ter de estar a partilhar o mundo com terceiros.

John Hable é um ex programador da Naughty Dog, e vem agora falar sobre a Cloud e de como ela pode ajudar na performance das consolas, referindo o seguinte:

Não posso comentar sobre aplicações ou linhas temporais específicas. Mas posso dar uma ideias dos desafios envolvidos. Resumidamente é difícil, realmente difícil. A ideia é certamente tentadora, temos aqueles servidores todos na cloud e intuitivamente faz sentido que tentemos passar para eles algum do trabalho, mas o problema está nos detalhes.

A coisa não é simples. O maior desafio de melhorar a performance é combater a latência. O Hardware manda um sinal para o servidor remoto, o servidor vai processar o sinal e mandar os resultados de volta à consola para processamento. Tudo isto requer um pedaço de tempo que resulta em lag.


E o maior problema é a latência. Quanto tempo demoram os dados ir da consola à nuvem e voltar? Demora tempo mandar os dados para a cloud, permitir que ela trabalhe alguns números e mande os dados de volta. Nos video jogos geralmente precisamos dos resultados da computação imediatamente. A viagem de ia e volta necessária para mandar um megabyte de dados pode ser facilmente de alguns segundos, mesmo com uma ligação de banda larga.

No entanto esse não é o único problema. A perda de pacotes e problemas de sinal podem criar obstáculos para uma experiência de jogo consistente.

Depois há todo o tipo de coisas que podem correr mal. Os sinais de Wi-Fi podem ter picos. Os pacotes perdem-se. Como recuperas se o servidor tem uma falha de hardware? E se uma pessoa igualmente na rede começar a fazer um download de um grande ficheiro? O que fazes com pessoas com ligações de internet mais lentas? E claro, quanto custa usar esses servidores? Só porque um computador esta na nuvem ele não é gratuito! É um problema complicado. Não é impossível, mas é complicado!

Que características gráficas existem num jogo típico onde pudêssemos viver com os resultados a aparecerem uns segundos depois de começar o cálculo? Não são muitos! Penso que uma técnica eficaz de cloud rendering teria de ser uma característica fantástica que nunca ninguém alguma vez realizou. Se pensarmos fora da caixa haveria coisas muito interessantes que poderíamos fazer. Mas simplesmente passar trabalho existente para a Cloud é difícil de justificar devido à latência da viagem e de todas as coisas que podem correr mal numa rede.

O uso de servidores é uma coisa. E a actual ideologia da Microsoft é criar os mesmos com o máximo de componentes possíveis a serem geridas por estes. Mas isso está longe de ser verdadeiramente um auxilio ao processamento local. É isso sim um remover do processamento local para ser feito remotamente, algo bem diferente da ideologia inicialmente passada pela Microsoft.

Acima de tudo há que se compreender que no fundo o auxilio de processamento que Hable fala e que a Microsoft inicialmente concebia, não é impossível, apenas muito, mas mesmo muito difícil de se fazer com as actuais condições e tecnologias. Mas a Microsoft não desistiu da ideia inicial, e tem vindo a desenvolver técnicas inovadoras nesse sentido.

Resumidamente, se alguém pode vir a conseguir isto é a Microsoft, mas Phil Spencer deixou de lado as mensagens de ideologias para se centrar na realidade das coisas com servidores mais complexos, mas longe da ideologia da ajuda no processamento local. Isso não quer dizer que a Xbox One não venha a ganhar ainda no seu ciclo de vida com o Cloud Computing tal como inicialmente idealizado, mas nesta fase limita-se apenas a contar com servidores mais colaborantes e com mais partes da física do mundo que o normal.

Mas podem ter a certeza, se um dia a implementação da ideologia inicial for possível, Phil Será o primeiro a apresentar a mesma. Mas não como um conceito… E sim uma realidade!

Publicidade

Posts Relacionados