I've got a real head scratcher. I've been debugging this for months and haven't managed to crack it.
tl;dr:
I have a scene, some times when I change to that scene, the _process()
methods don't get called while that scene is alive.
Other methods, like those that result from network activity work just fine, and if the scene is switched away from, everything continues to work, even eventually switching back to that scene, it's _process()
methods will begin getting called again.
Deeper dive:
It's a multiplayer game, and this is a problem on the dedicated server.
I have two main scenes: Lobby & Game, and I change between them using the standard change_scene()
method
Some times when switching back from Game to Lobby after a match, Lobby's (and all of it's children's) _process()
method will just never get called.
It is seemingly random, I still after 6 months of searching not found a solid repo.
There's no errors in the the terminal. I've even run the server in debug, attached to the editor, to try and catch this, and the editor doesn't hit any errors.
When it gets into this state I've even set break points in the Lobby's _process
method, and it never gets hit.
Everything else works just fine, people can join and leave the lobby, even start the game, because those are all triggered from user or network (RPC) input.
If you start a game, finish, return to Lobby, it's fixed, and the _process
methods start firing again.
If anyone has any thoughts, no matter how crazy, I'm all ears, b/c I'm pretty out of ideas my self.