Separate map menu for KeeperFX maps
Loobinex opened this issue · comments
In KeeperFX there's a 'Free Play Levels' folder that contains all non-campaign maps. This means the Deeper Dungeon maps and any custom maps the user downloads.
These maps share the configs (rules/magic/creatures) from the original campaign, so introducing changes for KeeperFX always means that the main campaign is effected the same way the custom levels are.
I think a better way to handle this, would be to have 3 separate folders for maps:
- The Deeper Dungeons
- Dungeon Keeper maps
- KeeperFX maps
This has several benefits. We could improve the balance of the game as we see fit if we make sure this only affects the KeeperFX maps. Users playing the classic maps or the original campaign, can still retain the original experience, and we won't accidentally break maps by changing stuff. The KeeperFX maps in the meantime would be balances around the new changes and make full use of the new features.
I also feel that this setup allows us to include some of the best user-made maps out there with the game, as it gives special status to the Deeper Dungeon maps as official maps.
I think we have two options for the interface:
-
Give the 'Free play levels' menu 3 subfolders: Deeper Dungeons/User Maps/KeeperFX maps
-
Rename 'Free Play Levels' to Deeper Dungeons. Make a new Main Menu item that replaces multiplayer, call it 'Single maps' or something and give this one 3 subfolders: User Maps/KeeperFX maps/Multiplayer
We need to keep in mind though, that we need translations for every new interface item we introduce.
As from the technical side, there is currently given special consideration in the code for the original campaign. All campaigns have their own subfolder in the file structure under campgns, with the exception of the original one that uses the main level folder. We could end this special consideration.
I've done a little work on the frontend, but now I am looking at the backend stuff:
Currently any level inside the /levels/ folder, that is not within a campaign, is considered a Free Play level by KeeperFX (and is not sub-categorised).
Do you suggest something like this:
- moving Deeper Dungeons to /levels/deeper/
- creating /levels/keeper/ for user levels intended for the vanilla experience
- creating /levels/keeperfx/ for user levels intended for the KeeperFX experience
... then use these folders to build 3 separate arrays in the code, instead of just 1 "free play" array?
The current array is: freeplay_levels[] in config_campaign, would this be an acceptable location to add (e.g.) deeper_levels[] and freeplay_fx_levels[], and go from there?
Yes, that sounds right. And with a possibility to have configs for each one.
I'm also open to keep the current levels folder, move the original campaign levels to a proper campaign folder (with it's own config). And add an ddlevels and fxlevels folder, again, all with their own configs.
What are all of the config files I should care about? I presume all creature configs, rules.cfg as well? Are you able to list them please?
Is there a need to split keeperfx multiplayer levels?
Would the /levels/ directory have .cfg files in it (maybe in a sub folder?) or would that use the "default" cfg files?
Can there be a shared "legacy" config, or is there a need for a separate config per directory? This could maybe sit in fxdata/legacy. This would also resolves the question above.
We spoke extensively on discord, and we discussed making mappacks mirror campaigns. So
- Make the levels folder look like the campaigns folder
- Each mappack gets a config and, optionally folders for levels, creatures and/or configs.
- We need new translations for the included packs, but custom packs can be added with custom names
- The original campaign levels will be moved to campgns\keeporig
I made you an example mappack config: deepdngn.zip