[engine]request resync on oos option

Brainstorm ideas of possible additions to the game. Read this before posting!

Moderator: Forum Moderators

Forum rules
Before posting a new idea, you must read the following:
Post Reply
User avatar
StDrake
Posts: 996
Joined: July 21st, 2009, 6:50 am

[engine]request resync on oos option

Post by StDrake »

I wonder why noone's come up with this yet, maybe it just sounds simple but is too complex to implement in practice?

The whole point is - when an oos error happens, aside for the 'report, dont report, quit' options add one to request resynchronisation from the host.
That should most likely add the requesting user to a pending list on the host side and the game host should have probably some menu option to answer those requests when his list is not empty (not straight after the response since he may expect others to have the problem as well and it's better to wait for the situation to become clear and answer once for all requesters instead of getasked-waitforanswer-answer-getaskedagain-etc). Obviously the resynchronisation command should send out to those who request it information on the current state of game (as seen by the host, gotta rely on someone and host is the best candidate).
In most cases that would probably resort to something similar to saving a game and sending the save to the requesters, but it might be practical to also send data on unit types currently on the map, on players recruitment lists and the advancement paths of the aforementionned.
Like cats? I've made a whole faction of them to kick ass with!
Don't like cats? I've made a whole faction of them to kick their asses! So everyone's happy :)
Felinian faction is part of the Beyond Southern Hells era
kitties need sprites! art topic here
Anonymissimus
Inactive Developer
Posts: 2461
Joined: August 15th, 2008, 8:46 pm
Location: Germany

Re: [engine]request resync on oos option

Post by Anonymissimus »

I think this CABD: One of the involved players (e.g. the host) saves his version of the gamestate (saves the game), then all quit, the saver reloads his save and the others join again. (None needs to disconnect from the server inbetween, only returning to the lobby.)

Interesting may be :inspect, if you e.g. find a or "the" section of the gamestate that's out-of-sync you may manually (by setting variables, debug commands etc) bring it back into sync. I suppose that this would work. Useful if it's only one variable or so.

Also, AFAIK Pentarctagon made his debug era for resynching games.
projects (BfW 1.12):
A Simple Campaign: campaign draft for wml startersPlan Your Advancements: mp mod
The Earth's Gut: sp campaignSettlers of Wesnoth: mp scenarioWesnoth Lua Pack: lua tags and utils
updated to 1.8 and handed over: A Gryphon's Tale: sp campaign
User avatar
StDrake
Posts: 996
Joined: July 21st, 2009, 6:50 am

Re: [engine]request resync on oos option

Post by StDrake »

not very convenient don't you think?
problem is - oos-es are usually not single variable, due to bugs in eras/scenarios used (so can't use debug era cause we're already using another)..and isn't inspect a debug command? we're talking about network games
another problem - most players don't bother knowing how to use variable manipulation commands or will not bother thinking of saving and reloading a game (especially that if a network player exits a game he's often likely not to come back), but a big sign "request resynchronisation" / " player x requests resynchronisation" should rather draw attention to make use of
and of course reloading is likely not to fix the cause of the oos which means in a moment or two we'll end up needing to do that again. I'm trying to come up with something to avoid exactly that
Like cats? I've made a whole faction of them to kick ass with!
Don't like cats? I've made a whole faction of them to kick their asses! So everyone's happy :)
Felinian faction is part of the Beyond Southern Hells era
kitties need sprites! art topic here
Anonymissimus
Inactive Developer
Posts: 2461
Joined: August 15th, 2008, 8:46 pm
Location: Germany

Re: [engine]request resync on oos option

Post by Anonymissimus »

StDrake wrote:and isn't inspect a debug command? we're talking about network games
Start wesnoth with the --debug command line switch.
and of course reloading is likely not to fix the cause of the oos which means in a moment or two we'll end up needing to do that again. I'm trying to come up with something to avoid exactly that
The engine cannot do anything about that - the wml author must fix his addon. See above for great help.
projects (BfW 1.12):
A Simple Campaign: campaign draft for wml startersPlan Your Advancements: mp mod
The Earth's Gut: sp campaignSettlers of Wesnoth: mp scenarioWesnoth Lua Pack: lua tags and utils
updated to 1.8 and handed over: A Gryphon's Tale: sp campaign
User avatar
Pentarctagon
Project Manager
Posts: 5564
Joined: March 22nd, 2009, 10:50 pm
Location: Earth (occasionally)

Re: [engine]request resync on oos option

Post by Pentarctagon »

StDrake wrote:problem is - oos-es are usually not single variable, due to bugs in eras/scenarios used (so can't use debug era cause we're already using another)
well depending on what era you are using you could still use Debug Era since it supports default, EoM, and EoMa units.
99 little bugs in the code, 99 little bugs
take one down, patch it around
-2,147,483,648 little bugs in the code
Anonymissimus
Inactive Developer
Posts: 2461
Joined: August 15th, 2008, 8:46 pm
Location: Germany

Re: [engine]request resync on oos option

Post by Anonymissimus »

Pentarctagon wrote:well depending on what era you are using you could still use Debug Era since it supports default, EoM, and EoMa units.
Is there a way to choose several eras together in the same game ? I suppose not, other than doing it about the way you are doing there - adding "manual" support for some eras.
However, eras like e.g. DiplomacyEra and PickYourRecruitsEra do logically not interfere with each other. This could be the case if they e.g. define unit_types with the same ids.
projects (BfW 1.12):
A Simple Campaign: campaign draft for wml startersPlan Your Advancements: mp mod
The Earth's Gut: sp campaignSettlers of Wesnoth: mp scenarioWesnoth Lua Pack: lua tags and utils
updated to 1.8 and handed over: A Gryphon's Tale: sp campaign
User avatar
Pentarctagon
Project Manager
Posts: 5564
Joined: March 22nd, 2009, 10:50 pm
Location: Earth (occasionally)

Re: [engine]request resync on oos option

Post by Pentarctagon »

Anonymissimus wrote:Is there a way to choose several eras together in the same game ? I suppose not, other than doing it about the way you are doing there - adding "manual" support for some eras.
If I knew of a way to do that I probably would have done it when I first made the era. adding support for combined eras or adding new eras wouldn't be that hard, though I get next to 0 feedback about stuff I make so for all I know people download it and then never use it, in which case there is no real reason to add more stuff to it.
Anonymissimus wrote:However, eras like e.g. DiplomacyEra and PickYourRecruitsEra do logically not interfere with each other. This could be the case if they e.g. define unit_types with the same ids.
one of a couple reasons why I decided to not add Ageless Era :whistle:
99 little bugs in the code, 99 little bugs
take one down, patch it around
-2,147,483,648 little bugs in the code
joshudson
Posts: 501
Joined: January 17th, 2006, 8:04 pm
Contact:

Re: [engine]request resync on oos option

Post by joshudson »

I find that when there's an OOS trying to resync from replay doesn't work (so quit/rejoin is useless) but the state load by load game tends to resync after OOS.
CHKDSK has repaired bad sectors in CHKDSK.EXE
Post Reply