Loading...
  OR  Zero-K Name:    Password:   

Desync widget

34 posts, 1200 views
Post comment
Filter:    Player:  
Page of 2 (34 records)
sort
9 years ago
New chat is not showing desyncs by default, which is fine. But, there should be widget popup showing player that he was desynced, it should not be hard to implement and would save/add some troubles.
+0 / -0
Play supreme commander a few times with desync... youll grow to resent that idea.
+0 / -0
9 years ago
Doesn't Desync = !Exit because the game is fucked and there is no way to fix it?
+0 / -0
FIrankFFC
9 years ago
Disable new chat and use chili
+2 / -3
9 years ago
You dont get it, some players dont know what desync means. When they desync, there should be one time pop up telling them what is going on and how can they solve it.


Otherwise, they will just keep wondering why is noone mooving and units are stockpiling.
+1 / -0
Press F8 for console. It shows only system things like slowing down game, desyncs etc etc etc
+0 / -0

9 years ago
https://github.com/ZeroK-RTS/Zero-K/issues/201
+1 / -0


9 years ago
quote:
You dont get it, some players dont know what desync means. When they desync, there should be one time pop up telling them what is going on and how can they solve it.




There you go.
+13 / -0

9 years ago
what happened to poor nubtron? is it forgotton?
+1 / -0
quote:
Press F8 for console. It shows only system things like slowing down game, desyncs etc etc etc.

The new chat + console enabled takes like half of the screen, so basically you are meant to play with the console disabled, and using it only to debug.
The problem with the new chat is that it hides many important game info, and the console which shows them is invisible by default.
Since the new chat was added I frequently see people not reacting to imprortant messages, such us when game speed was set to 0.7, or a player left, and on top of that the desyncs.
When in one game I realized I missed a such a message I immediately disabled the new chat and turned back the old one. Now that I can see all the messages again, while some players don't, I see how much harm the new chat does, where people don't react to game speed accidentally set to 0.7 unless you tell them as spec, or don't realize when a player has dropped.
+2 / -0


9 years ago
quote:
Since the new chat was added I frequently see people not reacting to imprortant messages, such us when game speed was set to 0.7, or a player left, and on top of that the desyncs.
When in one game I realized I missed a such a message I immediately disabled the new chat and turned back the old one. Now that I can see all the messages again, while some players don't, I see how much harm the new chat does, where people don't react to game speed accidentally set to 0.7 unless you tell them as spec, or don't realize when a player has dropped.

List of stuff that is not filtered by new console needs to be extended.
+5 / -0
quote:
The new chat + console enabled takes like half of the screen

Why you so sad? QQ

+0 / -0
FIrankFFC
9 years ago
Wtf is that metal bar?
+0 / -0
That metal bar is the Economy Panel currently in testing. Thanks for testing it, Failer.

