Even in an online FPS all your inputs need to be sent to a server running the game logic so what you're seeing is not an actual state of the game but rather the predicted one. I think it would make sense to have a competetive game run all it's logic and rendering on a single machine for all the players in a given match so that it works a bit like a split-screen - the only difference being that instead of showing it on a single combined screen it would send those screens to remote players. This way a lot of problems with latency and movement prediction would be gone. Also cheating would be impossible which is a good enough reason to do it on it's own.
For things you can't control, like other players, prediction works fine and can be almost entirely invisible when well done. But prediction doesn't work fine with things you control, like your own character/weapon, because it feels very wrong when you send input and don't get an immediate response.
So for instance imagine you're playing an FPS and if you pressed the fire button, the weapon didn't fire until that packet traveled to the server, was processed, scene rendered, and finally returned. An extra 100ms or whatever might not seem like much, but it nonetheless feels very wrong, and also can have a majorly detrimental effect on skilled players' ability to play the game because you're basically adding that time to their reflex rate. And 100ms is more of an aspirational goal than a typical norm. Stadia, for instance, had latency that could reach upwards of 250ms.
> like your own character/weapon, because it feels very wrong when you send input and don't get an immediate response.
Nothing says you can’t do some amount of local rendering to help with that feeling of prediction.
> and also can have a majorly detrimental effect on skilled players' ability to play the game because you're basically adding that time to their reflex rate.
Professional twitch FPS gamers aren’t the target market. The target market is casuals who just want to pick up and not fight with installs, disk space, updates, etc etc.
The problem is that things are dynamic. Pressing fire does rather different things if the gun is loaded or empty. You might argue then you could just start doing some small amount of local computation, but then this small amount rapidly grows to a not so small amount because you bump into these issues endlessly and you end up learning why so much is done locally on most games to the point that cheating becomes possible.
It's also not just 'professional twitch FPS gamers' that this is an issue for. If you get anywhere near the latency that the Stadia had in certain games (280ms in that article) then that is going to be very jarring even to the most casual gamer. That's less than 4 frames a second! It's going to feel like your character controls like a tugboat. Even at more reasonable latencies you still end up with some significant frustration in games where time matters.
And now a days there's basically zero friction in gaming even on PC. You buy a game with one click, you install with one click, you're playing, often in a matter of seconds.
What if you render a spherical view from player's standpoint on a server and then merge it with locally rendered hud + weapon? The biggest source of cheating is that your pc knows the position of other players, only rendering your local state locally would make this kind of cheats impossible while maintaining ms-level response to actions like shooting and looking around (moving has a lot of inertia anyway).
Imagine you're at the corner just before a hallway and you want to quickly peak around the corner where you think an enemy might be. If you didn't have local copies of player locations, then when you look around that corner you might not see anything even if there's a guy right there. At best he'd do this weird pop-in thing which would look awful.
Maybe but VR FPS isn’t such a huge category. The biggest problem there I suspect is almost certainly variable lag (particularly random spikes) as that’s harder to compensate.
I love being downvoted for this statement by people who don’t know what I had worked on in the past.