Monday, May 4, 2015

Workaround for bug introduced in Build 1430 with timer triggers that fire in the same instant

Update 3: Build 1432 has resolved all issues related to timers and things seem back to normal.

Update 2: Users are reporting that some of the issues have been fixed, but not all.  Specifically still seeing issues with timers where the total duration is less than a second.

Update: Build 1431 was just announced to revert changes related to timer limitations. A swift and appropriate response.


ActiveWorlds 6.2 Build 1430 was released today and introduced the following change:
  • Timers now have a minimum duration of 1 second and timer-triggers have a minimum interval of 100 ms applied strictly. An attempt to help users and builders not running into heavy lag bombs in worlds.
Which introduced the following bugs:
  • Existing timers that complete under a duration of 1 second are broken -- any lower value is forced by AW to 1 second.
  • Existing looping timers triggers with a total duration of less than 100ms are broken.
  • Triggers scheduled for the same time on the same timer are explicitly ignored. (The workaround below specifically addresses this problem)
  • Remote texturing is broken in many circumstances.
Whoops! These are some really awful bugs and this whole change probably needs to be reverted. The third problem has a pretty simple workaround... simply offset one of the timer triggers.  Note that this only addresses one of the issues introduced today; these bugs have manifested in various ways and this isn't a one-size-fits-all solution to all of the problems created with 1430. This workaround specifically addresses two or more timer triggers that were set to fire at the same instant.

Take two example timers that I found broken today at Fort Masen:

at tm GK 18500, visible reg3 on, visible reg2 off

at tm GK 18500, say "Regina:    Zek'riah!"

I'm not sure how AW determines which trigger gets fired first, but the visible on/visible off one was ignored when I activated the timer to test.  I was able to work around  this very easily, by changing one of the timers to '18510':

at tm GK 18510, visible reg3 on, visible reg2 off

at tm GK 18500, say "Regina:    Zek'riah!"

This is a very small time difference. For timers, 1000 units = 1 second, or 1000 milliseconds.  So 10 units is 10 milliseconds, or 1/100 of a second.  This is probably acceptable for general animations, but I'd still prefer to see this change reverted for more precise timer sequences that need extremely granular triggers.

Interested in hearing further comments from AWI about exactly how this changed timer behavior. More interested in build 1431 reverting these changes. :)