Wednesday, October 12, 2011

Why Consoles Only Allow 24 Player Battlefield 3 Servers.

     It comes down to network performance and fps according to DICE Developer HONK-DICE/Henrik via Twitter. Frames Per Second or FPS for short is limited and according to DICE, if they were to take out the destruction in the game they might be able to fit more players onto the server.


     But DICE doesn't want todo that. They want to work with the destruction engine so that eventually the servers can handle the destruction environment AND more than 24 Player servers.


     But the issue really boils down to Microsoft and Sony's Rules of bandwidth limitation on multiplayer games. They contest that in order for everyone to have an equal gaming experience the speed of incoming and outgoing connections while playing Battlefield 3 has to be at a fixed rate. Now many people are furiously debating over what that fixed rate is for consoles in the ea forums.


     The developer also said that each console server can handle up to 300 players, but that the server space is divided into 24 player servers. Right now they could easily support 33 players with no lag, but Microsoft and Sony are holding their corporate leash pretty tightly.


Read the full post below:



Originally Posted by HONK-DICE/Henrik
Quote:
My name is Henrik and I'm one of the programmers on Frostbite,


First of all you are of course right when it comes to games being made on a first generation engine. There are allways things that you don't manage to fix before launch (or even notice until after launch even though you've had hundreds of testers playing the game for months)


These are the reasons why we only have 24 players in BC/1943
* Performance - making a game with so much destruction, vehicles and with that scale and still trying to keep it good looking is hard. 33ms/frame is disappearing pretty fast... if we removed the destruction and instead precalculated stuff I'm sure we could have squeezed in many more players performance-wise. We are of course always working on performance 


* Network bandwidth restrictions - There are pretty tough restrictions on how much data that is allowed to be sent to the client on 360/ps3, the destruction and the vehicles steal _lots_ of bandwidth, a vehicle is much more expensive than a soldier. Every object that is moved by simulation and is gameplay affecting need to be at the same place on all clients at the same time and therefore need to be networked, the destructable state also need to be networked. And as you know we have vehicles and lots of destruction in bc/1943.


We are actually running about ~12 game servers on each physical server, meaning that each physical server can handle about ~300 players. We could easily switch so we had less game servers running 32 or more players but then every client would need to receive much more data over the network which might break the rules microsoft and sony have put up. The reason why they've put up these rules is to ensure the quality of the game for all players, maybe we could someday implement matchmaking (or server browsing) that would let the player join servers with more players if his/her internet connection bandwidth allows it.


There will of course also be lots of optimizations on the network protocol which will make it easier to squeeze in more players on a server without violating bandwidth recommendations.


* Design - I can't remember how we ended up with the limit of 24 players but I guess it was a compromise in order to get the destruction and visual quality that we wanted. It is also harder to balance gameplay on levels with more players, since we're doing lots of play testing to make the levels fun you can imagine how hard it would be to tweak if the level supported 200 players (even though it would be really cool )


There is nothing (that I know of) that limits the number of players in frostbite, and if there is, it is probably a bug. I've tested running over 80 players locally (client-server) on the consoles when measuring performance and it works just fine (except framerate).


I hope I covered most of it



I didn't mean that MS won't allow us to have 32 players, it is a matter of them securing quality to make sure that bandwidth to client never goes over a certain bitrate.


As a developer you can get waivers for things like having higher bandwidth (Don't ask me how ), it is of course in their interest that our games are as good as possible on their platforms.


I actually haven't played Frontlines and if it is as you say, then I'm sure they've compromised on something (or they are simply better than us )


As I said earlier there are lots of bandwidth optimizations we can do by the cost of performance on the clients.. we are as an example not simulate other players vehicles at all on the client, and therefore we need to send information about what materials that the wheels are hitting so we can play visual effects on the client without doing any simulation.


By moving more of the simulation over to the client we don't have to send this information (but on the other hand we need to run simulations of all wheels on all vehicles on the clients instead (there are of course occlusion optimizations and stuff you can do here))

No comments:

Post a Comment