Il pourrait même être codé en XLogo, c'est pas le sujet du topic
Bon alors je me suis penché sur un problème qui peut être assez énervant, c'est la stabilité client/serveur. Il arrive parfois de se faire kicker par le serveur pour "Flood réseau" ou "Erreur de connexion" il se peut même qu'il soit à l'origine du crash qui peut encore arriver de temps en temps, sachez que ce bug est en passe d'être réglé.
Il provient de l'utilisation des sorts des aptitudes. Par soucis d'optimisation, j'avais codé les sorts de manière à ce qu'ils consomment le moins possible en ressources. Le client envoyait au serveur si le sort était lancé uniquement au moment ou le sort était lancé, de son côté le serveur calculait la durée du sort puis renvoyait une donnée au client comme quoi le sort était désactivé. Seul problème, c'est que visiblement l'infrastructure de base du code client/serveur n'aime pas trop ça et ça pose plusieurs problèmes.
- Première problème la latence. Si le joueur possède un bon ping, ça ne pose pas de problèmes. Par-contre si le joueur a un ping de merde, le moment entre l'activation/désactivation des sorts est décalé par rapport à la réalité.
- Deuxième problème c'est que le "message" passe tout simplement mal aux autres clients. Vous avez peut-être remarqué que parfois l'effet graphique d'un sort était activé tout le temps. En réalité le sort est bel et bien toujours désactivé par le serveur (sinon on aurait des prêtres immortels
) , mais votre client n'est pas correctement "au courant".
- Troisième problème, bah j'en ai parlé au dessus, c'est les décos intempestives qui peuvent survenir...
Comment cela va être corrigé ?
Hé bien les sorts seront gérés en flux continu (tout comme les chapeaux/capes/smileys) c'est à dire qu'à chaque instant, l'activation des sorts ou non sera envoyé au serveur et aux client qui y sont connectés, ce qui devrait donner une stabilité maximale, au détriments des ressources.
Actuellement un serveur plein à 50 joueurs envoie 1000 kb/s de données par secondes et reçoit 120 kb/s. Cette màj devrait augmenter ces valeurs à 1500 kb/s d'envoi et 200 kb/s de réception. (tout sera à confirmer "en live" évidemment). Cela reste des quantités de données dérisoires si on les compare à ce que demandent d'autres jeux...
Côté RAM/CPU ça ne devrait pas changer grand chose.
On verra ce que ça donne, la gestion des sorts sera plus gourmande mais sans bugs, et je pourrais enfin commencer à bosser sur la gestion des sorts par les IA 