F4 e saudações amigos! Sentiram saudades da SaveState? Aposto que sim, e hoje é um dia especial: vamos falar sobre multiplayer online nos emuladores.

teenage-mutant-ninja-turtles-iv-turtles-in-timeA difusão da Internet banda larga e o suporte online dos consoles das gerações mais recentes popularizaram a jogatina multiplayer. O sucesso de muitos games hoje em dia pode ser determinado por um bom modo online, e recentemente isso tem sido o foco principal de muitos títulos. Pode ser a imprevisibilidade e a habilidade do oponente humano ou a satisfação em aplicar teabag zoar com o inimigo derrotado. Todos que já distribuíram headshots online sabem a vantagem de enfrentar um oponente real em vez de uma inteligencia artificial.

Anos antes da existência da Xbox LIVE ou da PSN os emuladores já haviam realizado suas tentativas no mundo do multiplayer online. Versões antigas do ZSNES já possuíam um frustrante modo netplay via conexão discada, mas que era muito afetado por lag e erros de sincronização.

Hoje vamos nos aprofundar na tecnologia de rede para emuladores mais popular do momento: GGPO!

logo-verticalGGPO

ggpo.net

GGPO (Good Game Peace Out) é uma plataforma para jogos online que tem se tornado muito popular. Além de permitir uma conexão P2P direta, eliminando um canal extra que é a comunicação com o servidor, utiliza mecanismos avançados de compensação de lag e sincronização.

GGPO foi criado por Tony Cannon, membro ativo da comunidade de orkut de fighting games. Embora o Kaillera e outros netcodes sejam satisfatórios para o público em geral, eles podem ser frustrantes para jogadores hardcore. Um atraso variável no input de comandos vai atrapalhar em muito no timing de combos complexos e contra-ataques que exigem maior precisão.

Aí entra o GGPO. Seu netcode age para garantir que o jogo tenha atraso zero para o jogador local.

“Mas Ogro, lag na rede é inevitável! Como o GGPO consegue acabar com ele?”

svc-s20Amiguinho, o GGPO não acaba, mas cria uma ilusão de latência zero. O jogador configura quantos frames de atraso o jogo dele vai permitir, ou seja, dá para criar uma partida com dois, um ou até mesmo zero frames de lag. Seu personagem pode reagir imediatamente ao seu comando, o que é uma propriedade essencial para experiencia online do jogador.

Para compensar o atraso do input do outro jogador, o GGPO especula qual é a sua ação mais provável baseada nas suas ações anteriores e agir de acordo. O input real vai chegar alguns frames depois, se a adivinhação foi errada, o GGPO usa com um mecanismo bastante simples para evitar a perda de sincronização: ele também transmite informações do estado do jogo (SAVESTATE!) junto com os comandos. Se uma dessincronização é detectada, os dois emuladores carregam o último estado consistente trocado entre eles (LOADSTATE!).

Chun-Li_Marvel_vs_Capcom

Vamos supor uma partida hipotética de Marvel vs Capcom entre Samurai Rival e DiogoGC. Samurai dá uma voadora para iniciar um combo. Como instantes atras DiogoGC estava defendendo, o GGPO vai assumir que ele continua a defesa e o chute do Samurai vai acertar sua defesa. Mas 3 frames depois o jogo recebeu o input de um soco fraco, ou seja, a defesa de DiogoGC estava furada! A partida volta alguns instantes e Samurai Rival continua com seu ultra combo.

darkstalkers_pt_04_thumbEsse é o trade-off do GGPO. O jogador pode configurá-lo para diminuir ou zerar o lag, mas vai sacrificar a fluidez da partida. O jogo vai apresentar uma queda no FPS e alguns rollbacks vão acontecer. É comum em uma partida “lagada” de GGPO se ouvir um K.O. e a barra de vida do perdedor encher um pouquinho novamente. Apesar disso, GGPO ainda é o netcode favorito da favela comunidade de fighting gamers porque eles preferem precisão à fluidez na partida.

E na prática, GGPO tem resultados muito bons. Quando o input já confirmado de um jogador possui uma duração relativamente longa para o algoritmo do GGPO, a partida é fluida naquele momento. Por exemplo, quando uma magia que possui velocidade e distância conhecida, ou o movimento do personagem fica “preso” em um golpe como um Tatsumaki ou Pile Driver.

O comportamento desses comandos é determinístico, e jogos de luta possuem muitos desses. Então, se o ESPECIAL TRIPLO ULTRA COMBO de DiogoGC acertar o personagem do Samurai Rival, o jogo vai rodar lisinho por pelo menos cinco segundos.

skullgirls-hr-screen3

O cliente oficial do GGPO pode ser baixado, e possui uma lista dos jogos suportados que rodam numa versão própria do emulador Final Burn Advance. Mas seu netcode foi além do universo da emulação e está em jogos comerciais como Street Fighter III: 3rd Strike Online Edition, Skullgirls, Marvel vs Capcom Origins e o recente Darkstalkers Ressurection.

