JeuxOnLineForumsPlusConnectés : 671 (sites) | 1231 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > du nouveau sur la database et la persistance... RSS
   
Répondre
Partager Outils Rechercher
Avatar de Le grognon
Le grognon
Alpha & Oméga
 
Avatar de Le grognon
 

du nouveau sur la database et la persistance...

je vous conseille de lire ce thread sur les forums officiels de bioware...

rien que du bon je vous dis

http://nwn.bioware.com/forums/viewto...=69&highlight=
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
Ouainnnnnnnnnnnnnnnnnnnnnnn j'arrive pas a accéder au site de Bioware
Tu voudrais pas nous copier la page ici par un grand accès de bonté stp

Jaha Effect
Lien direct vers le message - Vieux
Avatar de The Grouch
The Grouch
Roi
 
Avatar de The Grouch
 
Voilà pour ceux qui ne peuvent pas accéder à la page.



Altquark

Author How exactly is the database going to work ?

I'd like to know how the SoU database functionality is going to work for persistent worlds - anyone have any updates on this section ?

-------------------------------------------------------------------------

Torias
Moderator

most likely, I guess you'd just be able to save particular variables to a persistent storage file, then reload them when module starts again.

so kinda like "saveperistant(objectName)"
and "loadpersistant(objectName)"

dunno if they'd have one set of functions (that'll take any data type), or a set of functions for each data type...

-----------------------------------------------------------------------------------

David Gaider
Designer Bioware

I've only used the data storage dealie once before, so my memory is not exactly the best regarding it. However, basically there are two types of commands:

1) There's the Get/Set for each data type (except objects), similar to how it works now with GetLocalInt and so forth... except you're using the command GetCampaignInt along with an extra field, the "database name".

So you could store an integer with SetCampaignInt( "Campaign", "Plot_Done", 1, GetPCSpeaker()); and then store a location in the same database with SetCampaignLocation("Campaign", "Teleport_Location", lLoc, GetPCSpeaker());

Then in the other module I can use the Get version to retrieve that info... or simply use DestroyCampaignDatabase( "Campaign"); to remove all data of whatever type that was stored under that name.

2) Objects work a bit differently. You use StoreCampaignObject (which returns TRUE if successful) and RetrieveCampaignObject (which returns an object, obviously). The thing I like about this is that objects are stored inventory and all... so bringing a henchman along with his current inventory into another module is a quick, one-command operation.

Where the data is stored and where the other module reads it from... pffft, you got me. But it works just fine.

Once again, a caveat: this is based on my imperfect memory and the functions may yet change. You were warned.

-----------------------------------------------------------------------------------

Torias
Moderator

so bringing a henchman along with his current inventory into another module is a quick, one-command operation.


I love the fact that henchpeople are rising in prominence...

I think the next big step would be to have the henchpeople actually level up just like a pc, and have the pc able "suggest" possible advancement paths to the henchperson through dialogue...

ie, don't let the player level up the henchperson, but have a conversation where the henchperson is talking about their training and they aren't sure if they should focus more in area (A) or area (B)... and the pc could offer their advice / suggestions...

that, and having the henchpeople shop for their own equipment at market places in towns

----------------------------------------------------------------------------------

David Gaider
Designer Bioware

I think the next big step would be to have the henchpeople actually level up just like a pc, and have the pc able "suggest" possible advancement paths to the henchperson through dialogue...


Well, I rather suspect that would involve the new command LevelUpHenchman... but I'll talk more about that later.

captaincursor

Joined: 15 Mar 2002 Posted: Friday, 04 April 01:53AM
So does storing an object and all it's inventory include things like packs or boxes. Say a bank vault?

------------------------------------------------------------------------------------

Torias
Moderator

I think the next big step would be to have the henchpeople actually level up just like a pc, and have the pc able "suggest" possible advancement paths to the henchperson through dialogue...


Well, I rather suspect that would involve the new command LevelUpHenchman... but I'll talk more about that later.

being a multiclassed cynic/optimist... I have a hard time figuring out if you are joking or not

-----------------------------------------------------------------------------------

LdyShayna

Well, being an optimist who has eaten a fair amount of sugar today, I'll say, "Goodygoodygoodygoody!"


Come see our Shadows of Undrentide Page for information not even on the BioWare official site yet!

----------------------------------------------------------------------------------
Kem

