Hey guys,
I’ve just been developing a training project further in order to try and fully round off the project for myself and the friends who have been kind enough to help playtest my version of the training project.
However recently I’ve run into an annoying snag that just doesn’t seem to want to stop ruining the project for me.
This bug is extremely irregular and no amount of debugging helps me find out how to stop it.
So what is the bug you ask?
The Problem:
When starting my project the project actually gets stuck loading at 72% and no longer consumes CPU as it has somehow got stuck.
No amount of manipulation prevents the issue entirely.
After 2 days of fighting with this bug trying to get it sorted I was left with no choice but to remove UASSET files one by one to find which one is tripping the system up.
After removing the file I can load my project and then place it back to load it in and finally fix up all the references in the blueprint to get my project loaded back to a state where I can work on it.
So to recap what I’ve said and to add what I’ve already tried.
What I’ve tried.
Action - Result
-Waiting to load - No effect after 3 hours
-Rebuilding visual studio files - No effect
-Reverting code files to previous state - No effect
-Recompiling C++ - No effect
-Attaching debugger as unreal loads - Minor Succes, Gave some debug info but not much
-Deleting all UASSET - Moderate Succes, Game opened, No content was there
-Reinstating all UASSET 1 a time - Massive Succes, Only one file couldn’t be added (BP_Tile)
-Swapping BP_Tile for older version - No effect, still blocked me loading unreal
-Rebuilding BP_Tile from the ground up- No effect, still blocked me loading unreal
-Deleting some modifications all around- Massive Succes, now loads unreal
(When the issue came back today)
-Deleted BP_Tile.UASSET - No effect
-Deleted InfiniteTerrainGameMode.UASSET - Massive Succes Now Loaded Unreal
My Deductions
The Issue has nothing to do with the C++ side of the project.
The Issue must have something to do with blueprint.
The Issue resurfaced after messing with InfiniteTerrainGameMode & BP_Character
The Issue also seems to prevent packaging.
Why I think it has something to do with InfiniteTerrainGameMode
After fixing the issue and confirming that it works fully I saved my data to source control.
My Project for the day was to revamp the scoring system so that your score is based on (KIlls&Gounds Captured)
This I managed to achieve only for the editor breaking issue to resurface.
The changes I’ve made were:
-Added two int variables → Grounds, Kills
-Added three new functions → GetGrounds (Basic Getter), GetKills (Basic Getter) & EnemyKilled (Basic Increment Operation based on TileConquered)
Why I think it has something to do with BP_Character
The first time this occured I had massive changes in BP_Character and as the issue developed I scaled back or blatantly removed new features on the character to try and fix the issue.
The Second time this issue started to occur I removed a cast to InfiniteTerrainGameMode (To Call the update function for kills) and after restarting the editor it launched just fine.
One of the edits I removed from before was trying to link BP_Tile with BP_Character as well as I was going to adjust character defaults to the local tile difficulty (A feature I removed entirely to try and fix the issue.)
So what now.
The reason I bring this up is that this could reoccur at any project I intend to build.
And I would not want to have to deal with this during a comerial project.
I have no idea why this is happening.
I need help with figuring out how to stop this happening and I’ve seen several threads on the official unreal forums with this bug as well that have been ignored and unresolved but I failed to find any resolved ones.
If anyone knows I am all ears.
I will dump a debug log below. Hope anyone can spot the trouble.
I know for a fact it is blueprint related as the problem is only in existence when I added this blueprint flow to my BP_Character:
Get Gamemode → Cast to InfiniteTerrainGameMode → Call Function EnemyKilled()
Without that, in my BP the whole project starts happily without the bug.
link: Data Directory with Image of bp & code dumps from startup