MMORPG Servers question

Started by
41 comments, last by fingh 19 years, 4 months ago
Quote:Original post by hplus0603
If by "PS" you mean "PlanetSide" then I also played that game. Is it still running?

Yes, PS is Planetside. I think I mentioned that in that longer-than-I-intended post.. heh. Yes, it's still around as well, and I play a couple of times a week. A lot has changed, and it's gained and lost many people because of the changes.

Quote:
I believe I saw updates faster than 1 Hz when I played it -- in fact, there was a mode you could turn on where you would see the update rate for each entity. It was never like a good game of quake, but 5 Hz was pretty common. On the other hand, sometimes you'd get someone with 60 second stale data; i e the bug you're talking about where a lost packet never gets re-sent.


No, it's 1Hz, and that option is still there and "always on" as far as I can tell. When your reticle is on another player you get the status cues such as color and range. You also get a little "ping timer" underneath them that starts at 0ms, streams up to 1000, then starts over again from 0. This is always the same for every other player, regardless of if they're moving or not.

The real problem though is that they don't, apparently, ever issue position data -- the movement engine, as far as networking goes, appears to be entirely vector based. At that 1Hz rate, the clients send their current facing, velocity, and acceleration. If you miss the one that says "0" for the last two, then they just keep warping over and over.

Quote:
Regarding re-loading the level, while it's true they re-load the UI elements, the big part of load time was loading the terrain meshes, collisions, and textures -- which were different on each island. I also believe they did this while also receiving data about everyone near your spawn location, so in that sense, they did what they could to latency. I do agree on the memory leakage, though; that was a pain.


It's gotten better but the thing is still a massive memory hog, and for no reason that I am able to fathom. I was forced to play for a while with only 512MB, which many others play with daily, and I don't see how anyone can live with it generally speaking. Everything gets slower, especially the load times with the leak+swap issues.

As it is, with 1GB, I get a few MB into swap when playing, between the game eating 700-800MB as a rule, and of course windows, teamspeak, etc all going.

Quote:
The big annoyance, to me, is that their animation system is really slow -- on a 800 MHz FSB machine with 3.2 GHz CPU, 80 characters in your viewing frustum would drop you to a few frames per second of frame rate (this on a Radeon 9700 OR a GeForce FX). And their PVS was non-existent -- people behind walls, in basements, or wherever else would still count, even if you couldn't see them, and any portal system would have culled them out trivially. Because they didn't even do PVS for rendering, I believe they didn't do any kind of PVS management for networking, which is another way of not being as efficient as you could be.


Yes that's a huge problem. They do slightly better at this with *some* textures, such as settings for turning on/off how soon it will precache door fascia in relation to your distance form the door, but come on, culling would be great.

The FPS issue has only gotten worse with the introduction of "BFRs" which are basically mechwarrior style robots, that seem to have a far higher poly count than their unimpressive in-game looks would indicate.

I have a 2.2GHZ Athlon 3200, dual channel DDR400, and an nVidia 6800, and play 1280x1024x32. I get about 200 FPS in "sanctuary" where you spawn, and that at times drops to 20-25 in large groups, closer to 70 if I look away from them. This seems entirely netcode dependant, since in the training area there are far more polys (dummy targets) yet far less players, and FPS is always high.

They've done suboptimal coding on a lot of the clientside stuff, and it all adds up to people generally trying to avoid "large" battles which is a shame since it's really the point of the game. Just turning off the skydome can recover you a lost 10-20 FPS, not because it's complicated to render, but because it has a lot of dynamic stuff happening on the CPU.
Advertisement
Oh, I wanted to say as an open call to those of you actively working on games, please for the love of Zeus, if you're going to include options that make the UI "smarter than the player" -- stick another checkbox in to disable them.

A perfect example of this is sound-input-device selection. Yes many people out there don't have the slightest idea how to do this via the control panel, and so having an option to automatically select the mic device is a good thing.

However some of us do know what we're doing, and want to use a device on a different port. It's very annoying to have to switch back out to windows to reset our sound settings every time we start the game and it screws them up.
Quote:Hplus0603When you run these games operationally...

Quote:To their credit, these aren't easy problems to solve. On the other hand, they should not be as bad as they in fact are, and with a properly distributed (cluster or other arch such as numa if they have the cash) engine they could be turned from rules to exceptions.

"When you run these games operationally" (you aren't alone in this HPlus) you realise that there is more to running an MMO than the specifics of your software. If your software design requires expensive hardware, you might not see 'gold' because you can't afford to a) purchase the servers b) pay the AC bill required to run the servers or c) hire the 24*7 IT support you need for maintaining the servers. In order to develop the "proper" distributed system, it takes time. Again, if you "take the time to do it right", about the time you are halfway finished you start missing payroll. See the trend? The optimum backend design for an MMO is that which meets both the budgetary and technical requirements of the developer. I'm not saying that we should strive for mediocrity, please don't misunderstand the point.

As far as elitism, well, better to sound "elitist" than ignorant I guess. I don't come to gamedev to chat with my "customers". I come here to discuss technical issues with a wide mix of technical people, from beginners to pros. In doing so, I'd like to think they are interested in using (or learning) the appropriate terminology rather than regurgitating what the "customers" say. The case in point bears extreme relevance to this forum - a truly clustered system is much more expensive to acquire, maintain, and develop software for than a lan-based "cluster". The software design itself can also be much different between the two.

/sarcasm on
Since it was mentioned, "Brell Serilis" _IS_ a "server". It refers to a 'worldserver', which *gasp* happens to be the name of an object/module. Additionally, "Brell Serilis" runs as a discrete "worldserver" server process.
/sarcasm off

This topic is closed to new replies.

Advertisement