Download GGPO: o software de emulação online que permite jogar jogos de luta clássicos com outros jo
- ajaallred2000
- Aug 25, 2023
- 10 min read
Como baixar GGPO e jogar jogos de arcade online
Se você é fã de jogos clássicos de arcade e jogos de luta, deve ter ouvido falar do GGPO, um middleware que permite que você jogue online com o mínimo de atraso de entrada e jogabilidade suave. Mas o que é exatamente o GGPO, como funciona e como você pode baixá-lo e usá-lo? Neste artigo, responderemos a essas e outras perguntas e mostraremos como aproveitar os jogos de fliperama online com o GGPO.
download ggpo
O que é GGPO e por que você deve usá-lo
GGPO significa Good Game Peace Out e é um SDK de rede (kit de desenvolvimento de software) que implementa uma técnica chamada rede de reversão. A rede de reversão é uma maneira de ocultar a latência da rede em jogos de estilo twitch de ritmo acelerado que exigem entradas muito precisas e execução com quadro perfeito. Ao contrário das técnicas tradicionais que adicionam atraso às entradas dos jogadores, resultando em uma sensação de jogo lenta e lenta, a rede de reversão usa previsão de entrada e execução especulativa para enviar as entradas do jogador ao jogo imediatamente, fornecendo a ilusão de uma rede de latência zero. Isso significa que o jogo parece tão responsivo quanto offline, e os mesmos tempos, reações, dicas visuais e de áudio e memória muscular que você constrói jogando offline serão traduzidos diretamente online.
Os benefícios da rede de reversão
A rede de reversão tem muitos benefícios em relação a outros métodos de código de rede, como código de rede baseado em atraso ou baseado em lockstep. Alguns desses benefícios são:
Reduz o atraso de entrada e melhora a capacidade de resposta, tornando o jogo mais divertido e satisfatório de jogar.
Ele permite que os jogadores joguem em longas distâncias e diferentes regiões, sem sacrificar a qualidade do jogo.
Ele se adapta às mudanças nas condições da rede, como perda de pacotes ou jitter, ajustando a quantidade de quadros de reversão de acordo.
Preserva o design e o equilíbrio originais do jogo, sem introduzir alterações ou limitações artificiais.
Ele funciona bem para arquiteturas ponto a ponto e cliente-servidor, bem como para jogos síncronos e assíncronos.
Os jogos e plataformas suportados
O GGPO foi criado em 2009 por Tony Cannon, co-fundador do site da comunidade de jogos de luta Shoryuken e do popular Evolution Championship Series. Ele foi originalmente empacotado com um cliente que permitia aos usuários jogar jogos online compatíveis com outros jogadores. O cliente GGPO para download suportava muitos jogos da Capcom e SNK, como Super Street Fighter II Turbo, The King of Fighters 2002 e Metal Slug X por meio do uso de um emulador integrado. As empresas de videogame também implementaram uma versão licenciada do GGPO em seus jogos, como Skullgirls, Street Fighter III: 3rd Strike Online Edition, Dragon Ball: Zenkai Battle, Final Fight: Double Impact, etc.
Em 9 de outubro de 2019, Cannon anunciou em sua conta no Twitter que o GGPO agora era de código aberto e disponível sob a licença MIT. Isso significa que o GGPO é gratuito para uso comercial e não comercial e qualquer pessoa pode modificá-lo ou distribuí-lo. A versão de código aberto do GGPO é escrita em C++ e atualmente está disponível apenas no Windows, mas esforços estão sendo feitos para transportá-lo para outras plataformas. A versão de software livre também contém o código, a documentação e os aplicativos de exemplo para o SDK.
A licença e a comunidade de código aberto
A licença MIT é uma das A licença MIT é uma das licenças mais permissivas e flexíveis da indústria de software. Ele permite que qualquer pessoa use, copie, modifique, mescle, publique, distribua, sublicencie e/ou venda cópias do software, desde que inclua a licença original e o aviso de direitos autorais em todas as cópias ou partes substanciais do software. Isso significa que o GGPO pode ser utilizado para qualquer finalidade, sem quaisquer restrições ou obrigações.
A licença de código aberto também incentiva o desenvolvimento e o crescimento da comunidade GGPO.Como o GGPO agora está disponível no GitHub, qualquer pessoa pode contribuir com o projeto relatando problemas, enviando solicitações pull ou criando bifurcações. O repositório GitHub também hospeda um fórum de discussão onde os usuários podem fazer perguntas, compartilhar ideias ou fornecer feedback. Além disso, existem outras plataformas online onde os usuários do GGPO podem interagir entre si, como Discord, Reddit, Twitter, etc.
Como baixar e instalar o GGPO no Windows
Se você deseja baixar e instalar o GGPO no seu PC com Windows, siga estas etapas:
Baixando o SDK GGPO do GitHub
A primeira etapa é baixar o GGPO SDK do repositório GitHub. Você pode clonar o repositório usando o Git ou baixá-lo como um arquivo ZIP. Para clonar o repositório usando o Git, você precisará ter o Git instalado no seu PC e executar o seguinte comando em um terminal:
git clone
Para baixar o arquivo ZIP, você pode acessar a página do GitHub e clicar no botão verde "Código" e selecionar "Baixar ZIP". Você obterá um arquivo chamado "ggpo-master.zip" que pode ser extraído para uma pasta de sua escolha.
Construindo a solução GGPO com Visual Studio e CMake
A próxima etapa é construir a solução GGPO com Visual Studio e CMake. Você precisará ter o Visual Studio 2019 ou posterior instalado em seu PC, bem como o CMake 3.15 ou posterior. Você pode baixar o Visual Studio aqui e o CMake aqui. Depois de instalá-los, você pode seguir estas etapas:
Abra o Visual Studio e selecione "Abrir uma pasta local" na página inicial.
Navegue até a pasta onde você clonou ou extraiu o GGPO SDK e selecione-o.
Aguarde o Visual Studio carregar a configuração do CMake e gerar o cache.
Selecione "x64-Debug" ou "x64-Release" no menu suspenso de configuração.
Selecione "Build All" no menu de construção ou pressione Ctrl+Shift+B.
Aguarde até que o Visual Studio crie a solução GGPO.
Executando o aplicativo de amostra Vector War
A etapa final é executar o aplicativo de exemplo Vector War que demonstra como usar o GGPO em um jogo simples. Vector War é um jogo de tiro espacial estilo retrô que suporta até 4 jogadores online. Para executar o Vector War, você pode seguir estas etapas:
Selecione "vectorwar.exe" no menu suspenso do destino de depuração.
Selecione "Iniciar Depuração" no menu de depuração ou pressione F5.
Uma janela aparecerá solicitando que você digite seu nome de jogador. Digite um nome de sua escolha e clique em OK.
Uma janela aparecerá solicitando que você insira um número de porta. Insira um número de porta entre 1024 e 65535 e clique em OK.
A janela do jogo Vector War será aberta e você verá um menu com quatro opções: Iniciar Jogo, Entrar no Jogo, Assistir Jogo e Sair.
Para iniciar um jogo, selecione Iniciar jogo e aguarde a entrada de outros jogadores. Para ingressar em um jogo, selecione Entrar no jogo e insira o endereço IP e o número da porta do jogador host. Para assistir a um jogo, selecione Spectate Game e insira o endereço IP e o número da porta de qualquer jogador no jogo. Para sair do jogo, selecione Sair ou pressione Esc.
Como usar GGPO em seus próprios jogos ou emuladores
Se você é um desenvolvedor de jogos ou um desenvolvedor de emuladores, pode estar interessado em usar o GGPO em seus próprios jogos ou emuladores. O GGPO foi projetado para ser fácil de integrar e flexível de usar, e oferece suporte a uma ampla variedade de gêneros e plataformas de jogos. Para usar o GGPO em seus próprios jogos ou emuladores, você precisará seguir estas etapas:
Integrando o GGPO ao seu loop de jogo
O primeiro passo é integrar o GGPO ao seu loop de jogo. Um loop de jogo é a principal função que executa a lógica do jogo, atualiza o estado do jogo e renderiza os gráficos do jogo. Para integrar o GGPO ao seu loop de jogo, você precisará fazer o seguinte:
Crie um objeto GGPOSession e inicialize-o com os parâmetros do seu jogo, como número de jogadores, tamanho do input, callbacks, etc.
Chame GGPOSession::DoPoll() periodicamente para permitir que GGPO lide com eventos de rede, como enviar e receber entradas, sincronizar com outros jogadores, etc.
Chame GGPOSession::AddLocalInput() para enviar sua entrada local para GGPO e obter a entrada para o quadro atual.
Chame GGPOSession::AdvanceFrame() para avançar o estado do jogo em um quadro e notificar GGPO de que você está pronto para o próximo quadro.
Renderize os gráficos do jogo com base no estado atual do jogo.
Salvando e carregando o estado do jogo para reversão
A segunda etapa é salvar e carregar o estado do jogo para reversão. Rollback é o processo de rebobinar o estado do jogo para um ponto anterior no tempo e repetir as entradas a partir daí. Isso é feito para corrigir qualquer erro de previsão ou divergência que possa ocorrer devido à latência da rede ou perda de pacotes. Para salvar e carregar o estado do jogo para reversão, você precisará fazer o seguinte:
Implemente o retorno de chamada SaveGameState que o GGPO chamará quando precisar salvar o estado atual do jogo. Você deve serializar o estado do jogo em um buffer e retorná-lo ao GGPO.
Implemente o retorno de chamada LoadGameState que o GGPO chamará quando precisar carregar um estado de jogo salvo anteriormente. Você deve desserializar o buffer no estado do jogo e aplicá-lo ao seu jogo.
Implemente o retorno de chamada FreeBuffer que o GGPO chamará quando não precisar mais de um buffer que foi retornado por SaveGameState. Você deve liberar qualquer memória alocada para o buffer.
Implemente o retorno de chamada LogGameState que o GGPO chamará quando precisar registrar um estado do jogo para fins de depuração. Você deve imprimir qualquer informação relevante sobre o estado do jogo em um arquivo ou console.
Lidando com Erros e Divergências de Previsão
A terceira etapa é lidar com erros de previsão e divergência. Erros de previsão ocorrem quando o GGPO prevê uma entrada incorreta para um jogador devido à latência da rede ou perda de pacotes. Divergência é quando dois jogadores têm diferentes estados de jogo devido a erros de previsão ou bugs. Para lidar com erros de previsão e divergência, você precisará fazer o seguinte:
Implemente o retorno de chamada OnEvent que o GGPO chamará quando ocorrer um evento, como uma mudança de status de conexão, um ponto de sincronização, um erro de previsão, etc. Você deve lidar com cada evento adequadamente e atualizar sua interface de usuário, se necessário.
Implemente o retorno de chamada CheckSimulation que o GGPO chamará periodicamente para verificar se o estado do seu jogo corresponde ao estado do jogo de outro jogador. Você deve comparar o estado do seu jogo com o buffer fornecido pelo GGPO e retornar true se eles forem iguais ou false se eles divergirem.
Implemente qualquer tratamento de erro ou mecanismos de recuperação que considere necessários para o seu jogo ou emulador, como exibir uma mensagem de erro, redefinir o estado do jogo, desconectar-se da sessão etc.
Como participar ou hospedar partidas online com GGPO
Se você deseja participar ou hospedar partidas online com o GGPO, precisará seguir estas etapas:
Usando o cliente GGPO ou clientes alternativos
A maneira mais fácil de ingressar ou hospedar partidas online com o GGPO é usar o cliente GGPO para download que mencionamos anteriormente. O cliente GGPO para download possui uma interface de usuário simples que permite selecionar um jogo, criar ou ingressar em um lobby, conversar com outros jogadores, definir suas configurações, etc. No entanto, o cliente GGPO para download não é mais atualizado e suporta apenas um número limitado de jogos e plataformas. Se você quiser jogar outros jogos ou plataformas que não são suportadas pelo cliente GGPO para download, você precisará usar clientes alternativos desenvolvidos por terceiros. Alguns exemplos de clientes alternativos são Fightcade, RetroArch, RedGGPO, etc. Esses clientes alternativos têm recursos diferentes Esses clientes alternativos têm recursos e interfaces diferentes, mas todos usam GGPO como código de rede subjacente. Você pode encontrar mais informações sobre esses clientes alternativos em seus respectivos sites ou comunidades online.
Configurando regras de encaminhamento de porta e firewall
Outra etapa importante para ingressar ou hospedar partidas online com o GGPO é configurar o encaminhamento de porta e as regras de firewall em seu roteador e PC. O encaminhamento de porta é um processo de redirecionamento do tráfego de rede de entrada de uma porta específica para um dispositivo em sua rede local, como seu PC. As regras de firewall são um conjunto de instruções que controlam como seu PC ou roteador lida com o tráfego de rede de entrada e saída, como permitir ou bloquear determinadas portas ou protocolos. Para configurar o encaminhamento de porta e regras de firewall para GGPO, você precisará fazer o seguinte:
Determine qual número de porta você está usando para GGPO. Você pode usar o número de porta padrão (7000) ou escolher um número de porta personalizado entre 1024 e 65535.
Acesse a interface da web do seu roteador e navegue até a seção de encaminhamento de porta. Pode ser necessário fazer login com o nome de usuário e a senha do seu roteador, que geralmente estão impressos no próprio roteador ou no manual.
Crie uma nova regra de encaminhamento de porta que encaminhe o protocolo UDP da porta externa (o número da porta que você está usando para GGPO) para a porta interna (o mesmo número da porta) e o endereço IP interno (o endereço IP do seu PC). Você pode encontrar o endereço IP do seu PC executando o comando ipconfig em um terminal.
Salve a regra de encaminhamento de porta e reinicie o roteador, se necessário.
Acesse as configurações de firewall do seu PC e navegue até a seção de regras de entrada. Pode ser necessário procurar por "firewall" no menu Iniciar ou no painel de controle.
Crie uma nova regra de entrada que permita o protocolo UDP de qualquer endereço IP de origem e qualquer porta de origem para qualquer endereço IP de destino e a porta de destino (o número da porta que você está usando para GGPO).
Salve a regra de entrada e reinicie o computador, se necessário.
Encontrando oponentes e assistindo partidas
A etapa final para ingressar ou hospedar partidas online com o GGPO é encontrar oponentes e assistir partidas. Dependendo de qual cliente você está usando, você pode ter diferentes opções para fazer isso. Algumas opções comuns são:
Navegar ou criar lobbies que listam os jogos disponíveis, jogadores, ping, etc.
Pesquisar ou convidar jogadores por nome de usuário, região, nível de habilidade, etc.
Entrar ou criar salas de bate-papo que permitem que você se comunique com outros jogadores, envie desafios, etc.
Visualização ou entrada no modo espectador que permite assistir partidas de outros jogadores ao vivo, com comentários, chat, etc.
Conclusão e perguntas frequentes
Concluindo, o GGPO é uma solução de código de rede poderosa e inovadora que permite jogos de fliperama online com atraso de entrada mínimo e jogabilidade suave. É fácil de baixar e instalar no Windows e pode ser usado em vários jogos e emuladores. Também é de código aberto e gratuito para uso comercial e não comercial, e possui uma comunidade vibrante e solidária. Se você quiser experimentar jogos de fliperama online como nunca antes, você definitivamente deveria experimentar o GGPO.
Aqui estão algumas perguntas frequentes sobre o GGPO:
PerguntaResponder
O que significa GGPO?GGPO significa Good Game Peace Out, que é uma frase comum usada por jogadores online para encerrar uma partida ou sessão.
O que é rede de reversão?A rede de reversão é uma técnica que usa previsão de entrada e execução especulativa para ocultar a latência da rede em jogos de ritmo acelerado.
Quais jogos suportam GGPO?Muitos jogos da Capcom e SNK suportam GGPO por meio do cliente GGPO para download ou clientes alternativos. Algumas empresas de videogame também implementaram GGPO em seus jogos, como Skullgirls, Street Fighter III: 3rd Strike Online Edition, Dragon Ball: Zenkai Battle, etc.
Como posso usar o GGPO em meus próprios jogos ou emuladores?Você pode usar o GGPO em seus próprios jogos ou emuladores baixando o SDK de código aberto do GitHub e integrando-o ao seu loop de jogo, salvando e carregando o estado do jogo para reversão, lidando com erros de previsão e divergência, etc. 0517a86e26
Comments