Designing Smooth Game Flow in Online Multiplayer Games

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.

Juuso Hietalahti


  1. @Funky Monk: I’m sorry but we are not providing online help for BMFE :) Please check their technical support. Hopefully you get into playing.

  2. i cant play online at all if i select it, it says cannot connect which pisses me off. Can anyone tell me how to fix that?

  3. @Ville: Please let that IP option there. Make it behind some sub menu, but leave it there. Or make damn sure the master server is 100% online and that *every single player* can connect to it.

    @Ken: :)

  4. @Rick: Thanks for pointing that out. I must admit what I wrote was bit misleading:
    – I meant that there would be need for *direct connection* (or way to find players without need to use GameSpy…). I edited the text to make sure this is the case.

    It’s true that whether the actual server connection is made P2P or Server-Client has no practical meaning: the point is that players should be able to type direct IP and start gaming without external game listing provider (or that there could be external game finder – like AllSeeingEye – which wouldn’t require gamespy).

  5. Peer-to-Peer connections isn’t about players being able to host a server themselves. P2P stands for individual connections between a player and all other players. The best type of connection that suits multiplayer games the most, would probably be Server-to-Client connections. There is only 1 server and all clients send and receive from that server. This method provides security and stability.

  6. @Juuso: Well, I never said I liked the idea. :) I understand a company’s desire to discourage piracy, but when it disadvantages the paying customer it’s time for them to take things back a notch. I’ve had to get cracks for far too many freshly purchased games.

  7. At least we were planning on purely master server because we don’t want to bother players with technical things like IP numbers, to give precisely that smoother experience. Of course I realized that our players will be rather technical people so we can leave the IP selection there, but I guess the players of BMFE might not be as such.

  8. I don’t know if it’s the case for Middle Earth, but some companies want the central server to be part of the procedure as an anti-piracy measure.

  9. @Taco: yes true – but in this case: the players ALWAYS host the game. It’s just that they need to FIND games through centralized server – they cannot write IP address to play game with their friends!

    And about cheating: BMFE handles it pretty well – it will check that all the games have same data (I don’t know exactly how) and if one of the players is caught on “modifying their game” the session will stop.

  10. The only reason I can think of to not allow users to host their own games is to prevent cheating. Allowing users to host a game means you have to distribute the server application. If someone has access to the server app he can edit it to allow for all sorts of cheats. In the traditional client-server architecture the client only sends requests to the server which then verifies them. The server is always right. If the server is controlled by a user (and hackers wil actually have controll over everything) he can abuse this.

    Another reason might be that hosting a game is to CPU heavy for a normal PC.

Comments are closed.