Planetfall

Hey, I just discovered this mod and would like to point out that it completely awesome. Thanks so much Maniac!

A buddy and I are playing multiplayer and having an absolute blast. Unfortunately we started getting OOS (out of sync) messages around halfway through the game. At first, just reconnecting seemed to fix the problem, but now it starts saying OOS just a turn or two after reloading. I've tried all the usual tricks, like loading Civ uncached and restarting/reconnecting. Anyway, here's a multiplayer savegame that exhibits the problem:
http://dogshu.netlsd.com/Jim_MY-2282.CivBeyondSwordSave

Unfortunately its a large map. I did a quick skim through the end of this thread but I didn't catch it.... what's the reason that large maps are discouraged?

By the way, if anyone knows a way to disable the OOS error message, I'd love to hear it!
 
Hmm, I'm afraid I've never played a game of Civ4 multiplayer, beyond opening PBEM saves. So this will be tough. :scared:

First, is there a way to open multiplayer saves in single player?? :confused: What kind of multiplayer were you playing?

Two basic questions to start with:

Do you ever encounter Out of Sync's in unmodded Civ when playing multiplayer with your friend? Apparently some people always have trouble with those.

Do you have patch c applied on top of version 5? If you're unpatched or only have patch a, crashes etc are indeed to be expected. There were some unfixed bugs present then.

If you are running patch c, could you please try using the DLL from patch b? Just put the DLL from patch b in the Planetfall/Assets folder - don't use any of the other patch b files! I think the patch b DLL should work as well for patch c without any crashes.
This is to test if a problem was introduced in patch c.

Unfortunately its a large map. I did a quick skim through the end of this thread but I didn't catch it.... what's the reason that large maps are discouraged?

Because I have a crappy computer and opening a large-sized map takes minutes, and when opened scrolling over the map is extremely slow. Practically impossible to playtest with such a save.
If you're not interested in playtesting for bugs, you can of course play on any mapsize you like. ;) Though of course if you do run in some problems, it may take longer before I can fix them.
 
Hmm, I'm afraid I've never played a game of Civ4 multiplayer, beyond opening PBEM saves. So this will be tough. :scared:

First, is there a way to open multiplayer saves in single player?? :confused: What kind of multiplayer were you playing?

We were playing direct IP connect multiplayer. As far as I know there is no way to open the game in single player mode, however you can play the game in multiplayer mode by yourself. Just load planetfall, go to multiplayer -> Direct IP connection -> Load Game(bottom left button), and select the savegame and load it. Then select a character, click ready and click launch to start the game. When it is done loading, it will say "waiting for other player to reconnect". Just click "Save and continue playing" and "VOTE" and you can play it by yourself.

However, you will not see the OOS error if you play it by yourself. You need to have at least 2 computers connected to see the OOS error.

Do you ever encounter Out of Sync's in unmodded Civ when playing multiplayer with your friend? Apparently some people always have trouble with those.

Do you have patch c applied on top of version 5?

Yes we are both running patch C. I have not seen OOS errors when playing regular BTS multiplayer.

If you are running patch c, could you please try using the DLL from patch b? Just put the DLL from patch b in the Planetfall/Assets folder - don't use any of the other patch b files! I think the patch b DLL should work as well for patch c without any crashes.
This is to test if a problem was introduced in patch c.

When I try to load my savegame using the DLL from patch B, it says "Failed to uncompress game data" and crashes to the desktop.

Because I have a crappy computer and opening a large-sized map takes minutes, and when opened scrolling over the map is extremely slow. Practically impossible to playtest with such a save.
If you're not interested in playtesting for bugs, you can of course play on any mapsize you like. Though of course if you do run in some problems, it may take longer before I can fix them.

OK, I'll try to convince my buddy to play on smaller maps. Let me know if there's anything else I can do to help debug this multiplayer problem.
 
I have no idea whatsoever what kind of code can cause OOS's.

This post describes the causes of OOS's.

I guess it must be number three here as well.

Unfortunately I have no idea how information is exchanged between computers, why some information would broadcast itself and others not.

Two possible ideas though on how to proceed. Even though I don't know why code causes OOS's, one can start by trying to figure out what code causes OOS's.

First, go to CivilizationIV.ini in your My Games/Beyond the Sword folder, and set this value to 1:

; Enable synchronization logging
SynchLog = 1

