logo
Main

Forums

Downloads

Unreal-Netiquette

Donate for Oldunreal:
Donate

borderline

Links to our wiki:
Wiki

Walkthrough

Links

Tutorials

Unreal Reference

Usermaps

borderline

Contact us:
Submit News
Page Index Toggle Pages: [1] 2  Send TopicPrint
Hot Topic (More than 10 Replies) Note on inventory and score saving at the HyperCoop servers (Read 5086 times)
Hyper
Board Moderator
Betatester
*****
Offline


It's Unreal.

Posts: 2956
Joined: Oct 11th, 2002
Note on inventory and score saving at the HyperCoop servers
Aug 16th, 2016 at 12:35pm
Print Post  
Last year I received several e-mail messages from players whose inventories and scores got lost at the HyperCoop servers. I have not been able to help these players. I very well know that it sucks to lose everything because it contributes many hours of playing to build that impressive score and inventory. It is not unwillingness from my side that I am unable to help but these are inherent limitations of the Old Unreal game. Many other Unreal coop servers don't even *try* save your inventory to disk and the ones who do likely have similar limitations. If you cannot stand the risk of losing everything, you may want to look for another game with true user accounts like Guild Wars and many others.

For years, Unreal and my servers saved scores and inventories to the server's memory (RAM) only and players could easily steal each others work by logging on to their names. With the GemDagger, JCoopZ and Unreal 227's features my server attempts to at the same time save your inventory to disk at every map change and as well prevent other players from stealing it. Technically, this is quite a difficult job to achieve in a game that never supported this. The current situation is that it works, but only most of the time. This means that your inventory and score can get lost. For example when:
  • Playing from different computer from before with the same player name. (Or changing things on the computer like operating system and computer name)
  • Playing with another player name
  • If the server crashed/restarted before map change, all progress is only saved to last map change.
  • When your Unreal.ini and User.ini files are read-only or deleted at all.

Thank you for your understanding.
  
Back to top
WWW  
IP Logged
 
BobIsUnreal
God Member
*****
Offline


Guy who has too much time
invested to quit now

Posts: 747
Joined: Apr 12th, 2010
Gender: Male
Re: Note on inventory and score saving at the HyperCoop servers
Reply #1 - Aug 16th, 2016 at 3:49pm
Print Post  
i dont play there so its not a issue for me , but here are some suggestions.

alot of the issues can be resolved by disabling bnoinvenntory stealing etc.

while i know it is of no real interest to you-

