I have a test project that was created in 5.1 (not migrated) from the Archviz template demonstrating level variants. This project was working fine, although being new there’s not much in it yet (just one landscape and my archviz structure, total size about 1 km x 1 km). Though I started from the template, I created an empty open world level and my own landscape, leaving the demo level as a reference.
I needed to set up a nearly-identical test sandbox for a team member, so I used the Launcher to clone the working 5.1 project. I opened it, and all seemed well, until I created a new Level from the Empty Open World template. I added a smaller Landscape (about 0.5 km x 0.5 km), set up my landscape auto material, and saved all. Then, with all regions (only four of them) loaded, I told the editor to rebuild the minimap for the new level.
The editor pinned one of my CPU cores at 100%, and the minimap had not finished after over 90 minutes. I waited that long in case it was compiling shaders, since I happen to have started the minimap build shortly after changing the landscape material. Task Manager did not show any shader compilers, but I thought perhaps they were no longer separate processes in 5.1. After deciding I’d waited too long, I killed UE editor from Task Manager.
Reloading the project and trying again, I watched the output of the editor log and observed that the bounds it had used for computing the size of the level were from circa -4 trillion to +4 trillion, and it had processed hundreds of thousands of cells out of a total of “a large negative number caused by integer overflow”.
Since I’m a programmer, I dug into the UE source code, and I believe the problem is caused by the builder thinking the cell size is zero, thus no matter what size the level is, there are an infinite number of cells. In the World Partition details panel, the level bounds have been calculated as zero in all dimensions, and these are non-editable fields.
Looking further, I noticed that the BoundsVolume object was duplicated in the level, and that both of these had scales of zero in X and Y, and a large positive number in Z, making an extremely thin vertical cuboid. I deleted one of the BoundsVolume Actors and manually set the size of the other one to enclose my landscape plus a bit of padding in all three axes.
I had hoped this would fix the problem, but it didn’t, and in fact it seems to have no effect on the calculated number of cells or level volume. The log messages are identical.
To make this even stranger, I reopened the project and attempted to reopen the level that came over as part of the clone. The UE editor became unresponsive and eventually failed with an Out Of Memory crash, overflowing my 64 GB RAM.
Going back to my original project that I cloned, the level that previously built correctly now hangs the editor. So apparently something broke before I cloned the project, but I can’t imagine what. Interestingly, in the original project, there are non BouldsVolume Actors present.
I should also mention that the Stop Build button displays the “Stopping Map Build” message but has no further effect, even after I waited over an hour in one test run just to see if it would eventually terminate the build.
This is possibly (likely?) due to something I’ve done wrong, but I have other World Partition projects and have not encountered this before. I’m going to try reproducing this problem with a fresh project that is not created from the arcvhz template, on the theory that the problem may be related to whatever process Epic used to upgrade the template itself.
In the meantime, if anyone else has experienced this problem, please chime in with your suggestions of how to fix it.
I have not yet filed an official bug report, because I want to do the other tests I’ve mentioned. I’m also working on getting a source-built UE 5.1 so that I can inject some additional logging into the minimap build method. The existing code does have a check for whether the bounds are valid, but clearly they are not and yet it’s passing that checkpoint. My goals are, first, to have a workaround so I can continue my project, and second, to submit a bug report to Epic that also includes details of where I think the problem is in the code.
Even if this is caused by my own configuration error, or by a problem in the templated, the editor code should not attempt to build “infinity cells” with no graceful way for the user to abort the build – so some defensive code would be useful here.