ggpologo

GGPO ou comment résoudre les problèmes de latence sur internet

Dans une interview donnée à Gamasutra, Tony Cannon revient sur ce qui l’a poussé à créer GGPO quelques années auparavant. Il explique que comme de nombreux développeurs de middlewares, il a commencé à développer son propre système pour résoudre les problèmes qu’il avait en tant que joueur. En tant que joueur pro de jeux de combat et un des organisateurs de l’Evo, il était préoccupé par la chute brutale de la culture arcade. Il se rappelle de la mort progressive des salles d’arcade à partir de la seconde moitié des années 90 et voyait avec l’arrivée de Street Fighter II: Hyper Fighting et son mode online en 2005, une lueur d’espoir pour raviver la flamme de cette culture. Malheureusement pour les joueurs, le lag et les glitches rendaient le jeu injouable.

Tentant de trouver un moyen de régler ces problèmes, il trouva une solution qu’il nomme rollback. Plutôt que d’insérer une latence liée à internet entre la pression du bouton et le début du mouvement, sa technique fut de placer le lag au début de l’animation du mouvement de l’adversaire avec des animations bouche-trou pour cacher un peu l’effet. Cette technique est bien meilleure selon lui car, même si l’on peut repérer l’effet utilisé pour combler, tous les timings restent les mêmes.

Après huit mois de travail, la première version de GGPO (raccourci de « good game, peace out ») était prête fin 2006. Il approcha Backbone Entertainment qui travaillait à l’époque sur le portage console de Puzzle Fighter, mais cela ne mena à rien. Il se rendit compte qu’une description du procédé ne suffisait pas pour convaincre et il lui fallait un moyen de montrer comment fonctionnait son code. Solution qu’il trouva en superposant son code sur l’émulateur Final Burn Alpha. Quand Seth Killian put arranger une rencontre avec l’équipe de développement de Super Street Fighter II: Turbo HD Remix fin 2007, Cannon leur fit alors une démonstration avec Street Fighter Alpha 2 en les faisant jouer contre un joueur européen.

Backbone utilisa finalement son propre net code développé en interne avec un rollback amélioré. Mais même si son code n’avait pas été directement utilisé, le choix de Backbone en utilisant le rollback validait le concept de GGPO. Il continua donc de perfectionner le code pendant plusieurs mois en le testant sur de nombreuses connexions et en prenant en compte les retours de milliers de joueurs utilisant Final Burn Alpha avant d’obtenir une licence pour GGPO. Depuis, l’utilisation commerciale de GGPO n’a fait que s’amplifier puisqu’il est utilisé par Final Fight: Double Impact, Dragon Ball Zenkai Battle Royale, Skullgirls et plusieurs autres jeux qui n’ont pas encore été annoncés.

Il est content que des développeurs pensent leur net code plus intelligemment pour des jeux compétitifs rapides, que ce soit en utilisant directement son code ou juste en s’en inspirant. C’était son objectif dès le départ que les jeux de combat intègrent certaines technologies reproduisant les sensations de l’arcade en jouant en ligne puisque, n’ayant plus le temps d’aller dans les salles d’arcade, ça lui permet d’en profiter chez lui.

Si vous êtes intéressés par le sujet, il avait écrit l’année dernière un article sur Capcom Unity revenant sur son expérience en travaillant avec Capcom sur Final Fight: Double Impact.

Publié par

Atssal

Rédacteur 100% asshole.

12 réflexions au sujet de « GGPO ou comment résoudre les problèmes de latence sur internet »

  1. Merci pour l’article, c’est bien intéressant. L’unique problème de Cannon c’est qu’il ne permet pas à chacun de créer des serveurs privés de GGPO. L’utilisation de serveurs privés résoudrait pas mal de problèmes, surtout quand on vient en masse sur GGPO.

  2. on peut pas dire que ggpo soit tres stable,

    en plus j’ai eu un mal fou a le faire fonctionner contrairement a supercade ou anciennement 2df(ce qui avait lair d’être le cas de beaucoup de personnes vu les posts que j’ai lu)

    dommage car l’interface est vraiment bien et le fait de voir les match si facilement aussi.

    a quand une nouvelle version?c’est toujours la beta apparemment.

  3. de bonnes idées pour les joueurs, mais du ping reste du ping , peut importe le netcode utilisé.. d’autant plus que la plus part des PC des joueurs sont très mal configuré ( antivirus etc.. ).

    le net c’est bien pour faire survivre le genre et pour jouer en mode  » fun  » , mais impossible de faire dans le propre..

  4. Y’a pas rb2 sur ggpo et 3.3 c’est de la merde dessus.

    Ce serait bien de faire un article sur supercade. Beaucoup de joueurs de 2df, l’ancien supercade ont migré vers ggpo car le successeur de 2df était vraiment une regression (plus de replay, interface lourde dans le navigateur, pas de chatbox, etc.)

    Damedai est revenu sur une interface à la 2df mais je suis pas sûr que beaucoup de gens soient au courant.

  5. Ce gentleman et le créateur de 2DF ont réalisé un de mes rêves : quasiment l’arcade en ligne. Merci et bravo !
    Il est vrai qu’un upgrade serveur ou la possibilité de serveurs indépendants comme l’évoque Neithan serait une progression appréciable.

  6. Je comprendrais jamais cet engouement pour GGPO. C’est vraiment le jeu online du pauvre. Ça marche tous les 36 du mois et quand ça marche ça lag.

  7. @mokotard
    Sauf pour 3.3 justement (et pour les autres c’est negligeable sur le continent)…

    3.3 sur ggpo même quand ca marche y’a beaucoup plus de roll back que sur les autres jeux, je parle même pas des bugs graphiques qui apparaisent en cours de parties. Enfin supercade est beaucoup plus stable sur 3.3 avec un lag quasi imperceptible pour peu que les connections soient bonnes.

    Yolgens a raison, ggpo est un peu surestimé.

  8. @ doct0r cube

    nan nan , Yolgens n’a pas raison . 3.3 est par moment injouable et frustrant sur Supercade .
    Entre GGPO et Supercade , c’est le jour et la nuit .

    Sur Supercade et en jouant avec un FR , le jeu est plus lent , il y a une lourdeur ou lenteur dans les inputs , les timings sont bizarres , tu peux réussir un red parry sur une séquence et le raté sur la même séquence plus tard alors que t’as fait exactement la même chose , le lag est perceptible quoi que tu en dises aussi bien au niveau des input que visuel . Alors que GGPO , c’est juste visuel . Le lag n’a quasiment aucun impact sur les inputs.

    Les bugs de son sont insupportable .
    AdobeAir ( GGPO ) > .Net ( quand ça bug sur un challenge ou que le client se met à bugger , c’est DTC , obligé d’ouvrir le gestionnaire des taches pour fermer à l’arrache … ) .
    Le client de Supercade rame ( du au .Net ), quand on te challenge ou que tu challenges , tu ne peux plus rien faire d’autre ( obliger d’attendre l’autre ou de ferme à l’arrache ), le client se bloque sans raison . Pas ce genre de problème avec GGPO .

    Je ne dis pas que GGPO est parfait . Juste qu’il est meilleur .
    Actuellement , il y a du monde sur SuperCade , à cause de GGPO non accessible .
    Mais t’inquiètes pas , quand GGPO sera de nouveau accessible , SuperCade redeviendra comme il était avant : désertique .

    N’oublie pas que GGPO est gratuit .
    Il a un meilleur NetCode que bon nombres de jeux du commerce ( qui a dit SNK ? … )

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *