First, custom maps are NOT broken broken or somehow removed from the game after this patch. They are however, not going to load without some additional data. I’ll explain the issues we had first - then cover the solutions:
As with most data in this game, custom maps are LUA. Some custom maps are code that runs to ‘build’ the level, others are just huge lists of objects. In either case, trying to scan those levels for things like level-selection lists means having to load them as LUA. After a certain number of complex levels, this becomes a MASSIVE CPU killer. For very active level authors, we’re talking minutes, not seconds, just to refresh the list.
One idea early on was to force maps to come in 2 parts: The info about the map, and the actual map content. This would allow maps to be scanned and loaded much faster.
So, what did we do?
First, we created a new file (xxx.levels) that is the metadata for a set of levels. Take a look at the ones included - they are quite easy to understand. All of these files are loaded once at game start.
Then, when a GameRule (GR) is selected (setting up a mission/lobby/skirmish) - the tags for that GR are used to filter the levels discovered via this mechanism. The result is MUCH faster performance. On top of that, now levels can be made for only specific Game Rules - and your Mod can actually set a filter to hide any that it doesn’t want to see, without hacking them.
In the future it is likely that .levels files will also list the author, maybe some graphics or description - and the level select controls will be more grouped and visual. We haven’t done this work yet, so it is an idea - but it is not hard to imagine somebody in the near future opening a lobby and then selecting levels by browsing ‘collections’, instead of a big list.
Here are the paths searched for .levels files:
Have any questions about this change? Ask right here!