I'm not a programmer - and while you can claw your way through a project with minimal C++, debugging is a whole nother matter. The game's been suffering from semi random crashes for a long time, and I've spent days getting into the nitty gritty.
Break points, minidumps, crash logs, call stacks, desperate AnswerHub posts and baiting skilled programmers on multiplayer notepad only gets you so far. Being an avid problem solver (and someone who signed up to show a working game to industry professionals), I had to diy a way to brute force the issue.
Every so often, the game crashes when launching a listen server/client and a client into a multiplayer game. It would happen mostly (but not exclusively) through Standalone Play, and mostly when travelling from the multiplayer lobby into the main level. Sometimes the client would crash, sometimes the server.
It wasn't reproducible and the error messages were super vague.
So I bit the bullet and disabled one piece at a time, starting the game manually about 30 times after each fix until it seemed stable.
After a few days, things pointed to a very specific widget in the HUD being the culprit. I joyfully soared through 30 more attempts without a crash. And then we crashed.
It wasn't feasible anymore just tweaking one node by hand and running the game manually for hours, hoping/fearing to come across a crash I wouldn't understand anyway.
Enter Pulover's Macro Creator aka "don't spend the wee hours of the morning pressing the same button over and over until your eyes dry up".
- I set the game up so that all I have to do to get to the crashy risky point (on multiplayer game start) was to click Launch Standalone Game in the editor. The server would automatically start the game after the client connected.
Then I set up a macro that picks the UE4 Editor Window, launches the two clients, and waits for 18 seconds before starting over.
I'd set it up to do up to 300 attempts while I went for a sweet, non-button-clicking walk in the sun.
I come back and see if we have any crashes. After completely disabling the HUD, I got through about 150 forced starts without a single crash.
Here's what I got when re-enabling the HUD;
- Finally, I donated so Pulover can keep making career-saving software.
No wonder this was impossible to consistently debug. But, after deleting a very very specific Widget and recreating it from scratch, these crashes have been long gone.
This is clunky. Very very clunky. But now I can tweak something and let the game run a couple hundred times to collect possible crash reports.
The hours I'd spend chasing crashes by hand, I'll spend making artwork for the game. I'll pop in after a while and see what crashes we're getting, and how often. I'll disable or tweak something, and then let it run again until we're crash free.