i seem to be having an issue where a trigger that will run smooth (pans the camera almost instantly when the event happens & says "level two") becomes delayed when more players are in the game. The camera pan action ends up taking up to half a second to run and the "two" becomes delayed, i have a wait action between the two sounds obviously and another wait action between the camera pan and an initial action in the trigger, are they somehow becoming extended waiting times? I've turned just about every other trigger off and have ran in debug its not a thread issue, any ideas what could be slowing this trigger down?
id like to also add its not exclusive to this trigger, with enough players in the game my initial timer window takes about that same .5 second delay before it pops up.
are you using real time or game time for your wait action? are you using the same time type for your pan action duration?
it that case it could be that online game speed is set as fastest while in single it's normal causing the discrepancy
thx for the reply but this happens when computers are added and testing offline, the speed for testing is set to faster as is online and i've tried to switch between real and game time (i usually use game time) but when i used real time it made the delay even longer. This is what leads me to believe the wait time is somehow being delayed longer since i know .1 game time is faster than .1 real time. Also to further test this theory i removed the waits between the actions and the trigger ran thru instantly without delay, which is too fast for what i need
if i cant find a proper solution ill probably just make a work around that applies faster wait times based on the # of players in game, this will probably reduce the delays i dislike but not completely remove them
yeah this happens online too, with 6 players it gets noticeable then 7 a bit worse and 8 is the worst (8 player game)
ive got a ban player feature added and while online i start with 8 players with the trigger delaying, i ban 3 players and its running smooth once again
The problem is a very 'brilliant' decision on Blizzard's part.
If you are using a trigger it fires on all computers. So a single move trigger also fires on all computers (I did talk to a Blizzard dev about this). Since all of these have to register and sync with the central server (due to running on each computer at the same time).
Now I'm not sure about this but I think the game thinks that it is the same instance of that trigger even though its running on 8 different computers. So syncing plus the forced 250ms latency (beyond the 150ms FPS limit) that can cause issues.
In addition only one instance of the named trigger will run at any one time.
To make matters worse while some listeners require extra network communication others do not. When you press a key it has to start that trigger for all players. I don't recall a method to force a "local" trigger that only affects that player.
thx for all the offered help guys especially Dogmai as u were willing to go thru the code, but i have solved this issue. It just seems to work when the time is set to a certain amount for unexplainable reasons. I must say i am glad i ran into this issue though as its helped me to tidy my map up quite a bit using the debugger =)
Its not worth having it out on this. Needless to say there's a very long list and argument behind this. Furthermore this is not true multithreading this is queuing. All you are trying to do is spread out the load so the queue isn't as long.
The trigger "add to action queue" and "clear action queue" would probably be more useful for such a system since, although I don't know for certain, may not involve initializing another trigger.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
i seem to be having an issue where a trigger that will run smooth (pans the camera almost instantly when the event happens & says "level two") becomes delayed when more players are in the game. The camera pan action ends up taking up to half a second to run and the "two" becomes delayed, i have a wait action between the two sounds obviously and another wait action between the camera pan and an initial action in the trigger, are they somehow becoming extended waiting times? I've turned just about every other trigger off and have ran in debug its not a thread issue, any ideas what could be slowing this trigger down?
id like to also add its not exclusive to this trigger, with enough players in the game my initial timer window takes about that same .5 second delay before it pops up.
@Bibendus: Go
thx for the reply but this happens when computers are added and testing offline, the speed for testing is set to faster as is online and i've tried to switch between real and game time (i usually use game time) but when i used real time it made the delay even longer. This is what leads me to believe the wait time is somehow being delayed longer since i know .1 game time is faster than .1 real time. Also to further test this theory i removed the waits between the actions and the trigger ran thru instantly without delay, which is too fast for what i need
if i cant find a proper solution ill probably just make a work around that applies faster wait times based on the # of players in game, this will probably reduce the delays i dislike but not completely remove them
The debugger can also slow the game down significantly, try testing without it. Or are you also experiencing this online?
@Exaken: Go
@Exaken: Go
yeah this happens online too, with 6 players it gets noticeable then 7 a bit worse and 8 is the worst (8 player game)
ive got a ban player feature added and while online i start with 8 players with the trigger delaying, i ban 3 players and its running smooth once again
@staminized: Go
The problem is a very 'brilliant' decision on Blizzard's part.
If you are using a trigger it fires on all computers. So a single move trigger also fires on all computers (I did talk to a Blizzard dev about this). Since all of these have to register and sync with the central server (due to running on each computer at the same time).
Now I'm not sure about this but I think the game thinks that it is the same instance of that trigger even though its running on 8 different computers. So syncing plus the forced 250ms latency (beyond the 150ms FPS limit) that can cause issues.
In addition only one instance of the named trigger will run at any one time.
To make matters worse while some listeners require extra network communication others do not. When you press a key it has to start that trigger for all players. I don't recall a method to force a "local" trigger that only affects that player.
It would be nice if one post could go by when Blizzard didn't get blamed for everything under the sun.
You are most probably hitting the execution limit by not staggering your code over multiple threads.
Post the entire code and I will take a look.
thx for all the offered help guys especially Dogmai as u were willing to go thru the code, but i have solved this issue. It just seems to work when the time is set to a certain amount for unexplainable reasons. I must say i am glad i ran into this issue though as its helped me to tidy my map up quite a bit using the debugger =)
@DogmaiSEA: Go
Its not worth having it out on this. Needless to say there's a very long list and argument behind this. Furthermore this is not true multithreading this is queuing. All you are trying to do is spread out the load so the queue isn't as long.
The trigger "add to action queue" and "clear action queue" would probably be more useful for such a system since, although I don't know for certain, may not involve initializing another trigger.