Jump to content
Ebola-Chan

make driving client side again

Recommended Posts

1 hour ago, Keshi said:

there isnt an issue with serverside-driving...the issue is driving with 200ms and 10.0 packetloss....

That is the issue with serverside driving, that's why they should implement clientside prediction, so the cars aren't a disaster when the game is lagging or you have high latency. Clientside cars is just a lol, but adding prediction would make them handle much more properly, like Source games which have the handling serverside but everything has clientside prediction, as is expected in the year 2018.

Share this post


Link to post
Share on other sites
6 minutes ago, killerskull said:

Do downvotes even lower ur positive rating? I feel it doesn't. 

no they no longer affect your rep

 

another thing removed due to certain people abusing it

Share this post


Link to post
Share on other sites
8 minutes ago, killerskull said:

Do downvotes even lower ur positive rating? I feel it doesn't. 

no

Share this post


Link to post
Share on other sites
1 hour ago, Similarities said:

There's a thing called clientside prediction, you don't ever want anything to be clientside lol, just add clientside prediction to the cars so that they all handle similarly regardless of ping.

I don't think it's as accurate as you think it is.  The issue isn't how you feel driving, it's how your driving is represented to everyone else.  GTA Online has this sort of prediction and half of the time cars are moving along smoothly for the driver, but for anyone watching him he's teleporting around, ramming into things... flying...

 

 

Share this post


Link to post
Share on other sites
12 minutes ago, BrandonBranderson said:

I don't think it's as accurate as you think it is.  The issue isn't how you feel driving, it's how your driving is represented to everyone else.  GTA Online has this sort of prediction and half of the time cars are moving along smoothly for the driver, but for anyone watching him he's teleporting around, ramming into things... flying...

 

 

That is not how clientside prediction works at all, all clientside prediction does is allow someone to move on their screen before the server has received the commands saying that they are moving, it exists when walking around in APB, it's why you can smoothly walk around on your screen and then suddenly get teleported backward or forward into something, because what the client and server see differ and the server places them where the server thinks they are (or last saw them), rather than where the client says it is to itself currently.

Share this post


Link to post
Share on other sites
5 minutes ago, Similarities said:

That is not how clientside prediction works at all, all clientside prediction does is allow someone to move on their screen before the server has received the commands saying that they are moving, it exists when walking around in APB, it's why you can smoothly walk around on your screen and then suddenly get teleported backward or forward into something, because what the client and server see differ and the server places them where the server thinks they are (or last saw them), rather than where the client says it is to itself currently.

so this would just cause warping with vehicles like we get on foot sometimes?

 

not sure i’d like that tbh

Share this post


Link to post
Share on other sites
1 minute ago, Similarities said:

That is not how clientside prediction works at all, all clientside prediction does is allow someone to move on their screen before the server has received the commands saying that they are moving, it exists when walking around in APB, it's why you can smoothly walk around on your screen and then suddenly get teleported backward or forward into something, because what the client and server see differ and the server places them where the server thinks they are (or last saw them), rather than where the client says it is to itself currently.

That's why it isn't implemented for driving. Cars travel much faster than players on foot do. In the time span the server receives the packets and then sends them out to everyone else, the car will be in very different places for you, the server-state, and everyone else's clients. Even just being on foot, we've all witnessed ourselves dying behind cover and that's due to the same thing. Imagine how drastically different car positioning would be in that amount of time. Also APB servers being at such a low tickrate could cause lots of issues in updating vehicle game-states. 

 

And as far as I know, racing games have quite a bit of issues online when it comes to competitive racing. 

Share this post


Link to post
Share on other sites

How accurate it is ought to be an implementation detail - even for on-foot games there's variation in prediction accuracy between titles. LO would simply need a solid implementation to use (probably expensive, probably worth it).

 

Also why is everyone bringing up GTA:O comparisons left and right? AFAIK all the game physics there are fully peer-to-peer, so that's like, a drastically different system top-to-bottom...

 

