Multiplayer testing

Joined
Jun 7, 2008
Messages
6,123
Location
Just wonder...
Well, I guess the time has come for some serious multiplayer testing if someone wants to help. For those who can't play in multiplayer but still want to help in fixing bugs, we'll also soon resume single player testing.

So are there people willing to test the game in multiplayer? I think Sgtslick is already trying it, and so am I with my wife when we have time and baby is sleeping. :D

I'll update this post later with some necessary info if you want to help with testing and spotting what's causing some OOS. In my current game we're at the start of Renaissance and after 250 280 over 600 turns we had 4 or 5 OOS. There will be more, probably, but so far we're enjoying the game. So everyone is welcome to try the game, I'll explain some basic testing rules probably tomorrow here below.

Here are some instruction on what you need to do if you want to test the game for me:
1. Remove any previous revision of RoM or AND
2. Install the latest revision (we'll discuss which one we will use)
3. Clear your cache deleting all files manually (if you have Win Vista/7 it should be under C:\Users\[USERNAME]\AppData\Local\My Games\Beyond the Sword\Cache)
4. Make sure you both have the same BUG options
5. Both players need to change their own civilization.ini like this

Code:
; Enable the logging system
LoggingEnabled = 1

; Enable synchronization logging
SynchLog = 1

; Overwrite old network and message logs
OverwriteLogs = 0

; Enable rand event logging
RandLog = 1

; Enable message logging
MessageLog = 1

Start playing, no matter what options you're using (I use Revolution too, for example, and have no problem whatsoever with it, although it's been blamed a lot in the past as a source of troubles: believe me, it is not). Just to make testing quicker, please only use Blitz gamespeed for testing purposes.
When the game goes OOS please save logs of both players into a zip and upload them here. I mostly need the OOSLog (there's the name of the player) and the RandomLog.

I could upload in the next weeks some testing dll in this thread (in this post), which should help locate OOS or possibly solve some of them. I'll let you know when we can start testing. Thank you in advance to those who will try the game in MP. :)

Things that are probably needed to make a MP game somewhat safer from OOS point of view:

1. Set the game to single-threading, i.e. inside A_New_Dawn_Globaldefines.xml use

Code:
		<DefineName>NUM_CITY_PIPELINE_THREADS</DefineName>
		<iDefineIntVal>1</iDefineIntVal>
With Afforess latest changes, this should be automatically triggered, although I haven't tried yet.


2. Make sure you have same options in BUG and in Civilization.ini
3. Don't use Archer Bombardment
4. Always use New Random Seed on Reload
5. Don't exchange units via diplomacy screen (but you can gift them moving them into your opponent's territory).
 