it KNOW it would be fairly straightfoward to rewrite  a modern equivalent  more reliable system to save player scores/kills/inventory as a gamerules mutator that could even do all the stuff gemdagger does ( assuming  that's part of the problem)


i originally made jsaver 2 years ago its purpose is to bruteforce save score/realkills from jcoop in almost realtime and recover them after a crash. it has know issues and its somwhat obsolete at this point.

but what you need is differnt  then that -
you need a combination of 2 of my projects  jsaver and  statssys-generic - statsys provides the account system where clients creat a password accocated with the name and the combo is remembered based on there 227 uid hash- if they wipe there install, goto a differnt pc all they need  do is validate the playername with the password they gave at creation time and the new hash is cached.

name changes can be addressed manually- user emails password and name to admin and admin replaces name in database.
jsaver would provide the score saving connector to jcoopz1
newer  builds of stat system hook inventory recived callbacks , so any weapons you gain are recoved at verified login.

no its not somthing you are going to use / want/carefor - i am just pointing out that it is fairly simple to do


  

[REM_img]http://i.imgur.com/V3OSsDu.gif.disable[/img]http://i.imgur.com/JOu38Gs.gif
Back to top
IP Logged
 
[]KAOS[]Casey
Developer Team
Betatester
Offline


nedm

Posts: 3138
Joined: Aug 7th, 2011
Gender: Male
Re: Note on inventory and score saving at the HyperCoop servers
Reply #2 - Aug 16th, 2016 at 4:31pm
Print Post  
Quote:
players could easily steal each others work by logging on to their names.


yeah. no. it was a measure of anti-tedium. Way back before any custom gametypes were created at all and even after some were, the name change thing was used explicitly to actually have a weapon other than the dispersion pistol after the inevitable server reset because 225f/gold were buggy as shit. I know I personally even went out of my way to give custom easy to remember names a bunch of inventory so people could join in and use that.

have fun potentially being DP only with near-zero ammo for anything else for several maps Smiley
  
Back to top
 
IP Logged
 
Jaden Darchon VII
Ex Member


Re: Note on inventory and score saving at the HyperCoop servers
Reply #3 - Aug 16th, 2016 at 6:54pm
Print Post  
Hey remember that one time this problem has been solved for literally over 20 years in the form of logins with user/pass? :|?
  
Back to top
 
IP Logged
 
Hyper
Board Moderator
Betatester
*****
Offline


It's Unreal.

Posts: 2956
Joined: Oct 11th, 2002
Re: Note on inventory and score saving at the HyperCoop servers
Reply #4 - Aug 16th, 2016 at 11:26pm
Print Post  
Well, it would not be fair to just disable inventory theft prevention and allow anyone to take over each other's score and inventory. Some players really played for hundereds of hours or maybe even more to get what they have now.
  
Back to top
WWW  
IP Logged
 
[]KAOS[]Casey
Developer Team
Betatester
Offline


nedm

Posts: 3138
Joined: Aug 7th, 2011
Gender: Male
Re: Note on inventory and score saving at the HyperCoop servers
Reply #5 - Aug 17th, 2016 at 12:45am
Print Post  
Without a custom gametype or scorerecovery, once you disconnect your score is gone, as the score does not travel. Score linked to player inventory is a manufactured connection


skore. skore. skore.
  
Back to top
 
IP Logged
 
BobIsUnreal
God Member
*****
Offline


Guy who has too much time
invested to quit now

Posts: 747
Joined: Apr 12th, 2010
Gender: Male
Re: Note on inventory and score saving at the HyperCoop servers
Reply #6 - Aug 17th, 2016 at 4:10am
Print Post  
Quote:
would not be fair to just disable inventory theft prevention

but its fair to you for everyone including them to lose everything  because it has flaws ehh.... ummm

so "somone took advantage of my earning" >  " I lost many years worth of my earnings becuase no reason"?
  

[REM_img]http://i.imgur.com/V3OSsDu.gif.disable[/img]http://i.imgur.com/JOu38Gs.gif
Back to top
IP Logged
 
Hyper
Board Moderator
Betatester
*****
Offline


It's Unreal.

Posts: 2956
Joined: Oct 11th, 2002
Re: Note on inventory and score saving at the HyperCoop servers
Reply #7 - Aug 17th, 2016 at 1:20pm
Print Post  
Yes, it is flawed, as said in the start post. But this is the most I can offer. Sorry. If you want true user accounts, you'll need to find a better game.
  
Back to top
WWW  
IP Logged
 
[]KAOS[]Casey
Developer Team
Betatester
Offline


nedm

Posts: 3138
Joined: Aug 7th, 2011
Gender: Male
Re: Note on inventory and score saving at the HyperCoop servers
Reply #8 - Aug 18th, 2016 at 3:09am
Print Post  
Wish I remembered this earlier;

I will revise my previous post as

"lol, really?"
  
Back to top
 
IP Logged
 
Hyper
Board Moderator
Betatester
*****
Offline


It's Unreal.

Posts: 2956
Joined: Oct 11th, 2002
Re: Note on inventory and score saving at the HyperCoop servers
Reply #9 - Aug 21st, 2016 at 1:30am
Print Post  
[]KAOS[]Casey wrote on Aug 18th, 2016 at 3:09am:
Wish I remembered this earlier;

I will revise my previous post as

"lol, really?"


LOL comments do not change the core of the matter. But well, I'm somewhat open to improvements. Over the years I have seen some possibilities come by, but they never left the beta, development or niche group state.

Before I even start considering to use one, it needs to be:
  • Finished and complete. Or better: mature.
  • Well-tested (by the developer and/or his/her testers). I'm NOT willing to beta-test this, I'm already beta-testing unreal 227 and that's enough for me.
  • Well-documented. Everything about the setup, usage and settings should be explained in a well-written manual, step by step, complete and well-written. (Like Winged Unicorn's or }TCP{Wolf's manuals)
  • Easy enough for me to use it. I have no knowledge about programming, UnrealScript, databases, DBMS, SQL, MySQL, SQLite etc. I have knowledge about Unreal servers and settings, INI files, PC's in general and the Windows OS.
  • Stand-alone / self contained. The last thing I need is another Windows service or 3rd party background program. (database engine).
  • Compatible with JCoopZ and Unreal 227j.
  • Stable, reliable and secure (Cheating).
  • It also needs to be able to convert or transit from the current stored scores and inventories to the new databases, because current players should not lose their stuff and scores in the transition.
  • It must turn out to be compatible with the GemDagger, and item which allows you to purchase items from your score. (Without introducing new ways to cheat) (And I'm NOT allowed to share my GemDagger mod versions as disallowed by the developer, Boodaflow).


So yes, I'm reluctant to change the current setup. Even when I know it has it's limitations. The inventory, score and shop system I have now is already the results of many years of intensive testing, communicating and fine tuning. I do not have the energy to do this again. And even when a tool exists that fits with the above requirements, it likely requires a lot of troubleshooting. My server setup is quite complex, more complex than most of the other servers, and this tends to have unforeseen negative consequences. And for myself: I do not have the amount of time nor energy I once had for Unreal. The years I tried everything new this great community produced are over. I try to be there and keep my projects alive while making small improvements but that is is. And for me, this is enough. While I may have the resistance/rigidity of a grandpa who complains about newfangled-junk like smartphones or the internet, I also think I prove to be somewhere among the most reliable services within this small community. And this resistance/rigidity and realized reliability are probably reflect some of the core values of my personality.

I've quickly seen some nice projects come and go by varying developers within the Unreal community, but as far as I've seen did they never left the stage of a proud developer showing off their skills. Sure, they probably work for them, and have some cool implementations and maybe are they in use by some server owners, but these are insider projects and miles away from a finished product for the general public.

Sorry, but this is by far not as simple as it seems.
« Last Edit: Aug 21st, 2016 at 2:45am by Hyper »  
Back to top
WWW  
IP Logged
 
[]KAOS[]Casey
Developer Team
Betatester
Offline


nedm

Posts: 3138
Joined: Aug 7th, 2011
Gender: Male
Re: Note on inventory and score saving at the HyperCoop servers
Reply #10 - Aug 21st, 2016 at 5:57am
Print Post  
tl;dr
  
Back to top
 
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 856
Joined: Jul 31st, 2008
Gender: Male
Re: Note on inventory and score saving at the HyperCoop servers
Reply #11 - Aug 21st, 2016 at 12:28pm
Print Post  
Why is this such an issue? OFC you can have true user accounts. Internal code can generate a password that is saved on the client as well as the server and then it checks this match before saving/restoring. You don't need player name or IP or anything.
Quote:
Playing from different computer from before with the same player name. (Or changing things on the computer like operating system and computer name)
Playing with another player name
If the server crashed/restarted before map change, all progress is only saved to last map change.
When your Unreal.ini and User.ini files are read-only or deleted at all.

May I respectfully point out that you are shouldering a burden that is primarily the player's responsibility with most of those. If a player elects to reformat without saving their ini or force settings like 'read only' then that's on them and not you. They are adjusting the normal relationship between server and client and so it's up to them to deal with the results. Don't ever chase players, this allows them too much say over how YOU run YOUR server.

The only real issue I see above is score loss because of reset. That's easily fixed though. Just force a save every X minutes. Server crashes are rare and I wouldn't try to save anything during one of those. Too high a chance of corruption. In fact it might be a good idea to save a backup copy from within the code too. I do this with my Unreal.ini file and I've had to go to the backup several times to restore something.

This seems like much ado about not a really serious issue. Do you not have someone to fix your code Hyper? I'd be glad to help you if you don't.
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
Hyper
Board Moderator
Betatester
*****
Offline


It's Unreal.

Posts: 2956
Joined: Oct 11th, 2002
Re: Note on inventory and score saving at the HyperCoop servers
Reply #12 - Aug 21st, 2016 at 2:30pm
Print Post  
[]KAOS[]Casey wrote on Aug 21st, 2016 at 5:57am:
tl;dr


Do you require me to spoon-feed it to you with this short attention span? It took considerably more time writing a well thought over reply than it will take someone to actually read it. Well, maybe I'm just wasting my time here addressing your comments.


gopostal wrote on Aug 21st, 2016 at 12:28pm:
Why is this such an issue? OFC you can have true user accounts. Internal code can generate a password that is saved on the client as well as the server and then it checks this match before saving/restoring. You don't need player name or IP or anything.
Quote:
Playing from different computer from before with the same player name. (Or changing things on the computer like operating system and computer name)
Playing with another player name
If the server crashed/restarted before map change, all progress is only saved to last map change.
When your Unreal.ini and User.ini files are read-only or deleted at all.

May I respectfully point out that you are shouldering a burden that is primarily the player's responsibility with most of those. If a player elects to reformat without saving their ini or force settings like 'read only' then that's on them and not you. They are adjusting the normal relationship between server and client and so it's up to them to deal with the results. Don't ever chase players, this allows them too much say over how YOU run YOUR server.


Well, I'm just trying to help and prevent some foreseeable problems here.

Quote:
The only real issue I see above is score loss because of reset. That's easily fixed though. Just force a save every X minutes. Server crashes are rare and I wouldn't try to save anything during one of those. Too high a chance of corruption. In fact it might be a good idea to save a backup copy from within the code too. I do this with my Unreal.ini file and I've had to go to the backup several times to restore something.


The server saved during map switch. To me, that is good enough. I do have some backups of the server and ini files. So in the rare case that a crash would cause a currupted INI file I can revert to my backup. I always make backups before installing a new build of Unreal 227 beta. Normally when the server crashes, only the state of the active map gets lost.

Quote:
This seems like much ado about not a really serious issue. Do you not have someone to fix your code Hyper? I'd be glad to help you if you don't.


I don't have any code to fix. I only use 3rd party mods and software together. Mostly Unreal 227j, JCoopZ and a beta of the Gemdagger.
  
Back to top
WWW  
IP Logged
 
gopostal
Betatester
Offline


Hack coder

Posts: 856
Joined: Jul 31st, 2008
Gender: Male
Re: Note on inventory and score saving at the HyperCoop servers
Reply #13 - Aug 21st, 2016 at 3:04pm
Print Post  
Seems to me that GemDagger is the place to fix this since it's already accessing the variables you want saved. How interested is the guy who made you the private version in fixing it to where you want it? It's 80% of the way there already, it just needs a bit of functionality added into the checks. If he's not interested then if he gives permission I'd add it for you. After your graciousness in posting the megacache I'd say that gives you preferential treatment in most things from now on as far as I'm concerned Wink
  

I don't want to give the end away
but we're all going to die one day
Back to top
 
IP Logged
 
Hyper
Board Moderator
Betatester
*****
Offline


It's Unreal.

Posts: 2956
Joined: Oct 11th, 2002
Re: Note on inventory and score saving at the HyperCoop servers
Reply #14 - Aug 21st, 2016 at 3:20pm
Print Post  
The Gemdagger version I use just saves the gemdagger score (I think this is the score in the current level but I'm not sure here) (Which differs from the scoreboard score) to server memory. Unreal 227 saves the actual inventory data including the gemdagger state to .ini and JCoopZ has some protections against inventory stealing. Most gemgagger versions also have some theft prevention but because JCoopZ does a better job on this I do not use this gemdagger feature anymore.

The best improvement would be if Unreal itself would save the inventory and score data to SQLite database instead of ini and have some form of good, reliable authentication. This then included the gemdagger state because it is just another inventory item to Unreal. (To the gemdagger, it does not matter if the state of it gets saved to RAM, InventoryData.ini or an SQLite database)

But this is a lot of work again and I'll not burden the U227 team and mostly Smirftsch with this. He really is busy enough with all my previous bug reports and in the past my feature requests. Their focus should be on finishing and polishing 227J for public release.
  
Back to top
WWW  
IP Logged
 
Page Index Toggle Pages: [1] 2 
Send TopicPrint
Bookmarks: del.icio.us Digg Facebook Google Google+ Linked in reddit StumbleUpon Twitter Yahoo