[Devblog] Un peu de répit pour les héros

Répondre
Partager Rechercher
Citation :
Publié par Sylfaen
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.
Source
ça doit pas etre simple, parce que faire la difference entre le mec qui a un probleme de modem et un autre qui le débranche juste avant qu'il se fasse OS (donc pour sauver son perso), ça va etre facheux.
M'enfin je ne suis pas attirée du tout par ce serveur, cepandant je vous souhaite bien du courage pour trouver une sollution
Il n'y a pas besoin de faire la différence entre les deux, il "suffit" de le reconnecter en combat, en lui redonnant le contrôle de son personnage.

Tout le problème est dans cette reconnexion. (On peut imaginer des bug ou on prendrais le contrôle d'un autre perso, par exemple)

Les dev' vont bien s'amuser avec ça ;P
Je suis la seule à avoir trouvé qu'un passage, en plus d'être ambigüe, mériterait un peu plus d'explications ?
Ou bien ne suis-je pas la seule, et tout le monde pense que s'engager dans cette voie c'est sortir un peu trop du cadre du sujet de base, à savoir le serveur héroïque ?

Je trouve tout de même qu'un truc cloche dans ce passage :
Citation :
Publié par Sylfaen
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.
à part une formulation malheureuse, je vois pas où tu veux en venir...

dans un jeu type temps réel le problème ne se pose presque pas puisqu'on "disparaît" tout simplement quel que soit notre activité (combat ou autre), on peut donc tout de même mourir selon le temps que notre perso mettra effectivement à déconnecter (et le temps que d'éventuels mobs/PJ nous tuent^^)

dans un jeu type tour/tour, lorsqu'on est en combat, en sortir équivaut à perdre, et dans ce cas, à mourir.

donc "en pratique", le principe peut être expliqué de manière simpliste "suffit de pas bouger et de se reco" mais en réalité, comment retrouver sa session ? comment gérer cela ?

faut pas non plus chercher tout le temps la petite bête...
moi c'est autre chose qui m'a choquée, et apparemment tout le monde trouve ça normal : ça ne vous énerve pas que les dev aient attendu un mode héroïque pour enfin se pencher sérieusement sur les problèmes de déconnexions ?
@crevetteingenue : Si, un peu. Mais j'arrive parfaitement a comprendre que le problème est négligeable par rapport a la difficulté de la solution. Enfin, ce n'était pas une priorité pour Ankama quoi.
D'ailleurs, je pense que deux-trois mois est peut être un petit peu optimiste pour trouver une solution efficace, et les tests qui vont bien avec. 'fin bon, je pense qu'ils sont meilleurs que moi en prog'
perso, je pense surtout que le problème était insolvable sans la nouvelle plateforme. le problème était donc connu mais non prioritaire étant donné les extensions, la correction de pas mal de chose, et le problème de l'hébergeur (qui n'était pas un problème directement réglable par eux)...

maintenant que la donne est changée, qu'un nouveau mode hardcore a été sorti, c'est pire que prévu (ben ouais, à mon avis les déco réelles étaient difficilement quantifiable). vu que côté hébergeur, la plateforme va sûrement rendre possible pas mal de chose en terme de performance, ils décident de bosser dessus...

rien de plus normal en terme de gestion des priorités...
Je plussoie pleinement Nainder sur ce point.
Sinon -Telia-, je trouve que ta citation fait un peu "Un jour mon prince viendra".
Je pense qu'ils lanceront le serveur héroïque sans le système déco/reco
Etant adepte du Wi-fi et des interférences entraînant des micro-coupures aléatoires et donc des morts par déco, ca me réchauffe le coeur qu'ils se penchent enfin sérieusement sur ce problème.

Ca ne me fera pas jouer en mode héroïque pour autant, mais il était évident que ce serait le plus gros point noir de ce serveur. On ne peut pas monter un perso level 1xx et tout perdre parce que ya une micro-onde qui a fait clignoter le routeur wi-fi.

Comme disaient les autres, il est dommage qu'ils ne se soient pas penchés avant là dessus. J'ai, je pense, "perdus" plus de combats à cause des décos qu'a cause des monstres.
Citation :
Publié par Nainder
dans un jeu type tour/tour, lorsqu'on est en combat, en sortir équivaut à perdre, et dans ce cas, à mourir.

