Have anyone heard anything official from Blizzard on this issue? The Galaxy Editor is already amazing, but it would be immensly powerful if WASD movement was lag free in Multiplayer.
Why does the lag happen anyway? Is it because too much information gets handled server-side?
Battle.net has enforced latency just like wc3 did. I don't know if this alone is responsible, but even if they fixed "other" lag this would still remain.
The lag occurs because SC2 is an RTS, thus has synchronized updates (everything is exactly the same on all systems at the same time) while FPSes have asynchronous updates. In any event, I don't believe its a simple fix, and it isn't because Blizzard forces this lag upon us, the game as it is not designed to handle FPS maps via Bnet.
Also, Bnet's enforced latency is like 125 ms. Don't believe that's the real issue here.
No, as the SC2 engine will never have client side prediction and thus the effect of your input is always delayed by, at the minimum, a round trip to the server and back.
Will Blizzard eventually allow you to set up hosting servers outside of battle.net, or will Blizz intentionally disallow any multiplayer games outside of battle.net?
Guys the only way to makle lagless fps maps is if blizzard would allow us to control the net traffic. In RTS games almost all the information must be kept synchronized, while in FPS games some information is kept synchronized and most is just local. Because of this synchronization the game uses more net traffic than we should.
The best way is to make FPS maps at the slowest gamespeed possible and make al interacting objects act fast within that realm, that would reduce net traffic.
One of the things i am noticing with WASD movment is that SC2 is not really using the commands as a static button press. In Hungry Baneling if you pay attention to the bottons available for movment under the Baneling UI, the "MOVE" button is constantly flashing. This tells me that the WASD movment is not movment at all but a command that says to move in one direction a fraction of a distance then do it again, over and over again. This would account for a good majority of the lag as the game is having to "think" about each movement fraction every time. Perhaps there is a way to actually tell the game that if the button is pressed to just continue moving -1 or 1 in the dirction pressed until the button is released. Not to check which direction is being pressed so many times a second.
Guys the only way to makle lagless fps maps is if blizzard would allow us to control the net traffic. In RTS games almost all the information must be kept synchronized, while in FPS games some information is kept synchronized and most is just local. Because of this synchronization the game uses more net traffic than we should.
SC2 needs to synchornize everything, that's how it works. If we were allowed to choose what to synch and what not we'd get disconnects and server splits all the time. Other games (most online fps) synchronize a lot less, but they're specifically programmed to be like this.
This would account for a good majority of the lag as the game is having to "think" about each movement fraction every time. Perhaps there is a way to actually tell the game that if the button is pressed to just continue moving -1 or 1 in the dirction pressed until the button is released. Not to check which direction is being pressed so many times a second.
A thought: Either you can enforce a 125ms lag in your triggers, or you can check constantly whether a button is pressed. Or maybe I'm completely wrong :P
One of the things i am noticing with WASD movment is that SC2 is not really using the commands as a static button press. In Hungry Baneling if you pay attention to the bottons available for movment under the Baneling UI, the "MOVE" button is constantly flashing. This tells me that the WASD movment is not movment at all but a command that says to move in one direction a fraction of a distance then do it again, over and over again. This would account for a good majority of the lag as the game is having to "think" about each movement fraction every time. Perhaps there is a way to actually tell the game that if the button is pressed to just continue moving -1 or 1 in the dirction pressed until the button is released. Not to check which direction is being pressed so many times a second.
Sorry to disappoint you. There just is no way. A good movement system HAS to be done with the KeyPress events. And if you have KeyPress events ANYWHERE in your system it'll suffer from lag.
Sorry to disappoint you. There just is no way. A good movement system HAS to be done with the KeyPress events. And if you have KeyPress events ANYWHERE in your system it'll suffer from lag.
I wouldn't say it can't be done completely. I spent two days working on a non-Keypress event WASD movement system. Using ability hotkeys I was able to get the unit to move well in all directions (including diagonal). The problem was when holding down a hotkey, then pressing and holding another hotkey, the original hotkey would no longer fire until you released it and pressed it again. This is the only problem I could not overcome with non-Keypress event movement. However, it could be useful in some situations where you needed no diagonal movement or in any situation where you dont need to press two of the directions at once. This would also work with a camera look system where the unit is turned by camera angle. Though it would be nice to make keypress lag free......
I don't see why the lag has to be so large. I regularly play a third-person shooter game on a European server (I live on US East coast) with lag at most 150ms, which is very acceptable. I actually coded my own client for the game, so I know how its protocol works: the client simply sends any mouse/key movements that occur to the server, which then incorporates them appropriately. The changes are then noticeable on the next frame that the server sends to the client. This is not a client-side protocol at all: the game state is completely determined by the server, the client is only responsible for sending player inputs and receiving game state frames from the server. I don't see why Blizzard doesn't do this, as it's probably the simplest server-client architecture possible, besides being much more efficient than whatever is currently done.
SC2 is not the problem. Bnet is. When playing Wc3 WASD maps, and suck things, it was lagg free. Over bnet it had lagg..
So, bnet is actually not that good feature... I bought Wc3, but never played over bnet. Only LAN, and over virtual lan softwares(even that was faster than bnet).
And yet people seem to really want to make their WASD maps.
My question is why aren't WASD designers aiming for the singleplayer crowd? It would work great for that.
One of the things i am noticing with WASD movment is that SC2 is not
really using the commands as a static button press. In Hungry Baneling
if you pay attention to the bottons available for movment under the
Baneling UI, the "MOVE" button is constantly flashing. This tells me
that the WASD movment is not movment at all but a command that says to
move in one direction a fraction of a distance then do it again, over
and over again. This would account for a good majority of the lag as the
game is having to "think" about each movement fraction every time.
Perhaps there is a way to actually tell the game that if the button is
pressed to just continue moving -1 or 1 in the dirction pressed until
the button is released. Not to check which direction is being pressed so
many times a second.
If you don't tell the unit to loop a move command then you will have to construct a way to handle collisions on your own, so that's a dumb idea.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Have anyone heard anything official from Blizzard on this issue? The Galaxy Editor is already amazing, but it would be immensly powerful if WASD movement was lag free in Multiplayer.
Why does the lag happen anyway? Is it because too much information gets handled server-side?
Battle.net has enforced latency just like wc3 did. I don't know if this alone is responsible, but even if they fixed "other" lag this would still remain.
The lag occurs because SC2 is an RTS, thus has synchronized updates (everything is exactly the same on all systems at the same time) while FPSes have asynchronous updates. In any event, I don't believe its a simple fix, and it isn't because Blizzard forces this lag upon us, the game as it is not designed to handle FPS maps via Bnet.
Also, Bnet's enforced latency is like 125 ms. Don't believe that's the real issue here.
125ms is pretty high, especially on top of everything else. I won't pretend that I know anything about how the other stuff works, though. :)
You don't really start lagging noticeably til 250-300 latency from what I have seen in fps games.
Mine's lag proof
at least as far as bnet is concerned anyway
No, as the SC2 engine will never have client side prediction and thus the effect of your input is always delayed by, at the minimum, a round trip to the server and back.
Will Blizzard eventually allow you to set up hosting servers outside of battle.net, or will Blizz intentionally disallow any multiplayer games outside of battle.net?
also we'll never have LAN, so ~
Guys the only way to makle lagless fps maps is if blizzard would allow us to control the net traffic. In RTS games almost all the information must be kept synchronized, while in FPS games some information is kept synchronized and most is just local. Because of this synchronization the game uses more net traffic than we should.
The best way is to make FPS maps at the slowest gamespeed possible and make al interacting objects act fast within that realm, that would reduce net traffic.
One of the things i am noticing with WASD movment is that SC2 is not really using the commands as a static button press. In Hungry Baneling if you pay attention to the bottons available for movment under the Baneling UI, the "MOVE" button is constantly flashing. This tells me that the WASD movment is not movment at all but a command that says to move in one direction a fraction of a distance then do it again, over and over again. This would account for a good majority of the lag as the game is having to "think" about each movement fraction every time. Perhaps there is a way to actually tell the game that if the button is pressed to just continue moving -1 or 1 in the dirction pressed until the button is released. Not to check which direction is being pressed so many times a second.
SC2 needs to synchornize everything, that's how it works. If we were allowed to choose what to synch and what not we'd get disconnects and server splits all the time. Other games (most online fps) synchronize a lot less, but they're specifically programmed to be like this.
A thought: Either you can enforce a 125ms lag in your triggers, or you can check constantly whether a button is pressed. Or maybe I'm completely wrong :P
Sorry to disappoint you. There just is no way. A good movement system HAS to be done with the KeyPress events. And if you have KeyPress events ANYWHERE in your system it'll suffer from lag.
Another reason, synchronized updates prevents some types of cheating because everything is on the servers side.
I wouldn't say it can't be done completely. I spent two days working on a non-Keypress event WASD movement system. Using ability hotkeys I was able to get the unit to move well in all directions (including diagonal). The problem was when holding down a hotkey, then pressing and holding another hotkey, the original hotkey would no longer fire until you released it and pressed it again. This is the only problem I could not overcome with non-Keypress event movement. However, it could be useful in some situations where you needed no diagonal movement or in any situation where you dont need to press two of the directions at once. This would also work with a camera look system where the unit is turned by camera angle. Though it would be nice to make keypress lag free......
I don't see why the lag has to be so large. I regularly play a third-person shooter game on a European server (I live on US East coast) with lag at most 150ms, which is very acceptable. I actually coded my own client for the game, so I know how its protocol works: the client simply sends any mouse/key movements that occur to the server, which then incorporates them appropriately. The changes are then noticeable on the next frame that the server sends to the client. This is not a client-side protocol at all: the game state is completely determined by the server, the client is only responsible for sending player inputs and receiving game state frames from the server. I don't see why Blizzard doesn't do this, as it's probably the simplest server-client architecture possible, besides being much more efficient than whatever is currently done.
SC2 is not the problem. Bnet is. When playing Wc3 WASD maps, and suck things, it was lagg free. Over bnet it had lagg..
So, bnet is actually not that good feature... I bought Wc3, but never played over bnet. Only LAN, and over virtual lan softwares(even that was faster than bnet).
And yet people seem to really want to make their WASD maps. My question is why aren't WASD designers aiming for the singleplayer crowd? It would work great for that.
If you don't tell the unit to loop a move command then you will have to construct a way to handle collisions on your own, so that's a dumb idea.