• Sonuç bulunamadı

Há diversas formas de se implementar uma arquitetura de processamento remoto de aplicações 3D que seja capaz de lidar com os efeitos da latência. Muitos trabalhos, já citados nos capítulos anteriores, propõe alternativas ao streaming de vídeo, padrão usado pelas principais soluções atuais de Cloud Gaming, e funcionalidades específicas da aplicação 3D que não são oferecidas pelos principais

Game Engines disponíveis no mercado. Com esses requisitos, essas soluções

mercado como o Amazon AppStream (AMAZON, 2015b), Otoy X.IO (OTOY, 2015), Nvidia GameStream (NVIDIA, 2015b) e Gaikai (GAIKAI, 2015), adquirida pela Sony para suportar seu serviço Playstation Now (MARTIN, 2015).

Como mostrado no item 2.4, diferentes tipos de aplicação 3D possuem diferentes tolerâncias à latência na perspectiva do usuário. O estilo de HPM para a qual se deseja apresentar uma solução de processamento remoto neste trabalho é caracterizado pela exploração e interação de ambientes, sem a necessidade de reações rápidas do usuário. Esse estilo de aplicação por si só apresenta maior tolerância à latência quando comparado com jogos de ação em primeira pessoa disponíveis no mercado

Com esse fator em mente, optou-se por adotar a arquitetura de processamento remoto com streaming de vídeo padrão dos serviços de Cloud Gaming, e agregar à solução o benefício da maior compatibilidade com ferramentas e serviços já disponíveis no mercado. Assim, o foco do tratamento dos efeitos da latência fica na interface com o usuário e na mecânica de interação da aplicação 3D dentro dos limites oferecidos pelos Game Engines.

Os componentes de software necessários para a implementação da solução podem ser categorizados por elemento da Arquitetura de Processamento Remoto para HPM, apresentada no item 2.2, da seguinte forma:

 HPM – No Servidor Remoto de Processamento da HPM: Trata-se de uma aplicação 3D que atende aos requisitos de HPM, apresentados no item 2.1, e é implementado com uma Game Engine. Esse software também é capaz de se comunicar com a Aplicação Cliente por intermédio do Software Gerenciador de Comunicação.

 Codificador de Streaming de Vídeo – No Servidor Remoto de Processamento da HPM: Software encarregado de fazer a captura das imagens geradas pela HPM, codifica-las em formato de streaming de vídeo e enviá-lo para a Aplicação Cliente.

 Software Gerenciador de Comunicação - No Servidor Remoto de Processamento da HPM: É o broker responsável por gerenciar mensagens trocadas entre a HPM e a Aplicação Cliente. Não precisa necessariamente estar no mesmo servidor da HPM.

 Aplicação Cliente - Dispositivo Cliente: Trata-se de um software para dispositivos móveis, compatível com a plataforma escolhida para os

testes, capaz de se comunicar com a HPM por intermédio do Software Gerenciador de Comunicação, receber e decodificar streaming de vídeo e receber interações do usuário.

Respeitando-se a mesma categorização, os componentes de software e

hardware utilizados na construção da prova de conceito da solução foram:

 Servidor Remoto de Processamento da HPM: Computador desktop com sistema operacional Windows 10, HPM baseada no Game Engine Unreal Engine 4.10 e ferramenta de captura e codificação de vídeos Nvidia GameStream. As principais especificações de hardware do computador são: Intel Core i7 3770 3.4GHz, 16 gigabytes de memória RAM e placa de vídeo Nvidia GeForce GTX 980Ti com 6 gigabytes de memória VRAM.

 Gerenciador de Comunicação: broker RabbitMQ hospedado no mesmo computador do Servidor Remoto de Processamento da HPM.  Dispositivo Cliente: Tablet Samsung Galaxy Tab S de 10,5 polegadas,

modelo SM-T800 com sistema operacional Android 5.0.1.

A Figura 4 ilustra como esses componentes estão organizados na arquitetura da solução e como se comunicam entre si. Os retângulos em cinza-escuro representam os componentes de software: HPM, Codificador de Vídeo, Gerenciador de Comunicação e Aplicação Cliente. Os retângulos brancos representam módulos dos artefatos de software responsáveis por tarefas específicas como decodificação de vídeo e comunicação com o Gerenciador de Comunicação. As setas pretas indicam o fluxo de mensagens entre os componentes e os rótulos com contorno pontilhado mostram o tipo de mensagem. Os dois grandes retângulos preenchidos com hachura separam os componentes entre Cliente e Servidor.

A arquitetura trabalha de forma a proporcionar ao usuário uma experiência semelhante à de uma HPM sendo processada localmente em seu Dispositivo Cliente. A HPM, ou aplicação 3D, é processada no servidor e gera um conjunto de imagens. O Codificador de Vídeo faz a captura dessas imagens e gera um streaming de vídeo. Esse streaming é enviado de forma constante para o Dispositivo Cliente, mesmo que as imagens geradas pela HPM não apresentem variações entre si em algum momento. O módulo Decodificador de Vídeo da Aplicação Cliente recebe e decodifica

o streaming de vídeo recebido e mostra na tela do Dispositivo Cliente. O usuário vê na tela de seu dispositivo o conteúdo sendo gerado pela HPM no servidor como se o mesmo estivesse sendo processado localmente em seu dispositivo. Caso deseje interagir com a aplicação, o usuário realizará comandos que serão interpretados pela Aplicação Cliente e enviados para o Gerenciador de Comunicação através do Módulo de Comunicação. O Gerenciador de Comunicação encaminhará essa mensagem para o Módulo de Comunicação da HPM no servidor que, por sua vez, repassará os comandos para o ambiente 3D. O usuário verá as consequências de suas interações na tela de seu dispositivo assim que as novas imagens geradas pela HPM forem recebidas pela Aplicação Cliente.

Figura 4 - Organização da Arquitetura de Processamento Remoto da Solução Desenvolvida (Fonte: próprio autor)

Além do streaming de vídeo, outros tipos de mídia podem ser mostrados na tela do Dispositivo Cliente em conjunto com a HPM. Nesse caso, são necessárias mensagens de sincronização geradas pela HPM no servidor para que a Aplicação Cliente saiba o momento exato de mostrar tais mídias.

O processo de determinação desses componentes de software e hardware, bem como detalhes de desenvolvimento, são descritos nas sessões a seguir.

Benzer Belgeler