Soren,
I have 2 copies of Civ 4, 2 computers, and 2 separate DSL lines on two different phone numbers.
Plugging both computers directly into the DSL line and completely disabling the windows firewalls. No antivirus, no antispyware, nothing but a raw win xp install on both systems.
Test #1
1) Computer 1 hosts.
2) Someone joins. There is now 1 host, 1 peer showing on the hosted computer, and on the Gamespy list.
3) I go to join on my second computer. I get a "contacting host" and it connects. I get "contacting peer" and it connects. I then get "contacting peer" AGAIN even though there isn't even a third person in the game! I am looking at the host computer screen and there are only 2 people there. If I cancel and look at the gamespy list, there are only 2/6 in the game with the third person not even showing up.
How could a nonexistant peer be causing an error?
I can duplicate this error - and have MANY times - just ask all the people in my games that I host when I tell them "let me check to see if we have a stuck peer, trying to log in on my second system."
Another thing I tested
Plugged both computers into a router that has a built in firewall. In addition, I turned on the win xp firewall on both systems (with the default of civ 4 as an exception.) I have the UDP port 2056 forwarded to the host computer.
1) Computer 1 hosts.
2) Someone joins.
3) Someone else joins.
4) I connect fine with computer #2.
Game starts and plays normally. Port 2056 is forwarded to one computer, yet I can still play on a second computer, going through the same router, with the same internet connection. Kinda strange telling us we have to forward a port when I can connect without the port being forwarded.
Final Observations & WORKING SOLUTION TO THE PROBLEM!!!
While the firewall issues may be causing a very small amount of the problems on the net, you should have a built in CHECK in Civ 4 to prevent these people from even attempting to join a multiplayer game.
HERE IS THE SOLUTION!
Quite simply - you think its the firewall from this post. Have Civ 4 do something like E-Mule does, where it goes to a webpage that tests and checks to make sure all necessary ports are open. It should do this EVERY time someone clicks the multiplayer link, so if settings change, it will catch it.
If the results come back as negative that the ports are not open, then you KNOW they will have issues joining and cause issues in multiplayer games. When this happens, automatically take them to a webpage that tells them what they have to fix.
If the results come back as positive that the proper ports are open in their firewall, let them into the multiplayer lobby so they can join games.
This is a LOGICAL solution to the problem. If what you say about this whole issue being firewall related is correct, it will fix it 100%.
It doesn't answer the question why at 2 AM EST on a weekday virtually EVERYONE can connect, but during prime time at 9 PM EST virtually NO ONE can connect to anything. It doesn't answer the question why myself and 4 friends can connect fine at 2 AM but we can't join each other at 9 PM. How is this a firewall issue? It works at some hours for the EXACT same people with the EXACT same configuration, but during prime time it doesn't?
When you add the check I mentioned above and find that it doesn't solve it, then we all will know you were blowing smoke up our #%$# and that the problem was in faulty code, or in gamespy and you are just blaming the user to try and make it look like this fixes something.
So, are you willing to add this type of code, or afraid we will see the real problem has NOTHING to do with our configurations (as my multiple tests with 2 comps, 2 DSL, and 2 games has clearly shown.)
Let me know!
~Zy
CIVILIZATION 4 - THE FIRST CIVILIZATION BUILT FROM THE GROUND UP WITH MULTIPLAYER IN MIND! *cough* Bullsh.... well, you know, contacting peer can be considered a multiplayer game?