Posted
by
Zonk
on Friday October 19, 2007 @07:45AM
from the would-probably-help-in-karazahn dept.

Hugh Pickens writes "Time lag can cause some very strange behavior in massively multiplayer online games when players' actions onscreen become slow and jerky. New techniques are on the way to reduce the problem of lag time in MMOGs when a player's computer can't keep up with changes in a shared online world. Games like Quake use a technique called dead reckoning and while traditional dead-reckoning systems that assume that a game character will maintain the velocity and direction that it has at the moment an update is sent to all other participating computers; dead reckoning works best for movement and shooting and less well for erratic actions such as interacting with objects or with other players. Read the abstract of new technique called 'neuro-reckoning' that may improve the predictive process by installing a neural network in each player's computer to predict fast, jerky actions."

Since MMOs involve lots of repetitive actions that can easily be automated it shouldn't be too hard to predict what the player will do. OTOH this is kind of an admission that MMOs are so dumb that players are pretty predictable. I guess that's why I'm not playing an MMO currently...

I can see it now, lag hits - and in the interim you watch astonished as your character kills another rabbit and harvests it's spleen for sale back at town. The next gen of this technology will have your character spamming group channels for heals.

I kinda doubt that it works that well.For starters, let's look at the plain old interpolation. I see it kicking in all the time in MMOs (e.g., WoW), and players seem to run ahead for half a mile until the game gives up and disconnects them. Or spend the next 5 minutes running in place against a fence.

