I uploaded Release7 today to great self fanfarre, only to realize 2 minutes afterward that the game was buggy. Worse, the bugs only showed up in the release/exported game. I spent the next hour or so endlessly cursing the engine for causing shit out of fucking nowhere and trying to understand what the fuck was going on. There was only one case that it was my fault, as the "Next stage" button was indeed improperly set up, and thus finishing a stage would just crash the game. Everything else wasn't me.
As I explained on my post on itch:
I am currently unable to replicate this problem with a dummy project, so I have no idea what the hell actually happened. One of the biggest headscratchers for me is that it wasn't every signal-connected function that got fucked.
As I explained on my post on itch:
This is possibly the weirdest bug I've had the displeasure to meet while messing with Godot. Once I exported the game, SEVERAL signal connected functions were throwing errors, complaining that they expected zero arguments (correct) but 1 was passed. This wasn't an isolated incident, I had to manually add a
This makes no sense because none of those errors were happening while playing via the editor, they only happened with the exported/released game.
Some considerations: I started this project all the way back with Godot 3.5. The previous release of this game was with 4.2, if memory serves. There is a possibility that something changed between these versions in how signals should be treated.
_dum:int=0 argument to 10 signal functions so they would work again, 3 of them were simple _on_timer_timeout functions and another 3 were _on_screen_entered. Even right-clicking to Edit the connected signals showed that the argument list was empty, so how the fuck did that "1 passed" argument show up only in the exported game? Another two cases were on signals that expected arguments, then the error complained that 1 arg was expected, but 2 were passed.This makes no sense because none of those errors were happening while playing via the editor, they only happened with the exported/released game.
Some considerations: I started this project all the way back with Godot 3.5. The previous release of this game was with 4.2, if memory serves. There is a possibility that something changed between these versions in how signals should be treated.
I am currently unable to replicate this problem with a dummy project, so I have no idea what the hell actually happened. One of the biggest headscratchers for me is that it wasn't every signal-connected function that got fucked.