Bueno, espero que tenham aturado esse texto gigante até o final. Com isso podemos ter noção do que está acontecendo quando uma partida online está injogável. Encerrando essa SaveState por aqui, F2 e até logo!

Computólogo, RPGista, Gamer, viúvo da Sega e Sonysta.

Twitter 

Leave a Reply

Your email address will not be published. Required fields are marked *

*

21 Comentario(s)

  • Maneiro a matéria.
    Não sei se você pode abordar esse assunto no savestate, mas será que existe uma chance de uma matéria sobre flashcards e hds externos em consoles clássicos, como Snes, Nintendo 64, Sega Saturn, PSX, Atari, etc?
    E emuladores rodando em consoles clássicos, como o emulador de nes no PSX e os emuladores do PS2?

    • Ogro Himself 3 anos atrs

      Emulaçao cross console é um tema que ja escrevi no now loading, esta na fila ja.

      As outras sugestoes estao anotafas

  • Muito esclarecedor o texto Ogro. Já tinha ouvido falar do GGPO mas nunca tive coragem/interesse real/paciência de testa-lo. É assim que vcs jogam nos videos de Melhor de 3 e Ajuda ae de jogos antigos? Ou ele só é usado pra jogos de luta?

    Vou baixar pra tentar testar aqui. Valeu.

    • Depende. ZSNES usa um netplay proprio. Nos de MAME tem Kailera (que vou falar no futuro).

      GGPO funciona para "jogos de 2" apenas. Ainda nao usamos mas pode ser aproveitado no futuro

  • Ah sim, o Samurai rival é o clone pirata do Ninja Inimigo é?hehe

  • Ogro, me esclarece uma dúvida: eu tinha instalado o ggpo e só conseguia assistir os jogos mas não conseguia jogar, daí me falaram que eu tinha que acessar o roteador e liberar uma porta, mas na época havia mudado o modem do speedy e transformando modem e roteador numa coisa só e não sabia como acessar essas configurações no novo modem. Recentemente descobri o supercade que parece ser semelhante ao ggpo, porém com uma lista de jogos bem maior e vi que ele tem aquele mesmo lance de habilitar tal porta, mas aí outro dia vi um vídeo no youtube ensinando a habilitar essas portas, mas aí algumas pessoas falaram que você habilitando mais portas deixa o pc mais vulnerável e fiquei com um certo cagaço. Queria saber se na sua opinião isso é balela ou tem lá as suas verdades?

    • Cara, liberar portas no teu roteador exige certo cuidado para tu saber o q ta fazendo. Leia bem esses tutoriais para ter certeza no que vai mexer.

      Se tu liberar APENAS as portas dos programas que vai usar, e teu computador tem um firewall (o do windows ja serve) tu fica de boa. Nao precisa ter medo.

      O que tu nao pode fazer é deixar TODAS portas do roteador abertas, e sem um firewall no computador. Assim teu micro fica sem protecao alguma.

      Para ter certeza que a porta ta aberta, tem sites para testar, como http://www.canyouseeme.org/

      Basta digitar a porta do programa la dentro e apertar o check. Se ele nao te enxerga, teu roteador ta fechado, ou teu windows firewall ta bloqueando a porta

    • Uma configuracao RAPIDA para testar (mas que nem todo roteador tem) é inscrever o ip do teu computador na DMZ (zona desmilitarizada). É como colocar teu pc numa zona que "vale tudo". isso abre na hora todas as portas do router para essa maquina. É mais seguro para tua rede como um todo porque so tua maquina fica aberta, outros computadores seguem protegidos.

      Claro, quando tu termina de jogar tu tira o pc da DMZ.

      Meu router atual tem esse recurso. Gosto de deixar o ps3 nessa zona, ja que ele é menos vulneravel a invasao que um computador

  • Tohno Shiki 3 anos atrs

    Outra coisa legal do GGPO se você tem algum jogador de KOF ou SSF2 que você seja fã você pode ver ele jogar com o pessoal

  • Harukiii 3 anos atrs

    mt interessante

  • João Marcos Silva 3 anos atrs

    Essa é a única coluna fora o podcast que eu acompanho aqui no fenixdown,seria bom a próxima ser sobre emuladores de PS1 ou Sega Saturn

  • Isso é bruxaria!
    Mas, me diz: Essa matéria é completamente nova, teve adaptações ou você previu o lançamento de Street Fighter III: 3rd Strike Online Edition, Skullgirls, Marvel vs Capcom Origins e Darkstalkers Ressurection na época do Nowloading?

  • Eu não sou muito de jogos de luta. Então sempre usei ZSNES + Hamachi. Nunca consegui usar o Kaillera, apesar de sempre ouvir falar bem dele.
    Já terminei até Contra 3 jogando com um amigo em outra cidade.

    Não gostei muito deste que tu apresentou, exatamente pela perda da fluidez. Com certeza ele deve ser mais útil para jogar fighting mesmo.

    Valeu!

    Té.

  • Exceptional post however I was wondering if you could write a
    litte more on this subject? I’d be very grateful if you could elaborate a little bit more.
    Appreciate it!