Being able to store any object will be very nice.

Now add that to the 2da reading, you can read in a random monster table from a 2da into the database once. Then if you ever update the 2da you can have a command or lever to pull that will re read the 2da. Seems odd to have it in more then one place, but you can organize it and have keywords to retreve it from the database while reading from a 2da file will be rather difficult.

As an example for what I use for my scroll creation.

I have the player say the name of the spell, or enough of it to distiguise it from other spells. Or if I like an abbreviation.

So if I (pardon the format of this I haven't had to edit this part in a long time)

GetLocalInt("Spell Keyword" + WhatPCSaid, vVariable)

It will give me Spell Number that relates to the keyword used by the PC.

So if I wanted to have Deities and their favorite weapon (Someone keeps using this so why not )

I could retreive it from the Database just by
GetLocal*something*(sDeityName + "Favorite Weapon",vValue)

But to get it form the 2da I'd first have to get the Dieties Number in the 2da.

And if you are feeling really wasteful you could even go so far as to have a "Fake Array" of each weapon with the deities that favor that weapon in it.

And since its all now going into a database, you only need to run the code that does it once, for each time it changes.



Now for an Odd Question

If I Store a player object (assuming it stores everything about a character)

I'm curious as to if I can set a player back to that object.

Prolly not possible, and would make for interesting solutions to something, I'm sure

-----------------------------------------------------------------------------------

David Gaider
Designer Bioware

being a multiclassed cynic/optimist... I have a hard time figuring out if you are joking or not

Me? I never joke in italics. That command is quite real.

-----------------------------------------------------------------------------------

Garad Moonbeam

Quote: Posted 04/04/03 02:02:44 (GMT) by Torias
being a multiclassed cynic/optimist... I have a hard time figuring out if you are joking or not

Me? I never joke in italics. That command is quite real.

Sweet Now, are they REALLY levelling up, or destroying themselves and recreating the next version still?

I've got a further question about the SetCampaign* functions. When you tell it the "table name", will it automatically create that table? Or do you have to use seperate commands for setting up tables? If its automatic that's sort of neat...cause you can use any scripting command that returns a string to set the name of the table you want to store data in. i.e. SetCampaingInt(GetName(oPC), GetCurrentHP(oPC), "HP") (appologies if I muddled up those function names and variable orders...need sleep )

-----------------------------------------------------------------------------------

David Gaider
Designer Bioware

Quote: Posted 04/04/03 03:16:00 (GMT) by Kem
Now for an Odd Question

If I Store a player object (assuming it stores everything about a character)

I'm curious as to if I can set a player back to that object.


No, because there's no command to "set a player back" to anything, is there? I assume you could store the player state at some point and, say, use CopyObject to create a duplicate of the PC at that point... I'm not sure, though, as I've never tried storing the PC object.

-----------------------------------------------------------------------------------

Kem

Quote: Posted 04/04/03 03:16:00 (GMT) by Kem
Now for an Odd Question

If I Store a player object (assuming it stores everything about a character)

I'm curious as to if I can set a player back to that object.


No, because there's no command to "set a player back" to anything, is there? I assume you could store the player state at some point and, say, use CopyObject to create a duplicate of the PC at that point... I'm not sure, though, as I've never tried storing the PC object.

Yeah that was more of a I really doubt it but I can hope type thing

One day I'll have to try and get a PC to change like that though I doubt I could but its worth a shot and will prolly make me learn something

-----------------------------------------------------------------------------------

David Gaider
Designer Bioware

Quote: Posted 04/04/03 02:02:44 (GMT) by Torias
being a multiclassed cynic/optimist... I have a hard time figuring out if you are joking or not

Me? I never joke in italics. That command is quite real.

yaaayyyy

what arguments do you get to pass to the command? do you get to tell it what class to level up? what feats / skills to take?

maybe it could use prioritised lists like for the recommend system...

or does it just destroy the npc and replace them with the next predefined version?

-----------------------------------------------------------------------------------

David Gaider
Designer Bioware

Quote: Posted 04/04/03 04:27:28 (GMT) by Garad Moonbeam
Sweet Now, are they REALLY levelling up, or destroying themselves and recreating the next version still?

They are really levelling up. There's only one version of the henchmen in the OC modules, not twenty.


Quote: I've got a further question about the SetCampaign* functions. When you tell it the "table name", will it automatically create that table?

Yes. There's a seperate command to destroy the entire table, but it is created by SetCampaign*** automatically.
Lien direct vers le message - Vieux
Avatar de Critias
Critias
Alpha & Oméga
 
Avatar de Critias
 
Bah... Moi, tout ce que j'ai réussi à voir d'intéressant, c'est qu'elle sera avec SOU, si j'ai bien compris ?

Et, aussi, que ça permettra de communiquer entre modules... Enfin, rien de super nouveau. Mais bon, faut dire, chuis au boulot, j'ai survolé et lu uniquement les réponses des gars de Bioware. M'enfin, ils parlent plus des Henchmen que de la base, non ?
Lien direct vers le message - Vieux
Avatar de ruru2a
ruru2a
Alpha & Oméga
 
Avatar de ruru2a
 
Le moderateur de Bioware lance le debat de cette maniere :

"in an ideal world, they'd fully implement the sql standard...

most likely, I guess you'd just be able to save particular variables to a persistent storage file, then reload them when module starts again.

so kinda like "saveperistant(objectName)"
and "loadpersistant(objectName)"

dunno if they'd have one set of functions (that'll take any data type), or a set of functions for each data type... "