3 minutes ago, :^) said:

That's why it isn't implemented for driving. Cars travel much faster than players on foot do. In the time span the server receives the packets and then sends them out to everyone else, the car will be in very different places for you, the server-state, and everyone else's clients. Even just being on foot, we've all witnessed ourselves dying behind cover and that's due to the same thing. Imagine how drastically different car positioning would be in that amount of time. Also APB servers being at such a low tickrate could cause lots of issues in updating vehicle game-states. 

 

And as far as I know, racing games have quite a bit of issues online when it comes to competitive racing. 

Given how low vehicle top-speed in this game is I'd imagine it could still work, the best car in this game is barely getting 51MPH at best.

 

Right about the tickrate though, so, maybe a post-engine upgrade dream anyway

Share this post


Link to post
Share on other sites
2 minutes ago, :^) said:

That's why it isn't implemented for driving. Cars travel much faster than players on foot do. In the time span the server receives the packets and then sends them out to everyone else, the car will be in very different places for you, the server-state, and everyone else's clients. Even just being on foot, we've all witnessed ourselves dying behind cover and that's due to the same thing. Imagine how drastically different car positioning would be in that amount of time. Also APB servers being at such a low tickrate could cause lots of issues in updating vehicle game-states. 

 

And as far as I know, racing games have quite a bit of issues online when it comes to competitive racing. 

Cars really don't move fast enough for clientside prediction to be an issue, clientside prediction shows no issues in the source engine when moving at over double APB's fastest speed (upwards of 4000 HU/s, hammer units are 1 IRL inch, 4000 inches per second = 227mph), in the case of cars, interpolation and lag compensation would be more of a factor than clientside prediction, plus, you're acting like the delay is going to be bigger than it is, the delay for clientside prediction would be half of your ping (given that most people on Jericho are between 30-90ms, it'd be 45ms in the worst case, 100 for Aussies roughly), interpolation and lag compensation play a much, much bigger role than clientside prediction ever would when it comes to dying behind cover or dying when in vehicles, as those alone have more lenience than 100ms.

Share this post


Link to post
Share on other sites
5 minutes ago, Similarities said:

Cars really don't move fast enough for clientside prediction to be an issue, clientside prediction shows no issues in the source engine when moving at over double APB's fastest speed (upwards of 4000 HU/s, hammer units are 1 IRL inch, 4000 inches per second = 227mph), in the case of cars, interpolation and lag compensation would be more of a factor than clientside prediction, plus, you're acting like the delay is going to be bigger than it is, the delay for clientside prediction would be half of your ping (given that most people on Jericho are between 30-90ms, it'd be 45ms in the worst case, 100 for Aussies roughly), interpolation and lag compensation play a much, much bigger role than clientside prediction ever would when it comes to dying behind cover or dying when in vehicles, as those alone have more lenience than 100ms.

that’s enough to affect the outcome of a near miss imo, plus it would likely exacerbate the already irritating vehicle-kill-even-though-the-car-was-so-far-away issues

Share this post


Link to post
Share on other sites
20 minutes ago, BXNNXD said:

that’s enough to affect the outcome of a near miss imo, plus it would likely exacerbate the already irritating vehicle-kill-even-though-the-car-was-so-far-away issues

Not sure what you mean with the former, but with the latter, clientside prediction only affects the client doing the predicting (as in you yourself), being hit by vehicles when they are far away has nothing to do with another client's prediction and more to do with interpolation, and clientside prediction already exists for clients that are not in vehicles, so it would change absolutely nothing.

 

EDIT: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking#Input_prediction

