Item Database vs Campaign for Multiplayer
#1
Posté 03 octobre 2013 - 08:21
I know most server admins have NWNX setup with MYSQL databases, and that makes sense to me for the large servers that have been up for years. With player counts the way they are now though, would a new server really need a MYSQL database? At what point do item and campaign databases reach their limits, and what happens when they do?
The module I'm working on currently is geared for singplayer, however I'm thinking of adapting it to have multiplayer support for a server and I'm curious if a campaign database would be supportive of that?
#2
Posté 03 octobre 2013 - 02:29
However for persistence the Campaign Database in combination with storing data on items (I use the player skin) is adequate.
You should use Knat's database extender with the campaign database to improve performance.
And for using the player skin I suggest using Krit's skin override script.
#3
Posté 04 octobre 2013 - 06:21
PC skin gets destroyed by the engine on loading the character if ELC is set. I've been fighting with that for a couple of days now and finally found a comment in the Omnibus record of the old forums. Been pulling my hair out over this...
I don't have a pointer to the online omnibus handy, but the thread I found it in was "x3_inc_skin and sequels"
the Krit (of skin override fame mentioned above and other nice things) said :
"Yeah, well that comment was written based on theory, and was never updated to reflect what happens in practice. In theory, storing variables on the skin item is a way to have persistence. However, this is actually only true for multiplayer, as local variables get wiped from items in single player (well, any local vault game if I recall correctly). Furthermore, this idea fails when ELC or ILR is enabled, as enabling either of those will cause the skin item to be destroyed upon entering the module.
So basically, skin variables are only useful in server vault games with both ILR and ELC off."
NWNX is great. I'm just scratching the surface, but even just the mysql support is worth it.
- meaglyn
#4
Posté 04 octobre 2013 - 09:07
meaglyn wrote...
PC skin gets destroyed by the engine on
loading the character if ELC is set. I've been fighting with that for a
couple of days now and finally found a comment in the Omnibus record of
the old forums. Been pulling my hair out over this...
That was addressed by henesua already.
henesua wrote...
You should use Knat's database extender with the campaign database to improve performance.
Knat stores an item on a database keeping all local variables persistently through module changes/ server reboots. Essentially you get the benefits of local storage merged into the persistence of database storage, at the cost of a server crash destroying the item data before it can make it to the database.
#5
Posté 04 octobre 2013 - 09:15
how? i havent noticed that The Krit's override handles this neither that henesua mentioned this issueWhiZard wrote...
meaglyn wrote...
PC skin gets destroyed by the engine on
loading the character if ELC is set. I've been fighting with that for a
couple of days now and finally found a comment in the Omnibus record of
the old forums. Been pulling my hair out over this...
That was addressed by henesua already.
its a problem and due to this it is not recommended to use skin for storing variables
it is solveable but its quite trickery to set up and affect many module events so rather stay away from skin
#6
Posté 04 octobre 2013 - 09:21
WhiZard wrote...
That was addressed by henesua already.henesua wrote...
You should use Knat's database extender with the campaign database to improve performance.
Knat stores an item on a database keeping all local variables persistently through module changes/ server reboots. Essentially you get the benefits of local storage merged into the persistence of database storage, at the cost of a server crash destroying the item data before it can make it to the database.
No, actually it wasn't at all... read it again.
Using Knat's ndbe has nothing to do with persistence using PC skin.
Henesua talked about improved performance for storing campaign variables. But he also said he used both and pointed to The Krit's skin update.
Storing things on the PC skin is a different, unrelated, way to do persistence. And should
work as long as you don't use ELC on the server and use the servervault.
Cheers,
meaglyn
#7
Posté 04 octobre 2013 - 10:12
meaglyn wrote...
Using Knat's ndbe has nothing to do with persistence using PC skin.
You are aware that with Knat's system, an item like a skin can be a "vault".
#8
Posté 04 octobre 2013 - 10:26
I used to use NBDE, but found that after a while it started to sometimes lose data, probably because I store a lot of variables for each PC.
Going the individual data item route has proved to be fast and I haven't had PCs lose any data to date (and it's been several years).
I do use NWNX with my server, just not for database functionality.
#9
Posté 04 octobre 2013 - 10:56
WhiZard wrote...
meaglyn wrote...
Using Knat's ndbe has nothing to do with persistence using PC skin.
You are aware that with Knat's system, an item like a skin can be a "vault".
Sure, but that was not the point
The x3_inc_skin mechanism of persistence (original or Krit's rewrite) relies on the skin item being present when the player comes back. You could save it off as an object in the campaign DB (with or without NBDE), but that would be using Bioware DB for persistence not PC skin. Henesua's post does not, to me, imply doing it that way.
Btw, I was not being critical of Henesua but pointing out for other server noobs like myself that using the skin as written does not work if you use ELC. This was not obvious to me and cost me a lot of time.
#10
Posté 05 octobre 2013 - 01:28
meaglyn wrote...
WhiZard wrote...
meaglyn wrote...
Using Knat's ndbe has nothing to do with persistence using PC skin.
You are aware that with Knat's system, an item like a skin can be a "vault".
Sure, but that was not the point
The x3_inc_skin mechanism of persistence (original or Krit's rewrite) relies on the skin item being present when the player comes back. You could save it off as an object in the campaign DB (with or without NBDE), but that would be using Bioware DB for persistence not PC skin. Henesua's post does not, to me, imply doing it that way.
Btw, I was not being critical of Henesua but pointing out for other server noobs like myself that using the skin as written does not work if you use ELC. This was not obvious to me and cost me a lot of time.
I am sorry for the confusion about my post. I simply wanted to point out two possibilities for persistence - the campaign database, and the PC skin. I use the two separately, but that wasn't necessarily true from my post.
I appreciate the discussiont hat came out of this though, because I learned something new. I did not realize that ELC and ILR can lead to the destruction of PC Skins. That is very interesting. I didn't notice this because I've always turned these off on my own servers.
I'll have to update my work on Innocuous Familiars to take this into account because the persistence in that system uses the PC skin.
#11
Posté 05 octobre 2013 - 02:18
henesua wrote...
I am sorry for the confusion about my post. I simply wanted to point out two possibilities for persistence - the campaign database, and the PC skin. I use the two separately, but that wasn't necessarily true from my post.
I did not mean to imply that your post caused me issues, if I did. I took it as two separate possibilities. I was already developing a system using mysql for module and NPC data and skin for PC specific things. And was fighting with it not working. Debugging eventually led me to notice the skin not being there on client enter, even though it was in the bic file.
As I said, I thought the information was apropos and might be useful to others...
#12
Posté 05 octobre 2013 - 03:19
No one has really discussed what happens if you don't use MYSQL. Do things eventually just get so out of hand that the server loads slowly / crashes?
#13
Posté 05 octobre 2013 - 09:01
#14
Posté 05 octobre 2013 - 06:43
Funky





Retour en haut