donc "en pratique", le principe peut être expliqué de manière simpliste "suffit de pas bouger et de se reco" mais en réalité, comment retrouver sa session ? comment gérer cela ?
Dans un jeu type tour par tour, plus particulièrement ceux qui peuvent se jouer via le navigateur internet, il n'y a pas cette notion de temps réel, donc de connexion continue, mais il y a surtout pas cette notion de "je quitte donc je perds forcément". On reste tout bêtement inactif, présent mais inactif, lorsque nous ne faisons rien.
Même plus : on n'est même pas obligé d'être là pendant le tour des autres où l'on ne peut rien faire, on doit juste veiller à être au moins là pendant son tour pour faire ses actions.

En supprimant le temps réel, ou en supprimant le tour par tour, on dirait que l'on tombe dans un cas simple déjà traité des centaines de fois sans problèmes, mais les deux seraient incompatibles ?

Et là l'ambiguïté : est-ce que le problème est inhérent à tous les jeux de la catégorie temps réel et tour par tour, ou juste spécifique à Dofus ? La phrase que j'ai citée faisant complètement abstraction à la fin du temps réel, mais le système de tour par tour seul ne peut pas être la cause des problèmes que nous connaissons.


Mais je dois être la seule personne à ne pas comprendre pourquoi on ne pourrait pas reprendre un combat en cours après une déconnexion survenue il y a moins d'une minute, alors que n'importe quel joueur peut commencer à visionner un combat à tout moment...
Je ne sais pas comment ils ont fait le mode observateur, mais même si, a mon avis, ça n'est pas super evident, ça reste bien plus simple qu'une reconnexion.

Le gros problème de la reconnexion, c'est le "re" ;P
Il ne suffit pas de revenir et dire : "C'était moi la !". Il faut déjà que le jeu le sache, que tu a été deco en combat, ensuite il faut le dire aux autres (et dans quel combat, surtout), encore après, il faut prouver qu'on est bien celui la (Je pense qu'il y aura quelques bug rigolo ici xD) et enfin, redonner la main au jeu, non pas normalement, mais en mode combat.

Enfin, ce sont les principaux problèmes que je vois. âpres, je peut être complètement a coté de la plaque, mais c'est comme ça que je le coderai (Et ça me prendrais du temps ! xD)
Citation :
Publié par Jolien masqué
Merci pour l'info.

Je préfère qu'ils le retardent et fassent le boulot correctement, on n'est pas a 2 mois près.
-mois +ans

je prefere signaler la modification, parce que cela fait deja plus de 2 ans que Ankama nous le promet.

Pour ceux qui n'ont pas connu ou ne se souvienne plus, il y avait eu une période de massacre qui avait rendu nos familier immortel dès juin 2006 et retardé la MaJ des dragodindes de 4 mois ... c'était il y a 1 an et demi ! et cette période suivait la monté en puissance de Ankama suite aux lancement de Djaul, Raval, Hecate, Summens qui devaient en théorie désengorger et réduire le lag sans véritable effet.

Donc, si il nous ressortent le systeme de déco/reco ... la seule solution passera nécessairement par trois choses :
- une possibilité de dégager les animations des sorts
- un systeme de compensation du lag au niveau client et serveur
- une refonte du systeme de tour à tour pour éviter de répercuter sur les autres joueurs le systeme de compensation de lag.


pour donner un exemple du systeme de compensation avec un exemple purement théorique mais permettant de comprendre le probleme quand on le ramene à des histoire de seconde : la cummunication terre<->mars

il faut 20minutes pour qu'une onde qui part de la terre arrive sur mars ( à la vitesse de la lumiere s'entend ). si par exemple, l'on dispose d'un débit fixe garanti de 1Mo/s ( soit 8Mbps ) , pour envoyer un film de 1 Go, il faut 1 000 secondes soit pres de 20 minutes.

et comme il y 20 minutes entre la reception sur mars et l'envoi, il faut 40 minutes pour tout transferer si tout se passe bien.

Maintenant, imaginons que Mars subisse une déconnexion ou une perte de paquet, il faudra plus 20 minutes pour que la Terre en prenne connaissance.