Let's take just that one simple action: running. How do you know where I'm going to interpolate it right past a second or two. If I arrived at, say, Westfall (to give a low level example that anyone who's ever

Duly noted, but still... if in those 500 ms it guessed that my Priest hit his psychic scream (i.e., fear) spell and he didn't, you're at a disadvantage. In fact, you're at a bigger disadvantage than if I _had_ used that spell and you wouldn't know it for half a second. In the latter scenariom you'd run around for half a second without knowing it, and _then_ hit your Will Of The Forsaken. My next spell wouldn't even be available in those 500ms, so you wouldn't even be hurt yet by that delay. But hit your fea

if in those 500 ms it guessed that my Priest hit his psychic scream (i.e., fear) spell and he didn't, you're at a disadvantage

It won't. (Aside: But if it ever does, then it would mean the server decided you should have done it, and it did it for you without your consent.)

These predictive models are for data compression [wikipedia.org], where the cost of encoding a given bit is based on the log of the probability of that bit occurring. For example, if it's 50:50, then it costs you 1 bit either way. However, if you can g

500 milliseconds?! Hey I've got an idea, if they can't get the data of what they're going to the server in 500 seconds, boot them lol. Predicting actions just makes them look like they're doing something they're not and then you're shooting at the wrong location and laggy ppl get an advantage. If I made a shooter MMOG, I'd constantly boot everyone with a ping time over 200 ms from the game, and that's being generous. Then everyone can download their porn in the background later and turn off their p2p pr

If I made a shooter MMOG, I'd constantly boot everyone with a ping time over 200 ms from the game, and that's being generous.

If you constantly kick anyone with a ping of 200ms, might as well make it automated. The direct result is your server will auto-kick players whenever there's a higher-than-normal load. Don't say this won't happen - players were known to protest on MMOGs by going in large numbers to a specific place, which causes that area to experience significant latency. A spike of users playing at once may also cause this kind of problem.

Then everyone can download their porn in the background later and turn off their p2p programs and remove all their spyware and we can all live happily ever after.

First, predictive computing will be THE next big thing.Second, it will actually be forecasting, not predicting, but nobody will know the difference.

Third, I will rant about the difference for two years, then give it the hell up.The are some thing that could help:If you land in westfall, maybe it will go to the closest place you have a quest for, or to the nearest people who have quests you can get.

Your caster will do what it has done most of the time in similar situations.

Yes and no.First of all, if you talk about something that actively takes control of my character for me, to do all that stuff, you're talking a bot. Which is against the TOS on any MMO, and can get you banned on the spot. I very much doubt that anyone will implement one right in the client, as some next great feature.

Second, those exist already. See, WoW Glider.

(Note that I'm not actually advertising using it, and if anyone gets banned using it, I'll cheer for the Blizzard employee that banned them. Just us

this could help keep some of the 'tubes from clogging. Sadly, this will hurt sales of my Intarweb Plunger(tm). See, those Net Neutrality folks were wrong! Games like World of Warskills and the eventual WarBallpeen Online will innovate and improve anything to keep the ISP's from making them charge an extra $.25 per month.

I just don't see how this technology helps. At some point, the player models will have to be integrated with what's actually going on in the game, despite having been operating on lag time/neural net behaviours. I can't imagine that being much less jumpy than it is now. This technology could even aggravate the problem, by choosing the wrong path and being even more out of whack than it would be if it had done nothing while waiting for updated movement information.

Please, RTFA people. It's not about MMOs. The article talks about how it's going to affect FPSs. MMOs are already a lot more forgiving with lag; the 150-500MS lag that this new stuff is supposed to help with is not generally that big a deal in an MMO. For some anecdotal evidence, my latency in WoW is usually about 100-200MS higher than any online FPS, and still perfectly playable.

Looks interesting, but using Neural nets would require massive amounts of computing power, compared to the more simple dead reckoning. Or at least that was the case when I worked with neural nets 12 years ago - better/faster algorithms might have been made since then.

But then again, the CPU's are so fast today, that it might not be an issue at all.

Twelve years ago I had a Pentium 60Mhz that could barely play MP3s without skipping. CPU architecture improvement and especially multi-core processing would probably leave plenty of room for short scale neural network movement prediction.

I think that was just bad journalism. The vast majority of lag is network loss/latency to the server, not client CPU issues. As you poing out, if the problem is just not enough CPU available, the answer would be LESS prediction, not more:)

Algorithmic requirements for these two classes really haven't changed much since the dark ages of AI (the sixties). What has changed is exactly how they're implemented. They're generally not faster, just different.

And if you read the article it's not even using a neural network; they're just dropping the term to hype up their approach. A neural net in terms of MMORPs would mean that every node (computer) would be involved in rendering everybody's avatar's position (et al.), but according to their article all they're rendering (as in the case of WoW) is their character's actions. One node processing its own specific data does not a neural network make.

how could you possibly get an unfair advantage? all the actual calculations are still done server side. Most mmo clients are nothing more than a glorified chat program, the servers do most of the work.

most:
-adjective, superl. of much or many with more as compar.
1. in the greatest quantity, amount, measure, degree, or number: to win the most votes.
2. in the majority of instances: Most operations are successful.
3. greatest, as in size or extent: the most talent.
http://dictionary.reference.com/browse/most [reference.com]
Blizzard does not make 'most' mmos. Most mmo clients are glorified chat programs. They preform minimal calculations, such as collision detection, but very rarely anything more. The final decision

OK, so shooting games, where you traditionally need to move as erratically and unpredictably as possible to stay alive and kill effectively, are well predicted by dead reckoning; MMOs, where you generally move directly from one beast to the next waiting for your skills to kick in, are not?

If I had to guess, the real problem is probably that commercial, hugely-trafficked MMO servers don't want to send as much data to each client as some guy's dedicated server in his basement that's only visited by thirty-two clients at a time. This probably results in the player and server updating each other less frequently.

Still, since in the MMO there are usually pretty predictable things the player will be going to next (the item on the ground, the nearby mob, the NPC in his path), maybe this will work well after all.

Indeed; one day soon, Chinese goldfarmers will be freed from the slavish burden of even running their own scripts. Instead, the server will simply predict what speeds hacks they would have run, and award them the gold without the tiresome necessity of actually having to receive packets from them.

Ultimately, our own machines will be able to predict the actions of everyone else, and we will be able to play multiplayer games together completely on our own. The circle will be complete.

OK, so shooting games, where you traditionally need to move as erratically and unpredictably as possible to stay alive and kill effectively, are well predicted by dead reckoning; MMOs, where you generally move directly from one beast to the next waiting for your skills to kick in, are not?

That's exactly what I was thinking. Nice, predictable, straight-line movement is a sure-fire way to get yourself killed in an FPS, if you'll pardon the pun. If the guy you're after doesn't get you, one of his team mates pr

Suppose I'm in a firefight. I want to serpentine to get under cover. All the sudden, one of my packets goes into the great bit bucket in the sky. What should my character do without any data to the server for that.1 sec? Stop? Move in a straight line? Or more ideally, continue to serpentine to cover. The slight difference in reaction is the difference between *cough* life and death. The point is for the server to correctly predict your motion in the absence of e

Would it be akin to Quake's lag or to the later versions of Quake? I never cared for how lag was "felt" following Quake I. QW through Q3 (I haven't played any others) all would make you feel like you weren't lagged at all but then suddenly you would show up dead as you caught up to real time. At least with Quake I you could "feel" the lag and make the proper adjustments.