This will explain clientside prediction to people who don't understand what I'm saying (as I'm giving a very basic idea of clientside prediction.)

Edited by Similarities

Share this post


Link to post
Share on other sites
3 hours ago, BXNNXD said:

no they no longer affect your rep

 

another thing removed due to certain people abusing it

 

Oh, I c

3 hours ago, BXNNXD said:

no

Oh, icy

Share this post


Link to post
Share on other sites
3 hours ago, Similarities said:

That is the issue with serverside driving, that's why they should implement clientside prediction, so the cars aren't a disaster when the game is lagging or you have high latency. Clientside cars is just a lol, but adding prediction would make them handle much more properly, like Source games which have the handling serverside but everything has clientside prediction, as is expected in the year 2018.

what i meant is. it should not be an issue if the servers aint getting DDoS'dby a group of 15years old every day...so in order to fix that, find a way to minimize the DDoSing and then i can drive with my 80ms 0packetloss again

Share this post


Link to post
Share on other sites
4 hours ago, MrChan said:

With APB's lag? You'd get this 24/7:

 

 

no.. nooo.. NOOO!!!!!

 

Image result for rage smash gif

  • Haha 2

Share this post


Link to post
Share on other sites
9 minutes ago, NopeTooFast said:

+1

 

i think isps should also be able to control your car position too

ISPs can already control your car position when you lose packets, as Jesus takes the wheel out of your hands.

Share this post


Link to post
Share on other sites
1 minute ago, Similarities said:

ISPs can already control your car position when you lose packets, as Jesus takes the wheel out of your hands.

i mean give them a terminal where that can decide if you steer left or right, stop accelerating, brake, reverse, etc

  • Haha 1

Share this post


Link to post
Share on other sites
4 hours ago, BXNNXD said:

that’s enough to affect the outcome of a near miss imo, plus it would likely exacerbate the already irritating vehicle-kill-even-though-the-car-was-so-far-away issues

Yep. Welcome to Racing Sim netcode:

 

 

Watch how the green car reacts when the black & cyan one (who jumped the start like a twat, btw) faceplants the wall. Now replace the green car with a nice, squishy APB player. 

 

That's an extreme example, I'll admit, but netcode contact is a thing. And that's on iRacing which has better netcode than any other sim I've played. A lot of other racing games know they can't compensate and get around the problem by having cars ghost out in certain conditions. The only thing in APB's favour is that cars are limited to something like 50mph where those guys are probably over 100 when shit hits the fan.

 

Vehicles in APB are idiosyncratic and weird. But they're largely fine once you get used to them. There's plenty of things that are far more broken that should be sorted before this is even considered imo.

Share this post


Link to post
Share on other sites

Fun fact - we did actually try client-side vehicle prediction during development at RTW. Most of the time it worked fine, but once in a while you have a situation where two cars clip each other at high speed and start flying through the air, and a second later you are suddenly back on the ground and driving as if nothing happened, because on the server you didn't actually collide. No matter how good your implementation, high speed physics can never be perfectly predicted with wildly fluctuating player pings and changing server tick rates, etc. Essentially, even though prediction might work most of the time, when it breaks it breaks so badly that it isn't considered worth it.

  • Like 10
  • Thanks 2

Share this post


Link to post
Share on other sites

With the issues that the game has, we should not add another one. The more things are client-side the more it can be abused. Think of lag-switches.

 

Also:

 

Share this post


Link to post
Share on other sites
10 hours ago, BXNNXD said:

tbh, aside from the brief server verification delay i think the vehicles in apb have pretty solid handling for the most part 

oh come on. it's just because we're used to the horrible driving feel lol

  • Haha 1

Share this post


Link to post
Share on other sites
1 hour ago, Usas said:

With the issues that the game has, we should not add another one. The more things are client-side the more it can be abused. Think of lag-switches.

 

Also:

 

 

Once again, that has absolutely nothing to do with clientside prediction.

1 hour ago, Aphadon said:

Fun fact - we did actually try client-side vehicle prediction during development at RTW. Most of the time it worked fine, but once in a while you have a situation where two cars clip each other at high speed and start flying through the air, and a second later you are suddenly back on the ground and driving as if nothing happened, because on the server you didn't actually collide. No matter how good your implementation, high speed physics can never be perfectly predicted with wildly fluctuating player pings and changing server tick rates, etc. Essentially, even though prediction might work most of the time, when it breaks it breaks so badly that it isn't considered worth it.

1

Now, this is the type of post I like to see, as it actually addresses the issue rather than "But it's clientside which means it's bad, clientside = bad right?" and it also gives a good reason as to why there isn't clientside vehicle prediction despite it existing in other places in the game like on foot, prediction errors are certainly a factor that can happen when the world simulated around you differs from the server, and this is exactly what that is. Thanks for the explanation as to why it doesn't exist currently.

Share this post


Link to post
Share on other sites
1 hour ago, Aeronaut said:

oh come on. it's just because we're used to the horrible driving feel lol

nah

 

aside from a few badly balanced vehicles (e.g. cisco) i very much enjoy the fact that apb has semi-realistic steering wheel turn speed and you cant just instantly rip a 90 degree turn at 50mph

 

apb vehicles are never going to stand up to any dedicated racing games, but most "similar" games (GTA, watchdogs, wildlands, etc) have cars that feel like cheap remote control toys

Share this post


Link to post
Share on other sites
1 hour ago, Similarities said:

Once again, that has absolutely nothing to do with clientside prediction. 

That is because I haven't commented on client side predictions, but on the general "make car driving client side".

But now we're talking about it, predictions have a chance of being incorrect.

 

How the cars are now, when you give input (i.e. press W for acceleration), you ask the server for permission to move the car. Server answers with permission granted, and your the car moves forward. Server tells everyone where the car is.

 

When the cars are client side, the client has to tell the server were the car is and the server forwards that data to other clients.

When the client is going to lose packets, it can't tell the server where the car is. As long as the client isn't giving different inputs during packet loss, client side prediction would work fine. Now, if the car is going straight, starts to lose packets and starts making a turn, the server wouldn't know what. Client side prediction would still show the car moving straight forward, even if it collided with the wall. Packet loss is over and then suddenly receives a different location of where the car is. If you were attacking that car at that moment it would disappear and appear somewhere else.

 

Compare it to a weather forecast, they can show you what the weather might be next week. The next day they might show a completely different or slightly altered forecast for that day. They have a week to predict and correct the forecast, and there will still be a chance for it to be wrong.

 

Now compare that to a online game, where it only has milliseconds to correct itself with inconsistent latency. Results will be all over the place. I don't know what the test environment was during development at RTW, but most likely local network. If that already showed issues, it would be worse over the internet.

Share this post


Link to post
Share on other sites
1 hour ago, Usas said:

That is because I haven't commented on client side predictions, but on the general "make car driving client side".

But now we're talking about it, predictions have a chance of being incorrect.

...

I thought you were talking about me, not cars being clientside, that's my fault, I'm well aware of the difference between client, server, and shared networking, as for clientside prediction, prediction errors occur when the server's world and the client's world simulate different things, and the client does something that did not happen on the server, these errors can be corrected by smoothing the movement between the client and server gradually, but it's always going to happen as you cannot tell what is going to happen on the server, the client simply simulates its command before it is processed by the server, with the server being authoritative on what happens, a dev discussed it above. 

 

With clientside prediction if the car is turning (and you are the driver) and the server continues to simulate something independently of the vehicle, of course, what you expect and the server expects occur differently, and the server has to teleport you backward (where you have already crashed into the wall), this is an error in prediction where the client and server world simulate independently and the server has to go "Woah, woah, woah, you haven't done that for me, come back" while the client is going "Yeah, well I turned on my screen.", naturally the best thing to do is to smooth out errors by gradually smoothing the client to where they belong, fortunately, since it is only for the client and not for other clients, the car would not teleport for another client's view, only yourself, as long as they are not forcefully simulating the player on the server regardless of when they last received a command, and if they are, then make the server authoritative over the driving, that way when the client stops lagging (or the server), the driver will be teleported to where he belongs on the server, rather than the server teleporting to where the client is.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×