Massive Humans vs Humans Game/Lets Player Tracker

Who do you think will win?

  • AstralPhaser

    Votes: 5 7.5%
  • Il Principe

    Votes: 2 3.0%
  • Koshling

    Votes: 14 20.9%
  • Hydromancerx

    Votes: 17 25.4%
  • Vokarya

    Votes: 4 6.0%
  • Acularius

    Votes: 3 4.5%
  • Thunderbrd

    Votes: 8 11.9%
  • ls612

    Votes: 5 7.5%
  • JosEPh_II

    Votes: 8 11.9%
  • Praetyre

    Votes: 1 1.5%
  • Epi3b1rD

    Votes: 0 0.0%

  • Total voters
    67
Wow... shiny new forum!

Welcome back y'all! I have a gift prepared for our return to the forums here. I've been able to fix the main MP game! Praetyre's turn is next.

We MUST ALL update the dlls and the user settings files from the MP SVN to our MP SVN mod files!

No need to recalculate.
 
Great news. Do we need to get to an end-of-everyone's turn state in the other game before we update our DLLs so that everyone finishes the current turn with the same DLLs? If so, after who's turn is that?

Also - we're just updating the DLLs right (no assets??)
 
The Assets, Source and User Settings folders all had new Dates on them so I cut the old ones out and Pasted in the new full folders that I have listed. Right or wrong that seemed the easiest thing to do. No hunting an pecking thru each folder.

@T-brd,
Did you update the User settings folder that is in the Save game and Turn list folder with the new User set folder?

If not that should probably be done. Or that particular folder Removed?

JosEPh
 
CORRECTION: the dll DOES cause problems. Hold on while I try another way to correct the issue.


Do we need to get to an end-of-everyone's turn state in the other game before we update our DLLs so that everyone finishes the current turn with the same DLLs? If so, after who's turn is that?
Not really necessary. We just need to move forward using only the new DLL. The turn was Hydro's in that game, last I knew. The DLL won't change the gamestate much - will just protect against this particular sort of data corruption that took place here. But it's important that we're all running on the same assets of course. So once one has updated, all must update.

My initial diagnosis wasn't entirely accurate and this ended up being a bit easier than I had thought it would be. I found a more fundamental problem as it approached the actual crash point that could be avoided without issue. I also tested the adjustment on the main mod to ensure it didn't do anything to interfere with normal gameplay. There were a few points of potential concern and they all checked off as working fine there.

Also - we're just updating the DLLs right (no assets??)
We're taking this moment of opportunity to update the user settings as well. The last time we did an update the wrong user settings file became cannon and I'm really really really really really sick of storms and I'm sure some others are as well. That's not the only issue either. So the new user settings file is basically the one that we should have been using all along.

The Assets, Source and User Settings folders all had new Dates on them so I cut the old ones out and Pasted in the new full folders that I have listed. Right or wrong that seemed the easiest thing to do. No hunting an pecking thru each folder.
Fair 'nuff. That works too.


Did you update the User settings folder that is in the Save game and Turn list folder with the new User set folder?

If not that should probably be done. Or that particular folder Removed?
I didn't do anything to update it. Instead, I updated the one in the mod files to that one. So it was good we had that backup. I don't mind leaving it there in case we ever need the backup again.




Sidenote: I really like the way you can highlight and quote with the new forum software. That's going to save me a LOT of time!
 
Last edited:
IMPORTANT
OK, just committed another update to the DLL. This time, it's just the DLL. So if you've already update once, just grab the new dll file(s) and update them again. There was a typo in the original bugfix that was going to cause some severe issues.
 
According to Thunderbrd, it's my turn.

I've deleted my old C2C MP folder, replaced it with an updated-around 11:20 PM (UST+12/13) version (the update being on my end, not referring to when it was committed), copy-pasted the save in again, loaded it, said no to recalculating the modifiers, played the turn, then clicked the end turn button. It crashed, same as before. Is there something I'm missing?
 
Did you see the 2nd update for the .dll t-brd posted?

JosEPh
 
Interesting. I just tested that again and it did crash this time. I'm looking further into it.

EDIT: Ouch... ok, so I managed to fix a problem but it revealed that the original issue will not be avoided so easily.

The first fix was actually a break due to the typo and it was hindering barbarian production so much that we made it through the turn. But it just avoided allowing the code to hit the bad identifier waiting in the wings.

The second fix corrected the game, did fix a bug, and then allowed the code to process happily along through to the crash scenario that we had originally ran into. But this time it allows me to hit the crash armed with a few more tools that the last bugfix enables me to have now. So there's hope. But it's not immediate.

A recalc isn't going to save this thing though I don't think. You can try it if you like Praetyre. I'd urge you to do so. But I doubt it's going to repair it.

