Foreseeable research tree issue.

X-Mag-X
X-Mag-X · 15 days ago

Hello! Great mod by the way.

I'm choosing to bring up this topic here since this is directly the first instance of research node clashing that I've seen, and it affects me. Mind you, i understand this isn't a problem directly linked to your mod, or my mod, either.

The problem is the research tree—Nodes use static x,y coordinates— and how anti-future-proof that is for modding community as a whole.

Sure it's an easy fix today: i can just lower my research nodes to avoid yours. But then what? Every single mod that adds research nodes -ever- would have to install every other mod that exists to check if they're stepping on somebody nodes? This is impractical at best, and unlikely that every one would follow suite to create a perfectly spaced research tree for users to enjoy.

It's probably time to think about an adaptive solution....

  • Dynamic Tree Generation and Auto-Layout (probably best solution)
  • Dedicated Mod Tabs or Categories (Easier to code, each mod gets its own tree—could work, but less clear when tying back to vanilla nodes)

Procedurally Generated auto-layout research tree nodes is maybe the best solution here and probably fits how the research tree already works in COI—allowing linear mod-progression that also ties pre-requisites back to existing vanilla nodes tiers—while the procedural-ness simply spaces things out to make sure multiple mods never overlap; most importantly, maintaining readability for users.

I'm not sure if it would have to be an API we all agree to use, or if we can simply continue registering nodes however we want, and if a user chooses to install Procedural Research Tree, then the mod dynamically figures it out for them, without modders ever having to worry about API registeration.

image.pngHeres what prompted this forumimage.pngIt's still usable, but messy at best.

Any input on the matter would be helpful! I may look into creating this in the future, unless somebody else would rather take this torch. I'm just hoping to get the ball rolling before we the entire research tree is bloody mess.

Edited 15 days ago
AlgidityS · 15 days ago

X-Mag-X wrote:

Hello! Great mod by the way.

I'm choosing to bring up this topic here since this is directly the first instance of research node clashing that I've seen, and it affects me. Mind you, i understand this isn't a problem directly linked to your mod, or my mod, either.

The problem is the research tree—Nodes use static x,y coordinates— and how anti-future-proof that is for modding community as a whole.

Sure it's an easy fix today: i can just lower my research nodes to avoid yours. But then what? Every single mod that adds research nodes -ever- would have to install every other mod that exists to check if they're stepping on somebody nodes? This is impractical at best, and unlikely that every one would follow suite to create a perfectly spaced research tree for users to enjoy.

It's probably time to think about an adaptive solution....

  • Dynamic Tree Generation and Auto-Layout (probably best solution)
  • Dedicated Mod Tabs or Categories (Easier to code, each mod gets its own tree—could work, but less clear when tying back to vanilla nodes)

Procedurally Generated auto-layout research tree nodes is maybe the best solution here and probably fits how the research tree already works in COI—allowing linear mod-progression that also ties pre-requisites back to existing vanilla nodes tiers—while the procedural-ness simply spaces things out to make sure multiple mods never overlap; most importantly, maintaining readability for users.

I'm not sure if it would have to be an API we all agree to use, or if we can simply continue registering nodes however we want, and if a user chooses to install Procedural Research Tree, then the mod dynamically figures it out for them, without modders ever having to worry about API registeration.

image.pngHeres what prompted this forumimage.pngIt's still usable, but messy at best.

Any input on the matter would be helpful! I may look into creating this in the future, unless somebody else would rather take this torch. I'm just hoping to get the ball rolling before we the entire research tree is bloody mess.

I’ve actually been seeing situations like this for quite a while too. Even now, when I have some time to play, I have a similar problem myself. I contacted the author of one mod because one of its research nodes overlaps with a vanilla research node — so in that case it’s not even mod versus mod, but modded research overlapping with the original game research.

I wrote to the author about it, but nobody replied. As far as I can tell, that mod might be abandoned for now, or maybe the author just doesn’t have time to work on it anymore. I honestly don’t know.

I think your idea is really good, but for now I probably wouldn’t take on something like this myself, because I still don’t know all of this well enough yet. Maybe one day, yes — I’d actually like to create something like that as a separate project outside of my own mod.

Maybe it could be some kind of shared system or code that modders could include in their mods, and then everything would connect to it and the research tree could be arranged in a clean and consistent way. I’m not sure what the best approach would be yet.

Even in my own mod, I had quite a hard time figuring out the right code just to change the amount of a resource in the base game — not the resource itself, just its quantity. That was pretty difficult for me, although I finally managed to get it working.

So right now I’m not sure how much I could contribute to something this complex. But if you ever need my help with it, I’ll do whatever I can.

In any case, I completely agree with you.

