While discussing the infinite loop issue for my game (#62), Outfrost told me about a Godot issue where the Godot editor hangs when a certain service is installed on a computer. Looking for the source of this, I eventually find issue godotengine/godot#13208 where the following bug report was filed:
Issue description:
When I have the editor open on my external second monitor and I launch the game (F5) I get a blank screen.
If I drag the blank window down onto my primary monitor I can see the game as I should.
If I then drag the window back to the external monitor, I can see the game as I should.Also note: If I make my external monitor my "main display" using the windows display settings, the problem goes away and I cann't reproduce the issue on any monitor.
Also note: I am also experiencing the bug where sometimes the game is launched as an editor window instead of my game, and I get a black screen for that as well.
Apparently, this is happening due to a service named Nahimic services, which tries to inject a DLL into executables that causes bugs in many apps:
For me the fix was to disable Nahamic services. I noticed with my 3D printing that Prusa Slicer poppped up a warning on launch...
paraphrasing here:
"disable nahamic services, its injecting a dll into every app, and it is known to screw with Prusa Slicer on a second monitor."This had me going "hmmmmmm"
Nahamic services, is some dumb stuff that comes on many "Gamer" and "High-End" computers. The main thing it does is render an overlay in games that "shows" you where sounds are coming from like a radar. The thing is, nobody actually uses it, because it never actually works, and on top of that Anti-Cheat things hate it as well. So they just inject this stuff for basically no reason these days. If you have Alienware software on your machine (non-Alienware stuff uses it now too, like Dell's G Series), you also likely have Nahamic crap being run and injected. Disabling it, you should lose pretty much zero features.
To fix the issue, find the Nahimic service and disable it:
Start > Run > services.msc
Stop the service.
Then disable the service.