Regarding custom genres, I thought about how this could be done and have the following ideas.
The main issue is that adding a genre, requires you to define how well every topic in the system and every platform works with this genre. Unless you change the game dramatically this is a requirement and I think best done by adding a customGenreWeightings to topics and platforms that maps genre id to a value.
Obviously with multiple mods adding topics or platforms you could never guarantee that all of them specify such a value.
To get around this I think there are multiple options:
- disallow selecting combinations of topic/genre/platform where values are not defined
- assume a default (not optimal) value for missing definitions
- randomly assign and persist a value, if it’s missing (that could add some interesting gameplay, particularly with platforms but would probably make no sense on topics)
- allow defining a genre so that it also says how ‘similar’ it is to existing genres. for example ‘BeatEmUp’ could say that it’s very similar to Action so when a topic doesn’t have a value it defaults back to the one with the most similar genre.
From those I think options 3 and 4 are the most promising.