After an OOS, immediately go to My Games/BtS/Logs and both copy the sync log (don't know how exactly it'll be named) to some safe place before starting a new game. Perhaps those logs can give some useful information.

Secondly, do you have OOS's with patch b? Perhaps you could both delete your current Planetfall folder, and reinstall it with patch b instead of patch c. If the problem does not occur in patch b, this would seriously shrink down the list of potential causes. :)
 
First, go to CivilizationIV.ini in your My Games/Beyond the Sword folder, and set this value to 1:

; Enable synchronization logging
SynchLog = 1

Just so you know, I also had to set LoggingEnabled to 1.

After an OOS, immediately go to My Games/BtS/Logs and both copy the sync log (don't know how exactly it'll be named) to some safe place before starting a new game. Perhaps those logs can give some useful information.

OK. I resumed the savegame linked in my first post, ended the turn so that the OOS error showed up, then ended that turn as well.

Here's the logs from the computer hosting the game:
http://dogshu.netlsd.com/serverlogs.zip

and here's the logs from the other computer:
http://dogshu.netlsd.com/clientlogs.zip

Secondly, do you have OOS's with patch b? Perhaps you could both delete your current Planetfall folder, and reinstall it with patch b instead of patch c. If the problem does not occur in patch b, this would seriously shrink down the list of potential causes. :)

OK, I'll try to get my buddy to play me in a game with patch B. Unfortunately he's pretty busy and we usually only get a couple of chances a month to play. The reason I've been able to do the testing up until this point is that I have 2 computers here at home that I can use as a client and server. I'm not going to play a multiplayer game against myself though. :)

If you, or anyone else reading this wants to start a multiplayer game, either for fun or for debugging, I can host it. Just PM me and we'll try to find a day and time that works for both of us.
 
I suspect the OOSes are caused because of some random number in the mod is being generated differently on two computers. That is, uhm, error-prone.

Basically what you want is pseudo-random numbers. There is a method in vanilla civ's python for that, not sure about the name though.
 
OK. I resumed the savegame linked in my first post, ended the turn so that the OOS error showed up, then ended that turn as well.

Hmm, two things which looked strange to me on first inspection:

There's a whole bunch of error messages in the audio log of the client. Any idea why that could be?
I have no idea though if audio differences can cause OOS's.

Secondly, this
Code:
PY:Player 18 Civilization Barbarian State Unit Spore Launcher was killed by Player 5
PY:Player 5 Civilization University Of Planet Unit Former was killed by Player 5
existed in the server python debug log, but not in the client log.

Do you know what was going on there?
Just noticed, the UoP former was killed by the UoP. :hmm: Were you the University btw?

I suspect the OOSes are caused because of some random number in the mod is being generated differently on two computers. That is, uhm, error-prone.

Basically what you want is pseudo-random numbers. There is a method in vanilla civ's python for that, not sure about the name though.

getSorenRandNum I assume. I've always used that. I don't know of any other way to get a random number.
 
getSorenRandNum I assume. I've always used that. I don't know of any other way to get a random number.

That alone is not automatically multiplayer safe. Try reading this post, it might solve the problem. Especially the part with the cookie monster example sounds like it could be it, I think.
 
Why that's some great tutorial!

One thing I've noticed though: Gerikes speaks of a MPlog.txt. This wasn't included in the logs dogshu attached. And network-2056.txt, which is included in dogshu's logs and seems MP-related, contains far less information.

Anyxzy, dogshu, to test for the OOS cause, could you please download the attached zip and extract it into the Planetfall/Assets/Python folder of both your computers?

Then repeat the test you did earlier, and collect and attach here both OOSlog.txt's which should appear in the BtS/logs (or BtS, Civ4 or Civ4/logs) folder in My Games.
 
There's a whole bunch of error messages in the audio log of the client. Any idea why that could be?
I have no idea though if audio differences can cause OOS's.

Hmmmm, I may have installed the original SMAC fx and voices directories on the server, but not on the client. I installed it on the client for this test, so if its related to that, the errors should be gone.

Do you know what was going on there?
Just noticed, the UoP former was killed by the UoP. Were you the University btw?

No, the server was playing as the Lord's Believers, and the client was playing as the UN. I have no idea what's going on there.

Anyxzy, dogshu, to test for the OOS cause, could you please download the attached zip and extract it into the Planetfall/Assets/Python folder of both your computers?

Then repeat the test you did earlier, and collect and attach here both OOSlog.txt's which should appear in the BtS/logs (or BtS, Civ4 or Civ4/logs) folder in My Games.

OK, I downloaded and copied the .py files into the Planetfall/Assets/Python folder on both computers. I'm sure I copied it into the right place since it asked me to overwrite CvEventManagerPlanetfall.py. I then did the same test as before, ending the turn to get the OOS error, then ending that turn as well.

However, it did not create either a OOSlog.txt or a MPLog.txt. I searched my hard drive for them, just in case it put it in a strange place, but they were nowhere on my hard drive.

Here are the log files that were generated:
http://dogshu.netlsd.com/serverlogs2.zip
http://dogshu.netlsd.com/clientlogs2.zip

Do I have to change or add some other variable to CivilizationIV.ini to enable logging to OOSlog.txt?
 
Sorry... :scared: I forget to add a necessary line of code in the event manager for the OOSlog to work.

These are the correct files in case you want to test. Sorry for the trouble. :-s
 
Not being able to test something yourself is annoying. I found the problem using the python exception message in your python debug log. (I'd suggest always setting "hide python exceptions" in your civ ini file to 0)

New zip attached. This time it'll work. I promise. :mischief:

Looking at the 2 & 3 logs, btw I noticed that different units die in those different games. I'm wondering, are you playing with Reload Random Seed turned on? Anyway, in all three logs it are also different units that die for the client and the server, so something fishy definitely seems to be going on... :hmm:
 
(I'd suggest always setting "hide python exceptions" in your civ ini file to 0)

OK, I've set this on the client and server.

New zip attached. This time it'll work. I promise. :mischief:

Sorry, it didn't work. I didn't see any python exception pop-ups either. Here's the logs:
http://dogshu.netlsd.com/serverlogs4.zip
http://dogshu.netlsd.com/clientlogs4.zip

Looking at the 2 & 3 logs, btw I noticed that different units die in those different games. I'm wondering, are you playing with Reload Random Seed turned on? Anyway, in all three logs it are also different units that die for the client and the server, so something fishy definitely seems to be going on... :hmm:

"New Random Seed on Reload" is unchecked.
 
Do you mean Final Frontier or Fall Further? How do they go about solving them there?

Do you use Windows Vista, dogshu?

Here's one last try to see if this puts the information in some file. (needs to be done before upgrading to patch e)
 
Patch v5f is available. This patch needs to be installed on top of the version 5 main file.
It will break savegames.

Changelog:

1. Genejack Factory gives +2 minerals per Drone. Thanks to Kael.
2. Randomly spawned Native Life becomes more aggressive as the Flowering Counter rises.
3. Memetics renamed to Social Psych.
4. Armor can't move into Fungus and Hybrid Forest.
5. Cruiser can't move into Sea Fungus.
6. Dropship transport unit added. Graphics by Refar.
7. Peaks are now passable. However you can only move into peaks from other peaks or highlands, and vice versa. Not from water or lowlands.
8. Units which CanMoveImpassable, can always move into Peaks.
9. Terrain improvements can now affect a base's Planet value.
10. Bases cannot be founded on Peaks.
11. Robotic Mine removed.

Please post save games of any persistent crashes you may encounter. At least as long as you don't play on Large sized maps.

Planetfall is brought to you by:

 
Do you use Windows Vista, dogshu?

Here's one last try to see if this puts the information in some file. (needs to be done before upgrading to patch e)

The server is running 64-bit Vista. The client is running regular XP.

I first tried running my test with your latest OOSLogger on both computers. The XP machine crashed with a python exception. Let me know if you want the client logs from that crash, they are relatively large (pythonerr is several hundred kilobytes).

I then installed your previous OOSLoger on the client computer (leaving the new version on the server), and ran the same test.

No new logs though. In fact, the server logged barely anything. Here they are:

http://dogshu.netlsd.com/serverlogs5.zip
http://dogshu.netlsd.com/clientlogs5.zip

I'll probably try patch E with my friend soon. I'll let you know the results.
 
Trying to load saves with patch E doesn't work for me (I refering to games started under E, so it's not the issue with older savegames broken by this patch), not from ingame, not from main menu and not from the desktop. Anyone else having this problem as well?
 
Back
Top Bottom