cela veut dire que pour envoyer ce fichier avec un systeme de gestion d'erreur, il faut prévoir pres de 60 minutes ( aller-retour-aller ).

Maintenant, imaginons que nous utilisons TCP ( protocole plutot leger et utilisé sur internet ), l'initialisation se fait via un principe de :
1 je me connecte au serveur
2 le serveur me dit confirme tu ?
3 je confirme
et chacune des trames s'echange ainsi.

Or si l'on peut generer une fenetre d'envoi lorsque la connexion est déjà établi, on ne peut pas faire la meme chose à l'initialisation ou à la fermeture de la connexion.

Donc récapitulons :
initialisation : 3 voyage
transfert : 3 voyage avec une fenetre d'envoi de 100%
fermeture 3 voyage

donc un total de 3h pour telecharger un fichier qui aurait mis seulement 20 minutes pour faire terre <-> terre avec le meme débit.


Aujourd'hui la gestion du lag se fait comme suit dans Dofus :
De manière très simpliste, les phases en 3 voyages sont faites régulierement entre le client et le serveur ...

donc :
- 100 ms de lag représente en combat 0,3s par tentative d'action
- 1000ms de lag représente en combat 3s par tentative d'action.
- 2000ms de lag représente en combat 6s par tentative d'action.
- 3000ms de lag représente en combat 9s par tentative d'action.

donc aujourd'hui, dans un tour de combat, le lag est inclus dans le tour du joueur et n'est pas répercuté dans le tour du mob.

donc deux possibilités :
1. on synchronise mobs & joueurs au meme lag et le temps de chaque tour reste le meme
2. on exclus du temps de jeu du joueur le lag, c'est à dire qu'a chaque action du serveur ou du joueur, tous les chronometres s'arrete tant que les 3 voyages ne sont pas fait


la méthode 1 présente une certaine équité, on calle le tour sur la capacité de jeu du joueur le plus lent. mais un combat sur grob risque de devenir un véritable enfers qui risque de doubler voire tripler ( ou même pire ) le temps d'un combat au moindre lag .

la méthode 2 semble très sympa sur le papier, mais cela nécessite des compétences au niveau programmation que Ankama ne semble pas avoir ( au vue du bug résiduel de ce matin apres l'annonce d'un BillFr confiant disant ( de mémoire ) qu'à 10 tout était ok et qu'ils étaient déjà à 95% ).

la méthode 2 nécessite :
1. un synchronisation des horloges via un systeme de type NTP ( dur )
2. il faut pouvoir soit avoir 2 canaux de communication soit gerer coté serveur et client des trames de synchronisation de maniere asynchrone via un protocole pseudo connecté synchrone ( dur )
3. pouvoir gerer les contextes de type effet domino : un joueur laggue, je resynchronise le combat et là effet de cascade, un des joueurs en cours de synchro s'avere lagguer aussi ( multicompte, ou probleme FAI, ou hasard pur ) ... il faut donc resynchroniser la synchro en cours et cela de manière non bloquante avec des systèmes de stabilisation ( dur )

tout cela peut s'appeler du temps réel mou sur architecture distribué à compensation de noeuds défaillant.

maintenant, tout cela augmente la charge de traitement coté client et serveur, et quelque soit la méthode, cela introduit aussi un rallongement des combats.

Donc il reste le dernier chantier, refondre au niveau gameplay le systeme de tour à tour. Cette refonte devra passé par plusieurs étapes :
1. la possibilité de préparer à l'avance ses coups pour compenser la perte de temps induite par les systemes de compensations de lag, et de pouvoir annuler rapidement une série préparé en cas de nécessité
2. la possibilité de "scripter" des combos
3. si l'on garde la possibilité de quitter un combat en cours, il faut son pendant, la possibilité de rejoindre un combat en cours et pour se faire deverouiller le combat voire appeler à l'aide

bien entendu, cela introduit encore certaines complexité de programmation.

Quand je vois le problème de ce matin qui aurait pu être éviter, je reste sur mon impression ( et je me trompe surement ) que ce n'est pas prochainement que Ankama disposera de développeurs à la hauteur du challenge que représente un MMO puisque ce genre de profil ne se recrute pas par petite annonce.

