Prévia do material em texto
RESUMO DO SEMINÁRIO A SER APRESENTADO JOGOS MULTIPLAYERS EM REDE IGOR KENDY SAKAGUCHI BIRIGUI-SP 2022 Na programação de jogos multiplayers online (multijogadores em rede) existem três entidades, PlayerServer, PlayerClient e PlayerProxy. Cada um tem uma função específica. • PlayerServer: é o objeto que representa os jogadores no servidor. • PlayerClient: é o objeto que é executado nas máquinas dos jogadores • PlayerProxy: é o objeto que representa os jogadores na tela dos adversários Então todas ações que vemos os outros jogadores na sua tela fazendo são versões proxies. Um exemplo utilizado por João Bergamo, é criar um item utilizável em um jogo, como uma “poção de vida”. Na versão de client pode ter apenas o código e suas regras de utilização, no entanto, na versão server, além de possuir o mesmo código e as regras, é importante que tenha uma parte adicional de segurança para confirmar se o item pode mesmo ser utilizado pelo jogador ou é uma tentativa de trapaça como hack. E na versão Proxy talvez não precise manter nenhum dos dois códigos, pois ele precisa apenas representar para os outros jogadores que aquele item foi utilizado. Existem servidores autoritários e semi-autoritários, os servidores autoritários executam e valida todas as ações dos jogadores, já os semi-autoritários algumas ações são executadas pelo servidor, outras pelo client. Apesar do servidor autoritário ser mais seguro, possui um custo maior. Um servidor semi-autoritário é mais utilizado porque além de ser mais barato, não são todas ações que precisam ser validadas. Há uma grande diferença entre jogos que são limitados por partida, como Overwatch, FIFA, Counter-Strike, League of Legends; e jogos massivos (MMOs), como World of Warcraft. O primeiro tipo é mais fácil de lidar, pois se utilizam instâncias de servidores diferentes para cada partida iniciada, e caso o servidor em que o jogo está hospedado não consiga suportar mais, é fácil utilizar uma segunda máquina com novas instâncias de partidas, e assim por diante. Assim, teoricamente, seria possível manter um número virtualmente infinito de partidas rodando ao mesmo tempo, sem problemas. Agora nos jogos MMOs é completamente diferente, pois é necessário utilizar várias técnicas e tecnologias de ponta para conseguir manter vários jogadores em uma mesma região do seu MMO. Manter 100 jogadores conectados em uma ou mais máquinas com várias instâncias de servidores diferentes é um problema muito diferente de manter 1000 jogadores na mesma instância, que é o que geralmente faz um MMO. Nesse segundo caso, há uma grande necessidade de estudo, arquitetura e testes antes de começar a produção do jogo para ter certeza de que ele aguentará o número desejado de jogadores. O consumo de banda de internet também deve ser analisado na hora de produzir um jogo, pois é um recurso físico finito. Os MMOs, em geral, utilizam muita banda, porque eles precisam estar trocando informação o tempo todos, para que mantenha todos os jogadores sincronizados. Um dos problemas mais difíceis de lidar ao desenvolver um jogo multijogador em rede, é a latência, que é o tempo que a informação demora para ir do hardware do jogador até o servidor. Devido a isso, tudo que o jogador vê está atrasado em relação ao servidor, nem que seja questões de milissegundos, e mais atrasado se for pensar em relação ao proxy. Por causa disso existem servidores regionais, assim evitando latências ruim para quem joga na região. Referências https://imasters.com.br/redes-e-servidores/dificuldades-de-implementacao-de-um-jogo- multiplayer-em-rede