xp_bugfix

Répondre
Partager Rechercher
L'ami Skywing vient de mettre à disposition la nouvelle version de xp_bugfix.

Pourquoi en faire un topic me direz-vous ?

Il semble que cette version améliore énormément les temps de chargement côté joueur.

Par énormément, j'entends un passage de 1 minute et demi à 20 secondes pour certaines zones.

Soit un temps réduit de 20 à 35 % par rapport à l'initital pour le chargement.

Vous confirmez ?


Plus de détails sur http://www.nwnx.org/phpBB2/viewtopic.php?p=12439#12439 en fait l'idée c'est que ce sont les objets non statiques dont le chargement est considérablement amélioré.
On vient d'installer la dernière version et, a priori le temps de chargement a diminué pour pratiquement tout le monde : 20 à 25 secondes (pour les maps très lourdes type ville). On testera en heure pleine avec 40 à 50 joueurs avant de se prononcer définitivement.

Maintenant, on a découvert qu'on était encore en version 1.0.2 donc on a fait un sacré bond et on est pas les meilleurs testeurs malheureusement .
__________________
http://image.noelshack.com/fichiers/2012/46/1353252187-foret-bleue.png
La seconde version est arrivée : http://fanelya.fr !
IP : fanelya.no-ip.org

Liste de tous les serveurs : http://nwnlist.com
Je joue sur le serveur de Charloulou :

Je constate une diminution notable du temps de chargement de zones.

Avant, lors de la Phase 1, la barre bleu stagnait parfois au milieu ou à la fin, avec des plantages quand il n'y avait pas le petit retour en arrière. Maintenant le chargement Phase 1 et Phase 2 est continu et beaucoup plus rapide.

J'ai par exemple chargé rapidement une map ou je galérais avant, malgré les 40 mobs qu'un groupe avait spawné avant mon arrivée.

J'ai pas vraiment quantifié, mais je pense que je suis passé de environ 2 mn à entre 30 sec et 1 mn pour les chargements de zone
Témoignages d'un de nos joueurs :

Citation :
Alicia d'Obsidienne :

Je suis d'accord avec Krighaur. Le gain de chargement est vraiment flagrant quand il y a environ 20 joueurs sur le serveur. J'avais calculé qu'il me fallait environ 45 secondes pour charger la zone des marches damnées, aujourd'hui j'en ai besoin de 20 à peine.

Je remarque également que le ping général du serveur à baissé. Je me souviens très bien que je montais a 700 de ping en fin de soirée le vendredi soir (environ 36 joueurs je crois), alors qu'hier par exemple, à 4-5 joueurs prêt on avait du 400. Et jusqu'à mon départ, le serveur ne s'est pas affolé, et n'a pas atteint les 1100 ou 1500 de ping qu'on peut parfois obtenir, quand certaines anims sont lancées par les MDs.

Un grand merci donc au staff pour cette mise à jour qui va nous apporter un certain nouveau confort, surtout quand pas mal de monde est connecté.

D'une manière générale, après sondage en jeu, et MPs régulièrement reçus, la différence est flagrante et pour tous.

On note effectivement une diminution impressionnant du pin (bon je suis jamais montée au dessus de 500 personnellement mais là je plafonne à 140, malgré des problèmes de connexion depuis hier soir). Temps de chargement réduit à une durée de quelques secondes MÊME EN HEURE PLEINE (mini 30 joueurs). Du coup, moins de lag, moins de plantages. Un gros gain, qui nous laisse optimiste pour la survie du module malgré ses gros chiffres de fréquentation !

Merci Laban d'avoir posté ici parce que si t'avais pas posté ici, Krighaur ne m'aurait peut être pas signalé cette mise-à-jour et on serait encore à la traîne .
__________________
http://image.noelshack.com/fichiers/2012/46/1353252187-foret-bleue.png
La seconde version est arrivée : http://fanelya.fr !
IP : fanelya.no-ip.org

Liste de tous les serveurs : http://nwnlist.com
Bien tout ça!

Le changement en question est tout récent donc vous êtes autant à même de témoigner que quiconque.

D'ailleurs il semble qu'il faille passer à la version 1.10 dès qu'elle sort...
Effectivement la 1.0.9 provoquait une augmentation de fréquence d'un bug (selon les dires de Skywing), vous pouvez aller récupérer la 1.0.10 dans le même post que celui mentionné par Laban.
En exclusivité et offert par Fanelya, traduction du message de Skywing sur le forum de Neverwinter Nights Extender

http://www.nwnx.org/phpBB2/viewtopic.php?t=1086&postdays=0&postorde…

J'ai commencé un module nwnx4 pour travailler sur les problèmes les plus communs de plantage de serveurs NWN2 pour lesquels j'ai pu obtenir des données.

