Win a your very own 36*36 home anywhere on the shard

Stay up to date with shard happenings
Locked
User avatar
Red Squirrel
Posts: 29209
Joined: Wed Dec 18, 2002 12:14 am
Location: Northern Ontario
Contact:

Win a your very own 36*36 home anywhere on the shard

Post by Red Squirrel »

This involves LOT of programming related work, so I warn you but if someone can actually pull this off, they get that house. (basically 4 18*18s).

Ok, so everyone is aware of vanishing items, and I can't really do much about it as it's just getting out of hand. Tracking this takes lot of time playing with backup restore points to make sure that the item did exist and to get the serial, etc. So where I'm getting at is, I can't really replace these unfortunately but I do realize there is a bug.

Another thing is Runuo's storage system totally sucks. Besides this very issue, it's just a pure pain from a scripting point of view when I need a variable's value to save to disk. Need to jump through loot of hoops to get a modified script to work.

So to solve this issues I need to totally redesign RunUO's storage system. I'm no C# programmer and it would take me a while to figure this out, but what I want is for RunUO to use MySQL or other free DBMS. This would basically involve totally revamping the core serialize/deserialize functions. I have a slight idea of how I'd code this but figured I'd make this public in case any of you know C#/SQL and want to take this on.


As for the table structure I would basically have only tables for top classes, basically the ones defined in core scripts. So Item and Mobile and there may be more that I'm missing.

For the inherited classes, there could be another table that is generic for custom values. So if a certain item has something that has to be serialized, it would just create a new entry in that table with the item ID and field name, or something. Though I can imagine this table getting rediculusly huge so perhaps a better approach could be taken.


In the end, this would also reduce world saves since DBMSes are faster. Hell, if you want a huge challenge, remove saves. New items that enter the game simply modify the DB right away, items that get removed from the game, modify the DB right away as well. To me, this is how it shoudl of been done from the start. Keep it all in memory yes, since thats faster, but also update the DB as changes take place, well new items/mobs while character positions/hp, etc could be set to actually save at a certain point as those values are constantly changing. Basically some values could be set to auto update the DB while some others would onlyu update at world saves, so there would still be saves, but only to save the location of characters/items, hp/mana/stam and other highly dynamic values.

The hard part is figuring how to interface a C# app to talk to a database server, the rest would not be too hard really. Long, yes, however. This would probably require a server wipe too but I'd worry about that part later, chances are I could write a script that generates the SQL file of all the items/mobs etc.

The current storage system is rather fast though so in terms of speed perhaps the dB would not do much, but in terms of reliability, it would be WAY better and WAY more scalable.


Any takers? :P We must have a few coders here. hehe.

Archived topic from AOV, old topic ID:491, old post ID:2733
Honk if you love Jesus, text if you want to meet Him!
User avatar
Death
Posts: 7919
Joined: Thu Sep 30, 2004 10:12 pm

Win a your very own 36*36 home anywhere on the shard

Post by Death »

lol I know C# and SQL but not the point where I can do something uber like that. We're talking a complete revamping of the whole core system to become database driven. I agree that it would probably fix a lot of things and a lot of issues as well but think of all the work + manhours that would take to completely fix this. You would either need a team of experienced coders to work on it (Who are willing to work on it for free) or you would have to pour out countless hours worth of coding (Which you do already coding in the uoml stuff and such). Did you check the runuo forums or googles for anyone else who has talked about vanishing items?

Archived topic from AOV, old topic ID:491, old post ID:2735
Locked