Is it possible to rebuild characters?

Slaytanic_pb

New Adventurer
The True Followers of the Lost
Joined
Feb 1, 2007
Messages
139
Reaction score
0
Location
Taipei
I'm asking if it's possible to rebuild/scan characters they may have developed corruption issues. I'm hoping that this may be an option for the future in order to help stem the flow of rollbacks due to overflows. I hoping that it is something that is not to difficult to make a script or some gui interface to do this. Also, if rebuilding the character is made easier to do and it fixes more than 50% of the overflow issues, it would also help prevent suspected duping. I'm sure that Blasto does everything in his power to keep the data on his hard drive in the best working order he can, but it's beyond his control if a ever so small fragment of his hard drive becomes defective and it happens to have part of your character. I know that the characters are backed up 4 times a day, but if you are backing up a corrupted character, it's going to be a problem that never goes away. I'm guessing that it's also possible that somehow that a character gathers data that has no purpose in the game and helps cause this. I've seen threads before of trying to debug the character item limit and it hasn't produced any useful results. Is it possible that the characters that have been used to test the item limit were freshly made and therefore wouldn't have had the chance to "gather the crap data" as I mentioned before? If you can scan the character and see everything about the character, like stats, items, and what quests have been done, then it should be possible to have the "quest flags" set as they should be if and when the character needs to be rebuilt.

I'm asking because I noticed my friend Picadilly has asked for yet another roll back. I mean here's a guy I know does not need a roll back because he wants to dupe an item. I know absolutely he'd rather work for an item than try some cheap trick to dupe an item. I know I feel the same, I'd rather work for an item too. Well, for one it's beneath me to try something like that, as there's nothing in game that I must have so badly that I have to cheat for it. Besides cheating an item only cheats yourself out of learning to play the game and the experience earned doing it, and the punishment for getting caught only re-enforces my point.

If character rebuilding could be streamlined so that it takes very little effort to do, such as running a monthly script to double check character integrity and rebuild as needed, I would think it would greatly increase the stability of the game. Maybe this would even allow us to have more items like we were able to have before, so we wouldn't be asking for an item storage solution because of the item limit.

Anyways, I hope this is a useful idea to try to implement. I can imagine some reasons why it won't happen, but I hope that I've given some good reasons to do it, and maybe there are more good reasons that I haven't stated, that would make this "project" worth doing.
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
There's no stream-lined character building - there's just really painful developer character building... Stats are fairly easy to restore... But items...

I probably shouldn't say this, but it *might* be possible. Problem is it would take quite some time, and would require that I gather a complete list of items, inventory, stats, etc, and manually recreate the character in developer mode. Any quest data would be lost. I wouldn't be willing to do this for more than one character per month (maybe two, since Stellie is always having a bitch of a time to). It'd take enough effort that it would actually cut into dev time.

Ye might be better off, if the character is still functioning, hoping Shurik3n finds a fix for this - it sounded like he was on the trail of something, then got distracted with stacking items - which would also help, but not cure the problem.
 

Slaytanic_pb

New Adventurer
The True Followers of the Lost
Joined
Feb 1, 2007
Messages
139
Reaction score
0
Location
Taipei
Well, thanks for some input into my idea Thothie.

The idea I have is to my your own "secret" MSC character trainer. I'm sure you may have seen them or have heard of them being used for many of the games out there for saved characters. I'm aware that the characters are encrypted, thou I don't know how or what you use to do that, and I don't need/want to know. But if you are able to use that encryption key to de-crypt the character for editing purposes, I would think it would make it easier to look at the raw data in a character to see what is what. I remember long, long ago, doing some saved game editing with DOS debug and it was a pain figuring out what hex code does what to your character. If you are able to make a program to look at that hex code and translate it into a "character sheet" so you can adjust everything in a character, then it should make rebuilding or scanning characters easier. Working with characters that are not encrypted to begin with should make the development of the trainer easier too.