Quelques solutions ne résolvent que l'effet sans résoudre la cause sous-jaçente, cependant, dans la plupart des cas cela améliore le fonctionnement du serveur et lui évite de chuter et planter (server falling over and dying).

La version en cours est la : 1.0.10 pour NWN2 1.0.23.1763 et 1.0.23.1765. Les versions antérieurs pour les anciennes versions de serveurs sont archivées ci-dessous (NdT aller sur le lien fournis en en-tête pour avoir tous les liens) . xp_bugfix est compatible avec tous les packs d'expansion pour une version donnée et supportée de NWN2, car les codes du serveur sont les mêmes pour toutes les expansions a un niveau donné de patch. Vous devez accorder la version de xp_bugfix avec le niveau de patch que vous utilisez.

Note Importante : A partir de xp_bugfix 1.0.3, vous devez installer une mise à jour de Visual C++ 2005 SP1 CRT. (Prenez le download vcredist_x86.exe.) Si vous ne mettez pas à jour votre VC2005 CRT, xp_bugfix ne se chargera pas.

A partir de xp_bugfix 1.0.5, vous devez mettre ReplaceNetLayer = 1 dans votre xp_bugfix.ini pour activer une solution pour des plantages de transition côté client. Vous trouverez plus d'infos à ce propos ici (liens sur le lien donné en en tête).

Problèmes réglés par xp_bugfix 1.0.3 pour nwn2server 1.0.23.1763 / 1.0.23.1765:

- Règle un plantage serveur quand un joueur qui n'a pas initialisé son automap quitte le jeu.

Problèmes réglés par xp_bugfix 1.0.5 pour nwn2server 1.0.23.1763 / 1.0.23.1765:

- Réécriture du code Réseau du serveur pour régler les plantages lors de transition. Vous devez mettre "ReplaceNetLayer = 1" dans xp_bugfix.ini pour activer cette option. Voir traduction à venir pour plus de détails. (Note Phil : apparement cela divise par 10 le nombre de plantage lors de transitions. voir l'extrait ci-dessous
Avant xp_bugfix 1.0.5 (serveur utilisant xp_bugfix 1.0.3): 2866 transitions de joueurs résultent en 50 plantages de joueurs (1.7% d'échec de transition).
Après xp_bugfix 1.0.5: 2866 transitions de joueurs résultent en 5 plantages de joueurs (0.17% d'échec de transition).

Problèmes réglés par xp_bugfix 1.0.6 pour nwn2server 1.0.23.1763 / 1.0.23.1765:

- Réglé un plantage serveur lors du traitement d'un level up alors que pas de LUO de joueur est disponible. Cela risque d'arriver dans les scénarios ou il y a du lag serveur sévère et ou les joueurs réalisent les actions de level-up dans un certain ordre, ou si un joueur est en mode DMFI follow alors qu'il clic sur l'écran de level up.

traduction des MaJ 1.0.7 et 1.0.8 des 20 et 21 décembre 2009

Version 1.0.7

Cette version ajoute une option dans GameObjUpdateTime.ini qui vous permet de modifier le temps que le serveur attends avant de recalculer les messages de mise à jour d'objet de jeu envoyés aux joueurs.

En étudiant un PW gourmand en temps de CPU [40+ joueurs actifs], j'ai constaté qu'une quantité significative du temps CPU du serveur est souvent utilisée pour recalculer les messages de mise à jour d'objet. Augmenter la valeur de GameObjUpdateTime réduira le temps de CPU serveur nécessaire en diminuant le nombre de fois ou le serveur essaie de calculer les mise à jour d'objet de jeu. Pour le PW étudié, augmenter à 400 000 a permis de rendre jouable les moments ou le ping monte à 500ms ou plus.

Si votre serveur est à la traîne (lague), vous pouvez augmenter la réactivité pour vos joueurs en augmentant le GameObjUpdateTime, car cela assure que le serveur ne sera pas encombré a essayé d'envoyer des mise à jour de jeu plus vite qu'il ne les calcule.

Le jeu utilise une valeur par défaut de GameObjUpdateTime de 200 000 microsecondes. Vous pouvez facilement doubler cette valeur à 400 000 avec un impact minimum sur les joueurs. (Les joueurs utilisant l'Extension Client verront encore moins l'impact de ce changement.)

Il est préférable de tester plusieurs valeurs avant de trouver celle qui convient à votre serveur. Si votre serveur n'a pas de problèmes de performance, conserver la valeur par défaut est probablement la bonne solution. Si votre serveur ralentit après un temps de fonctionnement, essayez d'augmenter le GameObjUpdateTime à 400 000. Il est recommandé de conserver GameObjUpdateTime en dessous de 1 000 000 microsecondes pour conserver une jouabilité.

(Les messages de combat sont envoyés séparément des messages de GameObjUpdate en général et la réactivité des combats est généralement indépendante de cette option. Il en est de même pour la réactivité du chat.)

Vous pouvez toujours remettre la valeur à celle par défaut en effaçant la ligne du fichier .ini.


Version 1.0.8

Qui ajoute un moyen de contrôler au vol le GameObjUpdateTime par l'intermédiaire d'un script.

Vous pouvez utilisez le fragment de script suivant pour le faire:

void SetGameObjUpdateTime(int nGameObjUpdateTime)
{
NWNXSetInt( "BUGFIX", "GAMEOBJUPDATETIME", "", 0, nGameObjUpdateTime );
}


Le temps est fourni en microsecondes (de même que dans le fichier xp_bugfix.ini). le jeu utilise 200 000 par défaut si vous ne modifiez pas GameObjUpdateTime par l'intermédiaire du fichier xp_bugfix.ini file, ou par un appel au script.

Il n'y a pas de fonction de script pour obtenir le temps en cours, donc si vous avez besoin de cette information, stockez le temps que vous établissez dans une variable pour un usage ultérieur.

Version 1.0.9

Cette mise à jour augmente les performances de réseau. Prenez garde à bien installer le fichier AuroraServerNetLayer.zip mis à jour (à décompresser dans le répertoire ou se trouve nwn2server.exe) quand vous passez à la version 1.0.9

Les clients devraient charger les zones beaucoup plus vite avec 1.0.9 qu'avec le jeu de base (ou avec des versions antérieurs de xp_bugfix). Le degré de gain de vitesse dépends du nombre d'objets non-statiques dans la zone et de la vitesse du disque dur des PC clients.

En particulier en augmentant le temps GameObjUpdate, les performances de chargement de zones devraient être largement supérieures avec cette mise à jour.

La charge de CPU serveur devrait être également réduite pour les clients chargeant des zones.

De plus, l'aggressivité de retransmission du code de réseau a été augmentée, dans le but d'aider les clients qui peinent après avoir perdu plusieurs packets. Dans ces cas, les clients devraient être capable de "rattraper" plus vite.

Il y a une nouvelle option de configuration, optionnelle: GameObjUpdateBurstSize = <burst size>

Cela contrôle la quantité maximum de données que xp_bugfix autorise à envoyer par le serveur dans un message GameObjUpdate, quand la queue d'envoi du client est vide, ou quand le client reçoit la liste initiale des mise à jour d'objets dynamiques après une zone de transition. La valeur par défaut du jeu est 400 bytes, et la valeur par défaut de xp_bugfix 1.0.9 est 102 400 bytes si vous ne modifiez pas les options de configuration. Mettre cette valeur à 400 revient à ignorer les possibilités de GameObjUpdate.

Si xp_bugfix 1.0.9 est installé correctement, vous devriez voir le message de log suivant dans xp_bugfix.txt au démarrage:

2010-02-02 01:07:50 : * GameObjUpdate burst size: 102400 bytes (stock server default would be 400 bytes).

(Where 102400 is the GameObjUpdateBurstSize you have chosen, or 102400 if you have let the setting remain at its default.)

---

Détails techniques :

Par défaut, le serveur envoie les objets non-statiques aux clients lors d'un chargement de zone en envoyant une série de messages GameObjUpdate. Le serveur tentes de limiter la quantité de données envoyées avec chaque message GameObjUpdate à environ 400 bytes, et par défaut, le serveur envoie un message GameObjUpdate toutes les 200 millisecondes.

Cela signifie que les objets non-statiques sont généralement envoyés à un taux qui ne dépasse généralement pas ~2KBps.

Une zone complexe peut avoir 20-30KB environ de données d'objets à envoyer quand un client charge la zone, et avec ce volume de données, le faible taux d'envoi du mécanisme GameObjUpdate est une composante majeure du temps de chargement d'une zone (en supposant que le disque du client peut charger rapidement les apparences et autres ressources de données pour les objets).

La mise à jour ajoute un mécanisme de 'surcharge' qui permet que le premier GameObjUpdate vers un client, après un chargement de zone, dépasse la limite usuelle des 400 bytes, pour aller jusqu'à GameObjUpdateBurstSize. Cela améliore les performances pour le client (et aussi permets au serveur de mieux compresser les données d'objet, réduisant ainsi la quantité de données envoyée).

Le mécanisme de surcharge a été conçu avec précaution pour n'opérer que pendant les chargement de zone ou quand le 'frame' de la queue d'envoi du client est pratiquement vide, afin d'éviter de sérieusement réduire les performance du client quand des 'frames' sont perdus dans le réseau. (le protocole du jeu n'est pas très performant pour traiter les packets perdus quand plus d'un packet est dans la file d'attente de transmission.)

version 1.0.10

Cette mise à jour ajoute un contournement d'un bug de serveur qui fait planter les clients à la connexion dans certaines circonstances.

Bien que le bug en question soit un problème de serveur depuis longtemps, le gain de performance du à xp_bugfix 1.0.9 faisait que le problème se reproduisait plus souvent.

La raison pour laquelle le problème survenait plus souvent avec xp_bugfix 1.0.9 est que le serveur pouvait alors envoyer le contenu des objets non-statique dans un message, plutôt que les mise à jour ne soient séparés en plusieurs messages avec un délai de 200ms entre chaque message.

Le problème sous-jacent est un bug de serveur dans lequel, au logon initial, le serveur commence a envoyer par erreur des mise à jour d'objets avant qu'il n'envoie les paramètres de la zone au client. Si le serveur arrive au stade d'être capable de mettre à jour une certaine classe d'objets sur le client, avant qu'il n'envoie les paramètres de zone, alors le client plantera.

Normalement, si,le serveur avait atteint le underlying bug, il est probable que le premier GameObjUpdate n'aurait pas mis à jour le type d'objet qui aurait fait planter le client. La mise à jour suivante interviendrait après qu'un chargement de zone normal ait été déclenché.

Comme le serveur était maintenant capable d'envoyer la liste entière des objets non-statique en un seul message, le bug n'était plus masqué, dans quelques cas, par les faibles performances de transmission d'objet.

Tout utilisateur qui aurait l'Extension Client active aurait été protégé de ce bug. Vous pouvez installer xp_bugfix 1.0.10 pour éviter aux utilisateurs n'ayant pas l'Extension Client active de subir ce bug.
Bonjour je tente de mettre à jour le xp_bugfix 1.010 mais plusieurs choses apparement me bloque

1 : Je n'ai pas de .ini qui se créer avec le xp-bugfix. Cela est problématique car je ne peut mettre le ReplaceNetLayer = 1
Par contre j'ai bien un xp_bugfix.txt qui s'est crée

2 : Quand je lance le NWNX_GUI, il me met nwnx.ini non trouvé alors que le fichier est bien dans C/NWNX4 et paramétrer de la façon suivante : En fait il ne trouve pas la command line qui est pourtant paramétré.

Citation :
# NWNX4 configuration file
# These are the default values for NWNX4.
# Path to NWN2 installation (where nwn2server.exe is located)
# no default. You really have to specify it, currently.
nwn2 = C:\Program Files\Atari\Neverwinter Nights 2
# You can override the tempory path NWN2 uses
# This is where NWN2 will put its logfiles (among other files)
# no default
;nwn2temp = C:\Program Files\Atari\Neverwinter Nights 2\temp
# Command line parameters to start the server with
# default: no parameters
parameters = -module Lcda -maxlevel 30
# Should NWNX restart the server if the server process has gone away ?
# 0 = do not restart the server
# 1 = restart the server
# default: 1
processWatchdog = 1
# Should NWNX restart the server if it locks up ?
# This can happen if the server is still running, but does not react to gamespy queries any more.
# 0 = do not query the server
# 1 = query the server
# default: 1
gamespyWatchdog = 1
Est ce que quelqu'un pourrait m'aider svp ?.

Je fonctionne sous une versions très ancienne (0.08) qui elle fonctionne impec mais pas celle_ci, je ne me l'explique pas.

Pour info, voici ce que j'ai en programmes pour le visual basic
- Microsoft Visual C++ 2005 Redistribuable (taille 5.25 mo)
- Microsoft Visual C++ 2005 Redistribuable (taille 5.21 mo)
Tu dois créer un fichier (avec le bloc note) que tu nomes xp_bugfix.ini. Tu mets ça dedans :
Code:
ReplaceNetLayer = 1
DisableServerCompression = 1
GameObjUpdateBurstSize = 102400
GameObjUpdateTime = 400000
Pour le nwnx.ini là par contre j'ai pas regardé mais comme c'est pas moi qui l'a fait... je risque pas d'aider beaucoup .
Je cite Lv4 (j'espère qu'il est d'accord d'ailleurs mais je suppose ) :
Citation :
DisableServerCompression = 1 corrige un problème provoquant la désynchronisation de la vue client du dictionnaire zlib du serveur, ayant pour effet des paquets téléchargés mais corrompus, des plantages en transition. Cette option est probablement obsolète.
Répondre

Connectés sur ce fil

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