binogure-studio / city-game-studio-i18n

Translation files for City Game Studio
https://www.city-game-studio.com
51 stars 101 forks source link

Mod Maker Suggestion: Engine Features "Sons" #804

Open GianluPlay opened 2 years ago

GianluPlay commented 2 years ago

Is your feature request related to a problem? Please describe. Yes, we should be able to make a "parent" for an Engine Feature that its in the vanilla game

Describe the solution you'd like Can make a "parent" for a Vanilla Engine Feature. Example: Ancient Save, Child: (insert basic saves engine feature id)

Describe alternatives you've considered There are no alternatives

Additional context Example 1: Ancient Save (Engine Feature added by the mod maker) is the "Parent" of Basic Saves Engine Feature (engine feature in the vanilla game) Example 2: Ancient Music (Engine Feature added by the mod maker) is the parent of Basic Music (Engine Feature in the vanilla game)

xsellier commented 2 years ago

Hey,

I've been thinking about this suggestion. When I think about making it editable, such as chaning the GPU/CPU or the number of required points is doable. But re-parenting already existing modules is not doable because static data (from the vanilla game) are validated independantly of the mod data. So, if you make a mod that reparent a feature, there's no more validation. Because of that, it'll make the game quite unstable.

Regarding editing CPU/GPU, number of required points, names... that's doable but as we discussed it on discord and I quote:

Engine features are balanced. If a mod can edit them, the game might become imba. Then players are going to think that the game is imba, but the mod. I'm use to answer emails about pb with mods.

Plus, you Can add new features, there's no pros to let you edit features Same answer applies for console and console components However Im open to suggestion if you think those arn't balanced. Currently, only the mod validator and the mod loader know which mod loads which data. Then there's the data loader which loads vanilla datas and merge them with the mod's data. But it doesn't know from which mod.

Then once everything is loaded, datas are managed by models (one per type of data). So to keep tracking everything down It 'll require to rewrite the core of the game. Not gonna happen There's no need to do it the other way around on the gameplay pov It'd be overkill and the only use case doesn't make it worth But I can add a warning message explaining mods can break the gameplay. I don't like that solution, but Klei does it for DST So I suppose it'll solve the issue but Im afraid ppl won't use mods afterwards

It'll required much work before making it happen. At the moment this suggestion require more work, and doesn't worth it