Godot Version
v4.6.3.stable.official [7d41c59c4]
Question
Hi Everyone, we are having a performance issue that is being a little troublesome and I’m not sure of the best approach.
As you’re probably all aware we use a natively compiled assembly engine for all our coding and we’re running into a problem with synchronising performance between Godot and Assembly. Our initial problem was that our startup script would finish before Godot even initialised the STDOUT so we wouldn’t see any debug information, so our fix for that was to put in a signal that fired after the splash screen was gone. All seemed good for the time as we were only working on the single solver scene, but now that we are moving between scenes we’re encountering similar issues.
Our assembly engine has a script queuing system, which allows us to push a script onto the queue then exit the old one and the next would start running. But we’re finding when switching scenes in Godot the next script has usually finished or errored out before Godot has transitioned scenes.
In assembly we’d do the following to change scenes:
push #nextScript
sys csChangeScene
out #sceneName
brk ;exit old script
Our solution at present is to disable the script queue, then have Godot emit a signal when the scene transition is complete then start the new script at that time. This works but we’ve lost access to the script queuing system across scenes, which was extremely useful, and now without the script queue over head the engine is even quicker, so we’ve had an enormous amount of trouble getting debug information to display correctly, in the correct order or even with the correct script name. Thankfully most issues are now resolved but I’d love to get the script queuing working again.
I realise this is a very niche issue but would appreciate any ideas or suggestions. At the moment, emitting a signal when transition is complete or starting the script after transition is working for the time being.