Also, I see speed messages in my main chat window (you'll notice that when I change speed in my replay casts), so I'm not sure what is going on with default filter settings. Speed should definitely be shown by default in the main chat. Desyncs are probably best served by a separate window popping up to tell the player. I'm not sure if leaving and rejoining would fix it, but I doubt it, so putting a button on that window to call exit seems the most sensible option.

Also, general game UI rule: the user shouldn't need to know special text commands at all.
+2 / -0


9 years ago
quote:
Desyncs are probably best served by a separate window popping up to tell the player.


Please! No intrusive popups! Its one thing when the desync is in chat where its not taking up more space in the UI.. but its another to have it pop up suddenly on your screen, inhibiting your ability to command units / observe. Imagine playing a game, ordering your glaives around to shoot enemy mexes / whatever in a micro intensive battle. Suddenly a wild popup appears! Its blocking your ability to see what's going on / order units around! It was annoying enough in supreme commander and was one of the features I loved about Spring compared to supcom (next to the handling of latency). Don't take this away!
+0 / -0
As far as I understand, once a desync happens the game is null and void. Attempting to continue playing is futile. If that's not the case, then that still means the player will need to leave and rejoin, hopefully getting the simulation right on the catchup (doubt it, simulation is local AFAIK). Either way, there's no reason for that player to continue playing. An intrusive popup telling them as much would be a courtesy to their time.

If I'm wrong, and desyncs are recoverable without any player intervention, then having it not be intrusive makes sense.
+3 / -0
9 years ago
what I don't get is why there's no state stored somewhere that can be "flashed" onto each connected client if one of them is misbehaving
+0 / -0
Because a fundamental part of peer-to-peer architecture is that all people who are connected are considered equal. Unlike in a client-server architecture, no system is doing the heavy lifting and just leaving the other systems to handle rendering and sending inputs.

Small networking basics lesson below:

The advantages of peer-to-peer are that it does not require a lot of dedicated computing power to run for anyone (unlike a server), and reduces the amount of network traffic, as no state information needs to be sent to anyone.

The disadvantages of peer-to-peer are that there is no canonical state to work from, and the number of network connections is proportional to the square of the number of players (everyone connects to everyone else). Because of this, of RTS games, only those designed for massive numbers of players (Planetary Annihilation) or with computing requirements that can only be reasonably expected out of a relative handful of people (Achron) opt for client-server architecture. Others just use peer-to-peer because the sim is simple enough to reasonably work for everyone, but involves enough objects that state transfer is very wasteful, but involves so few players (usually 2-4) that the burden of picking a server (since the server would have 0 lag, so that unfairness is a problem that requires a third party) isn't really worth anything compared to the ease of just connecting the players to each other.
+0 / -0
I think you are confusing some things here, CArankAdminShadowfury333.

Spring is not peer-to-peer (so no quadratic scaling of network connections) because every packet is sent from one client to the spring host and then from the host to all clients. The spring server still doesn't run the simulation and so has no clue what's going on until a client says "I won!", so similarly all clients are equally "right" due to a lack of a canonical state.
(I apologize for calling everything "spring server" and "spring host" even if there's special names for them).

Spring uses synced simulation. In video encoding terms, that's basically purely P frames.
Since transferring the full game state after every action is infeasible for virtually any real time multiplayer game (you can probably get away with it in turn based games like chess), almost every contemporary multiplayer game relies on synced simulation to a certain extent, although most newer games include having certain states transmitted for replay (and anti-desync) purposes. Examples include SC2, DotA 2, Path of Exile and many more.
In video encoding terms, that's what I frames are used for.

Running synced simulations in a peer-to-peer environment sounds like hell to me. If you have a server, then all packets are distributed in a defined order (and are thus received by the clients in a set order). Not sure how P2P would handle that.
(Note that this implies that each client is only allowed to execute actions after the host has received the respective packet and returned it, which means that the game can feel "stiff" to control if your latency is higher. Client prediction is a common technique to work around this).


My point is, P2P or dedicated hosting are not directly related to how you run your simulation of the game. But spring does not use P2P, and thus P2P is not the reason for desyncs.

Basically, you can run synced simulations with or without the server also running the simulation (I reckon TF2 hosts would run a simulation of their own, but I'm not sure). Spring (and e.g. Warcraft 3) doesn't, so desync is an issue (and replays can only play forward).

Do you have an example of a game that uses P2P hosting? I'd be interested to learn about how to maintain consistency in that...
+2 / -0


9 years ago
I suspected that Spring used a hybrid system of some kind (it does a certain amount of rollback, and massive games do work), but peer-to-peer lockstep networking has been fairly common for RTS games for the longest time, Supreme Commander being just one example. The short answer to how synced peer-to-peer simulations work is that the game state is simulated by each player using the exact same data and code, thus arriving at the same state. (floating point numbers can throw a wrench in it unless massive care is taken to stick to the standards-defined operations of +,-,*,/, and sqrt)

Regardless, there is no canonical state, and the simulation is run such that it is functionally equivalent to the typical p2p setup. I suppose if the autohost computer ran the game too then it would provide a canonical state, but that would probably make the springrts/Zero-K servers come crashing down.

I'd have to look into how SC2 and DotA 2 implement their netcode (assuming it is even public knowledge), but from your comments it sounds like newer games are trying to get away from lockstep synchronization and more towards a more asynchronous setup with consistency checks and rollbacks when state goes out of sync. Searching up these games and their netcode on Google doesn't provide much to support this, though. Fighting games (particularly ones that use GGPO) are the only genre I know to actually work with rollbacks, and that requires taking periodic snapshots of game state to roll back to, which is a lot of data for an RTS game.
+0 / -0
Page of 2 (34 records)