Maybe what I'm asking for is too difficult for you and the other coders to make with your already busy schedule of updating the game as often as you do. Also, since you said you'd have to go into the developer console, it doesn't sound like it would be very easy to de-crypt the characters. Oh well, I thought it was a good idea, just too bad I can't do anything to make it happen. :(
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
Decoding characters and creating a database for monitoring purpouses was one of the tasks Shurik3n started and abandoned. I'm not sure if it's because he hit a wall, or because he found more important things to do. At the moment, however, we are unable to decrypt characters outside of the game.
 

Shurik3n

New Adventurer
MSC Developer
RiP
Joined
Aug 15, 2006
Messages
1,357
Reaction score
0
Age
34
MiB talked me out of it IIRC, and I believe part of the verdict was that we didn't want to add more strain to the FN server (though blasto said it could handle more data transfer iirc). I had originally rigged it up to give me character data as its saved (once every 3 seconds and after/during certain actions) but before its encrypted and I could "easily" rebuild a character based on that, removing some unnecessary things.

Speaking of unnecessary things, characters are saved with every map they have ever been too and I once talked about deleting that (in fact, I tested it and dropped ~1kb off character files that have been around a while) but I came to the conclusion that it wasn't a problem and MiB tells me that that data isn't loaded so it wouldn't effect overflowing. However, after looking at the FN code the character info is loaded to a buffer thats only 4kb which could be the source of these overflows that don't seem to be caused by item limits. The map info would only really make a difference for people who went to a lot of non-FN maps in the past though.

Theres still a lot of unknowns in all of this and I've been too busy with my graduation requirements and other real life priorities to really have a chance to look at the code at all this month.
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
Well, as I said with the map info - it's not dependable, and thus not used. If you can code me a way to axe it from the character, just in case it does help, I'd be happy with that.

As for the decryption thing - yeah... I didn't want something that would make FN do the decrypting - but rather a seperate application that would decrypt and possibly catalog characters.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
The data buffer is 4k, but there are a few things to remember. One, we're not, or at least I'm not, sure that the rest of the character info doesn't get lumped into the next message. Second, and most important, you are speaking of two different things. Character corruption and overflow should not be considered the same. You see, the 4kb buffer 'exploding' would produce different results than the overflow. We can see this, as the CLIENT crashes, not the server.

Also, I believe the 4kb buffer overflowing has its own error message. 'Reliable' is base HL.

Oh, and Thothie, FN wouldn't be decrypting the character. Shuri intended to use my FNWrite function in order to send the character's stats, items, etc before they were even encrypted.
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
That's still be a load on FN - tis why I've been afraid to really do much of anything with the FN write - again, I was thinking external program.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
I was only correcting you, not saying we should proceed. I gave the very same reason to Shuri, and that's why he, apparently, stopped >_>
 

Blasto121

New Adventurer
MSC Developer
The Pirates of Dreadwind
Joined
May 24, 2006
Messages
1,967
Reaction score
0
Age
37
Location
Eugene, OR
I don't know why you would be afraid of putting more load on the FN server, not like CPU usage is all that high to begin with. Heck my bandwidth isn't fully tapped yet. I need to get my moneys worth every month so the more you use it the more they can hate me.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
I'm also worried about the server strain and dropped character packetz ;-)
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
Blasto121 said:
I don't know why you would be afraid of putting more load on the FN server, not like CPU usage is all that high to begin with. Heck my bandwidth isn't fully tapped yet. I need to get my moneys worth every month so the more you use it the more they can hate me.
Why are you running 4 copies of the damn thing then? ;) I thought this was due to some strange overloading behavior you had with it.

Which of the ports is least used, or has the least number of people with the password, do ye think? Maybe I could shift my server to that port and start screwing around.
 

Blasto121

