Advertisement

Handling movement in MMORPG's

Started by August 20, 2002 06:34 PM
30 comments, last by black_mage_s 22 years, 3 months ago
Not that im making one or anything, but i was recently playing this old MMORPG, and noticed the jerky movement. So i was thinking about ways to combat this. Now, looking at the idea, i found it quite hard to decide if this should go in the game design or game programming forum, but this seemed to be my best bet. Now i was thinking that instead of having the computers have to recieve info on where the player was every moment, why not make it so that if the player was walking somewhere, it sends the destination point instead and lets the individual computer processors do the work of calculating how the player got there? I mean, as long as you set up the pathfinding system correctly, you could save on a lot of lag. Of course this would have to have a very specific movement style, clicking on the location you want to go as opposed to leading your player around with a floating hand ala Ultima Online. So, ideas? comments? angry letters?
"Luck is for people without skill."- Robert (I Want My Island)"Real men eat food that felt pain before it died."- Me
True, if you are using the click on a spot to go there navigation method, and you have a really good pathfinding algo that produces the same results on all systems every time it''s run (i.e. the path it finds on one system will be assured to be the same path on another system), then this definately makes the most sense. Why send information every frame or every two frames when you could send it only once every couple of seconds. Let the clients interpret the information and let the simulations carry it through as much as possible. The only thing to worry about is that the order comes out the same, otherwise you could have the player start moving on one clients computer 2 seconds later than they are supposed to possibly causing problems on this clients simulation (with the character in the way messing up their characters path) making things a little screwy.
Advertisement
i thought about that. Maybe send two copies of the info, and if it doesnt match, send a third and fourth. Then, if any of the four match, you use that data. I never ran into that much trouble sending small pieces of data like that.

it would be pretty small when you think about it
"Luck is for people without skill."- Robert (I Want My Island)"Real men eat food that felt pain before it died."- Me
Someone please correct me if I''m wrong about this, but the problem with client-side calculations like this is that they are prone to being hacked. This is the reason most things are done server-side, that way accuracy is assured, and the game remains fair to everyone.

If you have played Ragnarok Online (a recently porular MMO) you''d know how popular hacking tools became throughout the beta''s life. If you havn''t played it, some of the more common hacks were bots (automated characters), automated selling programs, weapon upgrade hacks, etc.

I''m pretty sure something was done with the original Quake also. A program was made that ran on the same comp running the server that allowed the user to set up automatic perfect aim for themselves. The player just shot and the prog made sure the player never missed.

Anyway, I guess home-servers can''t be guaranteed reliable as easily, but as for MMO servers, they absolutly have to be fair, so the less things the client is allowed to do, the less things can be cheated.
Im not saying use client side calculations for everything, just things like movement to reduce some of the major lag when dealing with lots of players. I mean, since the program would do claculations for movement client side, and characters have to move a certain way, the only thing you can do to hack that is move to a location far away without having to click there. Not exactly the greatest idea. Mind you, i''m only throwing ideas around.
"Luck is for people without skill."- Robert (I Want My Island)"Real men eat food that felt pain before it died."- Me
Although client side calculations are more likely to be hacked, I cant see any way that this could be hacked that would give the player any advantages.

For example if someone makes a hack to make themselves go faster, on their comp they would have already got to their destination whereas on everyone elses comp and more importantly on the server the player would still be travelling and anything they tried to do from then on might just end up messing up their game and making it almost unplayable (what would happen would probably depend on the way things were coded)

As long as the important things (combat etc.) are kept on the server then it will still be hard for any very useful hacks to be made.

Just my 2 cents

[edited by - Grambo on August 20, 2002 8:30:51 PM]
--24 Beers in a Case.24 Hours in a Day.Coincedence? I think not!www.gramb0.co.uk
Advertisement
Exactly!
By eliminating server side clogs like movement handling, you can make room for more players, or faster speed for fewer players! And since nothing important is being stored client side for security reasons, you get a nice balanced game system.

Of course, its not like there is anything else that can be held client side, since there would be too many hacks to deal with
"Luck is for people without skill."- Robert (I Want My Island)"Real men eat food that felt pain before it died."- Me
I''m writing an MMORPG now and I''m experimenting with this idea - the players which are close to the player which has moved are updated first (they have priority) and are updated more often than the players who are far away. Because, it doesn''t matter if a player far in the distance looks jerky - especially if he''s been totally culled out by the graphics engine, and he''s too far away to be doing anything interesting like shooting you etc.
I guess by allowing some client-side calculations, though, it may be possible to catch people who are using hacks. Like the server could keep track of a trip time and if it seems like the player is traveling distances much faster or passing through obstacles or something, then you could block the user''s ip for a while or something.

Could this work?
well even if you could stop the collision detection and change the speed, it would be calculated client side for battles, which would be activated whenever there is an enemy presence nearby or a person engages battle mode near you. So then, all you really have is a fast transportation system.
"Luck is for people without skill."- Robert (I Want My Island)"Real men eat food that felt pain before it died."- Me

This topic is closed to new replies.

Advertisement