That actually has more to do with latency than number of updates. Latency determines how long until you feel an action from that was updated to the server. If everyone has 200ms ping, then someone shoots you, and that shot is updated to the server 100ms later, then you feel the hit 100ms after that, for a total of 200ms. Within that 200ms, you'd have ample time to hide behind a box or the corner of a wall, but the server would still say you were hit (because 200ms ago you weren't behind that box or wall on your enemies computer). This retroactive update is how modern systems work, and it reduces apparent shooting lag.

Sidenote: This began the misconception that lag time benefited the lagger, or that laggy players lag the whole server, neither of which is true. The quicker your ping time, the faster your shots or actions will register on the server. If a high ping bastard and low ping bastard shoot each other at the same exact moment, the LPB will have his shot register first, and the HPB will die.

Originally, shots and hits were always done actively at the time it reached the server. So if you had 400ms ping, you'd see your gun shoot 400ms after you fired it. This made lag almost unbearable for most high ping players, because if they shot at you, they'd almost always miss, because by the time their shot registered, you would've moved out of the spot you were standing a split second ago.

As for the article, it's dealing solely with player movement on MMORPGS, which is determined by the rate of updates (how many packets get sent out per second). Player action updates are always triggered at the time of action (such as casting a spell), however, movement is an ongoing process. Basically your client updates the server around a dozen times a second with position and velocity information, because of your movement. However, it always assumes you'll stick to that velocity (moving forward? dead reckoning predicts you move forward some more) in between updates. If you deviate from your predicted movement along a velocity, you need to send an update to the server. This new method will predict what movement you'll take, rather than always assuming a straight line from your current movement.

My student ACM account doesn't have subscription to access the article, so I'm not entirely sure, but this is my take on what it does:For instance, if you're moving forward, and there's something in front of you, the neural net will attempt to determine that you'll probably move in a different direction, and send that as your predicted velocity. If it turns out you don't move that direction, you'll simply have to send another update. If you do move that direction (which statistically you should), then there will be no need for an update, thereby saving bandwidth. These predictions and updates happen at a rate which makes it seem like your player is moving smoothly, when in reality, there's a bunch of micro deviations and stuttering.

These predictions and updates happen at a rate which makes it seem like your player is moving smoothly, when in reality, there's a bunch of micro deviations and stuttering.

In small enough timescales, what looks like smooth movement becomes subject to random deviations and stuttering. That sounds like... quantum physics ! And of course, in a quantum mechanical computer, the player could move at all directions at once, taking all possible routes to his destination.

and checking your stats changes them, so you can never really know what your stats are. It's best to apply Occam's Razor and just assume you don't have any stats, the cat never existed in the first place, and all of life is just something you dreamed up.

Sidenote: This began the misconception that lag time benefited the lagger, or that laggy players lag the whole server, neither of which is true. The quicker your ping time, the faster your shots or actions will register on the server. If a high ping bastard and low ping bastard shoot each other at the same exact moment, the LPB will have his shot register first, and the HPB will die.

What they really need to implement in order to have a "fair" online PvP experience is some kind of time synchronization betwee

The only way they can accomplish this without having both sides running the neural simulation for all characters is to have the client send a packet saying not only what they are doing right now, but what they expect to do in the future. If the client doesn't actually do those steps, then the client sends out a new packet with what they actually did, along with a the series of steps the nueral algorithm expects them to do from there. The steps you expect to take have to be sent as data since the other sid

I believe that effect was due to 300+ ms ping times that modem players usually had. The whole jump to cover, then dying a moment later due to lag was annoying, but without client side prediction it's nearly impossible to do something simple like run and jump at the same time with high latencies. It would have been nice if Quake displayed a ghost image or something so you could see your real position.

If they're adding a neural network to help them predict actions. If it works, couldn't the system be used to enhance reflexes on the player's side?Everyone's had an incident when they said "Every time X happens, I want to instantly do y.". Or something more complicated like moving in such a way as to not get flanked. Speeding up repetitive trading or moving activities and so on. Of course, this level of automation might seem too much like giving an unfair advantage. But personally I'd really love a game tha

The neural net will only be used to predict the actions of anybody else ingame as a measure to counter any possible lag.

Instead of the given lagging player running straight ahead the neural net might have come to the conclusion that the movement will stop or do something along the way. That way when the lag disappears the player wont "jump" location from the predicted to the actual one.

Yes, but my point is that if you have the technology to predict the actions of other players in a given situation. Is it possible to expand this so that it picks up the slack when you're caught by surprise or not paying attention? In essence, predicting what you would do if you could be bothered to do it.