Je reconnais volontiers que ma connaissance des problèmes des autres MMO est plutôt faible, mais dire qu'un truc semble mauvais, n'empêche en aucun cas qu'il puisse être le moins mauvais par rapport à ses concurrents.
Citation :
Publié par crevetteingenue
moi c'est autre chose qui m'a choquée, et apparemment tout le monde trouve ça normal : ça ne vous énerve pas que les dev aient attendu un mode héroïque pour enfin se pencher sérieusement sur les problèmes de déconnexions ?
Sylf' l'a expliqué.

Sur un serveur classique c'est une perte de x minutes, avec 1 < x < 300, 5 H correspondant au dernier combat dans les gros donjons on va dire.

Sur un serveur adoptant le mode hardcore tu peut reprendre le même intervalle mais tu remplace les minutes par des heures ...

Le problème ce décuple donc, il passe de " gênant " à " handicap sérieux "


Mais ça fait tout de même un sacré bout de temps qu'ils bossent dessus, je me rappel des posts de Lichen ici même il y a plus d'un an où il expliquait qu'ils bossaient dessus. Ils doivent donc actuellement mettre les bouches et double.


Citation :
Publié par -Telia-
Je trouve tout de même qu'un truc cloche dans ce passage :
Tient c'est marrant moi ce qui me choquais ( enfin c'est un bien grand mot, disons que ça m'a fait sourire ) c'est le groupe de mot souligné:

mais nous ne désespérons pas d’arriver un jour à concilier le tour par tour et les déconnexions.

On nous dit en haut qu'il faudra attendre un peu et la il utilise une expression qui irait bien dans une phrase, tel que : " Je ne désèspere par qu'un jour le PCF arrive a faire 25 % au 1er tour des élections présidentielle "
Citation :
Publié par Robusta
J'ai, je pense, "perdus" plus de combats à cause des décos qu'a cause des monstres.
Je joue avec un Wifi qui sur d'autres jeux coupe toutes les 20 minutes , et en plus d'un an de jeu j'ai déco 2 fois sur Dofus .
Je me demande vraiment comment vous faites , peut-être que le multi aide pas
Citation :
Publié par Nainder
dans un jeu type temps réel le problème ne se pose presque pas puisqu'on "disparaît" tout simplement quel que soit notre activité (combat ou autre), on peut donc tout de même mourir selon le temps que notre perso mettra effectivement à déconnecter (et le temps que d'éventuels mobs/PJ nous tuent^^)

dans un jeu type tour/tour, lorsqu'on est en combat, en sortir équivaut à perdre, et dans ce cas, à mourir.
je ne vais rentrer dans une longue diatribe sur la confusion faite autour du mot temps réel mais tu confond plein de notion. en très résumé, il ne faut pas confondre temps réel ( = latence faible ou latence contrainte ) et jeu où la vitesse est primordiale ( starcraft ), la latence d'un réseau a un impact sur starcraft par exemple ...

Et Dofus est temps réel car la latence doit etre faible et contrainte.

en cas de doute, http://fr.wikipedia.org/wiki/Temps_réel

Pour donner un exemple simple, civnet ( un jeu datant du debut des années 1990 ! ) proposait de jouer en réseau à civilization avec 2 méthode de tour à tour :
- une methode à la dofus, chacun son tour avec ou sans temps imparti
- une methode "tout le monde en meme temps", le tour finissant à la fin du temps imparti ou quand tout le monde avait cliqué sur "tour suivant"

j'appréciais la seconde méthode qui offrait un plus non négligeable sans etre un jeu de type starcraft car la gestion necessite quand meme de prendre son temps.


Citation :
Publié par Nainder
perso, je pense surtout que le problème était insolvable sans la nouvelle plateforme.
Encore un qui fait parti de l'école "plus de BogoHertz = solution".
Le principal problème de lag est avant tout dans le code, sinon pourquoi serait il possible qu'il y ait du lag à 4h du mat ?

En ce moment, je farme le donjon bouftou, j'ai perdu en pleine nuit un combat uniquement à cause du lag, pourtant ma connexion n'avait aucun problème de latence hors Dofus.

