Como funcionam os servidores privados e emuladores para MMORPGs?
Funcionam como um servidor "real", mas com (provavelmente) pior qualidade e possivelmente características limitadas.
Deixe-me explicar brevemente como funciona a arquitectura do cliente e do servidor do ponto de vista do MMO.
O cliente do jogo está instalado numa máquina de gamers. Isto é o que eles usam para jogar o jogo.
Quando o jogador executa uma ação, como mover, essa ação é então enviada pela Internet para o servidor do jogo que a aceita ou rejeita. O cliente do jogo então reflete o que aconteceu no servidor (ou seja, eles avançam ou recebem um erro). O servidor é o "chefe", se ele é't aceito pelo servidor então ele não't realmente acontece.
O servidor salva a ação na memória e/ou banco de dados e então envia a ação desse jogador para os outros jogadores relevantes, e seus clientes então vêem a mudança.
Tudo isso acontece em milissegundos. Aí's mais a isso mas isso's o conceito básico.
Então, um servidor de jogo "real" terá uma lista de ações que ele pode receber. Em termos técnicos, ele tem uma API. Lá's provavelmente milhares ou dezenas de milhares destas ações, dependendo do jogo.
Agora, junto vem a pessoa que quer fazer um emulador / servidor privado. Vamos chamá-lo de The Cloner.
Para fazer isso, The Cloner tem que criar seu próprio programa de servidor, possivelmente a partir do zero. Eles precisam reimplementar a grande lista de ações, da mesma forma que os programadores originais do jogo fizeram.
Como você pode imaginar, esta é uma tarefa gigantesca.
Primeiro, eles não sabem quais ações o servidor pode aceitar.
O que eles têm é o cliente do jogo, e que envia ações. Então, através do monitoramento dos dados brutos da rede ou através de um processo chamado engenharia reversa, eles podem descobrir quais ações são enviadas para o servidor.
Isso é extremamente demorado e é bem possível que eles's nunca descubram TODAS as ações porque lá's simplesmente são tantas e eles're-ativados apenas em resposta a certas situações.
O próximo passo é descobrir o que essas ações devem fazer no servidor. No exemplo de um personagem se movendo, isso's é simples. Mas muitas ações não serão claras, ou podem requerer cálculos complexos.
O Cloner está neste ponto tentando replicar os esforços de uma equipe de programadores altamente qualificados trabalhando para uma empresa de jogos que provavelmente tem milhões em financiamento, e fazendo isso em sua maioria cegos. Ele não'não tem nenhuma especificação ou instrução.
It's gosta de tentar construir um carro, mas apenas ser capaz de olhar para o exterior, e não para qualquer um dos motores.
Aqui é onde a má qualidade e funcionalidade reduzida pode entrar. O Cloner está literalmente apenas adivinhando como algo deve funcionar, e inevitavelmente o que eles criam vai ser pior do que alguém que tem todos os rótulos específicos. E por causa da lista incompleta de ações e da enormidade da tarefa, eles ganharam'não conseguir implementar toda a funcionalidade do original.
Após criar uma ação de servidor da melhor forma possível, eles precisam testar extensivamente o cliente do jogo com ela. O cliente do jogo espera que o servidor aja e responda de uma forma muito específica, e qualquer desvio disso provavelmente causará o travamento do jogo.
Voltando ao exemplo do carro; O Cloner agora construiu um motor de carro. Se ele construir o resto do carro, ele provavelmente vai funcionar, porque ele sabe como fazê-lo funcionar com o motor. Mas neste caso, The Cloner pode't construir o carro - it's o carro existente (o cliente do jogo) que tem que funcionar perfeitamente com a nova engine (o servidor).
Se no final de tudo o que você tem um jogo que funciona principalmente, considere que um feito significativo de desenvolvimento de software.
Artigos semelhantes
- Como são criados os primeiros servidores de jogos MMORPG privados (piratas)?
- Qual é o significado dos servidores privados no World of Warcraft?
- Como é que os emuladores de consolas Nintendo estão mais avançados do que os emuladores PS/Xbox?
- Os emuladores usam uma GPU dedicada? Os jogos em emuladores usam GPU?