Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Le Persistant World Universal Mind (PWUM) pour les Nuls.
Le Persistant World Universal Mind (PWUM) pour les Nuls.
Par Tynril le 21/11/2002 à 16:52:28 (#2612538)
Si je m'attresse aujourd'hui à vous, c'est pour vous expliquer quelques bases sur un outil désormais célèbre (de nom) mais tout aussi mysterieux ("Putain mais comment ça marche ?!").
1. Pereuhsistant Ouorlde Universsalle Minnde, c'est pas PWUM, c'est POUM !
Commençons, si vous le voulez bien, par une brève définition de l'histoire, courte mais brève, certe mais aussi interessante du PWUM.
Né le 28 juillet 2002 des petites mains émerveillées de Drako Wolfheart, le PWUM était promi à un grand avenir parmi les modules Neverwinter Nights. Tout petit déjà, son inovation fit son succès. Il permettait de sauvegarder des variables et même de les passer d'un module à l'autre ! Bien sûr, les seuls types de variables supportés étaient les chaînes de caractères (strings) et les nombre entiers (integers), car il était limité par la version alors préhistorique (car pas encore sorti en Europe) de NWN.
BioWare eut tôt fait de palier au manque au court des versions, et le PWUM se completa. Les nombres à virgules flotante (floating point numbers) rejoignèrent leur cousins les entiers, et les positions (location) ne tardèrent pas à suivre. A l'heure actuelle, seuls les objects (objects) rechignent à suivre l'exemple, pour des raisons mysterieuse de numéro d'identification hexadécimal variable que je ne vous exposerais pas ici, par respect pour votre cortex déjà surchauffé.
Résumons la situation : Le PWUM, c'est un système de sauvegarde des variables hors-module, et donc un excellent moyen de gérer les mondes permanents et semi-permanents évolutifs.
2. Mais comment ça marche ?!
Le principe de fonctionnement est assez simple à comprendre. Coté scripting, le PWUM apparait sous forme de nouvelles fonctions très similaires aux SetLocalTruc et GetLocalBidule que vous connaissez tous. Remplacez "Local" par "PWUM", et c'est gagné. La seule différence, c'est que les variables ne sont pas attachées à un objet, comme pour les Locals. Elles sont directement liées à un objet étrange que vous offre aussi le PWUM. Mais vous le constaterez vite, on s'y fait, et c'est loin d'être moins pratique au final.
Coté technique, le PWUM écrit des lignes dans le log du serveur à chaque changement/création de variable. Intervient alors le rôle crucial du parser. Ce mot barbare signifie "transformer". Des milliers de lignes de logs hybride, le parser extrait les variables PWUM, et les tries de façon à ne garder que les valeurs les plus récentes. A sa sortie, il vous fournit une page de code NWScript à copier/coller dans votre module, à la place, de l'ancienne, et le tour est joué.
3. Woaw, trop puissant, on trouve ça où ?
Le PWUM est produit par Drako Wolfheart, un membre du Persistant World Centre, qui se trouve ici :Persistant World Centre
http://www.funkylizard.com/nwn/Vous y trouverez les dernières versions du PWUM.
Pour les moins anglophones, le PWUM se trouve également ici, sur le NWVault. Et pour les pas anglophones du tout, et bien va faloir vous faire aider par un copain.
4. Les p'tits trucs, y'a toujours des p'tits trucs !
Le PWUM n'y coupe pas. Le principe est tellement génial qu'il est surutilisé. Et comme pour tous code open-source (c'est à dire dont on a accès aux sources), les modifications ont fleuries partout sur le Web.
C'est ainsi que la Gestion des Flags naissait. Une des limites du PWUM originel, c'était de ne pas pouvoir stocker de variables sur un objet, donc pas sur un joueur. Cette bibliothèque, gracieusement offerte par votre serviteur Tynril (moi-même, eh oui), vous permettra d'enregister des variables persistantes directement liée à un personnage. Ainsi, la même variable pourra avoir une valeur différente pour chaque personnage joueur.
Il en va de même pour le parser Web, toujours par moi, qui vous permettra de parser vos logs serveurs depuis une page web. Pourquoi foutre ? Pour les (nombreuses) personnes qui ne disposent pas d'un serveur à la maison. Il arrive que les logs serveurs prennent une grande, une très grande place. Ainsi, il est assez facheux de devoir se tapper le téléchargement à chaque redémarrage du serveur. C'est la solution à ce problème.
5. Recommandations de Tyn'
Dans cette section, ça doit être mon instinct paternel qui ressurgit. Comme vous le savez tous, faire un monde persistant, c'est pas facile. C'est long, c'est fastidieux. Tout seul, c'est même impossible. Il existe à l'heure actuelle de nombreuses équipes de développement de mondes persistants, dont seules quelques-unes arriveront à terme, pour bien des causes.
Plutôt que de vouloir à tout prix fonder son propre module, et ainsi tout recommencer de zéro, rejoignez une team existante ! La plupart d'entre elles sont à la recherche constantes de scripteurs doués, ne vous laisser pas tomber dans la vague des problèmes que de nombreuses équipes tentent de vaincre depuis de longs mois déjà !
Ce sera tout pour aujourd'hui. C'était Tynril, en direct d'Althea, à vous les studios.
Par Iridian le 21/11/2002 à 17:57:48 (#2613132)
Si tu etais une femme (et que je n'etait pas deja marié) je t'épouserai tient !
Encore merci
Par miriandel le 21/11/2002 à 18:01:04 (#2613158)
Paraît que les suisses adorent les coucous, chacun sa culture hein ? :bouffon:
Par Tynril le 21/11/2002 à 18:11:13 (#2613247)
Si tu me contactes par MP, je te file mon adresse et tu peux m'envoyer un chèque. Non ? Aucune gratitude !! :p
Par Iridian le 29/11/2002 à 12:04:14 (#2670981)
-le parser n'est utile que lorsque l'on modifie le monde, de façon a pouvoir conserver les sauvegardes. C'est bien ça ?
A non, une deuxième question (désolé) :
-Une fois POUM installé et implémenter dans un module (grace au génialisimes fonctions de Tyn *passe la pomade*), il n'y a plus rien a faire excepté en cas de modif du monde ? (en gros la gestion du re-log d'un joueur est automatique ?)
D'avance merciiiiiiiiiiiiiii
(pour le chèque on en reparle des que j'ai gagné au loto, promis)
Par Mastokk le 29/11/2002 à 12:29:47 (#2671181)
Provient du message de miriandel
Oh, tu peux simplement lui faire "coucou".
Paraît que les suisses adorent les coucous, chacun sa culture hein ? :bouffon:
idée reçue n°16: les suisses sont lents
*Sort son lance flammes* :D
Par Tynril le 29/11/2002 à 12:47:08 (#2671308)
Mastokk > :D
JOL Archives 1.0.1
@ JOL / JeuxOnLine