Gonna be hosting any games? I would love to help but no one I know will play strategy games against me anymore :(

Unfortunately not now. I really play when I have a little free time and this can happen at any time so I can't plan ahead when to play. But this is one of the reasons why I am trying to make Pitboss work. If I'll ever be able to make it work, I'll try setting up a Pitboss server. :)
 
So no one else is trying multiplayer? We've reached 403/600 turns, halfway in the industrial era; about 20 OOS so far from the start but some have been solved since we've started the game and some can be avoided now that we know how to do it (for example don't exchange units via diplomacy between human players or the game will OOS; but you can gift units to another human player by moving your units inside the other player's territory and then gifting them). Not too bad for the moment.
 
45°38'N-13°47'E;13112924 said:
So no one else is trying multiplayer? We've reached 403/600 turns, halfway in the industrial era; about 20 OOS so far from the start but some have been solved since we've started the game and some can be avoided now that we know how to do it (for example don't exchange units via diplomacy between human players or the game will OOS; but you can gift units to another human player by moving your units inside the other player's territory and then gifting them). Not too bad for the moment.

Yes. RyoHazuki and me let's play this weekend a multiplayer game. The only bad thing is that probably we do it in a much slower speed, Marathon or Snail. We know the game is not balanced for those speeds, which is a shame, but we do not care. We do not like playing at faster speeds, sorry.

Even so, we will inform you of everything that happens in those games. Please continue with your good work repairing OOS in multiplayer.

Thank you so much!
 
Yes. RyoHazuki and me let's play this weekend a multiplayer game. The only bad thing is that probably we do it in a much slower speed, Marathon or Snail. We know the game is not balanced for those speeds, which is a shame, but we do not care. We do not like playing at faster speeds, sorry.

Even so, we will inform you of everything that happens in those games. Please continue with your good work repairing OOS in multiplayer.

Thank you so much!

Ok no worries for gamespeed, I only suggested faster gamespeed because it's faster to get reports and I especially need reports for industrial era onward. Just make sure you enable logging as explained in the first post and when you get an OOS, please upload the OOS log and random log for both player. I feel that there are only 4-5 OOS occurring repeatedly. If we can fix those, we're mostly done with multiplayer (except pitboss that still requires work).
 
Here you have the logs of our game of yesterday. It was really bad. Playing on Marathon speed, had seven OOS in 150 turns. The fourth desynchronization was momentary, and repair itself.

After each desynchronization, we erased all the contents of the logs folder (keeping the files that you need in a folder), and sometimes RandomLogger file was not generated. Also we erased the cache manually before playing again.

We believe that the most problematic was the Archer Bombardment of the Barbarian Archers, and perhaps also, one was caused to enter in the City Screen, and just then the other player passing turn. Instant OOS.

We had exactly the same BUG options, with a new .ini, with exactly the same game options in the .ini file. With a completely new installation of the mod in both cases.

We play through Gamespy, as this prevents two players with different installations can play together. If Hamachi is used, although there are some small differences in the installations, leave we play, and is a continuous hell of OOS.

We really want to keep trying. Return to play another game without Bombardment Archer, to see if there are fewer problems. :)
 

Attachments

  • OOS.7z
    1.1 MB · Views: 28
Here you have the logs of our game of yesterday. It was really bad. Playing on Marathon speed, had seven OOS in 150 turns. The fourth desynchronization was momentary, and repair itself.

After each desynchronization, we erased all the contents of the logs folder (keeping the files that you need in a folder), and sometimes RandomLogger file was not generated. Also we erased the cache manually before playing again.

We believe that the most problematic was the Archer Bombardment of the Barbarian Archers, and perhaps also, one was caused to enter in the City Screen, and just then the other player passing turn. Instant OOS.

We had exactly the same BUG options, with a new .ini, with exactly the same game options in the .ini file. With a completely new installation of the mod in both cases.

We play through Gamespy, as this prevents two players with different installations can play together. If Hamachi is used, although there are some small differences in the installations, leave we play, and is a continuous hell of OOS.

We really want to keep trying. Return to play another game without Bombardment Archer, to see if there are fewer problems. :)

Thank you guys, I'll have a look. I don't play with archer bombardment and so far we had about 30 OOS in around 450 over 600 turns (blitz speed). I'll let you know.
@Ryo I've got your message, I'll answer you later.
 
Ok, first thing that I forgot to mention: disable multithreading. Inside A_New_Dawn_Globaldefines.xml use
Code:
		<DefineName>NUM_CITY_PIPELINE_THREADS</DefineName>
		<iDefineIntVal>1</iDefineIntVal>

