Baixe o app para aproveitar ainda mais
Prévia do material em texto
26/10/2020 Versão para impressão 1/7 Princípios de transferência de arquivos Atualmente muitos jogos utilizam, de diferentes formas, o envio e o recebimento de informações. Partidas multijogador, arquivamento e manutenção de dados de contas nas nuvens, jogos multiplataformas, execução de jogos via streaming e jogos que rodam em navegadores são alguns dos exemplos de situações que envolvem a transferência de dados. Você encontrará neste material os mecanismos utilizados para envio e recebimento de dados, em conjunto com a análise dos princípios que permeiam essas questões. Upload e Download de Arquivos Dois conceitos definem a troca de informação em um jogo (e na internet de forma geral): upload, quando um sistema realiza o envio de dados para outro, e download, quando um sistema recebe dados de outro dispositivo. Como exemplo, vamos analisar um caso muito comum atualmente, a utilização de contas online para armazenamento do estado em que partida de um jogo parou. Conforme um usuário avança em um jogo as informações da partida são enviadas através da internet para um sistema computacional construído especificamente para atender tal tarefa, esses sistemas são conhecidos como servidores, falaremos em detalhes sobre esses sistemas mais adiante. Posteriormente o servidor armazena esses dados em um ou mais arquivos, esses arquivos são conhecidos popularmente como saves. Quando o usuário deseja continuar um jogo do ponto onde ele parou a partida o sistema, no qual o jogo roda, solicita o recebimento dos saves ao servidor, dessa forma o servidor 26/10/2020 Versão para impressão 2/7 envia os dados (faz um upload), enquanto o sistema do jogador recebe os dados (realiza o download dessas informações). Serviços como Playstation network (PSN), Xbox Live, Steam e Origin são exemplos de aplicações que armazenam os saves de usuários em servidores. Figura 1: Fluxo de transferência de informações. Download e upload de dados Para saber mais sobre a diferença entre upload e download, acesse: https://www.youtube.com/watch?v=aJoB7jlUGoU (https://www.youtube.com/watch?v=aJoB7jlUGoU) 26/10/2020 Versão para impressão 3/7 Outras situações que envolvem download e upload de dados são: a execução de jogos via streaming e, também, a execução de jogos através do navegador. Em ambas as situações, o jogo não está sendo rodado diretamente pelo sistema do usuário. Nestes casos o dispositivo do usuário apenas envia os comandos do jogador para o servidor; recebendo de volta o resultado de suas ações e as modificações que ocorreram no mundo virtual. É o servidor que gerencia as regras, as modificações no mundo virtual e outras informações do jogo. O servidor recebe os comandos do usuário, computa os resultados gerados por tais ações e, em seguida, envia as modificações que ocorreram na partida, atualizando o estado do jogo no sistema do usuário. Servidores Você já deve ter percebido que, além do sistema do usuário, outro dispositivo recorrente, quando falamos de internet, é o servidor. Mas o que é exatamente um servidor? Um servidor é um computador provedor de um serviço específico para outros computadores: os clientes. O termo cliente é utilizado uma vez que esses sistemas solicitam um serviço ao servidor. De forma análoga, o termo servidor vem do fato desses sistemas atenderem às requisições de serviços dos sistemas cliente. Um servidor pode realizar diversos tipos de serviços. Existem servidores que centralizam o armazenamento de informações compartilhadas por muitos outros computadores, como, por exemplo, servidores de e-mail, servidores de jogos e até mesmo servidores de impressão, que são projetados para garantir que todos os trabalhos de impressão de uma empresa sejam impressos na impressora correta. Embora qualquer computador possa se tornar um servidor, é importante que o hardware desses sistemas seja, suficientemente, robusto para suportar as exigências que serão impostas ao servidor. 26/10/2020 Versão para impressão 4/7 Figura 2: Uma das muitas salas de servidores da empresa Google. Para saber mais sobre servidores, mainframes e data centers, acesse: https://www.youtube.com/watch?v=tyoMBYWY0oo (https://www.youtube.com/watch?v=tyoMBYWY0oo) https://www.youtube.com/watch?v=EGhPN_gqI-c (https://www.youtube.com/watch?v=EGhPN_gqI-c) 26/10/2020 Versão para impressão 5/7 Quando afirmamos que um servidor hospeda um serviço, estamos querendo informar que tal sistema é responsável por executar, intermediar e/ou armazenar dados desse serviço quando requisitado por outro dispositivo. Vamos utilizar novamente um exemplo para esclarecer alguns conceitos de servidores e hospedagem. Dessa vez usaremos um jogo de corrida de carros, no qual é possível participar de partidas online e com o componente multijogador. Digamos que cada partida seja composta por no máximo oito jogadores, sendo que cada usuário possui quatro carros que podem ser personalizados. Nessa situação o servidor precisaria realizar dois tipos diferentes de serviços, armazenar as informações dos usuários e seus veículos, para posteriormente serem utilizados em uma outra partida, e realizar, quando necessário, modificações nesse conjunto de dados. O outro serviço deste servidor seria gerenciar as centenas, ou até milhares, de partidas que são jogadas ao mesmo tempo, enviando e recebendo dados dos jogadores de todas as corridas que estão ocorrendo. Você deve imaginar que uma máquina comum não seria capaz de lidar com essas tarefas, pelo menos não de forma efetiva. Dessa forma, para situações onde o serviço hospedado no servidor é muito intenso, precisaríamos utilizar servidores dedicados para a realização das tarefas. 26/10/2020 Versão para impressão 6/7 Figura 3: O servidor armazena e modifica informações de usuários e gerencia a comunicação entre os jogadores. Princípios de Hospedagem e de Registro de Domínio No nosso exemplo dizemos que o servidor faz a hospedagem dos serviços relativos às contas dos usuários, armazenando as informações dos carros, e o gerenciamento das partidas online, intermediando a comunicação dos jogadores. O mesmo poderia ser dito para um servidor que presta serviços para os usuários de um site. Ele hospeda aquele site, armazenando informações sobre produtos, clientes, promoções, compras etc. No caso de sites, especificamente, precisamos registrar o endereço da página; também conhecido como registro de domínio. Esse serviço é feito por diversas empresas. Você compra o domínio e, posteriormente, realiza a hospedagem do site em algum servidor, assim os 26/10/2020 Versão para impressão 7/7 usuários podem acessar a sua página. Vamos dizer que nosso jogo de corrida se chama Queima Pneu e que temos interesse em ter um site para as pessoas realizarem o download do jogo e acessar informações sobre ele. Primeiramente, procuraríamos uma empresa, por exemplo, a Locaweb, na qual registraríamos o domínio www.queimapneu.com.br. Depois de realizado o registro, faríamos a hospedagem em algum servidor, ficando esse como o responsável para enviar todos os dados do site. Dessa forma, todo cliente que desejasse acessar a página www.queimapneu.com.br faria uma requisição ao servidor que hospeda o site. Esta breve introdução, sobre a transferência de arquivos, serve para o planejamento de jogos, para a forma de disponibilização do jogo e para o projeto de jogos multijogadores. Posteriormente, no curso, abordaremos, com mais detalhes, a programação de jogos multijogador tendo em mente o conteúdo trabalhado neste material, ou seja, a arquitetura baseada no sistema cliente- servidor.
Compartilhar