Ca doit evoker bcp de chose a vous maitres scripteur...

[EDIT]

Ben on a du poster ca tous en meme tps
Lien direct vers le message - Vieux
Avatar de Le grognon
Le grognon
Alpha & Oméga
 
Avatar de Le grognon
 
oui .. ok on parle de la base dans SoU... mais à mon avis, c'est aussi pour ça que l'update 1.30 est en stand by... car ils vont reprendre une partie de ce qui est fait pour SoU dans l'update (pour la compatibilité je suppose en partie... et je me dis même que ce sera une mise à jour obligatoire pour "reajuster" nwn pour accepter SoU et donc qu'elle a de grande chance de sortir comme par hasard JUSTE avant SoU)

et en gros, la gestion de la database sera dans un fichier .2da externe (enfin.. c'est ce qu'il me semble avoir compris en lisant ce qui s'y rappporte) et permettra de faire tous ce que font les systemes de simulation de database existant en ce moment...

oui, effectivement.. rien de nouveau-nouveau (une database... c'est une database... une fois qu'on a les commandes pour ecrire,lire et effacer dedans... )... mais des confirmations
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
Citation:
David Gaider
Designer Bioware

I've only used the data storage dealie once before, so my memory is not exactly the best regarding it. However, basically there are two types of commands:

1) There's the Get/Set for each data type (except objects), similar to how it works now with GetLocalInt and so forth... except you're using the command GetCampaignInt along with an extra field, the "database name".

So you could store an integer with SetCampaignInt( "Campaign", "Plot_Done", 1, GetPCSpeaker()); and then store a location in the same database with SetCampaignLocation("Campaign", "Teleport_Location", lLoc, GetPCSpeaker());

Then in the other module I can use the Get version to retrieve that info... or simply use DestroyCampaignDatabase( "Campaign"); to remove all data of whatever type that was stored under that name.

2) Objects work a bit differently. You use StoreCampaignObject (which returns TRUE if successful) and RetrieveCampaignObject (which returns an object, obviously). The thing I like about this is that objects are stored inventory and all... so bringing a henchman along with his current inventory into another module is a quick, one-command operation.
Moi c'est ça qui m'a agréablement tapé dans l'oeil

Jaha Effect
Lien direct vers le message - Vieux
sarda
Roi
 
ouais j'ai plus cs m'acheter un dico pour tous comprendre alors
Lien direct vers le message - Vieux
Avatar de 'Az
'Az [P.H.]
Alpha & Oméga
 
Avatar de 'Az
 
et bien c'est en très bonne voix tout ca

J'ai comme l'impression qu'on va pouvoir en faire quelques chose
Lien direct vers le message - Vieux
Avatar de Taern
Taern
Alpha & Oméga
 
Avatar de Taern
 
Oui, la bonne surprise c'est la gestion des objets dans la base de donnée C'est quelque chose que le fameux NWNX ne gère pas il me semble.

