Sometimes things break, and yesterday after successfully adding improved level loading features, something broke. Every developer knows this, something will go wrong, and usually in my experience I am pretty good with breaking stuff.
Usually I start out with what appears to be a reasonable simple task, and then something completely unexpected happens. But then sometimes things go so bad that it prevents the program from starting entirely!
Yesterday, at one point I decided to move level maps to a sub-folder, but something internally prevented the move. The result then was, the level couldn’t be saved, but after restarting the Unreal Engine editor, the maps were gone. Ouch!
That is a very bad sign if something gets deleted entirely. Actually this is something very rare, not even sure if this happened before. Fair enough, copied backup’s of the files back into the original location, test run the code, which worked perfectly fine as always.
But now after packing successfully the game, after starting the game executable, the process freezed. What could possibly be the reason for this? The level map incident crossed my mind, but I have added the backup’s, something wrong with the new level streaming code? Perhaps one of the few edits I made to the loaded maps is causing this?
If your project bricks, this is the worst experience for a developer, the question is immediately, should I start with the backup, piece updates into it, or check if the affected build can be rescued. So I started debugging, but there were only some traces of machine code offered by Visual Studio, hinting again at level streaming. Thus, preparing a test build with empty levels, only loading the most essential content possible.
Investigating this issue was a slow process, since it only affected packaged, ready for deployment code. Twelve hours later the error persist, and I suspect an internal serialization corruption, stemming from erased maps, which I unsuccessfully tried to move. Luckily I was able to bring back most, if not all of the changes to the backup, and we can now continue working, after this annoying intermezzo.