About tagging items with variables

Forum for scripters of NWN material and third party applications.
Post Reply
Orleron
Multiverse Scholar
Posts: 1247
Joined: Mon Nov 10, 2003 11:15 am
Location: Avlis
Contact:

About tagging items with variables

Post by Orleron » Fri Apr 08, 2005 9:06 am

Tagging items with a "homeworld" variable is not as easy as you think. The variable will certainly stick across servers, but when someone goes to put this into a persistent chest, the item is actually destroyed, and remade when the player takes the item out again. Thus, the homeworld variable goes bye bye.

I think that using the new version of NWNX which has object storage may fix this, but there is a problem with that too: disc space. The reason why Avlis has not switched over to this new object storage is because the amount of disc space taken up by storing these objects in the database would figure in the tens of gigabytes for the number of items that are already in storage. It's impractical. We don't have that kind of space.

So while I agree, the homeworld variable is something that is needed, it can't practically be implemented yet. PlasmaJohn is working on a solution that can store objects with less disc space, but it may be some time before he gets that running.

fyi
Avlis: http://www.avlis.org

"My name is Orleron...a dungeonmaster...two years ago I got shot through a game client...I'm in a distant part of the internet aboard these servers of escaped mental patients...my players. I've made enemies, stupid, and annoying...now all I want to do is make CoPaP a reality, to warn Earth...Look inward(to your monitor) and share the newbies I've seen..."

JollyOrc
Ambassador: Tairis'nàdur
Posts: 380
Joined: Tue Nov 25, 2003 1:13 am
Location: Catar, D'Aton Academy of the Blade
Contact:

Post by JollyOrc » Fri Apr 08, 2005 9:27 am

For Catara, we've developed a chest system that treats each chest as an NPC and then stores the NPC as one object into the db. (in .bic format to be precise. Very neat.) And variables on the items, non-palette items, bags with stuff in them, the order of the items in the inventory, all this seems to get saved. There are still some kinks to work out though.


I've never really looked at it from a storage viewpoint. Let's see now:

the biggest character in my localvault is 100kb. Now, he's got a pretty normal inventory, I guess a fully loaded character would be, what? ~300kb. Let's assume that would be the case.

Avlis has what, 3000 player characters in the vault ? Let's assume that for now. That's nearly 900 MB ...

*whistles*

If every of these characters has three chests, this would be, round up generously, 3 GB. A bigger number than I have thought, but manageable I guess.


Point of this post ? Things should be manageable, we just need to get creative :)
bye,
JollyOrc
___________________
Tairis'nàdur - Senior DM, Catara World Owner
-= fewer rules - more fun =-

Starslayer_D
Ambassador: Abyss404
Posts: 153
Joined: Tue Nov 25, 2003 1:52 pm
Location: Senior DM Abyss404

Post by Starslayer_D » Fri Apr 08, 2005 10:01 am

Makes me wonder how large the avlis server vault is. :)

teleri
World Leader: The Outlands
Posts: 497
Joined: Thu Jul 01, 2004 2:24 pm
Location: Sigil
Contact:

Post by teleri » Fri Apr 08, 2005 12:14 pm

JollyOrc wrote:I've never really looked at it from a storage viewpoint. Let's see now:

the biggest character in my localvault is 100kb. Now, he's got a pretty normal inventory, I guess a fully loaded character would be, what? ~300kb. Let's assume that would be the case.

Avlis has what, 3000 player characters in the vault ? Let's assume that for now. That's nearly 900 MB ...

*whistles*

If every of these characters has three chests, this would be, round up generously, 3 GB. A bigger number than I have thought, but manageable I guess.


