RevolutionMP

Wow thanks for this information init and lemmy. Appreciate that it can get pretty frustrating, but the nature of this beast is fairly tricky. The good news is that you are able to play through a hundred turns which replicates the laboratory conditions where I have three PC's lined up on the bench in direct-IP.

To spare any more frustrations, just throw me the debug and error logs at me. It doesn't matter what player does sends it, because in theory every player in MP will have identical logs up to the point of OOS.

What I will be doing next is this:
1) If RevDCM 2.7 pre-release is stable in MP with no options enabled (to replicate straight BTS), then I will be shifting my efforts to fixing Revolutions MP in that context. The advantage of that is that the RevDCM build always get's the latest Revolutions bug fixes which are very relevant to multiplayer OOS issues.

2) If RevDCM 2.7 pre-release is still broken in MP, then I'll update this mod to the latest revolutions and do this:
A) Positively disable any chance that the autoplay and changeplayer mechanisms might fire up for whatever reason.
B) Kill off the interface options that are tempting to select but flawed.
C) Update to the latest Revolutions with the latest bug fixes

Then I'll concentrate on fixing the autoplayer and changeplayer mechanisms in MP.
Cheers.
 
Yeah they really are important to debug what is going on. To enable the logging system, edit your CivilizationIV.ini file in your games folder and set this line:
LoggingEnabled = 1

Then in the same folder as your Civilization.ini you will have a logs folder you will have two important files that I need for debugging:
PythonDbg.log
PythonErr.log

Any player (preferably all players) could zip it up and post it here. Think of the current build as a 100 turn game. We are testing the critically acclaimed Revolutions mod for the first time in MP. Think of yourself as a revolutions mp pioneer :)

Cheers
 
If you can do C++ then you can do python and any help would be appreciated. Python is where most of the Revolution MP algorithm sits. The changeplayer and autoplay code exists in C++, and this is the next major hurdle to crack for MP.
Cheers
 
Okay so I had it go OOS within about 20 turns, unfortunately I screwed up with the log files (I was using pitboss on my own btw) but it occured when a civ rolled for a new Dynamic Civ Name from what I can tell.

So I've started a new game, with DynamicCivNames turned off, and I've upped AI IndexModifier to 10 and lowered mine to 0.0001 and I'm going to speed through and hopefully trigger a whole massive bunch of revolutions see if I can break it.

Will be careful to upload the logs next time too ;)
 
Yes lemmy, this is exactly what I try to do. Encourage revolutions ASAP. Unfortunately at the moment you cannot debug MP with any autoplay speed ups. Thus it is a turn by turn slog, equivalent to working in the salt mines for software engineering :) You very quickly learn how to use a mouse in both your left hand and your right hand. :)


EDIT: TURN OFF ALL OPTIONS EXCEPT REVOLUTIONS FOR TESTING. THIS KEEPS IT SIMPLER
Cheers
 
Unfortunately this puts us into bad habits for actual revolutions play! When I now try to play a serious game in single player, I habitual cause total anarchy within 100 turns, when before I began working on RevolutionMP, I could play the Revolutions mod on Monarch level, holding rebellion at bay most subtly into the future age. Now I play like a dog's breakfast :)
Cheers
 
For anyone willing to help like Lemmy, you could make it simpler and quicker for yourself by simply zipping up the whole logs folder and sending that rather than trying to pick out the individual logs. I can get the appropriate files out of the log folder my end.

Cheers
 
I'd be happy to try to connect and play a game on gamespy right now if anyone is interested. Preferably if glider hosts so that we can do it as a controlled test. It's been a while since I played some MP, but I think I'd still be able to woop some ass.
 
Well I connected to gamespy, but no games are listed. Come on glider, see if you can host a game, then we could recruit from the gamespy lobby :deal:
 
Thanks for the help Phungus. It is a good idea at some stage. The beauty of a MP test lab (at least two machines and two mice) is that you can fire it up when you have a spare moment. My time has run out for now. Back onto real life chores. For example our fridge is out of milk and somebody let the dog out.
Cheers
 
Ah, OK, well, I"m still connected to the gamespy lobby from the mod, if anyone wants to give it a shot, just post in here and I'll host a game. I'm not going anywhere for a couple of hours at least, and will check this thread every few minutes.
 
Well that's about as long as I'll wait for. I'll try again around the same time tommarrow.
 
I post the traceback again:
Code:
Traceback (most recent call last):
  File "CvEventInterface", line 30, in onEvent
  File "CvCustomEventManager", line 143, in handleEvent
  File "CvCustomEventManager", line 154, in _handleDefaultEvent
  File "Revolution", line 565, in onEndPlayerTurn
TypeError: len() of unsized object
ERR: Python function onEvent failed, module CvEventInterface

I don't think you need any other logs from me. All you have to do is check spawnList for None on line 565 and 579 like you do in launchRevolution():
Code:
        if( spawnList == None or len(spawnList) == 0 ) :

What is scary is that SpawnList is never set to anything but a list in the first place (i searched the code), so it should never be None! I think the problem might be related to how you initialize SpawnList in RevDefs.py:
Code:
playerData['SpawnList'] = list()
I think possibly a shallow copy of this ends up in every player object, meaning all the player objects have a pointer to same SpawnList at start. Which normally doesn't create a problem, but perhaps with simultaneous turns it does?
 
Some successes! Although it won't help with your debugging, a friend and I played a game of RevolutionsMP yesterday for over 2 hours (120+ turns) with no problems. We had some barbs organize into Civs, and then he lost control of two cities that he conquered earlier, so they became their own civ again. There were no OOS or crashes during this time.

We connected via direct IP since the games weren't showing up in the LAN lobby.

Can't wait to have all this rolled back into DCM. Really missing the extra features and graphic tweaks when playing MP.

Thanks for all the great work to date. :)
 
@Cornmaster
Thanks Cornmaster but you are helping with debugging. Every piece of incoming information about how the algorithm is panning out in the field is good information thank you. You help encourage me to continue working in the salt mines of software engineering :)

@Init
Thank you thank you! You and Lemmy actually have programming skills and are helping debug.

Today I will try to update this to latest Revolutions, fix Init's find if I can, cancel out the defective user interface options for now, test it and release. That should keep me busy. :crazyeye:
Cheers
 
Post in this thread, or PM me if you want to try testing over gamespy. I'll be on all day, and wouldn't mind playing/betatesting.
 
Top Bottom