Bon, on lance les paris ? je mise sur début mai pour la 1.30
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Citation:
et en gros, la gestion de la database sera dans un fichier .2da externe (enfin.. c'est ce qu'il me semble avoir compris en lisant ce qui s'y rappporte) et permettra de faire tous ce que font les systemes de simulation de database existant en ce moment...
Non non, ou alors je lis mal l'anglais (je vous assure que je comprends très bien l'anglais, pour le parler, c'est autre chose... )

La gestion n'aura rien à voir avec une "vraie" base de données relationnelle, les fonctions de persistances seront strictement identiques aux fonctions de stockage habituelle (SetLocal(), GetLocal()), avec juste un paramètre supplémentaire : le nom du fichier de la database utilisée (ce qui permettra d'ailleurs d'en utiliser plusieurs pour un même module). (1 - mais 2 +, au moins, vu la simplicité du concept, tout le monde pourra l'utiliser ! ).

Les .2da évoqués ici sont statiques, il s'agit d'une autre possibilité géniale apportée par l'extension : on peut lire dans un fichier 2da (de base ou créé par nos soins) avec le nom du fichier, le nom de la colonne et le numéro de l'enregistrement.
Ca permet enfin de faire des tables pratiques, ce qui va changer pas mal de chose pour un certain nombre de script : spawn, trésor, etc...

En bref, je l'attend très fort moi cette extension !!

(Ah, et faut pas oublier le StockObject() qui a l'air tout bonnement sensationnel)

PS : par contre, pour le transfert de module à module... Je ne sais pas : David Gaider a dit qu'on stockait les infos sur un objet du module donc je ne vois pas comment on peut les récupérer dans un autre module, j'espère qu'il n'oublieront pas cette possibilité, elle ne devrait pas être difficile à rajouter.
Lien direct vers le message - Vieux
Avatar de Emphyrio Eleasias
Emphyrio Eleasias
Roi
 
Avatar de Emphyrio Eleasias
 
Selon l’équipe des scripteurs avec laquelle je travail, le bon plan sera de coupler les deux systèmes de BDD. Celui de bioware et le NWNX qui a d'ailleurs une version de fonctionnelle pour les serveurs linux depuis pas très longtemps.

Et pour faire confiance à Bioware, il faut être un peu timbré. Je ne m'avancerai pas trop.

Commercialement, je miserai pour la sortie de SOU couplée uniquement avec le système de BDD. Si l'équipe qui a réalisé NWN est une véritable brelle en développement de jeux, je les trouve plutôt géniaux commercialement. Ca serait le plus pour réellement rendre l'add-on indispensable aux concepteurs de gros modules. Car personnellement, je m'en balance complètement de SOU et nous sommes nombreux ainsi. C'est une add-on d'éditeur dîtes moi plutôt ?
Lien direct vers le message - Vieux
Avatar de ruru2a
ruru2a
Alpha & Oméga
 
Avatar de ruru2a
 
Ce ke dis Alendril tien malheureusement la route...
Lien direct vers le message - Vieux
Avatar de Ormus
Ormus
Roi
 
Avatar de Ormus
 
Hmm ça m'étonnerait que la database ne soit dispo qu'avec SoU, la fonction Get2DAString() est déjà un argument de poids...c'est clair qu'ils ont la technique en tout cas
Lien direct vers le message - Vieux
Avatar de Taern
Taern
Alpha & Oméga
 
Avatar de Taern
 
A moins que la 1.30 ne mette 4 mois à sortir, le système de base de donnée sera dispo avant l'add-on, et gratuitement. De plus, j'ai comme dans l'idée que Bio rendra dispo certains ajouts de l'addon par patchs gratuits (comme les fonction Get2DAString et Get/SetAILevel).

Maintenant, à ceux qui soutiennent mordicus que Bioware ne sait rien faire d'autre que des jeux pourris, des patchs buggés et des addons vides, j'aimerais quand même leur rappeler qu'ils sont à l'origine de tous les Baldur et de Planescape (entre autres). Qu'on critique NWN à cause de ses défauts, je peux comprendre, mais être assez stupide pour coller une étiquette "méchants pas bo" sur le front des gars de Bio sans se poser plus de questions je savais pas que ça concernait autant de monde.
Pour ma part je suis persuadé que la campagne de SoU offrira quelquechose de complètement nouveau (et une nouvelle leçon d'humilité à tous les créateurs de module).
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > du nouveau sur la database et la persistance...
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 11h19.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite