Login

russian armor

Command Delay?

29 Nov 2013, 21:29 PM
#1
avatar of akula

Posts: 589

I remember a long time ago (well, a couple months maybe) Relic said they were looking into the command delay - the delay from the time you issue an order, IE: A move order, until the time the resulting action occurs. Has there been any updates on this and will it be fixed?
30 Nov 2013, 02:16 AM
#2
avatar of Turtle

Posts: 401

Yes. It's still being worked on, confirmed in an interview to a direct question about it.

The problem stems from the middle-ware they use. When dealing with stuff like that you have to either wait for the middle ware to patch, then integrate it, or you write your own.

There's other avenues to approach the issue, but those are just as difficult and require an incredible amount of time going through every interaction in the game with those middle-ware elements, as well as any other systems causing performance drops and input lag.

Not really an excuse, but it is an explanation of why it's taking so long. Technically this should have been done before release for a retail product.

Go take a look at the "Make Faster Game" video blogs for Planetside 2 to get an idea of how complex optimizations like this can be.
10 Dec 2013, 18:54 PM
#3
avatar of akula

Posts: 589

from the newest patch notes (today)


Improved unit responsiveness to player commands as squads will no longer wait for a transition animation to finish before carrying out a new command


Is this the change we've been waiting for or some cheap "hack" by Relic to attempt to improve things?
10 Dec 2013, 19:01 PM
#4
avatar of wooof

Posts: 950 | Subs: 1

that will help improve the delay, but it doesnt solve the issue of lag. this is solving an issue with animations. units completed an animation before starting a new one. this resulted in a .25 second delay for each action.

so if youre moving, you press stop, then throw a grenade, this would result in a .5 second delay before you start the throwing animation. lag from bad connections between players is unchanged though.
10 Dec 2013, 19:31 PM
#5
avatar of Inverse
Coder Red Badge

Posts: 1679 | Subs: 5

Lag is always going to be a problem for CoH2 because it's a game with a small but global playerbase. You can't region-limit players because it would take ages to find games, so you end up matching players in different countries or even different continents. People like to bitch about P2P, but that's not the problem at all. It's simple network logistics.

It was infuriating in CoH2 to issue a move order and see it clearly being followed (one or two men in the squad responding to the command), yet have half your squad continue on its previous path for the sake of completing an animation. That is the change referenced in the patch notes.
10 Dec 2013, 19:36 PM
#6
avatar of akula

Posts: 589

well any improvement is welcome. I wonder if Relic could comment if they are still working on any other improvements to command delay
10 Dec 2013, 20:33 PM
#7
avatar of Nullist

Posts: 2425

Permanently Banned
Sounds like a hack (literally, by cutting off the animation element), but if that means more responsive gameplay, thats win in my book.
1 of 3 Relic postsRelic 10 Dec 2013, 20:40 PM
#8
avatar of Noun

Posts: 454 | Subs: 9

jump backJump back to quoted post10 Dec 2013, 19:36 PMakula
well any improvement is welcome. I wonder if Relic could comment if they are still working on any other improvements to command delay


We are working on other improvements, but they aren't in a position where they're close enough to talk about.

It's also worth noting that command delay or input lag will always exist in everything to do with human and computer interaction. The goal is to get it to as close to unnoticeable as possible, which obviously we aren't at yet.

How ever until SkyNet wins and we're all machines, there's always going to exist a lag of some kind between human and computers.
10 Dec 2013, 22:39 PM
#9
avatar of Pred

Posts: 35

jump backJump back to quoted post10 Dec 2013, 20:40 PMNoun


We are working on other improvements, but they aren't in a position where they're close enough to talk about.

It's also worth noting that command delay or input lag will always exist in everything to do with human and computer interaction. The goal is to get it to as close to unnoticeable as possible, which obviously we aren't at yet.

How ever until SkyNet wins and we're all machines, there's always going to exist a lag of some kind between human and computers.


So basically this is a fancy "no, we have no intentions of fixing the current input lag"?
Seb
10 Dec 2013, 22:49 PM
#10
avatar of Seb
Admin Black Badge

Posts: 3709 | Subs: 2

There's no way to remove input lag.

Every single part between you and the game has a delay. Your screen has a delay of some ms before it renders what it has been asked to, your mouse has a delay before sending data to comp, your brain and eyes reaction have delay, your muscles have, the cpu and gpu have, the network has, etc.

Most importantly, you will always have a ping to the server (or, in this case, the other players). You have one in every single game, and there's nothing anyone can do about it. As stated already, it might be bad to some players on the other side of the world (maybe 200 or 300ms), and it's the most likely possible lag COH1 had. The only way to reduce it would be client/server with the server close to you, by region. Refer to Inverse post.

If the animation delay that was fixed in this patch is in the value of 0.5s (I don't know about it but I would assume), that is HUGE. It's 500ms. A ping starts to become bad above 100ms. All other causes I listed are usually below 100ms too. In this case, the animation would be the limiting factor and the cause of lag feeling by a significant margin.

There might be other issues due to poor communication process or other stuff, some might be fixables, and in the work by Relic. Maybe they are even more significant, I actually don't know.

What I know for sure though is that cancelling any animation that would take more than 100ms would be a huge improvement no matter what.
2 of 3 Relic postsRelic 10 Dec 2013, 22:55 PM
#11
avatar of Noun

Posts: 454 | Subs: 9

jump backJump back to quoted post10 Dec 2013, 22:39 PMPred


So basically this is a fancy "no, we have no intentions of fixing the current input lag"?


That's not what I said.

What I said, and what Seb said, is that there's always going to be input lag. There's input lag when you type on a web browser. There's input lag when you scroll on your iPhone. There's input lag in Call of Duty, Mario Kart, Starcraft, World of Warcraft and even Elevator Action.

Input lag is going to exist, the goal is to minimize it to the point where it's not noticeable by human beings. We're working to continue to improve it, and I think you'll see an improvement with this update. After that there's some more we're working on that Greg Wilson teased when he was on SNF a few weeks ago.

So we're working on making it better.

10 Dec 2013, 22:59 PM
#12
avatar of Pred

Posts: 35

jump backJump back to quoted post10 Dec 2013, 22:55 PMNoun


That's not what I said at all.


Well you said that you are currently working on other things. You also explained that there will always be "some" lag. I didn't see any "Yes, we are working on it", in your first post.

I have the impression that coh2 has quite a lot more input lag than any other rts.
But it is very good to hear that you are working on it, although there will always only be so much you can do when automatch matches me with someone in China. That is p2p right there.
10 Dec 2013, 23:04 PM
#13
avatar of wooof

Posts: 950 | Subs: 1

jump backJump back to quoted post10 Dec 2013, 22:59 PMPred


Well you said that you are currently working on other things. You also explained that there will always be "some" lag. I didn't see any "Yes, we are working on it", in your first post.

But it is very good to hear that you are working on it, although there will always only be so much you can do when automatch matches me with someone in China. That is p2p right there.


he said "we are working on other improvements". that means, "yes, we are working on it". he just left off the word yes because its implied.
10 Dec 2013, 23:11 PM
#14
avatar of Pred

Posts: 35

jump backJump back to quoted post10 Dec 2013, 23:04 PMwooof


he said "we are working on other improvements". that means, "yes, we are working on it". he just left off the word yes because its implied.


Oh, ok i thought he was reffering to other improvements to the game besides fixing lag. That seems to have been a missunderstanding on my part then. Although i still question why in 2013 p2p is still used over servers.
10 Dec 2013, 23:15 PM
#15
avatar of Senseo1990

Posts: 317

I think we all simply want the input lag to be like it was in vCoH: Pretty much not noticeable. If you do that Relic, everybody will be fine
10 Dec 2013, 23:29 PM
#16
avatar of Inverse
Coder Red Badge

Posts: 1679 | Subs: 5

Because client-server in an RTS game is impractical. There isn't a single RTS game on the market right now that's client-server. The closest is SC2, and even then the server is only used to validate and route information. No calculations are being made server-side.

Why? Think about it. An RTS works by communicating commands between players. Each player has an exact copy of the game state, and simply processes the commands (move orders, build orders, etc.) it receives from the other player(s). In an RTS, though, that can mean processing potentially hundreds of individual commands at once, since there can be dozens of units on the screen and commands being made at any given time.

When all you're doing is sending basic commands, that's actually really easy to do. It only takes a few hundred kilobits a second to relay that information to a player. But if you try to get a server involved, everything increases exponentially. You have to send your commands to the server. Then the server has to process the game state with those commands and determine the state of the game at the next tick. Then the server has to send the entire game state to both players. Both players have to receive that game state so that they can continue playing. And because the server is running the game and the clients are just running shell instances of it, the information that has to be sent is exponentially larger, and grows rapidly the more units the server has to process.

That's why client-server doesn't work in RTS games. SC2 compromises nicely by routing messages through servers, which makes drop detection and some aspects of anti-cheat better, but doesn't do anything about latency. The only reason SC2 has better latency in general is because matchmaking is limited to the server you're on, and the player base is so much larger so the matchmaker can favour lower-ping matchups much easier.

On the other hand, client-server works great in MOBAs like LoL and Dota 2 because there are far less player-controlled units per game (usually 10-20, up to a max of about 50 or so in a 5v5 match) and far larger game sizes (pretty much every match is a 5v5). This means you're using less server CPU time and bandwidth for 10 players in a MOBA than you would for 2 players in an RTS. Economically and technically, it just doesn't make sense.

EDIT: For another perspective, read the first answer in this thread: http://gaming.stackexchange.com/questions/65049/how-long-is-starcraft-2s-typical-input-delay-compared-to-other-competitive-game
He explains it a lot better that I could.
10 Dec 2013, 23:48 PM
#17
avatar of Pred

Posts: 35

jump backJump back to quoted post10 Dec 2013, 23:29 PMInverse
Because client-server in an RTS game is impractical. There isn't a single RTS game on the market right now that's client-server. The closest is SC2, and even then the server is only used to validate and route information. No calculations are being made server-side.

Why? Think about it. An RTS works by communicating commands between players. Each player has an exact copy of the game state, and simply processes the commands (move orders, build orders, etc.) it receives from the other player(s). In an RTS, though, that can mean processing potentially hundreds of individual commands at once, since there can be dozens of units on the screen and commands being made at any given time.

When all you're doing is sending basic commands, that's actually really easy to do. It only takes a few hundred kilobits a second to relay that information to a player. But if you try to get a server involved, everything increases exponentially. You have to send your commands to the server. Then the server has to process the game state with those commands and determine the state of the game at the next tick. Then the server has to send the entire game state to both players. Both players have to receive that game state so that they can continue playing. And because the server is running the game and the clients are just running shell instances of it, the information that has to be sent is exponentially larger, and grows rapidly the more units the server has to process.

That's why client-server doesn't work in RTS games. SC2 compromises nicely by routing messages through servers, which makes drop detection and some aspects of anti-cheat better, but doesn't do anything about latency. The only reason SC2 has better latency in general is because matchmaking is limited to the server you're on, and the player base is so much larger so the matchmaker can favour lower-ping matchups much easier.

On the other hand, client-server works great in MOBAs like LoL and Dota 2 because there are far less player-controlled units per game (usually 10-20, up to a max of about 50 or so in a 5v5 match) and far larger game sizes (pretty much every match is a 5v5). This means you're using less server CPU time and bandwidth for 10 players in a MOBA than you would for 2 players in an RTS. Economically and technically, it just doesn't make sense.

EDIT: For another perspective, read the first answer in this thread: http://gaming.stackexchange.com/questions/65049/how-long-is-starcraft-2s-typical-input-delay-compared-to-other-competitive-game
He explains it a lot better that I could.


Thanks for the detailed explanation!
10 Dec 2013, 23:50 PM
#18
avatar of DietBrownie

Posts: 308

jump backJump back to quoted post10 Dec 2013, 23:29 PMInverse
Because client-server in an RTS game is impractical. There isn't a single RTS game on the market right now that's client-server. The closest is SC2, and even then the server is only used to validate and route information. No calculations are being made server-side.

Why? Think about it. An RTS works by communicating commands between players. Each player has an exact copy of the game state, and simply processes the commands (move orders, build orders, etc.) it receives from the other player(s). In an RTS, though, that can mean processing potentially hundreds of individual commands at once, since there can be dozens of units on the screen and commands being made at any given time.

When all you're doing is sending basic commands, that's actually really easy to do. It only takes a few hundred kilobits a second to relay that information to a player. But if you try to get a server involved, everything increases exponentially. You have to send your commands to the server. Then the server has to process the game state with those commands and determine the state of the game at the next tick. Then the server has to send the entire game state to both players. Both players have to receive that game state so that they can continue playing. And because the server is running the game and the clients are just running shell instances of it, the information that has to be sent is exponentially larger, and grows rapidly the more units the server has to process.

That's why client-server doesn't work in RTS games. SC2 compromises nicely by routing messages through servers, which makes drop detection and some aspects of anti-cheat better, but doesn't do anything about latency. The only reason SC2 has better latency in general is because matchmaking is limited to the server you're on, and the player base is so much larger so the matchmaker can favour lower-ping matchups much easier.

On the other hand, client-server works great in MOBAs like LoL and Dota 2 because there are far less player-controlled units per game (usually 10-20, up to a max of about 50 or so in a 5v5 match) and far larger game sizes (pretty much every match is a 5v5). This means you're using less server CPU time and bandwidth for 10 players in a MOBA than you would for 2 players in an RTS. Economically and technically, it just doesn't make sense.

EDIT: For another perspective, read the first answer in this thread: http://gaming.stackexchange.com/questions/65049/how-long-is-starcraft-2s-typical-input-delay-compared-to-other-competitive-game
He explains it a lot better that I could.


As well, COH2 playerbase is too small so dedicated servers wont fix anything. Company of Heroes 1 had a much larger playerbase especially due to the steam sales, so finding a match in your local area was easy.

I think all games searching should be limited to the continent where you are playing at, or at-least give us that option. This game has a small playerbase but it's spread out, so we constantly play against people who live in different continents creating this lag. Please implement regional search, I rather wait for a good match instead of a 4 second delay match
11 Dec 2013, 00:14 AM
#19
avatar of Jinseual

Posts: 598

i'm glad that inverse took his time to explain this kind of stuff to us, since he has a lot of coding experience.

now people should have a better understanding on why dedicated servers won't work.
11 Dec 2013, 00:54 AM
#20
avatar of akula

Posts: 589

so how are the improvements with this update? any noticeable lag reductions?
1 user is browsing this thread: 1 guest

Ladders Top 10

  • #
    Steam Alias
    W
    L
    %
    Streak
Data provided by Relic Relic Entertainment

Replay highlight

VS
  • U.S. Forces flag cblanco ★
  • The British Forces flag 보드카 중대
  • Oberkommando West flag VonManteuffel
  • Ostheer flag Heartless Jäger
uploaded by XXxxHeartlessxxXX

Board Info

879 users are online: 879 guests
0 post in the last 24h
8 posts in the last week
34 posts in the last month
Registered members: 49113
Welcome our newest member, Dedek545
Most online: 2043 users on 29 Oct 2023, 01:04 AM