carre_skullgirls

Skullgirls : un devblog sur GGPO et son fonctionnement

Cette semaine c’est Mike Z. qui reprend le flambeau pour parler de GGPO. S’il parle rapidement de son intégration dans Skullgirls, il explique surtout le fonctionnement de GGPO et pourquoi pas mal de gens ont été déçus de SF3.3.

« GGPO est une librairie réseau écrite par Tony Canon (Shoryuken et orga EVO), et c’est ce que Skullgirls utilise pour le jeu online. Je pense à titre personnel que le futur est aux jeux de baston jouables en ligne, mais certains se sont plaint de l’expérience Online de Street Fighter 3.3 Online Edition, qui utilise aussi GGPO. Certains ont même été déçus au point de me demander si l’on pouvait changer de netcode et utiliser autre chose. Il me semble que beaucoup de gens accusent GGPO de ces problèmes, alors qu’ils n’ont pas appris comment s’en servir.

Qu’est-ce que ce « lag » ? Le lag est un délai supplémentaire dans la réponse d’une commande par rapport à la réponse normale du jeu.

« L’input Lag » en termes de game design fait référence au temps qui s’écoule entre le moment où le joueur appuie sur un bouton et la réponse du personnage. Tous les jeux en ont, et en fait le plus court délai d’input lag que l’on peut atteindre à 60FPS est de 3 frames (l’explication du pourquoi n’est pas le sujet de ce post). Cependant, jouer un jeu en ligne ajoute du délai car l’information doit être échangée via internet, et c’est à cela que les joueurs font référence quand ils parlent de « lag ». Le délai sur internet n’est jamais de zéro, même si vous jouez contre quelqu’un se trouvant dans la pièce à coté. Disons que Alex joue contre Bob dans la dernière version du jeu de baston BLESSURE MAXIMALE, et qu’une information prend 80 millisecondes (un temps raisonnable) pour aller de la console d’Alex à celle de Bob. Cela signifie que le code réseau doit gérer 5 frames de délai – si Bob appuie sur un bouton à la frame 10, la console d’Alex ne le saura qu’à la frame 15. Les codes réseau traditionnels gèrent cette situation en retardant également l’input d’Alex de 5 frames sur sa propre console. Donc si Alex appuie sur un bouton à la frame 10, le jeu va le sauvegarder et l’utiliser à la frame 15, au même moment où Bob le reçoit via internet. Manque de bol pour Alex, cela signifie que son personnage répond lentement à ses commandes, et le jeu donne donc la sensation qu’il y a du lag. L’ajout d’input lag n’est pas une bonne chose pour un jeu de baston car il signifie que vous ne pouvez pas répondre à des informations visuelles, que vous ne pouvez pas déchoper, ou que vous ne pouvez pas faire un combo… Et dans certains cas cela peut changer le jeu, en faisant en sorte que les Super ne soient pas blocables après le flash. Si vous vous entrainez online, vous aurez certainement l’habitude de jouer avec du lag, mais ce n’est pas l’idéal, essentiellement parce que le retour aux parties offline ou tournois ne présente pas de lag. Tous vos timings seront mauvais, réagir à certaines choses sera plus difficile, et certaines tactiques que vous avez apprises en jouant online ne fonctionneront plus parce que l’adversaire en face de vous peut réagir en temps et en heure.

Donc si le lag est toujours présent quand on joue online, comment GGPO se débarasse du lag ?

En fait GGPO ne se débarasse pas du lag, mais permet au jeu de fonctionner comme s’il n’y en avait pas. Avec GGPO, dans notre exemple Alex peut choisir de combien de frames le jeu va décaler ses inputs sur sa propre console, cela veut dire qu’il peut choisir d’avoir un jeu qui réagit instantanément. Pour son propre personnage il n’a donc pas l’impression qu’il y a du lag. Cela veut dire que ses combos, links, déchopes et autre choses sensibles aux timings auront un feeling proche du offline, lui donnant une expérience de jeu satisfaisante.

Mais souvenez-vous, le délai induit par internet existe toujours. Cela signifie que si Alex configure sa console en 0 input lag et appuie sur un bouton à la frame 10, le jeu va réagir instantanément… Mais le jeu doit alors deviner ce que Bob est en train de faire. Alex va peut-être voir son attaque taper à la frame 12, mais le jeu ne sait pas si Bob a bloqué le coup. Donc quand l’action que Alex a faite à la frame 12 arrive à la frame 17 (les fameuses 5 frames induites par internet), le jeu doit revenir en arrière pour corriger ce problème et montrer que Bob a bloqué le coup lors de la frame 12, et qu’il est donc en Blockstun et non en Hitstun. Ce « retour » est visible, et cela est pire quand la connection internet est mauvaise car le jeu doit corriger les erreurs plus souvent.

Donc tout dépend de ce que vous voulez de la part du jeu. GGPO permet à ses utilisateurs de choisir entre zéro et 8 frames d’input lag. Ceux qui veulent la vraie expérience de tournoi peuvent choisir zéro lag et s’entrainer offline, mais devront s’habituer aux retours de correction. Alternativement, les joueurs qui veulent une expérience plus fluide mais peuvent supporter un peu d’input lag peuvent choisir entre 2 et 4 frames d’input lag, ce qui est généralement acceptable pour la plupart des gens et limitera le dérangement visuel sur la plupart des connections. Et les joueurs vraiment occasionnels peuvent choisir entre 5 et 8 frames de lag, ce qui veut dire que le jeu sera totalement fluide mais aura un peu de lag.

La plupart des plaintes concernant GGPO sont dûes au manque d’informations disponibles dans les jeux qui l’utilisent. Laissez le choix au joueur sans lui expliquer de quoi il s’agit, et il choisira forcément zéro input lag parce que ça semble logiquement meilleur; alors qu’au vu de sa connection internet ce n’est pas forcément le cas. Nous sommes actuellement en train de travailler sur ce problème sur Skullgirls en communiquant sur comment GGPO fonctionne, et également en offrant plus d’options pour aider les joueurs à améliorer leur expérience de jeu en ligne.

Pour résumer : GGPO permet au joueur de choisir entre une expérience sans lag mais avec de potentiels soucis visuels selon la connection, ou une expérience visuelle meilleure mais avec du lag. Le code réseau traditionnel n’offre aucun choix hormis un visuel de qualité avec du gameplay qui lag, et bien que cela semble juste sympa, l’option d’avoir un gameplay sans aucun lag offre une expérience de jeu en ligne beaucoup plus instructive si les joueurs décident de l’utiliser. »

Voila, maintenant vous savez comment régler votre 3.3 OE. Une chose que Mike Z. n’explique pas dans son article, c’est que certains jeux, dont SFIV, imposent un lag même en offline (le fameux 2/3 frame de lag dont parle Mike). De cette manière le code réseau possède une marge de manœuvre plus étendue qu’un code réseau traditionnel, et n’a pas besoin du de corriger le visuel en faisant des retours dans le temps. Cette technique a cependant une grosse contrepartie : si pour un jeu tout neuf ce n’est pas un souci d’apprendre à jouer avec un input lag forcé pour qu’il n’y ait pas de différence entre l’expérience online et offline, il est impossible d’appliquer un code réseau semblable à un jeu existant et n’ayant pas été prévu à l’origine pour utiliser ce système.
C’est pourquoi toutes les ré-éditions de jeux que nous avons sur consoles actuelles et qui possèdent un mode online ne peuvent pas s’approcher d’une expérience aussi satisfaisante que celle de SFIV : il faudrait que toutes ces ré-éditions incluent un input lag même en offline, ce qui dénaturerait le feeling d’origine du jeu. Ainsi pour un 3.3 avec un online à la SFIV, il aurait fallu, littéralement, ré-apprendre à jouer au jeu avec 2/3 frames de lag, et ne plus jouer en offline que sur la version OE, ce que les joueurs n’auraient jamais accepté.

Publié par

Neithan

Neithan est le fondateur et grand chef de Bas Gros Poing. Quand il n'est pas en train de parler de sa passion pour Guilty Gear il se prend à croire qu'il peut changer le monde et manger des gateaux. (╯°Д°)╯︵ ┻━┻

2 réflexions au sujet de « Skullgirls : un devblog sur GGPO et son fonctionnement »

Laisser un commentaire

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