I was working on my project earlier fine with no problems. Finished up, saved, closed the editor. No crash.
Now if I try to open the project it is crashing every time. I have no idea what could be causing the crash, nor how to go about figuring it out – help!
Here are the crash files: link text
EDIT 1: Detailed Explanation
I’ve been trying to figure out what the problem is in my project, and think it comes down to an issue with Data Tables holding lots of references. I’m a bit stuck, so would really appreciate any help. I’ll try to explain.
My project is based around a large set of video files (so Media Players and Media Textures) – 567 of them to be precise. I have a custom Blueprint class called Video_File which holds lots of variables, among them a reference to a Material and a Media Player. Since there are so many, I don’t want to create them all manually, so I have been working on different ways to spawn all 567 of them at the start of runtime, so they are all available.
Data Tables seemed like the way to go, once I discovered that I could make a struct with references to Media Players and Materials (along with the other mostly string variables) and import a CSV with references to these assets.
Here is an example few lines of my main CSV: Interviews_CSV
So it features 567 lines, each of which has a number of variables, and among them a reference to a Media Player and a Materials.
Even importing this CSV as a Data Table (using a custom struct prepared for the purposes) causes the editor to crash most of the time. It seems to be using HUGE amounts of memory trying to import it. I have an app called Memory Clean on OSX which shows how much application memory is available. It jumps from around 11gb available to about 800mb when trying to import this Data Table. I spent hours trying to track down if there was a typo somewhere causing problems. Eventually, through sheer luck it seems, I managed to get the Data Table imported.
So at runtime, a function runs through this Data Table and spawns 567 Video_File object based on this data.
First off, I don’t know whether this is a crazy thing to be doing – spawning that many objects. But it only takes a few seconds.
However, sometimes when I open the editor, even clicking on this Data Table in the content browser can cause the editor to crash. This most recent situation, where the editor won’t even open my project anymore, seems to be resolved by deleting this main Data Table from outside the project. Then it opens again. But if I try to reimport this Data Table – crash.
So I started looking for another option, thinking maybe a Data Table of this size (with 567 Material references, and 567 Media Player references) was maybe just too much, too crazy. I thought maybe I just keep those references to Materials and Media Players as strings, and use them somehow to get the assets. I posted a question about this: How to get asset by string reference? - Rendering - Epic Developer Community Forums
I did manage to get that working – feed my C++ BP node a string reference, and it returns the actual Material / Media Player. It works great for a single object, but as soon as I tried to run a foreach loop down my Data Table and do it 567 times it totally froze the editor. Not even a crash, just frozen and had to force-quit. That also caused the same massive jump in memory.
So now I’m at a bit of a loss as to how to go about this. I’m fairly new to this kind of programming, so may be going down totally the wrong route. Is it madness to want to spawn all these Video_Files at runtime? Should they just be spawned as and when they are needed? I thought it would be good to have them all spawned so that they’re quick to access and navigate through (the main feature of what I’m building being an interactive UI for exploring all this video content in a hyperlinked way), but perhaps that’s a wrong-headed approach.
I hope all that makes sense. Any help massively appreciated!