6 ms·
Um, I was a developer on PlanetSide 2, and we had zones that supported over a thousand concurrent players. It remains a problem only of having experienced deve
by failrate 8y ago
Um, I was a developer on PlanetSide 2, and we had zones that supported over a thousand concurrent players.
It remains a problem only of having experienced developers analyzing the problem and iterating on solutions until you've reached your target.
Not only is there no magic bullet, there's no secret sauce, either.
Proximity systems are key to scaling. If you have two player characters who are within a given range of each other, they will be grouped together into a batch of clients that share updates with each other. Clients on a conventional arena shooter all share updates with each other each network timeslice. But for MMOs, these update groups are dynamic.
- bullen 8y agoWhat do you mean by "zones"? 1000 players sending to all other 1000 players? Where these group batches P2P or client/server? My solution to scaling is to only send packets when an action is taken, I will cut up the rotation in pie angles so analogue movement does not spam the server. Only allows for one-shooters though, no spraying.
- chupasaurus 8y agoPlanetside 2 has (it's still active?!) a borderless map of continent with players' actions sended by server to clients based on range AFAIK. Disclosure: not even close to development, just played a couple of hours.
- failrate 8y agoYes, that is accurate.
- bullen 8y agoOk, but how, with square grid neighbors?
- NS39K 8y agoIf there's a square grid in that process for Planetside 2, it'd have to be for coarse culling, not anything final. The game is pretty precise about ranging this stuff, if not always responsive (pop-in can be pretty bad in dense fights). The US East server had ~900 people on it an hour ago, and this isn't a peak time. With that many people, there are two continents open, but usually most of the players are on one continent or the other. Continents are big, and support many separate battles at once (spatially separated, no hard lines). A very big battle may have 200+ players, and with certain exceptions players in it won't need to know anything about players outside that particular battle. If there are actually 200+ other players near you (within the nominal 300 meter range where updates should be sent), the server won't be sending you data on all at once, just whatever it thinks is the most relevant subset (hence the pop-in). It also breaks the 300-meter default to send data on and for snipers (and probably some other stuff) a bit further out.