Scene Timers: No longer automatically initialized since 5.0.126 #3542
Replies: 21 comments
-
Timer are indeed not initialised automatically anymore, you need to call the "reset the timer" whenever you want to start it. But this should not break any project because the old condition is still working as before. cc @D8H :) |
Beta Was this translation helpful? Give feedback.
-
Thanks for the reply 4ian. I think having people manually create the timers is perfectly fine and gives more control to the user in the long run (they may not want to initialize at the beginning of the scene). Rather then adding the new option, maybe just some info text on the condition? |
Beta Was this translation helpful? Give feedback.
-
I still think a parameter on timer conditions (or actions) could be very useful, have it default to "initialize at start of scene: yes" for backwards compatibility, and then users still have the option to not do so if they don't want to. |
Beta Was this translation helpful? Give feedback.
-
I did not see that change in the changelog, maybe it deserves a warning for the ancient users? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
It's more confusing. Since we don't know when it starts, you said it yourself before it was on execution (I didn't know that before you said it here). And now it's not even automatic anymore, we have to set the action ourselves to start a timer. Or I didn't understand anything and in this case, it's more worrying :') What should be explained is in the boolean field in the description is: With this boolean, we don't need to add an action manually at the beginning of the scene to start a timer, which is very wordy. |
Beta Was this translation helpful? Give feedback.
-
I'm utterly against it.
|
Beta Was this translation helpful? Give feedback.
-
@D8H Did you mean to reply to a different part of the text? Your bullets don't seem to match up to the text you're replying to, or I can't quite parse it within the context. |
Beta Was this translation helpful? Give feedback.
-
No I think D8H answer is right. Just to make things clear:
|
Beta Was this translation helpful? Give feedback.
-
Thanks for the clarification!
It could be, but we have seen a decent amount of feedback from users who are very confused as this wasn't listed in any release notes they (or I) can find.
I still think a toggle is probably the right way for compatibility and user flexibility going forward, explicitly because it can help users reduce the amount of extra events in their event sheet to reproduce behavior they are used to for years now. |
Beta Was this translation helpful? Give feedback.
-
I've updated the release notes to highlight the change of behavior for the Timers. I agree that we should have planned this better! |
Beta Was this translation helpful? Give feedback.
-
Let's think of this with game theory: New conditionCase A: users are used to the old way
Dangerousness: 1/4 hour loss Case B: user have to add a start timer action to start a timer
Dangerousness: 1 minute loss Old condition (or switch)Case C: users hut a bug caused by a timer starting at the condition check
Dangerousness: 1 day + support time + might discourage users + games released with bugs |
Beta Was this translation helpful? Give feedback.
-
It's certainly easier to add a warning message to tell the user to add a timer himself but it's an avoidable warning... By adding a boolean on the new condition (enable automatically the timer or not at the beginning of the scene) we let him know that something has changed because he has never seen the new button True/False on a timer in the past, this way the new condition becomes easier to use and to understand. I can't imagine saying to people with lot of timers in their games, now you've to add a new action for all your timers. |
Beta Was this translation helpful? Give feedback.
-
By adding a boolean on the new condition, we let users doing something they don't understand and will backfire at them later just to save few clicks and we allow some configuration that can't work It seems this is short term vs long term. Users have bad habits, habits can change and imho for the best. |
Beta Was this translation helpful? Give feedback.
-
Side note: Assuming the old event isn't restored with a toggle, All of the timer examples probably need to be pulled from the main examples list until someone updates them. They'll work, but won't match what the users can create anymore and they won't understand why. (Count down timer may work since it's resetting at the start of the scene) |
Beta Was this translation helpful? Give feedback.
-
That's true we'll definitely need to update events and the wiki as soon as possible if we keep this this way (which seems to be the "good way to go", despite the cost in terms of habits to change - and because resetting all timers at the beginning of the scene can't work because we don't know which timers will be started in the future). |
Beta Was this translation helpful? Give feedback.
-
How does this deprecation work? If I open an old game, and then add a new timer condition, which version does it use? I think it is important for the entire project to use the same version of the condition. So if a project is using the previous timer condition, adding new timer condition will also use that same version. As far as upgrading a project to use the new timer condition, can this be done like the Z-order change was done? I thought it was executed well, but I don't know how it affected others.
Yes, it confused me too (I understand it now). Checking a condition should never change anything (like Davy said).
Yes, I like the information and wording you used in the screenshot. As a side note, we need to change the text in "Reset a scene timer" sentence to match the name of the action "Start (or reset) a scene timer". It doesn't make sense to only see a "reset" action when the user wants to "start" the timer. I can submit this wording change if no one gets to it. |
Beta Was this translation helpful? Give feedback.
-
Using a setting to unhide some deprecated functions is an interesting idea. For this case, old and new conditions can coexist in an old project without any issues. Users only needs to start manually the new timers they're adding (and they can start every old one too if they want). It only takes one old condition to start it automatically. |
Beta Was this translation helpful? Give feedback.
-
What makes you think that it was confusing? It was always obvious to me timers were created the first time a condition was referring to them.
A warning as AtomicCrocStudios suggested would be not sufficient and to make sure it is explained in the documentation? What you are discussing here only add unnecessary bloat in my opinion which personally I dislike. In case, it is really not ok to just display a warning and explain in the documentations that timers won't start until a condition refer to them and you really want to force people to start timers manually, personally I would opt for explicitly "Start the timer" using a single event to avoid unnecessary bloat and confusion with parameters hidden somewhere and to keep it simple to follow in the events. However you decide, going forward I would like to ask the team to consider:
Good luck and thank you 👍 |
Beta Was this translation helpful? Give feedback.
-
i agree with the notion that there should be both a beta version and a stable version. i can't think of any open source software other than gdevelop that doesn't do this. |
Beta Was this translation helpful? Give feedback.
-
As this issue has become a thread with everyone's opinion, and as some changes have been made to rename the start timer action, the examples have been updated with the new timers, add a warning in the patch note, add a pinned post on the forum, and a pinned post in the announcement discord channel I'm converting this thread from issue to the discussion. |
Beta Was this translation helpful? Give feedback.
-
Describe the bug
I was working on a project today and noticed the new timers were not firing for me. Thinking I may have somehow screwed up something simple I tried creating a test project to just update a text object with the current timestamp every second, once again it didn't work.
After looking at the RAW mode of the scene debugged, I could see that the timer wasn't even being initialized.
I tried initializing the timer manually at the start of the scene and it worked.
I am hoping this is not the intended behaviour of this update as I believe it has the ability to break existing projects once they're updated to the latest version with users assuming that timers still automatically initialize.
I understand it's bad practice to not manually initialize them, however it always felt unnecessary to run an action that was already handled by the engine on startup.
Happy to hear any feedback and thanks for expanding upon the functionality D8H :)
Beta Was this translation helpful? Give feedback.
All reactions