Puis, un MMORPG comme dofus n'est pas consommateur de bande passante coté client. je rappelle que les téléchargements se font hors combat ( Map et MaJ ) et sur des machine qui ne sont pas les serveurs de jeu.

Donc le probleme est bien dans le code :
- saturation des bases de données provoquant de la latence CPU
- modele de données et requetes pas nécessairement optimal ( cf. bug des familiers en avril -> mai 2007 que je pense être lié au modele de donnée de la BdD )
- code loin voire tres loin du O( 1 )
- code monolithique ne pouvant etre distribué sur plusieurs machines ( fait reconnu à une époque par Ankama )
je ne voulais pas parler du temps réel = temps perdu mais bien du jeu en temps réel en temps que "personnage n'alternant pas entre 2 modes, l'un où il joue en temps réel pour se déplacer, avoir des activités artisanales,... et le mode combat où se déconnecter = perdre le combat"

je confond donc sûrement plein de chose, mais toi t'as tout simplement pas saisi que mon propos est de dire qu'en temps réel complet tu ne changes jamais entre ces 2 modes et donc si tu te déconnectes, tu perds pas automatiquement parce que tu n'es pas forcement considéré "en combat" (par contre avec le ping, il est possible que si tu l'es quand même, on te tue le temps que tu disparaisses réellement^^)

il est donc plus important de gérer les déconnexions dans un jeu où déconnecter en combat = forcement mourir et où il y a plusieurs "modes"

de plus, ai-je parlé de nouveaux serveurs ? de plus de bogohertz ? non, mais de nouvelle plateforme. ce qui en veut pas forcement dire un nouveau serveur plus performant mais plus sûrement d'un environnement technique complet incluant le serveur et permettant un dimensionnement des connexions plus adapté à ce qu'est devenu Dofus en terme de volume de données.

donc oui, comme tu le dis le problème vient de 2 points :
- le code, prévu initialement pour gérer moins de volume (ou tout simplement sans imaginé que cela soit possible qu'un jour le jeu devienne ce qu'il est devenu)
- la plateforme, prévue initialement pour... moins de joueurs tout simplement.


de telia :
Mais je dois être la seule personne à ne pas comprendre pourquoi on ne pourrait pas reprendre un combat en cours après une déconnexion survenue il y a moins d'une minute, alors que n'importe quel joueur peut commencer à visionner un combat à tout moment...

je ne sais pas techniquement perso, moi j'y connais rien mais je bosse assez dans l'informatique pour savoir que c'est toujours plus facile de s'étonner de la facilité d'un concept "se reconnecter alors qu'on a pas quitté le combat" en comparant à des choses apparemment identique "visionner un combat à tout moment" mais qui techniquement en sont sûrement éloignées.... et toi, t'as vu le code du jeu ? qu'en dis tu ?

bref, pour moi faut surtout arrêter de diaboliser et s'amuser avec ce que l'on a. le serveur héroïque, j'irai sûrement pas. le système de reco me servira sûrement pas souvent vu que je ne déconnecte que très rarement.

par contre je m'amuse, et pour moi, c'est ça l'important. ça lague ? je discute, je fait autre chose,...
Citation :
Publié par FrieD
Mais ça fait tout de même un sacré bout de temps qu'ils bossent dessus, je me rappel des posts de Lichen ici même il y a plus d'un an où il expliquait qu'ils bossaient dessus. Ils doivent donc actuellement mettre les bouches et double.
A bon ? il étaient pas censés être allergique aux pizze ? (oui pizze est le pluriel de pizza, tout le monde sait ça enfin... )

Personelement je trouve qu'ils auraient pus d'abord faire tester a un plus large publique de pas l'intermédiaire d'un serveur sur le vrais jeu, voir ce que ça donne et s'il y avait trop de plainte alors "couper" ce serveur et re-travailler dessus.
Moi suis la Bêta... j'ai fait environs... plus ou moins 12-15 heures de jeu (je parle de la bêta 1 après j'ai arrêté) j'suis arrivé lvl 56 avec mon iop, là n'est pas le sujet. Je n'ai eu aucune déconnections et mon réseau internet pas le courant électrique et loin d'être fiable, je faisait attention de ne lancer les combat que dans les conditions optimales et tout allait bien. Insival'monde
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés