Login : Password : Se souvenir de moi
 
Parcourir ce sujet :   1 Utilisateur(s) anonymes
« 1 (2) 3 »
Re: Persistance et variables locales
Editeur Simple

15/10/2006 12:57
Post(s): 46
Hors Ligne
Merci pour toutes vos explications.
Je crois que je vais donc utiliser le système de BDD inclus dans le patch 1.03 (BDD Campaign), à moins que vous ne me convainquiez que SQL est simple à apprendre et que les différences sont si enormes qu'il serait dommage de s'en priver...

Ce qui n'a pas l'air le cas :

Citation :
Le problème est que son installation et son utilisation peuvent dérouter les plus néophytes en la matière.


Néanmoins je crois que les BDD SQL sont très utilisées dans le monde en général et que j'y aurai affaire tôt ou tard. J'hésite donc à m'y mettre...
Contribution du : 22/11/2006 22:08
Re: Persistance et variables locales
Editeur Simple
Coordinateur
01/02/2006 21:20
Post(s): 1265
Hors Ligne
Avant de voir pour les bases MySQL ou autre, deja il faut voir si la database fournis est meilleur que pour NWN1...

Ca ne donnera de toutes façons jamais autant de possibilite qu'une base MySQL pour les 3/4 des cas c largement suffisant comme utilisation et si en plus c'est plus performant que celle de NWN1, ca sera peut etre pas la peine de s'embeter...
Contribution du : 23/11/2006 00:03
Re: Persistance et variables locales
Editeur Simple

26/09/2006 18:04
Post(s): 77
Hors Ligne
Dans le cas le plus simple, l'apport du sql est surtout visible au niveau de la structuration des données (plus claire). Mais si vraiment tes structures de données sont très simples, utilise plutôt les trucs de base NWN2.

Si tu veux faire des gros systèmes complexes et interreliés (ex : artisannat, génération de drops dynamiques, gestion de guilde, de fief ou tout autre truc lourd), mieux vaut peut-être utiliser NWNX4 + un SGBD (ex : MySQL). Lorsque des structures de données sont interreliées (en gros lorsqu'il y a l'équivalent de plus d'une table SQL) et qu'il y a besoin de faire des requêtes complexes qui mettent en jeu plusieurs tables, alors là je pense que le SQL et NWNX s'imposent. D'une part parceque tes données sont mieux structurées (en gros, tu peux exprimer des relations entres les tables SQL de façon native, sans te prendre la tête à gérer ça à la main), mais surtout car les SGBD sont de nos jours bien optimisés, et qu'à l'arrivée les requêtes SQL seront certainement beaucoup plus efficaces lorsqu'elles sont gérées par le SGBD, que codées à la main "dans le script" sur des tables de la base bioware. Maintenant, si t'es vraiment un très bon codeur il n'y a théoriquement rien qui t'empêches d'arriver au même résultat, mais disons que c'est beaucoup plus difficile, beaucoup plus dégueulasse niveau code et beaucoup plus long à faire.

Si l'infrastructure du mod compte plusieurs serveurs, alors là l'utilisation de NWNX4 devient quasi obligatoire (il doit bien y avoir un moyen de contourner mais ça devient vraiment dégueulasse à mon avis). En effet, NWNX4 permet de gérer un base de données centrale communes à tes serveurs, qui vont pouvoir faire des requêtes concurrentes dessus ...

Bref l'utilisation de l'une ou l'autre technique dépend avant tout des défis technologiques que t'impose le développement de ton mod. Evalue les défis et fait le choix le plus simple en fonction de ce que tu veux faire.
Contribution du : 23/11/2006 00:04
Re: Persistance et variables locales
Editeur Simple

21/01/2006 13:53
DeDublin
Post(s): 651
Hors Ligne
Si vous utilisez une base SQL, je vous conseille fortement de lire un livre sur le sujet(il y'en a beaucoup, vous en trouverez meme peut etre dans une bibliotheque...). Sinon vous passerez a coté des ses possibilités.

Pour une utilisation en tant que semi persistant, la base de bioware est largement suffisante.

Pour information meme si 90 % des modules de NWN1 etait classé dans la catégorie persistant de gamespy, je dirais que les modules veritablement persistant se comptait sur les doigts de la main (un module persistant pour moi, c'est un module pouvant tourner sans aucun reboot mais surtout c'est un module en cas de reboot ou l'on retrouve tout parfaitement a sa place).

Pour les variables locales sur item sont utilisé dans la majorité des serveurs, meme ceux qui ont une base SQL associé. Par moment, ça simplifie grandement la vie.

Comme toujour, ce n'est pas la peine d'avoir un fusil pour chasser une fourmil ^^

Tout dépend de l'utilisation que tu veux en faire
Contribution du : 23/11/2006 12:40
Re: Persistance et variables locales
Editeur Simple

15/10/2006 12:57
Post(s): 46
Hors Ligne
En fait je voudrais intégrer sur mon module plusieurs choses qui necessitent de la persistance :

- des contenants persistants, style banque dans lequel on peut stocker ses objets (donc les retrouver après un reboot).

- un système d'artisanat du genre ATS de nwn1 (l'artisanat avec les points de compétences et l'obligation de réussir d'Obsidian ne me plait guère...).

Je voudrais donc savoir si pour réaliser ces deux systèmes persistants la BDD inclue dans NWN2 suffit ou s'il faut que je me mette au SQL/php...

Autre question dans le cas ou il me faudrait apprendre le SQL : je ne sais pas trop comment ca marche, mais il me semble qu'il faut un serveur web php pour faire des requetes sur la BDD. Est ce gratuit ? Ou faut il payer un abonnement ? (comme pour un domaine de site web par exemple).
Contribution du : 23/11/2006 13:00
Re: Persistance et variables locales
Editeur Simple
Coordinateur
01/02/2006 21:20
Post(s): 1265
Hors Ligne
Citation :
Posté par "Murin :

En fait je voudrais intégrer sur mon module plusieurs choses qui necessitent de la persistance :

- des contenants persistants, style banque dans lequel on peut stocker ses objets (donc les retrouver après un reboot).

Pour cela le plus simple c'est la databse de bioware.
Avec NWNX sur NWN1, la possibilite de svg des objets a ete integre tres tard, et je sais pas si elle sera directement dans NWNX4.

Citation :
Posté par "Murin :

- un système d'artisanat du genre ATS de nwn1 (l'artisanat avec les points de compétences et l'obligation de réussir d'Obsidian ne me plait guère...).
pour un systeme d'artisanat, tout dependre ensuite de ce que tu veux.
Basiquement la svg par variables locales sur un item est suffisant, par contre si tu veux par exemple afficher une liste des maitres artisants dans ton module il faudra que tu passes a au moins la database de bioware, et si tu veux voir ces donnees par l'exterieures sur un site Internet par exemple, ben il te faudra utiliser NWNX

Citation :
Posté par "Murin :

Autre question dans le cas ou il me faudrait apprendre le SQL : je ne sais pas trop comment ca marche, mais il me semble qu'il faut un serveur web php pour faire des requetes sur la BDD. Est ce gratuit ? Ou faut il payer un abonnement ? (comme pour un domaine de site web par exemple).

Non absolument pas... une base de donnee c'est un logiciel a part. Tu n'es pas oblige d'avoir un serveur web, php pour y acceder ;)
Par contre si tu veux en monter un pour pouvoir afficher des choses de ton module sur le net (nombre de personne actuellement connecte, qui etc...) il te faudra un serveur web,php ou java...
Tu peux tout trouver en libre et gratuit.
Apache (serveur web) est gratuit
MySQL (base de donnees) est gratuit
PHP (langage) est gratuit
etc...
Contribution du : 23/11/2006 13:55
Re: Persistance et variables locales
Editeur Simple

15/10/2006 12:57
Post(s): 46
Hors Ligne
Citation :
Posté par "garrath :

Par contre si tu veux en monter un pour pouvoir afficher des choses de ton module sur le net (nombre de personne actuellement connecte, qui etc...) il te faudra un serveur web,php ou java...


Java permet aussi de faire des requêtes sur une BDD SQL ? Ca peut être bien ca (je suis en train d'apprendre le Java en école d'ingé...).

Sinon merci pour toutes les infos, je m'en remettrai donc au système de BDD Bioware dans un premier temps, et puis si j'ai le temps, l'envie voire le besoin (demande des joueurs !!! hum faudrait déjà qu'il y'en ait des joueurs) d'apporter de nouvelles fonctionnalités au module (un site web par exemple) eh bien j'apprendrai le fonctionnement de SQL et NWNX4...
Contribution du : 23/11/2006 18:12
Re: Persistance et variables locales
Editeur Simple
Coordinateur
01/02/2006 21:20
Post(s): 1265
Hors Ligne
Citation :
Posté par "Murin :

Citation :
Posté par "garrath :

Par contre si tu veux en monter un pour pouvoir afficher des choses de ton module sur le net (nombre de personne actuellement connecte, qui etc...) il te faudra un serveur web,php ou java...


Java permet aussi de faire des requêtes sur une BDD SQL ? Ca peut être bien ca (je suis en train d'apprendre le Java en école d'ingé...).

Oui bien sur... avec java tu peux acceder a des bases de donnees via jdbc (une sorte de odbc specifique a du java).
Tous les langages de programmation que je connais permettent d'acceder a des bases de donnees (a part peut etre LISP mais encore c bien parce que moi je ne l'ai pas fait et donc que j'ensais rien ce qui veut pas dire que c'est pas possible) Il suffit juste d'avoir les precompilateurs, drivers ou autre...
Contribution du : 23/11/2006 18:20
Re: Persistance et variables locales
Editeur Simple

06/10/2006 14:35
Post(s): 284
Hors Ligne
de toute façon nwnx4 n'est pas encore prêt alors fait toi la main...
En plus au moins si tu veux y passer plus tard tu aura une idée claire et précise de ce que tu veux faire.
Contribution du : 23/11/2006 18:25
Re: Persistance et variables locales
Editeur Simple

22/11/2006 15:00
Post(s): 10
Hors Ligne
Je vais expliquer la différence entre le temps d'execution de lecture entre une base de donnée SQL et NWN (ou du moins celle de nwn1, je ne sais pas si celle de NWN2 à été optimisé).
La base de donnée NWN1 stockait ses données dans un fichier, donc venu l'heure de la lecture, il y a des conditions pour choisir la donnée à extraire, et pour bien choisir, le curseur de lecture doit TOUT lire (ou du moins lire jusqu'à ce qu'il tombe sur la donnée démandée), ce qui prend un temps considérable.
Alors que sous SQL, on enregistre les variables dans différentes tables, donc la lecture n'a juste à lire les tables contenant les conditions nécessaire, elle zap' la lecture des tables non concernées.
Par contre l'écriture de la base de donnée NWN est plus rapide que l'écriture de SQL (mais le temps de différence est négligeable), ça se comprend, SQL doit écrire dans une table prédéfini) donc il faut la choisir, alors que les BDD NWN n'avait qu'à ouvrir un fichier, placer le curseur à la fin et écrire (il n'en est pas de même pour les modifications de données).

Citation :
Posté par "Nek :

Côté capacité, un item nwn peut contenir un nombre impressionnant de variables (j'ai déjà stocké des centaines d'integer sur un item sans aucune perte ou altération).
Et bien entendu leur accès est DES PLUS RAPIDES (aucune bdd ne peut rivaliser avec une variable chargée en mémoire en terme de perf, quoiqu'en disent certains adeptes de MySQL).


Hmmm, c'est vrai une variables locales est ce qu'il y a de plus rapide mais est tu sûr qu'on peut en stocker une infinitée sur un seul objet ?
Ensuite parlons vite, parlons bien, parlons vitesse.
La méthode entre le stockage d'une variable locale et une requête SQL n'est pas très différent. Si SQL est physiquement sur la même machine que de là ou part la requête, le temps d'écrire sera presque aussi rapide que celui d'une variable locale (peut être 2 fois moins rapide mais dans les grandeurs où nous sommes c'est négligeable et je doute qu'un serveur NWN tourne à des milliers de joueurs).
Pour finir, et pour re-valoriser le SQL (on reconnait les fidèles ), les variables locales sont sales (et oui, les programmeurs n'aiment pas ce qui est pas propres), une fois que tu as stocker une variable sur un objet, pour la retrouver manuellement ... bah c'est plutôt dur, long et pas induitif, ainsi gerrer des erreurs (c'est plutôt rare) devient impossible).
Alors qu'une donnée stocké dans une base de donnée SQL peut être lu sous des logiciels tels que EasyPHP, ainsi une erreur ou autre est très facile à repérer et autre.

Bref, SQL est pour moi la meilleur solution pour un serveur.
Avec les variables locales, il vaut mieux ne pas s'embrouiller et être très organisé.

C'était ma modeste participation :p . Bonne soirée.

EDIT: Les bases de données NWN ne sont pas plus propres que les variables locales, là aussi si on est pas organisé, ça devient un gros fouilli.
Contribution du : 23/11/2006 18:46
« 1 (2) 3 »
 
 
Le moteur du site de NeverwinterNigths2.fr utilise XoopS
Le design officiel est NWN2-Drako - 1.0
Les commentaires sont la propriété de leur auteur et de leur responsabilité.
Voir l'ensemble du copyright © 2005-2007.