FfH2 0.25 OOS errors

Kael

Deity
Joined
May 6, 2002
Messages
17,401
Location
Ohio
This thread is to keep all of the OOS error tracking together.

For those interested is helping to isolate this (or just generally want to play with the debug options) go into the CIV4GameOptionInfos.xml and you will see that some of the game options have bVisible set to 0. Change them to 1 to allow the options to show up in the custom game menu. They will allow you to shut off different asepcts of FfH. Hopefully to help isolate which of the new features is causing the OOSs.

Please make sure you are running the latest patch of 0.25 to make sure you have the latest fixes.
 
I may have quite some time to play FFH mp this weekend, and I feel like it too. Could you tell me quickly what I should do to make my "debugging" (because even if it's broken, ffh is fun ;P) meaningful to you? Is there any point in starting at all before b?
 
Out of sync. It happens in multiplayer games. Essentially, at the end of each round, the game creates a checksum of the current game state on each computer that the game is running. The different PCs then compare their checksums with each other. In a normal game where everything is going fine, those checksums will be the same on each PC. When they aren't, you have an "OOS", and Out Of Sync error. It shows up as fat, ugly red text in the middle of the screen, blinking, and the checksums of all the players are next to their nicks in red as well, blinking too. At this point you must resolve the OOS somehow (playing on doesn't make sense--you can no longer be sure that what you are doing on your PC is what is happening on another PC).

To resolve an OOS, everyone who has a different checksum must rejoin, thus downloading the entire game again from the host. If the OOS is recurring, this solution doesn't make sense of course. If you have an OOS once every 200 turns or so, okay, I can see how you'd just rejoin and get on with it. But if you have to wait 2-3 minutes for a rejoin every 10 turns or so, the game becomes unplayable.

As far as I understand it, there are a number of reasons why an OOS can happen.

1) Random numbers. There's a getSorenRand function in Civ4 for that very reason: if there's something with a random outcome and each PC generates its own number, then of course different things will happen. That's why there's a function to make sure that each PC gets the same random number. Far as I understand it, this is pretty trivial and Kael and the gang surely are on top of this.

2) Differing game files. If I have a gamespeedinfo xml that says normal speed means science factor 100 while you, haxxor that you are, have made your own gamespeedinfo with a science factor of 20, then techs will research much quicker on your instance. One tech finishes on your PC while it's still researching on mine, bam, differing game states. Again, this is trivial: if no one is messing with his files and if everyone has the same game version installed, this should never be a problem.

3) Something happens that is not broadcast to other players. According to what Kael said in another thread, this is currently the most likely candidate. You see, when you move a unit, your game instance sends a message out to everyone else in the game saying "Player XY moved unit number 23 to plot (x, y)" or something like that, so all the other PCs can update their gamestate accordingly. If there's an activity, however, that doesn't broadcast itself, this could be causing an OOS as well (say Declare Nationality in a hidden nationality unit would for instance not broadcast itself to other players--so you'd declare nationality, and in your game that Hill Giant (are they still in? I forget ;P) is now one of your units, while on the other PCs it's still a hidden nationality unit. OOS)


OOS are very very hard to debug for a number of reasons. I think the biggest problem is that multiplayer savegames are next to useless. You can't go into worldedit with them, for instance, and to recreate the OOS you also need more than one PC (evidently).

Since I practically only play FFH multiplayer I'm very interested in seeing those OOSes resolved (as you can probably tell ;P)
 
I updated the first post with instructions on how to enable the debug options for OOS testing.
 
Hi Kael.
We had a lot of OOSs in our first game, to the point we decided to quit. I forgot to activate the debug options, but will do the next time. Meanwhile I can post my impressions.
First off, the map was Highlands (cylindrical). Simultaneous turns, of course. Initially we haven't exprienced any OOS. Only from a certain point of the game OOSs started and after some turns they were happening in average 1 every 2 turns. I've put up many theories but they've all been disproved :D
First I thought it would happen whenever you would build a FFH specific building, and this seemed true until when I built Carnivals and no OOS happened. It could be something about barbarians inside players borders, attacking or stepping on improvements. It could also be connected to animal lairs (we had the option double animals active, btw). Anyways it should be something that doesn't happen in the beginning of the game but that happens after a while (still talking of early game, around 100 turns). One thing that might help: once we reloaded a 97% lost battle, and we got a OOS on load (I mean, just finished loading and we got it).
Hopefully I will come back with debug infos next time.
 