New Adventurer
MSC Developer
The Pirates of Dreadwind
Joined
May 24, 2006
Messages
1,967
Reaction score
0
Age
37
Location
Eugene, OR
[Response to MiB's post]
bah fear is only a sign of weakness!

If ye want to see what we can really do with the FN server I can make a parity server, one that runs independent of the other it can be the test environment for crazy new ideas and the such. Clearly you could run your own server however if we want large mass testing then this way would work the best. I could carry over the saves from FN and just have them copy over every night or something that way when a server switches up to test the beta FN people can play their character that way we would get a very good idea of what would happen if done in a production environment.

If all we ever do is talk about doing it, it will never get done. What I feel is needed is a play pen for coding, and the test FN would make a wonderful sandbox. Just an idea, and it wouldn't take me long to rig something like that up.

[response to thothies post]
Originally it was to fight the "sticky" connections, however you fixed that. Later I decided it would make for good user balancing. With the 4 passwords it would cut down on the number of people I would have to resend the password to just in case of a password breech. Considering if I only had the 1 server running that would mean I would be sending the password to 61 different people every time a breech occurred, you wanted me to stay sane while I hosted this thing right? With the 4 I can at least divide that number by 4. FYI no port is "least used" each port has an equal number of users on it so they are all going pretty much all the time.

anyway my suggestion above would cover all those grounds so you could have that connection needed for testing. I wouldn't recommend testing in the production environment anyway its bad practice.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
I have my own little FN here, 'tis how I made all the FN changes I have ;-) Again, I'm not afraid of FN having problems, I'm afraid of the servers themselves getting lagged out because they now do twice (at least) as much work.

Oh, and we discovered long ago that I couldn't specify my FN port :p
 

Slaytanic_pb

New Adventurer
The True Followers of the Lost
Joined
Feb 1, 2007
Messages
139
Reaction score
0
Location
Taipei
Well, I wasn't thinking of doing this on live characters, or characters "in use". I would think the character(s) would have to be off-line in order to do a scan or rebuild.

If scan/fix (I'm thinking of something like scandisk or regclean with autofix and no error-messages) is available in the character selection screen, then the player can opt to have the character checked when he/she wants to. This shouldn't place any load on the line (unless you add some sort of status bar), but it will chew up a little CPU time. I don't know if that is possible to do within FN/half-life/MSC, but it would save time for the developers if the code for this was written in such a way that any monkey could press the button for a scan. Maybe a better option would be if it was something that was done on a daily or weekly basis that's done in the background before the character is loaded.

If the scan doesn't work, but the character data is mostly salvageable, then the character would have to be rebuilt. Again, I was thinking that this would also have to be an off-line process, which would need the "character trainer" I mentioned before to completely re-write the character data.

Anyways, it nice to see that you guys are putting some thought in to my idea :)
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
Anyways, it nice to see that you guys are putting some thought in to my idea
Tis not the first time we've thought on it... But sometimes it helps to get a nudge to come back to these things. *sigh* So much to do...
 

Blasto121

New Adventurer
MSC Developer
The Pirates of Dreadwind
Joined
May 24, 2006
Messages
1,967
Reaction score
0
Age
37
Location
Eugene, OR
The Man In Black said:
I have my own little FN here, 'tis how I made all the FN changes I have ;-) Again, I'm not afraid of FN having problems, I'm afraid of the servers themselves getting lagged out because they now do twice (at least) as much work.

Oh, and we discovered long ago that I couldn't specify my FN port :p

if your afraid of actual servers getting lagged out then my test environment is still better than yours, while yes you can test and make the changes to the FN on your end, you however have no idea once in the production environment if the game servers them self will suffer from it. That is if I understand what your typing correctly.

What I am proposing is not really meant for just you to test but to test as a whole, think of it has a mirror image of FN, difference being that all the character saves on it are just carbon copies of FN. Lets say you want to test out a special write feature you created, for this example we will use FN character data being split into the normal encrypted file and the new unencrypted character file. Clearly this could cause issues for the game servers as they now send twice as much character info.

so in my production environment if in fact the new custom FN starts to corrupt characters or if the game servers that decided to test the custom FN start experiencing crazy lag or something of the such we could know for sure instead of just worrying about it. Considering the FN they are testing on is a carbon copy at no point is any "real" data hurt, and that night around 12 or something I just have all the characters copied over again to reset the custom server.


Do you understand what I am trying to get at? Its not really a test environment for you its more like a second test environment for the whole of the community. After all last thing you want to do is go about corrupting characters, which has happened before because there was no actual test environment for serious code changes, well at least for FN.
 

The Man In Black

Administrator
Staff member
Administrator
Moderator
RiP
Joined
Jul 9, 2006
Messages
6,904
Reaction score
71
In theory, yes, it's a nice idea, but other than the write/read lag, we don't have all that much to test. It seems like it's more work than it's worth.
 

Blasto121

New Adventurer
MSC Developer
The Pirates of Dreadwind
Joined
May 24, 2006
Messages
1,967
Reaction score
0
Age
37
Location
Eugene, OR
what about hacky fixes though? ones like the armor bug fix that started corrupting characters? Things like that could be tested on the custom FN as well, that way it could have its mass testing without throwing it into the production environment. As it is the mod has been picking, and its getting to the point where the MS:C community can't be the test environment and the production environment at the same time.

Just an idea

It just seems silly to me that fear of causing any issues would hold back the creation and testing of such things. So if we had environment where we didn't care how operational it was but to test new ideas and theory's then maybe we could get some interesting things going with FN->server and server->FN information passing.
 

Durak

New Adventurer
Joined
Jan 13, 2006
Messages
289
Reaction score
0
If Blasto wants to do it and doesn't think it's too much work, I figure you should at least try it out. If anything Blasto will have a reason to test the load it creates and how it generally works out.
 
Top