X-Mag-X
X-Mag-X · 15 days ago

No wurries. I'm also quite busy trying to finish both omni tools and one last special mod. maybe in the next few weeks i could try throwing the problem at an AI to see if it can solve it for the meanwhile. It would be a large undertaking to maintain quality control for such a project. but it's worth it to see if the output can somehow get it right on the first few tries.

Maybe it could be some kind of shared system or code that modders could include in their mods....

Even in my own mod, I had quite a hard time figuring out the right code....

Becoming a true API that allows better registration syntax is certainly possible. Although i wouldn't want authors to be forced to use it, so if it ever grew to become something like this, it would still have to solve the entire research tree whether nodes are registered natively or through the API.

The simple starting solution would just be something the user can opt-in by installing and VOILA the research tree becomes a perfect spaced Node table with zero overlapping with any mod combination.

The difficult part will be figuring out how to maintain an author's intention without too much empty space. It will have to understand pre-requisites, post-requisitesand even weird-intentional non-linear pathing, and probably all sorts of other conditional problems i can't even imagine yet—to know they exist.

Ill have to take a look at how rim world does it , i believe their research tree was similar to COI's one major network. While other games like Minecraft or factorio had more nested trees, or completely separate trees for each mod, so it wasn't a problem i ever noticed as a user.

A hybrid API could exists, where it continues working as it does already + API ability to add nested trees for your own mod, and if any a mod's nodes has vanilla pre-requisites, it could simply link to them or show a mirror of them in the nested tree.

well.. if you ever see a mod called "Adaptive Research Tree" you know it's me ; )

Edited 15 days ago
X-Mag-X
X-Mag-X · 15 days ago

— so in that case it’s not even mod versus mod, but modded research overlapping with the original game research.

Id love to know the name of the mod you mentioned, not to throw shade, but if i do decide to try this, I'll need to test it with as many edge-cases as possible!

Edited 15 days ago
AlgidityS · 15 days ago

X-Mag-X wrote:

No wurries. I'm also quite busy trying to finish both omni tools and one last special mod. maybe in the next few weeks i could try throwing the problem at an AI to see if it can solve it for the meanwhile. It would be a large undertaking to maintain quality control for such a project. but it's worth it to see if the output can somehow get it right on the first few tries.

Maybe it could be some kind of shared system or code that modders could include in their mods....

Even in my own mod, I had quite a hard time figuring out the right code....

Becoming a true API that allows better registration syntax is certainly possible. Although i wouldn't want authors to be forced to use it, so if it ever grew to become something like this, it would still have to solve the entire research tree whether nodes are registered natively or through the API.

The simple starting solution would just be something the user can opt-in by installing and VOILA the research tree becomes a perfect spaced Node table with zero overlapping with any mod combination.

The difficult part will be figuring out how to maintain an author's intention without too much empty space. It will have to understand pre-requisites, post-requisitesand even weird-intentional non-linear pathing, and probably all sorts of other conditional problems i can't even imagine yet—to know they exist.

Ill have to take a look at how rim world does it , i believe their research tree was similar to COI's one major network. While other games like Minecraft or factorio had more nested trees, or completely separate trees for each mod, so it wasn't a problem i ever noticed as a user.

A hybrid API could exists, where it continues working as it does already + API ability to add nested trees for your own mod, and if any a mod's nodes has vanilla pre-requisites, it could simply link to them or show a mirror of them in the nested tree.

well.. if you ever see a mod called "Adaptive Research Tree" you know it's me ; )

Keep me in mind if you ever need any help — I’ll be happy to help however I can.

Alright then, I’ll keep that in mind. And feel free to message me anytime as well. You can reach me on Discord — I’m usually there much more often than I am here on the website.

❤️ 1
AlgidityS · 15 days ago

X-Mag-X wrote:

— so in that case it’s not even mod versus mod, but modded research overlapping with the original game research.

Id love to know the name of the mod you mentioned, not to throw shade, but if i do decide to try this, I'll need to test it with as many edge-cases as possible!

https://coigame.com/Mod/20/Underground-Transport

Here it is. When I’m back at my PC, I’ll send you some screenshots on Discord.

👍 1
X-Mag-X
X-Mag-X · 15 days ago

Perfect thanks! I'll try to finish my current mods before i bite off more than i can chew 🙃

In the meanwhile our research nodes ar close cousins, welcome fam hahaha ✌️🤣

Edited 15 days ago
AlgidityS · 14 days ago

X-Mag-X wrote:

Perfect thanks! I'll try to finish my current mods before i bite off more than i can chew 🙃

In the meanwhile our research nodes ar close cousins, welcome fam hahaha ✌️🤣

Hahaha 😂👌

51
Showing 1–8 of 8