(it's 4 by default IIRC).

As for RyoHazuki question about mapscript from his PM, I almost always use PerfectMongoose and no, mapscript shouldn't be a cause for OOS.
I don't use Archer Bombardment, so yes, please try without it and see if works better.
One thing I've seen as a cause for OOS is when you exchange units with the other human player. Don't do it via diplomacy: just move your units to the other player's territory and gift them from there (which looks even more realistic than having those units popping out inside the capital).
From a quick look, your OOS mostly looks like have been caused by multithreading. Try disabling it as described above and see what happens.
Let me know if it gets better, probably very soon I'll upload an updated dll.
 
45°38'N-13°47'E;13121461 said:
Ok, first thing that I forgot to mention: disable multithreading. Inside A_New_Dawn_Globaldefines.xml use
Code:
		<DefineName>NUM_CITY_PIPELINE_THREADS</DefineName>
		<iDefineIntVal>1</iDefineIntVal>

(it's 4 by default IIRC).

As for RyoHazuki question about mapscript from his PM, I almost always use PerfectMongoose and no, mapscript shouldn't be a cause for OOS.
I don't use Archer Bombardment, so yes, please try without it and see if works better.
One thing I've seen as a cause for OOS is when you exchange units with the other human player. Don't do it via diplomacy: just move your units to the other player's territory and gift them from there (which looks even more realistic than having those units popping out inside the capital).
From a quick look, your OOS mostly looks like have been caused by multithreading. Try disabling it as described above and see what happens.
Let me know if it gets better, probably very soon I'll upload an updated dll.

Ok, thank you very much for the info. We will disable multithreading in the next game. We have not gone from the stone age, so we can not even exchange units. We keep trying. I give you a new report from today's game:

New game test. We delete the ini file, the cache, started a single player game with the option PLAY NOW, to make sure that all bug options and game options were entirely the default. I want to clarify that my installation is new, without my mods. Totally new and clean.

We prepared a game with all default options in AND. No revolutions is one of them. We use a simple map, Fractal. Blitz speed, size Large, Noble difficulty. All very simple, without rare options. Only by default. And nothing change.

We had 7 desynchronizations in 18 turns. We have saved six of them, with their logs. In four or five, apparently has been caused by the attack of a lion to a scout. We repeated the test several times. Whenever the lion attacked, causing OOS. With two different lions in different turns. Another OOS seems to have been caused by the founding of a city.

We have left that game, but we'll keep trying. To ensure that our installation of the mod is exactly the same, I'll upload my mod folder updated via SVN to Dropbox. Ryohazuki download it, and so we will have exactly the same files, since it seems, the installation through the regular installer is slightly different from mine, updated with SVN. They have not the same weight in bytes.

We will keep trying, but now with hamachi, and see if things change. Also try with multithreading disabled. We'll keep you informed of everything.
 

Attachments

  • OOS.7z
    161.7 KB · Views: 43
Is there any way to recognize where a Oos error comes from by reading the logs? It would be good to be able to understand them, or any other file related to those errors, so that we can change and try different things while trying and testing.
 
Is there any way to recognize where a Oos error comes from by reading the logs? It would be good to be able to understand them, or any other file related to those errors, so that we can change and try different things while trying and testing.

No, most of the times it's not easy at all. I usually have to dig in the source file of the dll core. And even there it's just a start because usually OOS are caused by random numbers generated differently on both computers while in fact they should be the same. It's definetely one of the hardest thing to fix. Thunderbrd and AIAndy on C2C forum are masters in this matter and while I can sometime discover a few places where the game goes OOS, it's usually fixed by them. Anyway if you haven't started your next game, try using the dll attached here. Unzip it and place it inside Assets folder of Rise of Mankind - A New Dawn (overwriting the old one). It should fix some OOS.

Edit: attached dll removed due to possible incompatibility problems
 
No no, we were just trying to make it the most simple, so we were moving, researching, and fighting a pair of lions meanwhile. I mean, nothing rare.

Wish i had some Oos masterclass by you, Thunderbrd and AIAndy to help you little bit more!
 
No no, we were just trying to make it the most simple, so we were moving, researching, and fighting a pair of lions meanwhile. I mean, nothing rare.

Wish i had some Oos masterclass by you, Thunderbrd and AIAndy to help you little bit more!

I see. Well, just keep up collecting logs. I know sometimes it gets frustrating but right now I'm in the middle of modern era and we didn't have so many OOS as you had... so probably turning off multithreading will solve many of them for you too. And then we can try to solve those remaining: I suspect that there's just a few of them repeating.

Edit: if you're interested in understanding how OOS can be tracked, there's a thread about it in C2C forum with some links to some tutorials. But it's not easy for me too. :)
 
One more favour guys; if you're trying the dll I've posted above, try saving the game, quitting the game and reloading it again. I had some compatibility issues and I wasn't able to load my last game anymore, I suspect because I've started the game with a different dll.
 
Thanks, the compatibility seems total now with the new Dll. We will try our new MP games with it.
 
New daily report. Do not say we did not try. :)

Both have exactly the same installation, since Ryohazuki download my fully updated installation (with SVN) from Dropbox. No possibility of desynchronization by different files. We use the new dll that you have provided us. Multithreading disabled. Tested through Gamespy and Direct IP with Hamachi. Without antivirus or firewall that could cause problems.

Fractal Map. Noble difficulty, Blitz speed, size Large. Number of civilizations by default. Cache clean, new ini file. Bug options and game options by default. Types of Victory: Conquest. Simultaneous turns. Without Archers Bombardment this time, of course.

At first things looked better. We played until turn 9 without problems. The first OOS occurred on turn 9. The second in the turn 16. So far this game worked much better, as we had 7 desynchronizations in 18 turns during the previous test. But now comes the bad. We had desynchronizations in the turns 16, 17, 18, 19 and 20. We do not change the name to any unit. We do not we traded any units. We do not entered in the city screen, or any other screen. Sometimes, we simply pass turn, doing absolutely nothing, but equally, we had a desynchronization. No longer we continued playing this game, plus by desynchronizations, for we had things to do in real life.

The next game will test without the simultaneous turns. In past experiences with other mods that helped me improve somewhat the problem of desynchronizations.

And the next test will be forming a team of two players. This should help both pcs have the same info, as we'll see exactly what the other does. In previous experience with other mods that also has been quite useful.

Anyway we would like that you will tell us some idea of the options that you use for your multiplayer games. Although the reality is that it is impossible to play more simplest way, everything by default.

Any hints that can be happening? In your games you also have many desynchronizations early in the game, and then the desynchronizations decrease much over time?
 

Attachments

  • OOS.7z
    401.7 KB · Views: 45
New daily report. Do not say we did not try. :)

