What would make the game easier to mod?

Started by Tynan, June 10, 2016, 04:01:27 PM

Previous topic - Next topic

cuproPanda

palandus, I hate to criticize your ideas, because they are good ideas, but they don't seem to be in the scope of this topic. My own suggestion isn't above this, either, and I shouldn't have posted it here because it is more of a reworking of the way recipes are handled. A lot of suggestions being given would probably be better put into a general suggestions thread.

That being said, while I can't think of any simple changes that would be useful, I will be noting things I come across as I work on updating to A14, and I'll post them in a similar thread for A15 changes if one is made. There are certainly some specific private fields and static classes I was frustrated by, but for my purposes there weren't any that I couldn't get around.

cuproPanda's Mods: Survivalist's Additions, Additional Joy Objects, Cupro's Drinks, Quarry, Cupro's Stones, Zen Garden, Cupro's Alloys, Preset Filtered Zones, & more!

palandus

The problem with any suggestion is what is defined as simple or cheap to implement; always depends on multiple factors from coding style, how much refactoring is necessary, personal view on what should be allowed to be modded and if the suggestion is something one feels like doing. Without knowing precisely how Tynan defines simple, I'm kind of using the "shotgun approach", and firing off multiple possible areas that I'd love to see made more open, but not necessarily having any expectation that any of them will be implemented.

Something I might see as complicated to implement, Tynan might see it as simple to implement and some things I think are simple to implement are in fact extremely hard to implement. So, I don't mind the criticism, Cupro, but I still intend to fire off more possibles that may or may not get implemented, till Tynan tells me to stop.

Tynan

palandus please stop. Many of your suggestions are just ideas for game features. The rest are mostly things modders can and should do themselves.

If you want to make another suggestion, make it very specific, with references to specific pieces of code, classes, and interfaces. And make sure it's simple please.
Tynan Sylvester - @TynanSylvester - Tynan's Blog

palandus

#33
Fine I'll stop.

Again, simple is relative. But, I digress. In the future, Tynan, clarify exactly what you are looking for and you'll get a lot less garbage to sift through and a lot fewer crushed spirits. We don't know what you are looking for and thus cannot provide responses that you want.

Now that we know that you only want specific C# code changes for just C# modders, I'm sure that is the only responses you will get from now on in, now that we know you don't want XML changes. Thank you for the clarification.

Tynan

XML change ideas are fine. Some of yours were worthwhile, but a some of them could be solved if you just used a grep tool.
Tynan Sylvester - @TynanSylvester - Tynan's Blog

mrofa

Replacing TypeOf(class) with some xml identificator, stuff like  .typeof(Building_Door)
All i do is clutter all around.

Tynan

Quote from: mrofa on June 16, 2016, 03:09:37 PM
Replacing TypeOf(class) with some xml identificator, stuff like  .typeof(Building_Door)

Type is a part of C#, I can't change how that works. You can compare defs if you want.
Tynan Sylvester - @TynanSylvester - Tynan's Blog

mrofa

What i mean is, insted of search for .typeOf, search for xml identificator.
Thrugh in my case i could only give a Buidling_door as a example, where typeOf in i think base.spawnsetup or pather prevent becoming a room barrier any custom class that uses Building_door as parent.
All i do is clutter all around.

palandus

Well, it is good to hear that you still will take XMLs suggestions, but I got none. The only really good suggestion is thus:

Keep a list of contact email addresses of prominent modders that have been burnt out by the current modding scene, with the constant changing code base, and contact them when the game is close to final stable release telling them that the code isn't likely to change as much anymore, so that updating their mods isn't torturous to do anymore. As mods keep the game interesting with extra content, having modders get burned out is a huge loss for the community and game. Most quit after being unable to update their mod to the next alpha, thus if the code is relatively final, they might be encouraged to come back.

All I got though. Cheers!

Tynan

Quote from: palandus on June 16, 2016, 04:00:29 PM
Well, it is good to hear that you still will take XMLs suggestions, but I got none. The only really good suggestion is thus:

Keep a list of contact email addresses of prominent modders that have been burnt out by the current modding scene, with the constant changing code base, and contact them when the game is close to final stable release telling them that the code isn't likely to change as much anymore, so that updating their mods isn't torturous to do anymore. As mods keep the game interesting with extra content, having modders get burned out is a huge loss for the community and game. Most quit after being unable to update their mod to the next alpha, thus if the code is relatively final, they might be encouraged to come back.

All I got though. Cheers!

That's a bit off topic (since it's a community management idea and doesn't make the game easier to mod), but a good idea.
Tynan Sylvester - @TynanSylvester - Tynan's Blog

palandus

Well, if there was a specific XML request, it would be to have editable files in each of the folders in Core. Several folders have nothing in them like, BrokenStateDefs and PawnKindsDefs. That or remove the empty folders to avoid confusion.

Tynan

Quote from: palandus on June 17, 2016, 12:52:11 AM
Well, if there was a specific XML request, it would be to have editable files in each of the folders in Core. Several folders have nothing in them like, BrokenStateDefs and PawnKindsDefs. That or remove the empty folders to avoid confusion.

Lol I didn't even know there were empty folders there. They don't show up in VS. I'll get rid of them.
Tynan Sylvester - @TynanSylvester - Tynan's Blog

skullywag

Can we have the source of some/all of the stuff decompilers like ilspy cannot touch. Anything with an iterator block in basically.
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

palandus

Specific C# Changes:

Most important to me:

Assembly # -> Rimworld -> LearnRates

Could you please make each of these variables XML moddable.

------

Other areas I'd love access to, but less so than above:

Assembly # -> Rimworld -> InfestationCellFinder

      private const float MinRequiredScore = 6f;
      private const int MountainousnessScoreRadialPatternIdx = 700;
      private const int MountainousnessScoreRadialPatternSkip = 10;
      private const float MountainousnessScorePerRock = 1f;
      private const float MountainousnessScorePerThickRoof = 0.5f;
      private const float MinCellTempToSpawnHive = -17f;

Can you make these all public (or make them XML moddable), so that modders can modify how insect hives behave, and how quickly they can multiply, etc...

Assembly # -> Rimworld -> InteractionWorker_RecruitAttempt

      private const float MinMoodToRecruit = 0.35f;
      private const float MinRecruitChance = 0.005f;
      private const float BondRelationChanceFactor = 1.5f;

I like having fine-tuned control over recruitment, sometimes making it easier other times harder. Would love to have access to this stuff in either public or xml.

cuproPanda

I second the recruit attempts. To me, recruitment is too easy and so I tend to only have low skilled wardens on purpose. It would help modding, too, since the rates could be changed on the fly dependent on [event].
cuproPanda's Mods: Survivalist's Additions, Additional Joy Objects, Cupro's Drinks, Quarry, Cupro's Stones, Zen Garden, Cupro's Alloys, Preset Filtered Zones, & more!