Point of this post ? Things should be manageable, we just need to get creative :)
The fat PC is just over 4 MB each that is full set of gear, and every space filled with a bag with differnt 1 space items (: I tested it for giggles. a p-chest with 25 pages of different 1 space items runs just under 2 MB. So your 3000 users translates to 12 GB for the users and 6 GB for the chests. Though I don't believe there are as many chests in Avlis as there are characters. (:

So in total the Avlis char + chest would be about 18 GB and double that for bad storage technique (: so 36 GB not counting back up, which would be 7 days worth (: compressed so about 10 GB each (I am a pessimist here it is probably a better compression ratio) so 70 GB of backup with the 36 GB of active files and you have a nice 106 GB of just characters and storage (:

Storage does become an issue fairly fast.
Cheers,
teleri

Building the Outlands one GateTown at a Time
[url=http://www.greatring.net][color=blue][u][b]The Outlands[/color][/u][/b][/url]
[url=http://www.diterlizzi.com/art/games/planescape/index.html][color=blue][u][b]The Look of PlaneScape[/color][/u][/b][/url]

JollyOrc
Ambassador: Tairis'nàdur
Posts: 380
Joined: Tue Nov 25, 2003 1:13 am
Location: Catar, D'Aton Academy of the Blade
Contact:

Post by JollyOrc » Fri Apr 08, 2005 12:30 pm

a 4 MB database dump with ~50 NPC bics (including chests) in it compresses down to 205kb with rar.

The 18 GB backup would thus size down to less than 1 GB. :D
bye,
JollyOrc
___________________
Tairis'nàdur - Senior DM, Catara World Owner
-= fewer rules - more fun =-

teleri
World Leader: The Outlands
Posts: 497
Joined: Thu Jul 01, 2004 2:24 pm
Location: Sigil
Contact:

Post by teleri » Fri Apr 08, 2005 12:59 pm

JollyOrc wrote:a 4 MB database dump with ~50 NPC bics (including chests) in it compresses down to 205kb with rar.

The 18 GB backup would thus size down to less than 1 GB. :D
I know I take the pessimists view and get a nice surprise (: it helps to even out the really bad shocks of dealing with the occasional bad Aurora bug, or the Server not loading even though it loaded yesterday, or the backu script not firing etc,,, been a sysadmin too long need an occasional good thing (:
Cheers,
teleri

Building the Outlands one GateTown at a Time
[url=http://www.greatring.net][color=blue][u][b]The Outlands[/color][/u][/b][/url]
[url=http://www.diterlizzi.com/art/games/planescape/index.html][color=blue][u][b]The Look of PlaneScape[/color][/u][/b][/url]

JollyOrc
Ambassador: Tairis'nàdur
Posts: 380
Joined: Tue Nov 25, 2003 1:13 am
Location: Catar, D'Aton Academy of the Blade
Contact:

Post by JollyOrc » Fri Apr 08, 2005 1:01 pm

relatively simple solution: The tag would be a certain variable. Let's call it sOriginalServer.

Let's just create an additional field for the table that stores the pchest stuff.

For every entry in the pchest, you also store those variables we need copap-wide on the items. This would be comparatively quick to implement and not break stuff. It would be a slightly kludgy temporary fix until "true" persistant chests appear.
bye,
JollyOrc
___________________
Tairis'nàdur - Senior DM, Catara World Owner
-= fewer rules - more fun =-

teleri
World Leader: The Outlands
Posts: 497
Joined: Thu Jul 01, 2004 2:24 pm
Location: Sigil
Contact:

Post by teleri » Fri Apr 08, 2005 1:19 pm

JollyOrc wrote:relatively simple solution: The tag would be a certain variable. Let's call it sOriginalServer.

Let's just create an additional field for the table that stores the pchest stuff.

For every entry in the pchest, you also store those variables we need copap-wide on the items. This would be comparatively quick to implement and not break stuff. It would be a slightly kludgy temporary fix until "true" persistant chests appear.
this would work. But there is this http://carpeterra.com/downloads-17.html which seems to be very close to what we need.

talk about it a bit here viewtopic.php?t=1127
Cheers,
teleri

Building the Outlands one GateTown at a Time
[url=http://www.greatring.net][color=blue][u][b]The Outlands[/color][/u][/b][/url]
[url=http://www.diterlizzi.com/art/games/planescape/index.html][color=blue][u][b]The Look of PlaneScape[/color][/u][/b][/url]

Orleron
Multiverse Scholar
Posts: 1247
Joined: Mon Nov 10, 2003 11:15 am
Location: Avlis
Contact:

Post by Orleron » Sat Apr 09, 2005 10:14 am

From the Avlis Team boards comes a possible solution:
PlasmaJohn wrote: On to design...

You really don't want a column per property, that makes changing the property list very difficult. Alex, you've got sort of the right idea, we can encode the properties and arguments as numbers. The containers_2 table has a field called extended which is a numeric index into the item_extension table (doesn't exist yet).

Previously I had proposed the encoding to look something like this:

Code: Select all

0000,0000|0001,0251|...
Basically a sorted delimited list of value tuples. It has to be sorted so that equivalent items will combine counts in the database correctly. The fixed length of the numbers makes operations on the string trivially easy.

The encoding is as follows: the first number of the tuple is the major. The first set (100? 200? 300?) encodes each itemproperty type, so 1 will be Ability Bonus, 2 would be AC Bonus, 3 AC Bonus v. Alignment Group, etc. In addition you need to encode Subproperty, Item Cost Parameter and Parameter 1. For instance A +3 Strength property would be:

Code: Select all

0001,0004,0003,0000
An item with +2 AC vs. Good would look like:

Code: Select all

0003,0002,0002,0000
After the itemproperties, we'd add other encodings:

Code: Select all

0500: variables
  0500,type,name,value
0501: dye
  0501,material type,color
0502: apperance alteration
  0502,partindex,partstyle
For the variables encoding, we'll need a 3rd table: strings. The strings table stores names and string values. Some of the variables will be special:

Code: Select all

_Name: name of item
_Description: item description
_WorldOfOrigin: world name that item was created on
_Signature: signature of whoever crafted the item
_Icon: resref of 2d icon
etc.
Yes, some of those will depend on a form of SCO/RCO.


Soooooo, if anybody's still awake, who's it? :mrgreen:
Avlis: http://www.avlis.org

"My name is Orleron...a dungeonmaster...two years ago I got shot through a game client...I'm in a distant part of the internet aboard these servers of escaped mental patients...my players. I've made enemies, stupid, and annoying...now all I want to do is make CoPaP a reality, to warn Earth...Look inward(to your monitor) and share the newbies I've seen..."

Post Reply