déconnexion
03/10/2008 - 11:09:35
La reconnexion en combat
Bonjour à tous,
Je me présente, je suis Oopah, nouvel habitant fraîchement débarqué sur la planète Ankama. Je suis développeur serveur pour DOFUS et je m'occupe principalement du développement lié au game design. Plus concrètement, quand Lichen propose un nouveau sort, des réglages pour le PVP, ou bien un "nerf" (coucou les Xélors), c'est moi qui le code fébrilement avec mes petits doigts musclés.
Mais aujourd'hui je prends la parole pour une toute autre affaire, puisqu'il s'agit de vous détaille le fonctionnement du système de reconnexion en combat.
Pour ceux qui étaient devenus chauves à force de s'arracher les cheveux à chaque déconnexion et qui se demandaient pourquoi Ankama n'avait pas trouvé une solution plus tôt, sachez que le jeu n'a jamais été conçu à la base pour profiter d'une telle fonctionnalité.
Il a fallu se creuser longuement les méninges pour obtenir quelque chose qui nous convienne et intervenir sur des portions de code critiques.
Cela fait plusieurs années que nous essayons différentes approches afin de vous proposer un système de reconnexion fiable.
Globalement, mon travail a consisté à réorganiser le lien entre le joueur et son personnage pour pouvoir le couper proprement si le client du joueur "plante" ou n'est plus visible par le serveur. Le personnage vit alors sa petite vie en attendant que son propriétaire se reconnecte, s'il revient à temps.
Quand le joueur se reconnecte, le serveur renoue le lien avec le personnage, lui indique qu'il a un combat en attente et lui transmet toutes les informations, y compris ce qu'il s'est passé pendant son absence. Une fois que le client a pu se synchroniser avec le serveur, le combat peut continuer.
Nous avons cherché à rendre la déconnexion d'un joueur la moins pénible possible pour ses coéquipiers. Le personnage du joueur déconnecté passe son tour automatiquement, sauf s'il ne reste plus d'autres joueurs connectés dans la partie.
Le joueur dispose alors de 20 tours pour reconnecter son personnage, ce qui permet en solo, d'avoir 10 minutes minimum pour réagir, ou de laisser à son équipe le temps de gérer la situation, voir même de finir le combat.
Ce système de reconnexion en combat a été testé pendant plusieurs mois en interne, nous avons ensuite fait d'importants tests sur nos serveurs de tests publics. Il est actuellement activé sur le serveur héroïque, ce qui nous permet d'avoir un bon aperçu de son fonctionnement en situation réelle.
Nous allons encore essayer d'améliorer son fonctionnement dans les mois à venir et nous suivons avec attention vos retours à propos de ce système.
Nous avons encore besoin de faire davantage de tests avant de déployer ce système de reconnexion sur l'ensemble des serveurs de jeu.
Ce système interagit avec les fonctionnalités de bas niveau de nos serveurs de jeu et nous voulons redoubler de prudence.
Comme je ne suis pas un grand bavard, j'en reste là et je vous dis peut-être à bientôt.
Je me présente, je suis Oopah, nouvel habitant fraîchement débarqué sur la planète Ankama. Je suis développeur serveur pour DOFUS et je m'occupe principalement du développement lié au game design. Plus concrètement, quand Lichen propose un nouveau sort, des réglages pour le PVP, ou bien un "nerf" (coucou les Xélors), c'est moi qui le code fébrilement avec mes petits doigts musclés.
Mais aujourd'hui je prends la parole pour une toute autre affaire, puisqu'il s'agit de vous détaille le fonctionnement du système de reconnexion en combat.
Pour ceux qui étaient devenus chauves à force de s'arracher les cheveux à chaque déconnexion et qui se demandaient pourquoi Ankama n'avait pas trouvé une solution plus tôt, sachez que le jeu n'a jamais été conçu à la base pour profiter d'une telle fonctionnalité.
Il a fallu se creuser longuement les méninges pour obtenir quelque chose qui nous convienne et intervenir sur des portions de code critiques.
Cela fait plusieurs années que nous essayons différentes approches afin de vous proposer un système de reconnexion fiable.
Globalement, mon travail a consisté à réorganiser le lien entre le joueur et son personnage pour pouvoir le couper proprement si le client du joueur "plante" ou n'est plus visible par le serveur. Le personnage vit alors sa petite vie en attendant que son propriétaire se reconnecte, s'il revient à temps.
Quand le joueur se reconnecte, le serveur renoue le lien avec le personnage, lui indique qu'il a un combat en attente et lui transmet toutes les informations, y compris ce qu'il s'est passé pendant son absence. Une fois que le client a pu se synchroniser avec le serveur, le combat peut continuer.
Nous avons cherché à rendre la déconnexion d'un joueur la moins pénible possible pour ses coéquipiers. Le personnage du joueur déconnecté passe son tour automatiquement, sauf s'il ne reste plus d'autres joueurs connectés dans la partie.
Le joueur dispose alors de 20 tours pour reconnecter son personnage, ce qui permet en solo, d'avoir 10 minutes minimum pour réagir, ou de laisser à son équipe le temps de gérer la situation, voir même de finir le combat.
Ce système de reconnexion en combat a été testé pendant plusieurs mois en interne, nous avons ensuite fait d'importants tests sur nos serveurs de tests publics. Il est actuellement activé sur le serveur héroïque, ce qui nous permet d'avoir un bon aperçu de son fonctionnement en situation réelle.
Nous allons encore essayer d'améliorer son fonctionnement dans les mois à venir et nous suivons avec attention vos retours à propos de ce système.
Nous avons encore besoin de faire davantage de tests avant de déployer ce système de reconnexion sur l'ensemble des serveurs de jeu.
Ce système interagit avec les fonctionnalités de bas niveau de nos serveurs de jeu et nous voulons redoubler de prudence.
Comme je ne suis pas un grand bavard, j'en reste là et je vous dis peut-être à bientôt.
10/12/2007 - 11:58:52
Un peu de repit pour les heros...
Le bêta-test de la version hardcore (pardon, héroïque) de DOFUS est terminé et l’on est en droit d’attendre la sortie imminente d’Oto Mustam, le serveur qui va accueillir ce tout nouveau mode de jeu. Pourtant, aucune ouverture n’est annoncée pour ce serveur. Mais que se passe-t-il donc ? Ben… On l’a retardée.
Mais pourquoi donc, mes bons messieurs ? Et bien, d’une part, nous devons attendre le déplacement de nos serveurs chez notre nouvel hébergeur, quoi qu’il arrive. Le transfert initialement prévu pour cette fin d’année ayant été reporté à l’aube de la prochaine, le serveur héroïque attend patiemment qu’on y arrive. Mais ce n’est pas tout. En effet, une problématique plus profonde et bloquante occupe nos esprits (enfin surtout ceux des vaillants développeurs, moi je ne suis que le spectateur de leurs recherches)…
Ce curieux problème, les bêta-testeurs en ont rapidement pris conscience, et nombreux sont ceux qui nous l’ont reporté. Les déconnexions impromptues. En effet, le principe même du mode héroïque de DOFUS réside dans la mort définitive lorsque l’on perd un combat (hors défi). Jusque là, tout va bien, pour peu qu’on accepte de jouer le jeu… Malheureusement, contrairement à un jeu solo où on peut jouer en toute tranquillité, dans un MMORPG, on est dépendant de la santé de son modem, des microcoupures, des lags des serveurs, des caprices des FAI… Plein de choses entrent en jeu. Autant c’est agaçant dans DOFUS en général (nous en sommes conscients et nous travaillons dur pour améliorer ça), autant ça devient carrément critique dans le mode héroïque. Le moindre reboot de votre modem entraînant la crémation instantanée de votre personnage. C’est quand même assez frustrant.
Pour remédier à cela, donc, nous étudions toutes les solutions qui s’offrent à nous pour améliorer la stabilité de votre connexion à DOFUS. Cela passe par notre changement d’hébergeur, mais aussi par un travail approfondi sur la source des lags, ainsi que de nouvelles recherches sur un de nos plus vieux projets… Le système de déco/reco (pour déconnexion / reconnexion). Le principe est simple : permettre à un joueur en combat de ne pas être exclu de son combat (et désigné comme perdant, donc) si son modem lui joue un mauvais tour. Bon, si votre modem s’éteint une heure, ça ne changera rien, mais en cas de microcoupures ou d’un vilain lag, vous pourriez sauver la mise. En pratique, c’est plus compliqué en revanche, DOFUS n’est pas le jeu qui s’y prête le plus, mais nous ne désespérons pas d’arriver un jour à concilier le tour par tour et les déconnexions.
Tout cela prend malheureusement du temps, et nos projets sont nombreux, mais nous souhaitons mettre en œuvre tout ce que nous pouvons pour avancer dans le développement de cette nouvelle option avant de lancer notre serveur Oto Mustam, pour votre bien, ô joueurs, et pour la santé de vos nerfs.
Plus d’informations viendront au cours du premier trimestre 2008 ! Bon jeu à tous, continuez à vous entraîner pour devenir prochainement les plus gros roXXors du serveur héroïque. Vous avez le potentiel en vous, je sens vos midichloriens jusque ici, alors ne perdez pas confiance.
Mais pourquoi donc, mes bons messieurs ? Et bien, d’une part, nous devons attendre le déplacement de nos serveurs chez notre nouvel hébergeur, quoi qu’il arrive. Le transfert initialement prévu pour cette fin d’année ayant été reporté à l’aube de la prochaine, le serveur héroïque attend patiemment qu’on y arrive. Mais ce n’est pas tout. En effet, une problématique plus profonde et bloquante occupe nos esprits (enfin surtout ceux des vaillants développeurs, moi je ne suis que le spectateur de leurs recherches)…
Ce curieux problème, les bêta-testeurs en ont rapidement pris conscience, et nombreux sont ceux qui nous l’ont reporté. Les déconnexions impromptues. En effet, le principe même du mode héroïque de DOFUS réside dans la mort définitive lorsque l’on perd un combat (hors défi). Jusque là, tout va bien, pour peu qu’on accepte de jouer le jeu… Malheureusement, contrairement à un jeu solo où on peut jouer en toute tranquillité, dans un MMORPG, on est dépendant de la santé de son modem, des microcoupures, des lags des serveurs, des caprices des FAI… Plein de choses entrent en jeu. Autant c’est agaçant dans DOFUS en général (nous en sommes conscients et nous travaillons dur pour améliorer ça), autant ça devient carrément critique dans le mode héroïque. Le moindre reboot de votre modem entraînant la crémation instantanée de votre personnage. C’est quand même assez frustrant.
Pour remédier à cela, donc, nous étudions toutes les solutions qui s’offrent à nous pour améliorer la stabilité de votre connexion à DOFUS. Cela passe par notre changement d’hébergeur, mais aussi par un travail approfondi sur la source des lags, ainsi que de nouvelles recherches sur un de nos plus vieux projets… Le système de déco/reco (pour déconnexion / reconnexion). Le principe est simple : permettre à un joueur en combat de ne pas être exclu de son combat (et désigné comme perdant, donc) si son modem lui joue un mauvais tour. Bon, si votre modem s’éteint une heure, ça ne changera rien, mais en cas de microcoupures ou d’un vilain lag, vous pourriez sauver la mise. En pratique, c’est plus compliqué en revanche, DOFUS n’est pas le jeu qui s’y prête le plus, mais nous ne désespérons pas d’arriver un jour à concilier le tour par tour et les déconnexions.
Tout cela prend malheureusement du temps, et nos projets sont nombreux, mais nous souhaitons mettre en œuvre tout ce que nous pouvons pour avancer dans le développement de cette nouvelle option avant de lancer notre serveur Oto Mustam, pour votre bien, ô joueurs, et pour la santé de vos nerfs.
Plus d’informations viendront au cours du premier trimestre 2008 ! Bon jeu à tous, continuez à vous entraîner pour devenir prochainement les plus gros roXXors du serveur héroïque. Vous avez le potentiel en vous, je sens vos midichloriens jusque ici, alors ne perdez pas confiance.



