I apologize if the title of this thread is a bit much, but I've run out of patience with the utter ineptness of Civ4's multiplayer functionality. Any game, no matter how good it's going, can be completely ruined by a single player, intentionally or otherwise, and the host has absolutely no recourse to do anything about it.
Exhibit A - The Vote Window
When somebody lags/drops from the game without retiring, it (usually) brings up a vote window after a few minutes allowing everyone to vote and have the dropper removed. Unfortunately, it only works if EVERY SINGLE PLAYER votes "Save the current game and continue playing."
So if one person is afk, then we have to sit there indefinitely, with no possible way to get the game going. 8 out of 9 players could have voted to continue, but that one "(undecided)" vote can suddenly hault the game for everyone. I've noticed that players tend to be more likely to do this if they're losing and don't want to let the game continue.
So what's the solution? Well, honestly, why the bloody hell do we need a vote window in the first place?! Nobody EVER votes for anything other than "CONTINUE" (unless of course they're trying to hault the game or just don't know any better). I mean, when a player drops, it's just not multiplayer etiquette (with Civ4 or any other MP game) to wait around to see whether or not the player decides to return. You just keep playing, and that person can always rejoin without everyone having to pause in the meantime.
If nothing else, would it really be so hard for the devs to just put a simple timeout in the vote window? I dunno, say, 30 seconds? Anyone who hasn't voted by then simply won't have their vote counted, and the game will continue.
Or better yet, just yank the vote window entirely. It's not needed. It is buggy as hell. It doesn't always show up when it's supposed to. It ruins games. Get rid of it!!
Exhibit B - Mid-Game Joiners
I've already talked about this issue in great detail. In virtually every MP game I've ever played, the host has some discretion not just before the game, but during the game, to control who can and cannot join.
Case and point: People who join games for the sole purpose of ruining or crashing said games. Some people will join a game in modern era and never end turns (resulting in 10+ minute turns for Civs with virtually no moves to make if in peacetime). Others will switch tasks in windows at a certain point while joining the game in order to throw it out of sync, then will refuse to leave. Others will deliberately wait until the vote window comes up (see above) and refuse to vote, forcing everyone to leave the game or sit there forever.
I have the screennames of many known game hijackers written down, but what good does it do me? If it's pre-launch, I can simply boot the player from the table. Now, I can understand that you shouldn't have that power during the game, because then that power could be abused and used to boot enemy civs. But right now it won't even let the host block a particular person from joining! There isn't any sort of IP ban system in place either, which I find simply unfathomable in and of itself. So, often times, I'll be playing a game and a known hijacker will join. This could be someone who has already ruined several of my games in a single night.
And there's not a single damn thing I can do about it! Oh yes, I could password-protect the game or have it set to deny all joiners, but then when people quit there won't be anyone to take their place. That would just be like Civ3 all over again! Can't the devs give us a less extreme option; i.e. somewhere inbetween "reject all" or "allow all"? If I could ban the IP's of known hijackers and accept/reject others when they're trying to join, that would almost completely solve this problem. IP ban by itself isn't enough, because IP's change from time to time. Besides, there are times, like if you're in a war or something, when you simply don't want to let anyone join at the moment, regardless of whether or not the person is a bad guy. The point is, as host I have the right to decide who can and cannot connect to me, and the Civ4 devs need to recognize that when making this game (and yes, I know full well it's p2p, but the principle still stands).
Exhibit C - The Dreaded Diplomacy Screen
If you're stuck in the diplomacy screen with another player, you cannot exit while the game is paused, while someone is joining/lagging/dropping, etc. You can't chat, you can't do anything at all. A few nights ago, I was in a game that was down to just 2 of us. We were fighting an interesting war and I was blowing through his territory. That's when a new player joined, and the two seemed to recognize each other. After a few minutes, the guy I was at war with contacted me. I assumed he was ready to surrender. So I tried to chat something, but the text didn't appear. I tried clicking the peace treaty thing, but nothing happened. I tried clicking exit, but nothing happened.
It was then that I realized something-- the new player had paused the game. I tried to unpause it, but I couldn't because I was stuck in diplo. I then saw pieces of what that new guy who paused the game started chatting. Essentially, he told me that he would not unpause the game until I left, long enough for his friend to, presumably, make peace with my AI at a much lower price. I had no other choice but to leave. Is that right? Is that a good multiplayer game?
Exhibit D - Game Difficulty Settings
Whose bright idea was it to allow each player in the gamespy staging room to set his/her own difficulty level?! Every time I host a game, I have to make sure I'm the last one to check in, and to verify everyone's diff setting before I launch. Otherwise, players will often try to sneak in a "settler" difficulty level, thereby having less upkeep and whatnot. In essence, it's a built-in multiplayer cheat that the host cannot disable. Your only hope is to spot it before you launch. That's just plain not right.
Exhibit E - The "Retire" Bug
If you retire at certain points, such as shortly after someone else lag-drops, it will freeze the game timer permanently. If someone else tries to leave, it just gives a "waiting for <player name>..." message for that person without ever bringing up a vote window. This bug also occurs sometimes when retire is used during normal gameplay; i.e. not in conjunction with a lagger. In fact, this bug also occurs sometimes when retire isn't used at all, but when someone disconnects in any other fashion.
Exhibit F - The Mysterious "No Reason" Game Freeze Bug
Sometimes during the course of a multiplayer game, the timer just freezes suddenly for no reason. I'll chat to see who's there, and *everyone* responds promptly, so I know it's not a lag/drop. I used to think it was caused by joiners sometimes, but it even happens when the game is completely full already.
Eventually, I discovered what caused it. One person decided to retire, but instead of just continuing to freeze with a "waiting for" message, everything resumed, except an "out of sync" message flashed on the screen. Everyone had the exact same sync values, except the person who just left. Of course, the out of sync message disappeared after a few seconds once the game realized the AI had taken over.
So what does this mean? It means that, for some reason, this person went out of sync. And (again, for some reason), instead of just doing that ugly red out of sync message, the game simply froze. If anyone else who was NOT out of sync tried to leave, it would remain frozen. It wasn't until the person who was OOS left that things finally resumed.
But even knowing what the cause of this mysterious freeze bug is doesn't help much. Because we have no way knowing who is OOS (and whether it's multiple players even), we have to have people quit one at a time until the game resumes. Of course, sometimes players will refuse to leave, and then you're once again stuck with a "dead game."
Sadly, I've become very accustomed to using the phrase "dead game" ever since I started playing Civ4....
Exhibit G - The Developers
I recently read a comment (don't know if it was just heresay though) stating that the developers decided not to make any changes/fixes to the multiplayer game in the new Warlords release because, to paraphrase it, "The MP is just fine as it is."
It's gotten to the point where the vast majority of multiplayer games I play end in some sort of error or bug. I never get to play it out, except on *extremely* rare occasions when nothing goes wrong to crash it. To me, that safely fits the definition of being "unplayable," hence the title of this thread. And I have seen no real effort on the part of the development team to even acknowledge these problems exist, let alone take the time to fix them before rushing to yet another release aimed at single-player fans.
That's perhaps what angers me most. I can understand it if bugs happen, but when you're so detached and out of touch that you'd rather not waste your time by fixing them?! To me, that just shows an utter contempt for your customers, the players, who buy your product and tell their friends to do the same. If you don't think the multiplayer bugs are worth fixing, then why even have a multiplayer feature in the first place? Instead of just telling us over and over again, "It must be your router, not our fault, now go away", perhaps you could try actually listening to our complaints and debugging the problem like most competent programmers do? I just don't see what's so difficult about that. But that's just me I guess.
Cheers,
--Kris
Exhibit A - The Vote Window
When somebody lags/drops from the game without retiring, it (usually) brings up a vote window after a few minutes allowing everyone to vote and have the dropper removed. Unfortunately, it only works if EVERY SINGLE PLAYER votes "Save the current game and continue playing."
So if one person is afk, then we have to sit there indefinitely, with no possible way to get the game going. 8 out of 9 players could have voted to continue, but that one "(undecided)" vote can suddenly hault the game for everyone. I've noticed that players tend to be more likely to do this if they're losing and don't want to let the game continue.
So what's the solution? Well, honestly, why the bloody hell do we need a vote window in the first place?! Nobody EVER votes for anything other than "CONTINUE" (unless of course they're trying to hault the game or just don't know any better). I mean, when a player drops, it's just not multiplayer etiquette (with Civ4 or any other MP game) to wait around to see whether or not the player decides to return. You just keep playing, and that person can always rejoin without everyone having to pause in the meantime.
If nothing else, would it really be so hard for the devs to just put a simple timeout in the vote window? I dunno, say, 30 seconds? Anyone who hasn't voted by then simply won't have their vote counted, and the game will continue.
Or better yet, just yank the vote window entirely. It's not needed. It is buggy as hell. It doesn't always show up when it's supposed to. It ruins games. Get rid of it!!
Exhibit B - Mid-Game Joiners
I've already talked about this issue in great detail. In virtually every MP game I've ever played, the host has some discretion not just before the game, but during the game, to control who can and cannot join.
Case and point: People who join games for the sole purpose of ruining or crashing said games. Some people will join a game in modern era and never end turns (resulting in 10+ minute turns for Civs with virtually no moves to make if in peacetime). Others will switch tasks in windows at a certain point while joining the game in order to throw it out of sync, then will refuse to leave. Others will deliberately wait until the vote window comes up (see above) and refuse to vote, forcing everyone to leave the game or sit there forever.
I have the screennames of many known game hijackers written down, but what good does it do me? If it's pre-launch, I can simply boot the player from the table. Now, I can understand that you shouldn't have that power during the game, because then that power could be abused and used to boot enemy civs. But right now it won't even let the host block a particular person from joining! There isn't any sort of IP ban system in place either, which I find simply unfathomable in and of itself. So, often times, I'll be playing a game and a known hijacker will join. This could be someone who has already ruined several of my games in a single night.
And there's not a single damn thing I can do about it! Oh yes, I could password-protect the game or have it set to deny all joiners, but then when people quit there won't be anyone to take their place. That would just be like Civ3 all over again! Can't the devs give us a less extreme option; i.e. somewhere inbetween "reject all" or "allow all"? If I could ban the IP's of known hijackers and accept/reject others when they're trying to join, that would almost completely solve this problem. IP ban by itself isn't enough, because IP's change from time to time. Besides, there are times, like if you're in a war or something, when you simply don't want to let anyone join at the moment, regardless of whether or not the person is a bad guy. The point is, as host I have the right to decide who can and cannot connect to me, and the Civ4 devs need to recognize that when making this game (and yes, I know full well it's p2p, but the principle still stands).
Exhibit C - The Dreaded Diplomacy Screen
If you're stuck in the diplomacy screen with another player, you cannot exit while the game is paused, while someone is joining/lagging/dropping, etc. You can't chat, you can't do anything at all. A few nights ago, I was in a game that was down to just 2 of us. We were fighting an interesting war and I was blowing through his territory. That's when a new player joined, and the two seemed to recognize each other. After a few minutes, the guy I was at war with contacted me. I assumed he was ready to surrender. So I tried to chat something, but the text didn't appear. I tried clicking the peace treaty thing, but nothing happened. I tried clicking exit, but nothing happened.
It was then that I realized something-- the new player had paused the game. I tried to unpause it, but I couldn't because I was stuck in diplo. I then saw pieces of what that new guy who paused the game started chatting. Essentially, he told me that he would not unpause the game until I left, long enough for his friend to, presumably, make peace with my AI at a much lower price. I had no other choice but to leave. Is that right? Is that a good multiplayer game?
Exhibit D - Game Difficulty Settings
Whose bright idea was it to allow each player in the gamespy staging room to set his/her own difficulty level?! Every time I host a game, I have to make sure I'm the last one to check in, and to verify everyone's diff setting before I launch. Otherwise, players will often try to sneak in a "settler" difficulty level, thereby having less upkeep and whatnot. In essence, it's a built-in multiplayer cheat that the host cannot disable. Your only hope is to spot it before you launch. That's just plain not right.
Exhibit E - The "Retire" Bug
If you retire at certain points, such as shortly after someone else lag-drops, it will freeze the game timer permanently. If someone else tries to leave, it just gives a "waiting for <player name>..." message for that person without ever bringing up a vote window. This bug also occurs sometimes when retire is used during normal gameplay; i.e. not in conjunction with a lagger. In fact, this bug also occurs sometimes when retire isn't used at all, but when someone disconnects in any other fashion.
Exhibit F - The Mysterious "No Reason" Game Freeze Bug
Sometimes during the course of a multiplayer game, the timer just freezes suddenly for no reason. I'll chat to see who's there, and *everyone* responds promptly, so I know it's not a lag/drop. I used to think it was caused by joiners sometimes, but it even happens when the game is completely full already.
Eventually, I discovered what caused it. One person decided to retire, but instead of just continuing to freeze with a "waiting for" message, everything resumed, except an "out of sync" message flashed on the screen. Everyone had the exact same sync values, except the person who just left. Of course, the out of sync message disappeared after a few seconds once the game realized the AI had taken over.
So what does this mean? It means that, for some reason, this person went out of sync. And (again, for some reason), instead of just doing that ugly red out of sync message, the game simply froze. If anyone else who was NOT out of sync tried to leave, it would remain frozen. It wasn't until the person who was OOS left that things finally resumed.
But even knowing what the cause of this mysterious freeze bug is doesn't help much. Because we have no way knowing who is OOS (and whether it's multiple players even), we have to have people quit one at a time until the game resumes. Of course, sometimes players will refuse to leave, and then you're once again stuck with a "dead game."
Sadly, I've become very accustomed to using the phrase "dead game" ever since I started playing Civ4....
Exhibit G - The Developers
I recently read a comment (don't know if it was just heresay though) stating that the developers decided not to make any changes/fixes to the multiplayer game in the new Warlords release because, to paraphrase it, "The MP is just fine as it is."
It's gotten to the point where the vast majority of multiplayer games I play end in some sort of error or bug. I never get to play it out, except on *extremely* rare occasions when nothing goes wrong to crash it. To me, that safely fits the definition of being "unplayable," hence the title of this thread. And I have seen no real effort on the part of the development team to even acknowledge these problems exist, let alone take the time to fix them before rushing to yet another release aimed at single-player fans.
That's perhaps what angers me most. I can understand it if bugs happen, but when you're so detached and out of touch that you'd rather not waste your time by fixing them?! To me, that just shows an utter contempt for your customers, the players, who buy your product and tell their friends to do the same. If you don't think the multiplayer bugs are worth fixing, then why even have a multiplayer feature in the first place? Instead of just telling us over and over again, "It must be your router, not our fault, now go away", perhaps you could try actually listening to our complaints and debugging the problem like most competent programmers do? I just don't see what's so difficult about that. But that's just me I guess.
Cheers,
--Kris