5 ms·
This stuff always seems to be just around the corner, however there's some fundamentals that are always going to keep it from working. 1. Some games just aren'
by vvanders 10y ago
This stuff always seems to be just around the corner, however there's some fundamentals that are always going to keep it from working.
1. Some games just aren't built for any latency. I'm talking fighting games(1 frame windows), majority of FPS' and anything that has a reaction instead of a prediction game model. These can be made network compatible with a time-rewind gamestate resolution(which many good ones do), however they aren't drop-in.
2. The market that's interested in this tends to be much more demanding than your traditional consumer. Drop ~150ms of packets at a critical time? You've got a really frustrated customer where a game designed for network degradation will handle this gracefully.
Kudos to them for trying but you're not dealing with just technical issues, there's fundamentals of design that need to be adjusted for that can't be done without direct developer involvement.
- EGreg 10y ago1) You can simply have vector clocks, and resolve differences like anything else. Most of the time the game's prediction would be correct. Sometimes there would be a small adjustment. 2) Yes, anything real-time is like this.
- felipesoc 10y agoPrediction requires full game emulation on client, defeating the purpose of streaming.
- EGreg 10y agoIt doesn't defeat the purpose of streaming. You don't have to emulate everything in the game, just everything in your vicinity that can possibly affect what you see and hear.
- stupidcar 10y agoThat is how client-server games already work. The server has the full world state, and each client has a subset necessary to render the world for that player. Ideally the absolute minimum subset, so as to reduce the potential for cheating (wallhacks, etc.). The purpose of streaming is to remove the need for the simulation and rendering at all. The client is a dumb terminal that just renders frames and records input. The moment you start making the client smart again — making it aware of a subset of the world state, making it do its own rendering based on the input — you've just reinvented current client-server gaming.
- AstralStorm 10y agoMaybe with remote rendering though. Which has advantages already, such as ease of spectating, lack of multi-GB texture downloads. You still get to run a physics model and game logic though and that is a non-neglible part of modern games.
- felipesoc 10y agoThat would be extermely complicated and would require additional support from every game. Streaming right now takes every frame, compresses it and forwards it, as simple as that and works for everything.
- felipesoc 10y agoThe cost you are talking about is only for physics and logic in multiplayer games, it doesn't apply to single player games. And even then it is negligible compared to the biggest cost in gaming: rendering. Prediction requires rendering being done on the client, which requires a hefty video card and defeating the purpose of streaming.
- vvanders 10y agoExcept you don't have access to game state in these cases so there's no adjustment that can be made. You can only move forward in the frames you display. You can't walk back in time to evaluate a player's action in relation to their latency and then reconcile game state with all other clients.
- EGreg 10y agoYes you can. When the server sends the "official" record of moves made, if the client detects any discrepancy with expected results, it resets the game to a slightly earlier time and replays the "real" moves to reach the current point. All this is done instantaneously, and only at the end is the interface refreshed.
- vvanders 10y ago> resets the game to a slightly earlier time and replays the "real" moves to reach the current point. That's exactly what properly engineered network games do. However we're talking about video streaming here, in which you don't have access to any game state. It's not possible to do without the developer going in and adding specific feature support for your streaming service.
- iampims 10y agoGC of vector clocks is a major issue for highly concurrent systems.
- EGreg 10y agoYes you are right, but in this case we have a central server farm AND clients can time out. The server can drop the vector clock of all connected clients for tick X once all clents receive tick X updates or time out for tick X.
- pshc 10y agoCan you go into more detail with (1)? It's unclear to me how vector clocks could help with, say, a fast-paced FPS. The "small adjustment" might often be bringing a dead character back to life, if his bullet packet's vector clock claims he shot first. (Hack potential, too...)
- EGreg 10y agoThere is always hack potential. All the server can do is make sure that the claimed move is legal (eg fits the rules of chess) and realistic (check a string of inputs to see if they probably have been made by a human). As for the adjustment... Yes bringing a character back to life after a momentary error, in one place on the map, as seen by one person, is a small adjustment that happens rarely.
- Maakuth 10y agoI don't disagree with you, but there is multi-ms latency typically in local setups as well, so certainly some latency must be tolerated by basically all the games. Carmack had an interesting point about this: http://superuser.com/questions/419070/transatlantic-ping-faster-than-sending-a-pixel-to-the-screen http://superuser.com/questions/419070/transatlantic-ping-fas...
- vvanders 10y agoSure, but as they allude to in that article local latency is consistent(dropping a frame in games is considered a cardinal sin for anything competitive). Game design is built with these latencies into account, if people were to see the raw network updates they'd be shocked at how jerky and unplayable it is. Generally if you're building a game to be tolerant of network latency you want a design where you're trying to be predictive than reactive. The former tolerates latency well since you're trying to guess where something will be in the future. The latter has latency in the feedback loop which is incredibly painful without some complex(time-rewind) mitigation measures.
- paulhodge 10y agoThe games you're talking about (competitive games, games where 1 frame drop is unacceptable) are a very small & niche part of the market. Look specifically at modern consoles- every console has builtin architecture that leads to a minimum input latency of 67ms. The game can add more latency (and most do), and a lot of popular TVs add more latency on top of that. Here's a database of game input latencies, it shows that even a lot of successful games have latencies of above 100ms: http://www.displaylag.com/video-game-input-lag-database/ http://www.displaylag.com/video-game-input-lag-database/ So if you're talking about the "highly latency sensitive" players, then by definition those are only PC gamers, and only a small fraction of those players. The addressable market of gamers who tolerate 100+ ms of latency is very large, definitely large enough to build a business on top of.
- vvanders 10y agoSo the point I was making(and a little poorly on re-reading) is that latency is fine up to a point(about 200ms) as long as it's consistent with no jitter. Input systems -> rendering fall under that category, you don't have your TV dropping frames or delivering them late. You can adjust for a constant latency and "lead" it, which is why game design that's predictive works so well in multiplayer. Latency sensitive players are actually large part of the market, any action based multiplayer game will fall under that category, which includes FPS games which make up a large portion of game revenue. About 10% of the market makes 90% of the revenue so missing certain use cases excludes a large chunk.
- chrisd1100 10y agoI don't disagree completely. A certain subset of gamers (the hardware enthusiasts, pros) will NEVER use something like this. But certainly over wired LAN it does offer near native performance for most games, past the threshold where many gamers would even be aware they were playing remotely. The real questions are: how good will the internet get, and how quickly will it get there?
- Ph0X 10y agoWhile it's true that quite a few games (especially multiplayer/competitive games) have strict latency requirements, those are far from being all the games out there. I think this model has many big features that makes it a worthy, even if it's not for everyone. Here's a few obvious ones: - No download or even load time, jump straight in the game - Can play on almost any device, even mobile - Online co-op/multiplayer for local only games - Easy to spectate friends (don't need good upload speed) So if you are a gamer who plays a moba/fps every single day, then sure, having your own rig is nice. But if you're someone who likes playing the latest single player story game, or some indie games, but don't want to invest into a gaming PC/console every few years, this model could be very useful.
- hinkley 10y agoNetworking trends in computers operate in a cyclical pattern. At some point, and probably soon since we're now overdue, we will be talking about 'private clouds' or 'home servers' and houses having one expensive, modular computer and a lot of tablets and televisions being driven off of it. In that world, this sort of technology could be adapted to shipping video a short distance, say less than 10ms away. As a platform instead of a service these sorts of things might work as well as a port of the game to your platform of choice. You throw your playstation 5 into a closet in the basement and you can play games anywhere in the house, or maybe at your friend's house a couple blocks over.
- Neeek 10y agoIsn't this already happening? I stream games to devices around my house from my office where I have my desktop, and a small Debian server as a media server, mumble hosting and the occasional chivalry or CoD4 server with friends. I get that the server has a bit of a barrier for entry, but the game streaming, that's just Steam. Granted you need some kind of i386 or x86_64 device at the streaming end that can install steam.
- hinkley 10y agoOh my, yes. I had forgotten that Steam streaming was live now. But that's just Steam. Expand that to everything in a couple of years, and you're there. Maybe Valve could get into that business themselves.
- Neeek 10y agoYeah, it's technically here with media servers too but the barrier for entry is still higher than your average Joe will bear. The idea of an out-of-the-box solution has been tossed around here a few times I think; a little server that manages networking, storage and other services for your home. One that just works after a simple gui walkthrough for setup, and doesn't make us so dependent on cloud services that exist to sell advertising space.