EA’s strategy game Lord of The Rings: Battle for Middle-earth has couple of problems in the way they handle multiplayer connections.
First of all: the game uses GameSpy connection for online multiplayer games. This itself is not a problem, but there are massive amount of players who cannot connect to GameSpy servers, they just receive “could not connect” message when they try. There are help guides/tutorial for this, but basically they won’t (always) help. At least they didn’t solve my friend’s connection issues.
Simple way to fix this problem would be to allow direct connections – meaning that players could create their own servers (without need to connect to gamespy game finder). People could join by typing host’s IP instead of need to connect to GameSpy. This would be a massive aid. Question remains: Why aren’t they doing it? I really don’t know. There cannot be business reason because logically:
– If they want people to sign up for GameSpy they could still be “forced” to create gamespy account (which I wouldn’t do) in order to start making P2P games. I don’t care about forced GameSpy account but I do care about playing the game
– People who have purchased… have purchased the game. Letting them to actually play the multiplayer mode cannot hurt sales. In fact – making a P2P system would encourage people to recommend game to their friend so that they could play together.
– People who would buy Battle For Middle-earth 2 would still be buying it. In fact, if this doesn’t get fixed in BFME2 I’m sure there are people who won’t buy the new game.
– Making a P2P connection cannot be a technically so hard that they aren’t doing it. No, there must be some company policy behind this.
There’s a BFME Patch 1.03 coming “soon” (so I’ve heard) and my friend hopes these issues to be solved there. I haven’t heard their game producer to mention fixing anything like this – what I’ve heard about the patch is that the patch is mostly about game balancing. We’ll see. And hope.
The second problem is caused by NAT/firewall. At the moment the game creating process flow is like here:
#1 – Load the game list
#2 – Create new game lobby
#3 – (Wait for players to appear in game lobby)
#4 – Launch the game
#5 – Connect to players (if NAT/firewall or some other problem here then session is canceled and you are forwarded to step #1)
#6 – Load graphics/level/etc
#7 – Start playing
#8 – (Play)
#9 – Victory/defeat screen (go to step #1)
The biggest questions are step #5 and step #9. Let’s take a look at step #5 now: Why they do the player connection check here? If they know they have NAT/firewall problems and you are starting a 6 player game and even if one player has firewall/NAT problem then the whole game session is canceled. And all people automatically “leave the game”. Why wouldn’t they have had used this kind of approach:
– Check the connection in step #3 (when player arrives at the lobby – then you could automatically see if there’s problems with the connection)
– Or, if the connection fails, why do *all* players have to go to step #1? Why wouldn’t they go back to step #3 and have all the players again in the lobby?
Either one of these solutions would have solved the problem. For some reason they haven’t done this.
The smaller problem is in step #9. After people have been defeated the cannot chat anymore and all players go to step #1 after the game. Why chat is disabled? And why don’t they forward all players to step #3 where they could easily take a re-match? Why not let people chat also in the end of the game… and allow people to make a new match with the same people again.
These aren’t game play issues but these problems show how it’s important to design all aspects in online multiplayer games. Game play design is not enough, you have to design a smooth game flow as well. We’ll see soon how EA manages to do in BFME2.