The OOS Issues that Plague This Game

I went to BTS 3.13 and FFHD as well (from Warlords + bhruic's unofficial) so far things seem a lot better. I'm playing a game with Dot and Xaliger and we're at 129 so far with no problems and that's with living world and me playing sheim
 
I went to BTS 3.13 and FFHD as well (from Warlords + bhruic's unofficial) so far things seem a lot better. I'm playing a game with Dot and Xaliger and we're at 129 so far with no problems and that's with living world and me playing sheim

Yeah we just had two games but the problem now isn't OOS it's Rune's of Kilmorph Religious victories that the comp keeps getting by turn 198 in the first game and then 175 in the second game. It spreads way too fast.
 
Well we tried about 3 games with the following things enabled

Mapsize small
A. counter (but not "last days")
all religions
Unique features
barbarians
advanced start

All three made it to around 200 turns with no OOS, we will try to have a longer game before adding more features. I am starting to wonder if the real culprit here (as long suspected by most) is the random events. We shall see.
 
What installation state are you using wayeward? If you want to try testing some games with more people we could get together and do a 4 player. Calbrenar on aim

Yeah that could be fun but we would like to get these OOS issues narrowed down more, ie. once we have several possible leads on what is causing it and possible solutions ===so the the next big test after finding several culprits (or fixes for that matter) will be having more than 2 human players in the game, hopefully that day will come soon. Until then, its probably not worth organizing any large multiplayer games. But for the future its a good idea.:king:

good luck
 
We got to 174 with no OOS problems but then got repeated CTD's from sheim and hell terrain and hyborem so couldn't get any further in that game. New game at 98 so far soo good
 
We got to 174 with no OOS problems but then got repeated CTD's from sheim and hell terrain and hyborem so couldn't get any further in that game. New game at 98 so far soo good

Intersting, we haven't used any of those yet in our game though we have had the Sheim around, nothing yet. When the time comes we will add one though, see what happens.

Xienwolf, any suggestions on which events to switch off/on first? Thanks
 
Not particularly, but I also should mention that you want to set each event at 100 percent chance to be in the game if you use them.

For all the following, you can do it really easy if you use Notepad++, could be a bit harder with other editing programs.

So you should open the EventTriggerInfos.xml and go through changing all of the iPercentGameActive values to 0 (best way is to use a "Replace All" function for each common value, then go through and search for anything you might have missed (so searching for "Active>1" through "Active>9" and if you get any hits, do a new Replace all for that value).

Once you have everything set to 0 percent games active, then you want to find the ones which are "required" and set them to read: <iPercentGamesActive>100</iPercentGamesActive> <!-- Required -->
. This last bit won't be read by the system, but lets you keep track of what you are dealing with later on when you do massive find/replaces. You can also use this kind of tag to track what you have and have not yet tested.

Now you should have it count for you the instances of <iPercentGamesActive>0</iPercentGamesActive>, then replace the first half of those or so with >100<, and give the game a test.

I suppose you could go through and customize all of the event pre-reqs so that you can be assured that they happen, but that would be quite a bit more work.

And just to keep from having everyone have to do the editing, and having to hope you all do it the same, you should probably share the XML as attachments on this thread with each other.
 
Intersting, we haven't used any of those yet in our game though we have had the Sheim around, nothing yet. When the time comes we will add one though, see what happens.

Xienwolf, any suggestions on which events to switch off/on first? Thanks

Has Hyborem been summoned yet? There's another thread on him causing problems on the forums.
 
Has Hyborem been summoned yet? There's another thread on him causing problems on the forums.

No we haven't had that happen yet, darn Runes religion spreading too fast and winning the game for the Khazad to fast, going to have to squash that before it gets out of hand I guess, or lower the difficulty. We might have a game tonight though, see what happens.
 
Are you playing ginormous maps or something?

No small maps and we have compact enforce right now so Basium and Hyborem can't be summoned until maybe the next game or so. No we are playing on Tiny/Small right now. We've only been through a few games so far so we're only slowly increasing things.
 
On our last test run:

Mapsize small
A. counter (but not "last days")
all religions
Unique features
barbarians
advanced start

Had a game go beyond 400 turns, no OOS. These features seem ok, so we will try adding Hyborem and Basium in the next since the former is thought to cause OOS.
 
Heya guys. I've been in Vegas for a week, back today. This is all great information and I'll be digging through it looking for patterns. A few things to remember about OOS errors:

1. An OOS is a generic error meaning that something is different between the multiplayer games. There is no one OOS issue that is causing these problems. So keep in mind that your OOS cause may be different from someone elses.

2. We have fixed tons of OOS issues already. Don't think that because you had an OOS issue in your game that we havent done anything. I wrote about a dozen different debug versions of the source code just to catch OOS issues, which helped a ton and allowed us nail a bunch of them. But there are obviously still some out there.

3. It takes a ton of time to get to a point where an OOS becomes apparent. Unlike every other issue we deal with it isnt as easy as uploading a save or performing X action to cause it. You have to play through a whole game to see if the suspected change (say disabling events or hell terrain) had any effect. Even worse just playing through once may not tell you much because regardless of the result (it OOS'ed or it didnt) doesnt tell you if that change really had any significant effect or not. You could have just not have all the variables in place that cause the OOS or the OOS could have come from somewhere else.

4. Isolation has been difficult. From my perspective it easier if someone can tell me when the OOS started so I have an idea of where to look in the hundreds of thousands of lines of code to track it down. But it seems each version has people who report that it fixed the OOS issues and that it made the OOS issues worse.

5. I do really want to get these fixed. I need patterns to investigate. Keep posting your game results and we will see if a pattern develops (civs in the game, game options, OOS frequency/details).
 
Well we finally had an OOS in our games, I am not sure, however, if it is significant in the long run. We had our game where we added Hyborem and Basium and put the counter on "last days" just for the hell of it and had no problems until turn 386.

UNIQUE FEATURES OF OUR GAME:
Small Map (Highlands)
events (disabled)
last days (enabled)
CIVS: Hannah (human), Dain, Tebryn, Mahala, Perpentach, Sabathiel (human), Garrim Gyr and Einon Logos

1. On the turn of said OOS, the counter had not gone up or down (so far as we know)

2. There were no other events or special buildings/units completed that we know of, but of course we can't see everything...

3. Basium and Hyborem had not yet entered the game, but on turn 386 when it went out of sync the only thing that we DID notice was that Einon Logos had cast his world spell, Sanctuary, which moved a lot of units out of his lands.

We reloaded an autosave, and on the same turn he didn't cast Sanctuary, and yet it still went OOS a few turns later. So maybe Sanctuary has nothing to do with it.

NOTE: Then the next time we loaded the save of turn 386 where the OOS occurred the game did not go OOS. I don't know if this is significant, but after this we continued to play for another 130 turns but the lag between turns rose to about 20-30 seconds of wait time and the game became extremely sluggish. Considering that we are both on higher end machines this should not have been an issue, and wasn't before the OOS.
 
What I would like explained so I can wrap my technical mind around this problem is this. I get the game going OOS. What I don't understand is when the game goes OOS and the host saves giving ONE set state for the game. We quit clear cache and start again and everyone loads off that state meaning everyone has identical info whatever they were doing before. Why does the game go OOS again? To me that sounds like it means the problem is something that was put into the game and still is in the game and will cause problems.

The typical OOS you see goes away forever once you reload but some persist. What are the difference between these two types of OOS' Kael and what kind of things would cause them? A persistant OOS seems like it would be some kind of, (and I'm really reaching here because I have no insight into how the game works just an example), like a malformed XML tag or something that is now in the game having been created and will repeatedly cause problems until it goes away.

It also seems that it's something from further down the tech tree becaues its rare to see people reporting constant OOS' prior to turn 250ish. Is there a way that we can edit multiplayer saves? Perhaps when the game starts repeatedly OOS'ing if all but the host quit and the host continues playing then saves. Then loads it up can he run worldbuilder or is it impossible? I would like to see if you go in and delete say all the units then have the human players join back in and see if it OOS'. If it does then we could go back and look for unique units and only remove those. If we don't get OOS' we know that it is one of those causing the problem if we do we know it's something else and we can try eliminating other things. This is the approach I typically take to troubleshooting and it has proved effective to me in my career. i'm not sure if this is possible given that if you can't run worldbuilder on a mp save then you're sol unless we can do a code hack. If so is that an option?
 
When you get an OOS, it means that one computer is doing something
different than the rest of the computers in the game.

This usually happens in response to user input, i.e. you don't let the
other computers know what the user selected. That's why we need to send
messages for all user actions on the interface.

You can also get out-of-syncs when in the code you are doing things
based on the active player. That results in different behavior on
different computers because each computer has a different active player.

The important thing to remember about Civ4 is that it is not client/server multiplayer. If there are 4 people in your game they are all really playing 4 different games witha sync mechanic that is supposed to let them know about important decisions from each game. OOS errors occur when that doesn't happen.

I can give a few examples. We had an OOS that was caused by the Kuriotates settlements mechanic. The Kurio player would found a city and get the option to make it into a settlement or a full city. He would choose whatever option but there wasn't any way to let all the other games know which option he selected. His city would be a settlement, everyone else would have him as a full city, thats an OOS. If you reloaded that game from a single save it should get everyone back in line (at least until the next city is founded).

Another OOS was in the Homeland promotion. Homeland gave a defensive bonus when units were in their own lands. Since that bonus wasnt being communicated to other games your game would have your unit winning the combat, but other games would have your unit losing the combat (since all games used the same random seed for the combat). Again it would cause an OOS. This time a reload would get things back to normal but it would probably immediatly occur again as the next combat would trigger a similiar result.

Hopefully that helps clarify them a bit.
 
So basically all we can do is try to play games with different groups of civs and see which ones are more likely to cause an OOS? Find out what technologies/civics/traits were more prevalent in OOS games? Which events fired etc? The thing I've noticed with games that go perma OOS though is that if you reload prior to the event and continue it you typically get another OOS with no event happening which sounds to me like it isn't directly event related right?

Is it possible that its a specific unit type being created and being give a certain promotion? Or maybe one of the new spells on a priest or mage etc? So once that first shows up it repeatedly causes problems from there on out?
 
So basically all we can do is try to play games with different groups of civs and see which ones are more likely to cause an OOS? Find out what technologies/civics/traits were more prevalent in OOS games? Which events fired etc? The thing I've noticed with games that go perma OOS though is that if you reload prior to the event and continue it you typically get another OOS with no event happening which sounds to me like it isn't directly event related right?

Is it possible that its a specific unit type being created and being give a certain promotion? Or maybe one of the new spells on a priest or mage etc? So once that first shows up it repeatedly causes problems from there on out?

Yeap, all valid possibilities.

The best tools I can offer to help isolate is to produce debug versions which disable suspected features. If you are willing to test a function and suspect that X factor may be causing OOS's Im glad to put up a version with that function disabled.
 
Top Bottom