Architect Archive
Thread: PETITION FOR 200 ITEMS IN A MEDIUM HOUSE AND A CLIENT SIDE STORAGE SYSTEM FOR UNLIMITED ITEMS
The cost of maintenance plus lot consumption from a small to medium to large to PA doesn't add up.
The whole item limit needs to be revised.
I would prefer that storage in houses be experimentable. Keep the current values as a base and allow them to be improved upon. This would actually provide a market for top quality houses.
Vorc, Master Architect, Kettemoor.
The warehouse contains 25 crates. Each crate can hold 50 items. Only one crate can be open at any one time. To store items the player opens a crate and drops the items they wish to store in to it. They then close the crate. At this point the server creates a serialized list of the items and sends it to the client. At the same this it computes a hash of these items and stores it in the database. Now the player might open another crate and store more items, e.t.c.
Later the player decides that they want some of the items from one of the crates. They go to the warehouse and look at a list of items and which crates the items are in (which can be determined by the client from the serialized lists). They then open the correct crate. At this point the client sends the serialized list of objects back to the server. The server re-calculates the hash on the list and compares it to the stored hash. If both hash values match then the server spawns the items from the list in the crate.
The main problems with this approach are:
1. Serialization/de-serialization of objects. This is a non-trivial task since each type of object may need to have its own serialization code. To reduce this problem, warehouses could be introduced in stages, where each stage is able to store a greater variety of items, initially starting with something simple, like resources (since all resources should be able to share the same serialization code).
2. Server processing time. The time to serialize/de-serialize may be significant. The hash should be be fairly quick to compute. Constantly removing items from and adding items to the database could fragment the database and lower performance.
2. The hashing function. This shouldn't be too difficult, but it is important to find a good hashing function to prevent exploits.
3. Storage is linked to the users machine. Anybody playing on two different machines would have to manually transfer the serialized item lists.
How does this prevent exploits? In order to open a crate, the stored hash must match the hash of the item list. Change the item list and its hash changes. Try and open the crate and the odds are you'll get a 'The crate is jammed shut' message, at which point you've lost the items in it, as well as the use of one of your crates. This makes attempts to exploit the system, which should be almost impossible anyway, costly. Since the hash is only stored and computed server side players never have a chance to see it and therefore to try and beat it off-line by running lists of objects to find lists with the same hash values. The hashing function could even be changed with each publish to increase security, although crates stored before that time should still be retrievable (requiring that all hashing functions are retained and that both a hash and a date are stored in the database).
Using a 64 bit hash and a perfect hashing function the chances of finding a pair of item lists with the same hash value are extremely small. If a million players each stored a million crates each and then one other player repeatedly stored a single crate of the same items and tried to retrieve it using the item list from one of the other players (in an attempt to convert the worthless items in his crate into hopefully valuable items) he would have a 0.000006% chance of success, and it would cost him a trillion crates and forty billion warehouses.
Does anybody have any comments? Anything I've missed? Anything that could be added? Is this an idea that people would like to see?
EnigmaBSc
Vorc wrote:
I would prefer that storage in houses be experimentable. Keep the current values as a base and allow them to be improved upon. This would actually provide a market for top quality houses.
Vorc, Master Architect, Kettemoor.
I agree with you on this one.
A storage vendor in house would alonebe too much.
Allow storage lockers in houses to increase room slightly.
But I would prefer Large houses and PA Hall have higher item capacity.