the worldbuilder option doesn't work (patch c). Without it it's hard to guess anything... :(
 
We're having trouble to even get the game to run. One of us is always marked as *MOD* (and we get the dialog about changed game files etc). We both reinstalled FFH 2025c and then took care only to edit the gameinfo file (I edited it and mailed it to my friend, so we both have the same). Any help on this?
 
Ignoring the *MOD*, we made a game and ran it for 50 turns. No OOS. Is there any more information on the frequency of the OOS or at least some clue as to the circumstances?

We'll run a "real" game now, one that will take longer etc. However, I'm applying my fair combat changes to the game, meaning the following changes:

max hit points and heal rates increased in globaldefinesalt
all iCombatLimit values multiplied by 10 in civ4unitinfo

I know it sucks that I'll have more files deviating from the ffh standard, but we seriously cannot play a fun game without those changes anymore. I don't think these files should devalidate our testing, but I thought I'd mention it anyway.
 
We keep testing with the *mod* thing and with fair combat. One game had an oos after ending round at turn 28. The next game had something more interesting: my friend attacked a skeleton with his warrior and the game immediately went oos. The warrior had 2.8 health for him and 3.0 for me. Now obviously I'm afraid that this has to do with the faircombat xml changes, but we did make sure twice that we have the same files. That second time around we had the hidden nationality debug option on.

Honestly, I'm a little lost. It's very hard to test this oos since it can apparently not happen for 50 turns. If anyone could give me an idea what we could do to help, more specifically?
 
We're playing 25c, two humans, 8 or 10 AI civs, all in teams. Played about 140 turns. Had a couple of dozen OOS. Most seemed to happen when the host computer was fighting animals, or, a few times, barbarian units. Also, it could be our imagination, but it seemed to happen less if the non-host computer had the fight on screen. Haven't tried the debug option - will do that today to see if we can figure more out.
 
Very odd, this is great information though so definitly keep it coming.

A few more things to check out:

1. If you are having consistent easily reproducable OOS errors please try a multiplayer BtS game to see if you have similiar difficulty. Many people are reporting OOS problems with BtS 3.13 so I want to try to isolate the stuff I broke from other problems that may exist.
 
I added a new CvCoreGameDLL to the first post. It doesn't use any of the player specific turn slice data when generatign the sync checksum. If it resolves the OOS's we can isolate down to the specific value which is getting lost between syncs.

It is a 0.25d dll, so make sure oyu have that patch applied.
 
with that .dll we get an OOS error from turn 1 and cannot remove it even with the usual reload O_o
I haven't had time to test with the regular .dll of .025d, it was this morning before work. Does this .dll work for others ?
 
Excuses my English. I am from German Civforum. Kontrolator knows me;)

I am pleased about the new version 0.25. Unfortunately this OOS error , it makes hardly possible to play.

I play in the LAN with my girlfriend. I had read that also with BTS 3,13 the error emerged. I found here in the forum a solution. I deleted warlord, BTS and installed BTS again and directly the Patch 3,13 . Unfortunately it comes still to errors.

Also the Balseraphs are not in the game, this error comes in the LAN.

The last time itcame, when I killed Orthos and got his axe. Afterwards this error came every times, if I killed a barbarian with the axe.

Can it be? Perhaps the error comes also, if the AI has the axe and kill someone with this item.

I use 0,25 C.
 
I forgot to mention that I have no OOS while playing BtS 3.13
 
Interestign stuff. I'll add a game option to the next version that disabled damage types (skeletons and Orthus's axe both add damage types).
 
Top Bottom