Both have exactly the same installation, since Ryohazuki download my fully updated installation (with SVN) from Dropbox. No possibility of desynchronization by different files. We use the new dll that you have provided us. Multithreading disabled. Tested through Gamespy and Direct IP with Hamachi. Without antivirus or firewall that could cause problems.

Fractal Map. Noble difficulty, Blitz speed, size Large. Number of civilizations by default. Cache clean, new ini file. Bug options and game options by default. Types of Victory: Conquest. Simultaneous turns. Without Archers Bombardment this time, of course.

At first things looked better. We played until turn 9 without problems. The first OOS occurred on turn 9. The second in the turn 16. So far this game worked much better, as we had 7 desynchronizations in 18 turns during the previous test. But now comes the bad. We had desynchronizations in the turns 16, 17, 18, 19 and 20. We do not change the name to any unit. We do not we traded any units. We do not entered in the city screen, or any other screen. Sometimes, we simply pass turn, doing absolutely nothing, but equally, we had a desynchronization. No longer we continued playing this game, plus by desynchronizations, for we had things to do in real life.

The next game will test without the simultaneous turns. In past experiences with other mods that helped me improve somewhat the problem of desynchronizations.

And the next test will be forming a team of two players. This should help both pcs have the same info, as we'll see exactly what the other does. In previous experience with other mods that also has been quite useful.

Anyway we would like that you will tell us some idea of the options that you use for your multiplayer games. Although the reality is that it is impossible to play more simplest way, everything by default.

Any hints that can be happening? In your games you also have many desynchronizations early in the game, and then the desynchronizations decrease much over time?

Looks like your OOS was always caused by the same problem, I'm investigating. But I've never encoutered this particular OOS in any of my games so I suspect it depends on some option your using. Have you changed anything from default options under BUG options? In my games OOS were increasing as time goes on because mostly they're caused either by combat or trade so when you start your game usually there isn't much going on. I've played almost 100 turns without a single OOS from the start. I'll look at that particular OOS that keeps repeating in your game. Thank you for the moment.
 
Top Bottom