I had all of those problems during my first few matches of Battlefield 3 on Xbox 360, problems I'm hearing PS3 users mention as well. I get it: it's infuriating. Especially coming from a weekend on the PC version of the game and a year long love affair with Bad Company 2, my initial experience with the retail version of Battlefield 3 on Xbox 360 just didn't feel like Battlefield.
I tried everything, I thought. I played with sensitivity. I did speed tests on my connection. I reset my router. I checked my NAT settings, which were open as open can be. I even put my console in my router's DMZ, which usually means that said console is out there naked to the abuses of the internet at large without so much as a coat or a prayer to protect it. None of it worked. And then someone linked me to this EA support page about opening ports for Battlefield 3.
I rolled my eyes. I haven't had ports open on my router for a couple of years. It just hasn't been an issue, and it's a big pain in the ass with multiple Xbox 360s on one network (a common situation for people with housemates, as I had until recently). And besides, I own a router specifically purchased because of how nicely it plays with Xbox Live and PSN and general game stuff. It's worked flawlessly for every multiplayer title I've jumped into this year. But, being at my wits' end, I tried it anyway.
And it goddamned worked. IT WORKED AND BATTLEFIELD 3 PLAYED LIKE BATTLEFIELD.
But I get that changing router settings can seem like dark magics to some people out there (hell, most people, maybe), so here are some pointers and instructions on that. When I recommend using Google, feel free to substitute your search engine of choice, and please remember that you might need to go through a few links before you find one that gives you what you need. Sorry! I can't fix that.
First, you'll need the IP address for your console. Both the Xbox 360 and PS3 can tell you this in their network settings section. Is that not specific enough? Click here for PS3, and here for Xbox 360.
Next, you'll want to log into your router. You'll usually do this from a web browser connected to that router by entering your router's IP address into the address bar, and using a username and password. The IP address differs from model to model and manufacturer (though it's usually some variation of 192.168.x.x), and so does the username and password.
So again, Google is your friend. Try searching Google using the words "default username and password" and your router's model number - mine is the Cisco E3000, so I would search for "cisco e3000 default username and password." Your router might have come with setup software instead to make it "easier" to change settings; if it did, and you have that installed, use that.
Now things get a little tricky. Different routers have different menu setups, so port forwarding (which is what we're doing here) might involve slightly different clicks here and there to find. I'm familiar with Linksys/Cisco and D-Link routers, since that's mostly what I've owned. For Linksys routers, you'll probably want to find the tab "Applications and gaming," and from there, you'll want to select "Single port forwarding," unless it's selected by default.
This is another instance where Google is your wingman. If you're lost looking at your router's menu, take a deep breath. Go to Google, and type in "port forwarding on (insert your router name here)." Again, you might need to click a few links to find the specific info you need, but, you know. Welcome to network troubleshooting. It used to be MUCH harder.
So now you're at the port forwarding settings, which probably look something like this: Those empty fields are places for you to add your own "rules," which are guidelines the router will follow for specific kinds of network information.
I've named these XBL1, XBL2, and XBL3, since there are three sets of ports you need to open for Xbox Live. The first rule is for traffic on port 55. I've set the incoming and outgoing ports to 55. You have to open this port for both TCP and UDP (different protocols for network traffic) – my router allows me to set one rule for both, though you might need to set up separate rules for port 55 on TCP and UDP. Next, I've set them to forward to the IP address of my Xbox 360 (remember up there when I told you to find your console's IP address? This is where you'd use that information.).
Finally, in my router's settings, there's a checkbox to enable the new rule that I've added. So, I would want that to be checked, if I want this to work. In the event that you need to disable those rules for some reason, you can easily uncheck the box, rather than manually deleting your new rule.
You'll want to do this for each of the ports listed in that EA help page for Battlefield 3 I mentioned above. As you can see in my screenshot, for Xbox Live, this includes ports 55, 88, and 3074. Unfortunately, things are more complicated on the PC and PlayStation 3 - you'll need to open separate TCP and UDP ports, and a lot more of them. But it's not difficult. It's just going to take a little longer. Once you're done, there should be a button near the bottom of the settings page that says "save changes" or something similar. Click that.
You should be done!
This isn't a perfect solution, unfortunately. This can cause problems on networks with more than one active console on it at the same time, since network traffic of a specific kind is being directed to a particular client. I've heard horror stories, but they're fairly particular. Also, in case all that text wasn't clear, it's sort of a pain in the ass to set up. Which might be why games don't seem to need this anymore, or they haven't for me, anyway. But it completely changed my play experience with Battlefield 3
, which is, in my opinion, the best multiplayer game available right now. So if you're having some of the problems I described all the way at the beginning of this guide, give it a shot. And good luck!