Advertisement

A question about massive multiplayer games...

Started by September 09, 2002 02:19 PM
19 comments, last by Moe 22 years, 3 months ago
Everquest (historically - maybe this has changed) handles things very badly, spews a load of irrelevant information out to all the players which is easily hacked. A little thought on their part could have reduced the bandwidth requirements.

With 3000 people in one area, you could consider reducing the notification radius so that you don''t have to tell everyone everything. Or some sort of portal system could work for this. Look at how the graphics people reduce the amount of data to be sent to the graphics card, and consider how you can use that to reduce the data you need to send to the network card. Send movement data less often when areas are cramped, leaving it to client prediction. Jerky motion of 1 or 2 people is less likely to be noticed when you have 30 or 40 onscreen.

You could perhaps have the client send ''visibility hints'' back to the server, so that the server knows that it can send less messages to that client since that client can''t see certain other entities. I don''t know if anyone does anything like this yet, but it sounds like an interesting avenue of research.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost | Asking Questions | Organising code files | My stuff ]
I suppose you could use a sort of quad or octtree for determinng who is in a viewable area. I think the thing that could clog the game up the most is the projectiles. If you get 20 people in the same area shooting at eachother along with a few AI controlled robots with gatling guns, things could get pretty hairy.

Moe''s site
Advertisement
The radius is a good idea. I''ve seen it put to use already, works great.
Priston Tale, for example. As you are running along you near someone just on the horizon. First you see them as just a "n00b" character, their base model with no armour weapons. Movement updates are far and few between.
If you get closer, they load up everything, and the movement is a bit smoother.
When you get close enough, you then get updates as fast as possible.

I think it would also be good if you checked to see just how much data is being transfered, and the cut it appropriately. So when you go to a town and 40 people are standing there shouting for trades, you cut the updates down to the middle radius. This way the chance of being completely dropped because of lag is much less, and you don''t end up with some people just not updating... I think.

I don''t actually know any of this, just observing.

------------
MSN: nmaster42@hotmail.com, AIM: LockePick42, ICQ: 74128155
"It''s all part of the conspiracy of conspirators conspiring to conspire their own conspiracies..."
_______________________________________Pixelante Game Studios - Fowl Language
Projectiles aren''t that bad of a problem, because all you have to do is send a message to the effect of: "This player fired". Or "This player fired 64 rounds of submachine gun fire". This doesn''t need to take up a lot of space. Much better than sending position information for each projectile.

Sounds like a pretty fun game, although quite similar to neocron, if you made it more fps and less "shoot something a million times cause your character can''t aim" than I would like it much better than the aformentioned game. More Deus Ex style skills, less UO style skills.

I''ve always liked having the police be the limiting agent in player-killing, it seems a lot more natural, and keeps player-killing more in the shadows.

And emulate Deus Ex as much as possible The multiplayer mode was really good, I shudder to imagine what it would be like in a massive game.
Ah, I am glad that you guys like my idea.

I can''t say I have had the opportunity to play the Deus Ex multiplayer, but the single player was great. I like how deus ex had the skill levels for the various skills - marksmanship, small weapons, large weapons, demolitions, hacking, electronics and so on. This would be the RPG part of the MMORPGFPS. There could also be different skills such as building, mining, and farming, that when used often, become better. Imagine Deus Ex multiplayer on a large scale with a bit of red faction thrown in and numerous AI controlled creatures, robots, and police.

Moe''s site
Yeah! Now all you gotta do is make it...


Good luck
Advertisement
This doesnt have to do with the above mentioned idea, but the basic concept of MMOG''s is the same. I was also wondering the same sort of stuff. How a single server can update all players information without makeing some of the players lag. I mean the only way i can think of to do it would be a for loop. and just update all the players 1 at a time. the only problem with this is that the further down the list, the longer that person has to wait to be updated on data and thus lag is born. I know there has to be another way. But how? Considering computers execute code 1 line at a time. btw:
MMORPG+FPS+RTS
server:
Rade Motherboard
1536 mb ram
4 30 gb hard drives running as 1 (4x read/write speed)
Cable internet connection
1.6 ghz AMD 1800 athlon processor
think thats enough to handle a few hundred people per kingdom (aka zone)?

Life is just one big game.
-----------------------------Real programmers code in pen.-----------------------------
That looks like a pretty good server to me.

I wonder if there is some way to run it so that the first player to send its info to the server is the first player to get a response. This way the players with good connections can run nice and smooth while the users stuck on dial-up (like me) can still get updates as fast as the connection allows.

Moe''s site
quote: Original post by Mirate
This doesnt have to do with the above mentioned idea, but the basic concept of MMOG''s is the same. I was also wondering the same sort of stuff. How a single server can update all players information without makeing some of the players lag. I mean the only way i can think of to do it would be a for loop. and just update all the players 1 at a time. the only problem with this is that the further down the list, the longer that person has to wait to be updated on data and thus lag is born. I know there has to be another way. But how?

No, there doesn''t have to be another way. You can loop through 10,000 objects in code in a couple of milliseconds. No lag. Remember, 2GHz processors means 2000000000 cycles per second... hundreds of millions of instructions. Don''t underestimate modern computers. At the moment, the bottleneck is the network, not the CPU.


[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost | Asking Questions | Organising code files | My stuff ]
Would my idea work, in theory?

Moe''s site

This topic is closed to new replies.

Advertisement