Logo Platform
logo amplifiers simplified
Humankind
Universe banner wording

Feedback Mod-Tool - Compatibility problems

Reply
Copied to clipboard!
2 years ago
Nov 29, 2021, 7:03:08 AM


Hello to all of you and to the Amplitude team.

The current Mod-Tool in Beta version offers possibilities and ease of access.

However, the architecture and modularity will cause some concerns regarding mod development. I don't know if it is possible for you to remedy this. It would of course be very welcome. Not only to help mod makers, but to make this game offer the same compatibility possibilities as other games, such as Civilization, in this respect.


When a mod changes a value somewhere in an asset, it makes it incompatible with another mod that changes the same asset and value. This is a necessary behavior with respect to a number of common functions and intrinsic properties of the asset. Basic properties. However, it becomes a problem with objects added to the asset.


I take an example with a TechnologyDefinition Asset to make it easier to understand.

Below: the intrinsic properties. Impossible to make two contents compatible, and this is normal.



Below: the added properties. If I add a property, a new "Simulation Event Effects" in "Unlock References", the game will not only add my element. In fact, it will overwrite the entire TechnologyDefinition asset.


It's kind of like that everywhere, not just technologies. 




Desirable behavior.


The mechanics would need to recognize which items are added from the Vanilla game.

For example, here, the first property "Infrastructure_Food_Family04_01".

The Vanilla game needs to have a unique identifier for this object-property.

- If the mod contains the property, the mod overwrites the vanilla game. So if I replace the Constructible References "Infrastructure_Food_Family04_01", the game (and other mods) will be overwritten by the change.

- If the mod deleted the object property, the vanilla game is not affected. Here, we click on the cross and delete the whole property-object from the list of "Simulation Event Effects".

- If the mod adds a property, it is added to the vanilla game. 


So if several mods add a property, all object-properties of the different mods will be added to the vanilla game, instead of overwriting each other.

With the example given, for a technology: let's take two different mods offering a new Culture. Both mods add an emblematic unit. However, both units are unlocked to the same technology. Here, these two mods will be incompatible.

It will quickly become a maze of problems to make the mods compatible. Here, we just want the two different mods to be able to add their unit, so add a new "Simulation Event Effects". The intrinsic properties are overwritten, the vanilla properties are overwritten only if present, and the new content is not overwritten.



Updated 2 years ago.
0Send private message
2 years ago
Nov 30, 2021, 9:10:13 AM

Hello,


While working on my mods i already discovered a solution for this issue. However each modder needs to abide by it so that it can work, i will use the TechnologyDefinition as example. In my Thracians mod what i did is instead of using the regular TechnologyDefinition files, i renamed it to TechnologyDefinitionThracians . This way it still applied all of the desired effect without causing issues with my other mods. I have not tested it with every single other mod, but the ones i tested it was working.

Hope this helps, and have a great day!

Updated 2 years ago.
0Send private message
2 years ago
Nov 30, 2021, 3:50:22 PM
SmileyD wrote:

Hello,


While working on my mods i already discovered a solution for this issue. However each modder needs to abide by it so that it can work, i will use the TechnologyDefinition as example. In my Thracians mod what i did is instead of using the regular TechnologyDefinition files, i renamed it to TechnologyDefinitionThracians . This way it still applied all of the desired effect without causing issues with my other mods. I have not tested it with every single other mod, but the ones i tested it was working.

Hope this helps, and have a great day!

It look nice. Do you keep other content of the tech ? 

I need some time to test that. Like duplicate x2 the tech and rename it 2 files. And check what happen.

Updated 2 years ago.
0Send private message
2 years ago
Nov 30, 2021, 9:01:01 PM
SmileyD wrote:

Hello,


While working on my mods i already discovered a solution for this issue. However each modder needs to abide by it so that it can work, i will use the TechnologyDefinition as example. In my Thracians mod what i did is instead of using the regular TechnologyDefinition files, i renamed it to TechnologyDefinitionThracians . This way it still applied all of the desired effect without causing issues with my other mods. I have not tested it with every single other mod, but the ones i tested it was working.

Hope this helps, and have a great day!

No it don't work. I don't know exactly what you do.

If I make a new folder, name it like I want and put the tech into it, it overide.

I tried many different combinations. If I erase all except my new content, the tech will overide official tech and erase all, just add the new content.

I found a way to make a new take, it need to duplicate a tech, name it, do a UI mapper with same name.

That's weird because this new tech still have the same Key number.. I didn't tried to play with, but I'm not confident about 2 asset with a same "key number".

