The last I heard, Battlefield 3 had sold over five million copies and at least on the PC, the hot new gaming title from DICE and EA is beating out Modern Warfare 3 sales. That's all good and well, but over the past few nights, I've been increasingly frustrated by poor performance in BF3.
Let me paint a little picture here - I personally use a speedy fiber Internet connection and typically it is super fast for anything I do. You'd imagine my pain in launching a Battlefield 3 session after waiting patiently to connect to a server nearby with a good ping, only to find when I get in the game, it's lagging almost to an unplayable degree. Alright, it's not like the good old days where you'd see up to and above 500ms latency - but still, it's enough to get your aim and so forth off target and cause some real mouse smashing on the pad.
So, I set to finding a solution for the problem - everyone else seems to be fragging nicely, but not me. It turns out that to enable a smooth gaming experience in BF3 on the PC, PS3 and Xbox 360 there is a little bit of work to be done. You know EA... it would be nice if you made this a little more public. I suspect it may be because not everyone is affected by the issue and it will depend greatly on your network setup. Anyway, to cut to the chase, it turns out you need to enable certain online ports for BF3 to offer a lag-free gaming experience.
Let's run you through now how to get this done. It's going to involve playing around with your router and opening up ports to your specific PC or console IP addresses that you are using to play BF3. Sounds messy, right? Once you know where to look, it really only takes a few minutes to do. I'd highly recommend you visit portforward.com which provides step-by-step instructions for setting up port forward on many different routers.
Once you've found your router (remember to click the skip advertisement link at the top right of the page), you'll want to enable the following ports depending on if you are gaming on a PC, PS3 or Xbox 360.
For PC BF3 players:
TCP: 80, 443, 9988, 20000-20100, 22990, 17502, 42127
UDP: 3659, 14000-14016, 22990-23006, 25200-25300
For PS3 BF3 players:
TCP: 80, 443, 9988, 10000-10100, 17502, 42127
UDP: 3659, 14000-14016
For Xbox 360 BF3 players:
TCP: 53, 88, 3074
UDP: 53, 88, 3074
I'm really not 100% convinced why ports 80 and 443 need to be enabled for PC and PS3 players since these are used for web hosting (HTTP and HTTPS), but if by opening these ports, they do not conflict with ports already assigned to other computers on your network (example a web server), just go ahead and do it anyway. In my case, I was unable to open port 80 since it was used by a public web server on my network, but that did not affect the improvement in my BF3 online gaming experience.
Once you've applied these port forwarding settings, remember to save the settings to your router and then reboot the router. I played around with these settings by enabling and disabling port forwarding of said above ports several times to make sure it was the real deal and found that I had to reboot the router twice on one attempt for the new port forward settings to take effect. That is something to keep in mind if at first you don't see an improvement. You'll also want to ensure you have added your PC or console to the DHCP reservations list otherwise your system might get a new IP addresses and the ports will be forwarded to the wrong system. If you don't know how to do this or your router doesn't offer it, you can always setup a manual IP in the range that your router and network uses.
It is also worth remembering that if you have a firewall or Windows Firewall enabled, check and make sure that BF3 is not blocked.
It should probably go without saying, avoid being lazy and start a Quick Match. You'll want to head to the server browser, use the filters and find a server closest to you. It doesn't matter how much tweaking you do, if you're in the US and pick a server say in Africa, it's going to be laggy.
Besides just internet connection lag, another type of lag you may face is graphics lag. This comes from trying to running graphics settings higher than your video card can handle.
The magic number we want to focus on is 60 FPS - it's what we at TweakTown consider a playable frame rate. Using some of the tweaks below, you can check your FPS. If you find that your game is unplayable or not smooth enough, you can try turning down your graphics quality settings. For example, I run a screen resolution of 2560 x 1440 (27-inch monitor), but to ensure a smooth gaming experience, I have the graphics quality set to low.
If you've set your graphics to low and still are not happy, you can also disable motion blur, as I found that had quite an effect on frame rate. Some say to disable V-SYNC, which is a function that when enabled locks your maximum FPS at the same refresh rate as your monitor - mostly 60Hz / 60 FPS these days. If you have a high-end system, you should indeed disable V-SYNC as it will be limiting your performance.