Does anyone know of any multiplayer problems with BUG?

Carwyn

Prince
Joined
Apr 2, 2004
Messages
462
We are playing Rise of Mankind multiplayer with BUG 3.5 in it and get OOS errors as well as the occasional crash. I'm just wanting to rule out any problems that are known to be caused by the BUG 3.5 in multiplayer as we troubleshoot to see if we can get it to work more reliably. So... any known issues and fixes? Links to similar discussions? Unfortunately, I find the search feature in these forums to be nearly impossible to work with - you either get nothing or so many you can never find your answers.

Thanks in advance for any help you all can find me!
 
There aren't any known issues regarding OOS or crashes. Crashes usually point to a DLL or XML problem. If you have a custom DLL, enable asserts during your development phase so you get reports about the problems.

For OOS, look for inappropriate actions based on getActrivePlayer(). You need to make sure everyone sees what the game does to its state. Also, there are two random number generators: one for game events that everyone shares, and one for interface/graphics events that is private and won't cause OOS problems.

You may also want to try using the latest SVN version of BUG if you still think it might be BUG. If you do find a problem, please let us know and we'll see about fixing it ASAP.
 
Oh dear, I'm afraid you are way over my head - I'm just an average player, not a modder! So, if there haven't been a lot of problems, there aren't workarounds to look for. Thanks for your answer, even if I didn't really understand it... :)

We are using Rise of Mankind multiplayer, which we know isn't fully compatible. Looks like most of the problem are a few things in the Revolution mod, which we love and are willing to put up with OOS errors to play. I just wanted to check on the BUG portion in case we were missing something there that could be fixed.

When you say, If you have a custom DLL, enable asserts during your development phase so you get reports about the problems., what does that mean? Is there some way we could get information for the developers so they can fix things in their mods? Would every one of us need to do this and compare our results? How would we do it? (I'm not entirely sure if my friends are willing to do this or not, to be honest).

For OOS, look for inappropriate actions based on getActrivePlayer(). You need to make sure everyone sees what the game does to its state. Also, there are two random number generators: one for game events that everyone shares, and one for interface/graphics events that is private and won't cause OOS problems. Is there some way to determine where in all the code to look? Is that related to what you said earlier? Sorry if I'm a total newb regarding these things. I read a tutorial and have some vague idea about the random number generator and getActivePlayer() , but it is way over my head and beyond the interest of the one player we have that could probably figure it out if he wasn't playing all the time... :)

Are there other places that cause OOS errors? Could having any differences in our files on the various computers or settings cause this?

Thanks for your time!
 
I'm just an average player, not a modder!

Oh, I assumed you were one of the developers of the Rise of Mankind mod as we get a lot of modders asking for help merging BUG into their mods.

I asked if RoM used a custom DLL because if so, they can turn on asserts themselves to make it easier to find bugs. The code that does the work in Civ is made up of several pieces: EXE (application) for the graphics engine, XML for data, Python for the screens, and a DLL (application extension) for the game rules. Civ allows you to modify everything except the EXE.

BUG doesn't have a custom DLL, but I'm pretty sure RoM given all the mods it includes, many of which alter the game rules. You can ask them to provide you a new DLL to use that would tell you more about the errors. It would be up to them, it sounds, to fix the problems, though. I'm sure they'd love users to help them find problems!

Would every one of us need to do this and compare our results? How would we do it?

A DLL with asserts turned on would give you a little more information when you got a crash. It wouldn't help with OOS (out of sync) errors. Because it's multiplayer, everyone would have to use the new DLL, but only one of you would need to write down the error messages you get.

Is there some way to determine where in all the code to look?

The RoM mod is huge and contains a lot of complex mods. Unfortunately, it's going to take a lot of play-testing to find problems like this.

Are there other places that cause OOS errors?

The main reason for OOS errors is that the state of the game differs between the different players. This happens because everyone is running their own game engine on their own copy of the game state. There is no central server running the game like in FPS games or other online games like WoW.

Could having any differences in our files on the various computers or settings cause this?

Game settings shouldn't cause the problem. If your files differ, I believe Civ4 will warn you when starting a game, or not allow you to do so at all. I'm not as familiar with multiplayer Civ as I am with other games.

Have you talked to the RoM developers about these issues?
 
I asked if RoM used a custom DLL because if so, they can turn on asserts themselves to make it easier to find bugs. The code that does the work in Civ is made up of several pieces: EXE (application) for the graphics engine, XML for data, Python for the screens, and a DLL (application extension) for the game rules. Civ allows you to modify everything except the EXE.

BUG doesn't have a custom DLL, but I'm pretty sure RoM given all the mods it includes, many of which alter the game rules. You can ask them to provide you a new DLL to use that would tell you more about the errors. It would be up to them, it sounds, to fix the problems, though. I'm sure they'd love users to help them find problems!

Have you talked to the RoM developers about these issues?
Rise of Mankind does use custom DLL which is the same as in RevolutionDCM mod just because I have no knowledge of making custom DLL (I'm the solo developer behind RoM mod) so I wouldn't know how to make DLL with asserts on. RoM has numerous mod components included and so far Revolution mod and settlers mod components have been found out to cause OOS errors in multiplayer mod - as I don't myself play multiplayer mode fixing those issues hasn't been high on my priority list, though I've tried to provide fixes to them when possible. Since BUG mod relies heavily on python, the question was risen at some point that could it be cause too for those OOS errors.
 
We haven't received any complaints about OOS errors, but as you I don't play multiplayer myself. Since BUG doesn't ever modify any game data, an OOS shouldn't be possible.

The one place we had to take care is the use of a random number when displaying the expected vote totals on the victory screen, but we used the correct generator to avoid OOS issues.
 
Thanks very much Zappara and EmperorFool for your work and your answers.

We have found that heavy barbarian wars cause OOS errors and the Revolution popup window is really messy, it shows to all of us when one has a problem and, if we click the same answer strange things happen and if we click different answers, it's worse yet. It just plain doesn't really work in mulitplayer. Sad thing is... we can't bear to play without barbarians and Revolution in RoM!! :) Nothing else seems to satisfy our need for randomness and challenge. We'd hate to be stuck without challenging AI's as we try to play to 540 turns and the end of the game. (Or even a clear victory by one of the AI's or players would be ok.) So far I think we've managed to finish one game in weeks? Most of them don't go very far - if one of us implodes our civ or gets taken out early, we restart. Couldn't bear to play for weeks without one of our buds!!
 
Ok, here is what we tried last night. We just turned off the Revolution portion of it and it ran for hours without a hitch! We had a great time, used the RoM Smart map (that didn't seem to work very well with the Revolution mod) and turned on raging barbarians. Nice to just play for a change. :) (We are using RoM beta 2.052)
 
Back
Top Bottom