leorr The worst thing you can do is to set AP's process mode to manual because in that case you need to run a script that calls advance()
every frame. Ideally you'd want to completely eliminate the need for _proces()
or _physics_process()
callbacks in your scripts.
Second thing, idle processing (and consequently _process()
) will typically run every frame, so limit your frame rate to that of the refresh rate of the monitor by enabling vsync in project settings. This is enabled by default.
So if vsync is enabled and AP's process mode is set to idle, the native code will update the animation in sync with monitor's refresh rate (typically 60 fps). If you want to lower this, set the mode to physics and lower the physics tick rate in the project settings to whatever rate you wish to have. Note that all physics stuff in your project will then run at that rate.
The gist is, doing stuff from script process callbacks is the least performant way to update.