It's going to take further investigation and time into how to resolve this (again) at the point that it originally crashed out but there's more hope I will be able to now at least. (I had THOUGHT the original 'fix' took place a little too easy but I've seen the domino effect of repairing one problem fixing the actual issue a little further down the line before.)
 
Last edited:
You can hold off and wait because I'll probably have yet another one here by the end of the day if I can get this thing truly fixed. It's my top priority to repair this issue asap.
 
OK, let's try this one more time!

EVERYONE UPDATE (Again) AS OF 10/3/2016 9:05 PST. (If you've already updated your UserSettings folder, you should only need to update the DLL files in the assets.)

After doing so, Praetyre is up!
 
Did you see the 2nd update for the .dll t-brd posted?

I did, and assumed the SVN update would cover it.

In any event, I updated the SVN after Thunderbrds latest post, deleted the C2C MP folder in my BTS mods folder again, copy-pasted the updated SVN folder containing the mod over again, loaded, recalced, then (whether or not it made a difference I don't know, I didn't test to see if it did) I finally made it through.

So, I'm done, and the save's up on the SVN. Hopefully this is the last of our troubles for a good long while.
 
I did, and assumed the SVN update would cover it.

In any event, I updated the SVN after Thunderbrds latest post, deleted the C2C MP folder in my BTS mods folder again, copy-pasted the updated SVN folder containing the mod over again, loaded, recalced, then (whether or not it made a difference I don't know, I didn't test to see if it did) I finally made it through.

So, I'm done, and the save's up on the SVN. Hopefully this is the last of our troubles for a good long while.
Damn... no, we're not out of the woods yet. I'm not sure how it didn't create a problem for my playtest but whisperr's turn now crashes on loading and I've got a bead on why. Another update is pending for you Praetyre.
 
Still working on this but running up against problem after problem. I've tried about 30 different approaches (each one taking about 30 minutes each to try) and everything fails for differing reasons.

The problem is that this is a lose-lose situation for addressing the issue in so many ways. If you fix the index, you screw up the careful controls that guard against manipulation of the index. You'd have to really understand the arcane mysteries of binary math I think to really win with that approach. I've tried so many ways to get around and attempt to repair the corrupted index and nothing upon nothing seems to work without screwing everything up on the next load. Then trying to simply keep the call to initiate a unit from ever happening or having it come back with a null return just enters into an infinite loop where the city keeps trying to order the unit only to have the order fail.

I'm beginning to think this cannot BE fixed without a true genius who understands the basis of why we are working with binary math and how to interact safely with binary math working on the problem. I am not that genius unfortunately. I can't imagine ever being that genius. I've researched enough to have a concept of the subject matter but no concept of what this binary stuff is actually doing or why we have to get into this truly mysterious crap to begin with. Totally out of the ballpark of the KISS principle here.

From what I can tell, the corruption we're looking at should never have been able to happen to begin with. Total mystery how it did and one that couldn't possibly be discovered in an MP game space like this. But that's really not the point nor even important. Just trying to get the train around the crash and back on track is finding a crash or infinite loop with every approach. I don't think I've worked on anything more frustrating since I started modding. Maybe ever in life.
 
You said: "...keep the call to initiate a unit from ever happening or having it come back with a null return just enters into an infinite loop where the city keeps trying to order the unit only to have the order fail." Have you thought of altering the AI so that it doesn't want to produce unit(s) of that type? Admittedly, to get a fix like that to work, we would probably have to regress the game by a turn or two (or at least by a player or two, back to before the AI acts), back to before the AI decided to produce the problem unit.

Probably the best fix, for C2C in general, would be to repair the index. Yes, it would kill both of the current MP games, but if it would prevent things like this from happening in future games, it would be worth it. As much as I would like to continue these games, the overall health of C2C takes priority. We could always start new game(s) from the fixed version if desired.

As to the "binary math" is this a holdover from original Civ4? Or is it something added for C2C? If it is the latter, it should be possible to track down who added it in and ask them about it.
 
Have you thought of altering the AI so that it doesn't want to produce unit(s) of that type?
It is producing a unit of any type that will bring up the problem. I basically would have to shut down the AI (the barbarians at least) from building (and probably spawning) units ever again to avoid the problem for good. I'm not sure if that will even work though because it may also then cause a problem as soon as a human player next completes a training order. I don't really know if this indexing is 'by player' - I suspect it is - or if it is game-wide.

Admittedly, to get a fix like that to work, we would probably have to regress the game by a turn or two (or at least by a player or two, back to before the AI acts), back to before the AI decided to produce the problem unit.
Exactly. To avoid the infinite loop, that would be necessary I think.
Probably the best fix, for C2C in general, would be to repair the index. Yes, it would kill both of the current MP games, but if it would prevent things like this from happening in future games, it would be worth it. As much as I would like to continue these games, the overall health of C2C takes priority. We could always start new game(s) from the fixed version if desired.
If I knew how the corruption began maybe. My latest theory on that is that it has to do with multi-threading - two threads processing through grabbing and/or retiring indexes at the same time creating a collision of data where a NULL is allowed where it should never have been possible with a single threaded process. This would make the problem FAR outside of my ability to truly solve and may just point to shutting down all multi-threading as the only way to safely protect against these sorts of uncommon corruption issues emerging in a game.

Note that the MP game is not beset by this problem right now but the current assets dll is in a bad bugfix state. I should fix that and free up the US game so we can continue there. Obviously, the potential for this problem to arise certainly exists in any game right now but lately a lot of players have been making it to later stages of the game in the main mod.


As to the "binary math" is this a holdover from original Civ4? Or is it something added for C2C? If it is the latter, it should be possible to track down who added it in and ask them about it.
Funny you say that. IIRC, it was n47 who last worked on this region of the coding and she retired, possibly from life itself if her statements were honest about the health problems she was facing before she disappeared from the forums. Suffice it to say, I don't think n47 is reachable for questioning. I also don't THINK that this indexing structure was stock vanilla in any way but I haven't looked too closely at the original codes for this. However, I HAVE asked Koshling/AIAndy AND Alberts2 for assistance, having explained the bug in great detail in the new PM replacing Conversation feature this forum offers. Hopefully one of them can give me some insight that will help because I've exhausted my understanding of Koshling's previous offering of wisdom.
 
Back
Top Bottom