This new tech go well on the tech tree at pos X, Y specified in the UImapper.

0Send private message
2 years ago
Dec 1, 2021, 3:28:29 AM

I will send you a screenshot:


I don't change the tech name just the folder where the tech is so it doesn't override the other ones from other mods.

Updated 2 years ago.
0Send private message
2 years ago
Dec 1, 2021, 5:37:49 AM
SmileyD wrote:

I will send you a screenshot:


I don't change the tech name just the folder where the tech is so it doesn't override the other ones from other mods.

I have to test it in a different way and use 2 mods.  Thanks.

0Send private message
2 years ago
Dec 3, 2021, 1:32:37 AM
SmileyD wrote:

I will send you a screenshot:

I don't change the tech name just the folder where the tech is so it doesn't override the other ones from other mods.

Hi, so this time, it's sure, I made this test:

1- One mod with technology_Era1_07 in a custom renamed folder. Contains add-on content (fishing village)

2- One mod with technology_Era1_07 in a custom renamed folder (different). Contains add-on content (shellfish2)

Load order 1 then 2.

Second mod overide tech, so I don't get Fishing Village anymore, only Shellfish2.


So, any new content on a tech delete other contents added from other mods.

Only way: 

- create a new tech, good compatibility, except with other mod creating new tech and choosing the same x,y on the tech map. But problematic about gamepace (need to search more tech), maybe this tech cost can be changed, but then the problem is trigger era star with a low cost tech.

- or merge mods. look like painfull to do, ok for new assets, can be imported, but on technologies, it need to add UnlockConstructrible. I don't know if a propertie can be copy/paste. Anyway, we can merge only mods we do, not others mods.

Updated 2 years ago.
0Send private message
2 years ago
Dec 3, 2021, 4:35:28 AM
Enchanteur wrote:
SmileyD wrote:

I will send you a screenshot:

I don't change the tech name just the folder where the tech is so it doesn't override the other ones from other mods.

Hi, so this time, it's sure, I made this test:

1- One mod with technology_Era1_07 in a custom renamed folder. Contains add-on content (fishing village)

2- One mod with technology_Era1_07 in a custom renamed folder (different). Contains add-on content (shellfish2)

Load order 1 then 2.

Second mod overide tech, so I don't get Fishing Village anymore, only Shellfish2.


So, any new content on a tech delete other contents added from other mods.

Only way: 

- create a new tech, good compatibility, except with other mod creating new tech and choosing the same x,y on the tech map. But problematic about gamepace (need to search more tech), maybe this tech cost can be changed, but then the problem is trigger era star with a low cost tech.

- or merge mods. look like painfull to do, ok for new assets, can be imported, but on technologies, it need to add UnlockConstructrible. I don't know if a propertie can be copy/paste. Anyway, we can merge only mods we do, not others mods.

O wow that good to know. I guess because my mods didn't edit the same tech, that's why it worked. I will know for the future, thank you for testing this.

0Send private message
2 years ago
Dec 3, 2021, 7:38:34 AM
SmileyD wrote:

O wow that good to know. I guess because my mods didn't edit the same tech, that's why it worked. I will know for the future, thank you for testing this.

Hi, I reported a small issue on your big pack (in the commentaries). 

I'm actualy testing the new version of BuyThis (before release) with your pack and deepSea.

Updated 2 years ago.
0Send private message
2 years ago
Dec 3, 2021, 10:53:16 AM

About the initial problem.
It's really important to allow additions not to overwrite. I remember on previous games it was like that, but it's time to change that. Especially for a game that has some common points with Civilization, a game that has no problem to be modded, and that offers an almost perfect native compatibility between mods.
The whole programming structure being impacted, it seems unlikely to have a solution at the source.

However, I see two possibilities:
- Merge on load. No idea of the complexity to develop or the processing time. But one mod loaded after another checks if it uses the same files. It keeps or overwrites what is in common and adds what is new.
- Adding an indicator for the modder. Each file in the game (and the properties?) has a checkbox (or listbox) where the modder indicates what the file he is modifying does. Something to think about as there are many possibilities, but at least these two basics: "Overwrite" (default option) or "New content". In this case, the merge function is much simpler, the program knows directly what to do by reading this indicator.
For example, if a technologyDefinition has the "New content" flag checked, everything in it will be added. So the modder should first remove the properties/unlocks from the vanilla game, and only add its new content. When the mod loads, no changes are made to this technology, except for adding the mod's property/unlock.

0Send private message
?

Click here to login

Reply
Comment
0Send private message