That might be true. But the predictable nature of the algorithm is (although I haven't looked into it) very shortsighted, thus not making any huge decisions for you.
It might be used to create bots, but it would require you to write a piece of software to interface with the neural network code, thus gaining access to the results of the computations of your "enemy" and then create input in reaction to those results.
Although possible it's not a trivial problem to solve.

Well it's a short step between what you propose and things like aim-bots. The advantage I see for this type of research is not improving my play, but improving bot play. I haven't played recent games, but in UT2004 the bots can hit you with a hit-scan weapon from across the map (assuming their difficulty is high enough), but they are tactically stupid. But even besides this, there are very short term predictions of human movement that the bots don't pick up on. An opponent that has been hit a few times will

If the computer is going to predict my next move, I might as well let the computer play the game. If the algorithm is using a neural network, the computer will become just like me as time passes.
The main difference between a good player and a normal one, is the difference from the nominal behaviour. Thus making this method of uterly useless.

If the computer is going to predict my next move, I might as well let the computer play the game. If the algorithm is using a neural network, the computer will become just like me as time passes. The main difference between a good player and a normal one, is the difference from the nominal behaviour. Thus making this method of uterly useless.

Your computer doesn't predict what YOU do because it can see it in real time and has no need at all to know what you're going to do in the future. Your computer, however, has to predict what THE OTHER players do when your server connection is bad and the information about what others do around you is coming too slow or not at all. Thus, not exactly useless.

If you are lagging the server will switch you to a NPC until you packets get in. It is funny how academics like making things seems more complex then they actually are. Verses other way which generally keep you on your current path, which is easier to program.

From the abstract it looks like they are using neural nets simply as higher level approximations of the curve. Essentially just calculating higher order derivitives of position rather than using neural nets in a classification kind of way which what I would initially think of when it comes to neural nets.

They could put some work into the technology used to actually CONNECT to said servers. Increased compression, lowering latency all around, smarter load-balancing, making ISPs keep up with the times... Why not actually fix something instead of just putting a band-aid on it?

Details are a bit skimpy in the abstract, but if you do a bit of searching, you can find the presentation material. At the conference they showed a demo with 32 bots crammed in a pretty small map in Quake. On one screen they were running the original version, where it was really jerky with that many bots. On the other screen they were running their modified version, where the motion was perfect.

You know, the only real solution of the problem is to make your network latency 100ms. No other solution will work. Maybe the neural prediction thing works better than dead reckoning in some situtions, but it never will be anywhere near as good as playing on a fast network

Just do what Valve did with HL2. Remove prediction altogether by time-shifting all clients back by 2-3 server updates. That way everything the client renders has already happened, and there is no possibility of making a mistake.

I thought TF2 felt slow, now I know why.On another note, MMO's battles typically aren't based on player position. You hit a key for engage enemy, and wait for them (or you) to die: dodging will not help you. Whether or not you get hit is based on statistics, not on player position (well, unless you get far enough away to be out of range or behind a door).That's what was so fun about Diablo 2: It had FPS style dodging accompanied with team based questing/gameplay.Battles in D2 aren't just about your equip

Games like DAoC and Planet Side can already support hundreds (100 - 300) people at the same time with sides trying to fight each other. (Limit is no longer video cards)Other MMOs have failed miserably and have added something called "instancing" where they even instance peaceful zones. These type of crappy games with crappy programmers will not benefit from anything.

Pure first person shooters (Battlefield, quake) tend to limit it to 64 or 32, because they want to be more precise and send more detailed pac

The benefit if instances is that different groups can be going after the same objective at the same time. It eliminates camping for high level gear. I wouldn't play a game that didn't have control to prevent that kind of camping.

In that same game I could also participate in a 300+ world event.

"because they want to be more precise and send more detailed packets to show what the character is doing.

ah, your an idiot. For confirmation, I looked at some of your other posts.

The problem with MMO's are they often try and predict what the player is going to be doing. You often find yourself somewhere you are not expecting. In World of Warcraft this can bee seen by other players as rubber banding, you character moves forward and backwards erratically or in Dark Age of Camelot where players produce artificial lag which causes the same effect but the game allows you to do actions while you are lagged such as casting, changing directions and others.All predictions in MMO's save on b

For instance, say I'm playing a game of (Popular FPS A) with a bunch of people online, and I understand how the neural network works. Couldn't I just repeatedly move left to right in a jerky fasion for a bit, and then run straight toward my enemy? If they lag, the neural network computations will show me as moving left to right, where I'm actually just running straight...

The only time such reckoning really matters is in PVP, and most PVP players who know what they're doing jitter about like caffeine addled monkeys. Either the latency is low enough to get an accurate postion, or it's not and my largely random hammering of WASD as I try to move in and out of you viewing (casting, swing, etc.) arc isn't going to provide that much predictive information.