Jump to content

A suggestion to MOD makers


Daveroski

Recommended Posts

1 hour ago, Errol said:

I would say that this applies to MOLE by @Angel-125. The original concept of expanding the mk1 pod was neat, to make it a two seat. Working into a skylab a-like was fun too. But adding in a new tank and engine size, not even just a couple new parts, but a whole new size? I always felt that was out of scope of the original intent.

You know? Nobody is twisting your arm to download and use mods. Nobody is stopping you from making the exact mod that you want to use; all you need to do is learn a 3D art package, a graphics program, and maybe some Unity programming.

Most modders make the parts that they themselves want to use in their games and they also enjoy sharing what they create with the community. It's not up to the modder to try and package their creations to satisfy the ever changing whims of users who download the mod. If something is not to your liking, nothing is stopping you from a) pruning what you don't want to use, b) modifying config files to suit your purposes, and c) not bothering to use the mod in the first place. In fact, when you decline to download and use a mod, it saves us modders from listening to your complaints.

When it comes to my own mods, I build the parts that I want to use in my own game. If that doesn't suit you, I'm ok with that.

I tell you what: I can pull down everything I've created, and then you'll have nothing. Sound good?

If not, maybe you should think twice about complaining about the content that people work tirelessly to produce and then generously share, all too often without any expectation of getting paid to do so.

Edited by Angel-125
Link to comment
Share on other sites

@Angel-125

Was not meant as a complaint, I'm sorry you took it that way. The OP was talking about modularizing mods. I'm just trying to say I felt like MOLE was going to be more of a constellation of mods around the MOLE concept, similar to RD's work.

I would also like to say that I don't know much about programming beyond editing .cfgs a little, so I realize that you have already done lots of work to develop your mod to where it is, and changing fundamental schemes can be more effort then it is worth for the gain. If there even is a gain, as it is more a matter of aesthetics at this point.

Edited by Errol
Link to comment
Share on other sites

I kind of understand what @Daveroski wants and why. Many arguments as to why this is not happening are already mentioned. As well as to why it would be a good thing.

For me as a addon developer the effort would just be too big. Configuration and version management is time intensive. Companies employ full-sized departments doing nothing else.

But I'll anyway carefully consider for my addons (GravityTurn for now) what functionality to include and what not in order to not bloat it over it's initial purpose. If I ever feel the need to do something like "GravityLander" (or whatever) then most likely that would be a separate addon, sharing code with GT and maybe offering some kind of interaction between them.

For anything else I plan to implement ways to hide some the complexity of any non-core functionality on the UI. But of course - what is "core" or not is different for most players...

I hope this is a good compromise...

Link to comment
Share on other sites

We decided to go that way with RemoteTech, like a month ago.

At first the decision was made for players (using only the part in RemoteTech they wanted, in our case: Delay, Flight Computer and Antennas are in the process of being separated), but it has proven to have some side-effect benefits:

1) Making the mod to be modular forced us to do a full code review

 - Eliminating dead or un-useful code (compatibility code with older versions)

- Rewrite some parts that are hardly understandable at first sight

- Follow Unity optimizations (remove bloated LINQ, foreach loops that generate boxing or memory allocations, etc.) [there's some very good literature on this subject [1] [2] [3])

2) This full code review made us enforcing new coding practices,even for a hobby project:

- It forces us to use good "industry practice": use known patterns; decouple classes (Dependency injection ; Inversion of Control); Remove god classes, etc.).

 

TL;DR : making a big enough plugin modular is a good chance to review your mod code.

 

Link to comment
Share on other sites

3 minutes ago, neitsa said:

We decided to go that way with RemoteTech, like a month ago.

At first the decision was made for players (using only the part in RemoteTech they wanted, in our case: Delay, Flight Computer and Antennas are in the process of being separated), but it has proven to have some side-effect benefits:

1) Making the mod to be modular forced us to do a full code review

 - Eliminating dead or un-useful code (compatibility code with older versions)

- Rewrite some parts that are hardly understandable at first sight

- Follow Unity optimizations (remove bloated LINQ, foreach loops that generate boxing or memory allocations, etc.) [there's some very good literature on this subject [1] [2] [3])

2) This full code review made us enforcing new coding practices,even for a hobby project:

- It forces us to use good "industry practice": use known patterns; decouple classes (Dependency injection ; Inversion of Control); Remove god classes, etc.).

 

TL;DR : making a big enough plugin modular is a good chance to review your mod code.

 

I was going to edit the quote to only show the relevant points.

No need to to that either.

Bravo Sir! Bravo!
 

54 minutes ago, AndyMt said:

I kind of understand what @Daveroski wants and why. Many arguments as to why this is not happening are already mentioned. As well as to why it would be a good thing.

For me as a addon developer the effort would just be too big. Configuration and version management is time intensive. Companies employ full-sized departments doing nothing else.

But I'll anyway carefully consider for my addons (GravityTurn for now) what functionality to include and what not in order to not bloat it over it's initial purpose. If I ever feel the need to do something like "GravityLander" (or whatever) then most likely that would be a separate addon, sharing code with GT and maybe offering some kind of interaction between them.

For anything else I plan to implement ways to hide some the complexity of any non-core functionality on the UI. But of course - what is "core" or not is different for most players...

I hope this is a good compromise...

KSP is twitchy even in vanilla. So much so that the twitches have been given a pet name, "The Kraken."

Mod developers can't be sure that their harmless bit of code isn't going to kick the toe of the beast often enough, over a few hours of play, that eventually the beast notices and goes of into a corner to do a spot of self harming.

I am not looking for developers to hide the complexity of the core mod from the user. More to avoid making a mod larger than was initially intended. Extra features should be modules.

I was about to cover some of the points that @neitsa just mentioned, I'm glad he did, as I simply wouldn't have done it justice.

 

Link to comment
Share on other sites

I think @Daveroski is right in the part that complex mods are updated more slowly and painfully than little ones. And yes, there are mods those look like a several functions unjustifiably pulled together. And when they get abandoned noone wants to pick them up because it's a lot of pain to go through the entire mod just to get the basic and mostly wanted functionality back.

On the other hand, the downside of modularity (besides everything said) is that the modular design wouldn't be perfect. And one day a modder will want have to rewrite the inter-operation between the parts once he finds that the design doesn't suit new requirements and that will break everything that worked before.

So the compromise could be to make (when possible) many little mods that could be installed independently instead of releasing one big monster that does everything. As example, @Malah's quick mods and others.

Edited by Ser
Link to comment
Share on other sites

Mechjeb is fully modular. The fact that it ship in 1 dll does not mean it is not the case. Actually MJ2 was modular 3 years ago since AFAIK it is why MJ1 was rewritten in MJ2.

The one thing that is not as modular as I would want is that for some module the UI is not properly separated from the logic. I plan to change this when I redo the UI

But I could easily compile a DLL with nearly no functionality and then build new one for each function. But I don't see the point for now.

And if you don't want some of the feature you can easily deactivate them with a cfg that prevent some of the module from loading.

Edit : added a point on the UI

 

On 11/11/2016 at 0:43 PM, Daveroski said:

They have turned into monsters which are bigger, harder to maintain, harder to trace faults and harder to expand.

And I had missed this. Allow me to comment on your lack of insight on MJ maintainability

iWKad22.jpg

Edited by sarbian
Link to comment
Share on other sites

2 hours ago, sarbian said:

Mechjeb is fully modular. The fact that it ship in 1 dll does not mean it is not the case. Actually MJ2 was modular 3 years ago since AFAIK it is why MJ1 was rewritten in MJ2.

The one thing that is not as modular as I would want is that for some module the UI is not properly separated from the logic. I plan to change this when I redo the UI

But I could easily compile a DLL with nearly no functionality and then build new one for each function. But I don't see the point for now.

And if you don't want some of the feature you can easily deactivate them with a cfg that prevent some of the module from loading.

And I had missed this. Allow me to comment on your lack of insight on MJ maintainability

I haven't used mods since 1.2

I really want to but even updating to 1.2.1 caused many mods to need work and another update of KSP with some much needed fixes is in the making.

Please don't misunderstand me @sarbian

While I can perform suicide burns with a very high success rate I still enjoy MJ's precision landings.
I can manage intercepts to within 100m without any problems but prefer to let MJ do it for me.
I can land my space plane on the runway every time and so never really used MJ for that. I tried it a few times, in the early days, but it proved unsatisfactory and so it gave me the chance to develop the skill.
I enjoy and prefer to dock manually or using an Alignment Indicator so I have never really used MJ's docking autopilot.
I prefer to plot my own transfers but I liked to let MJ execute the manoeuvres.

I still find MJ to be one of my favourite tools. It takes so much of the grind out of the game for me.
So please do understand that I am in no way showing you or MJ any disrespect.

I had no idea that mechjeb's deactivated functions were not installed into memory at all and couldn't possibly interact with anyone else mod using the same system/KSP routines.
It can now probably land space planes on the runway and the jittery rapid fire engines and constantly exiting warp when coming in to land at mimnus is probably a thing of the past.

I honestly look forward to the time when I will feel comfortable using mods again. However while KSP itself is trying to shake my stations apart and can't dampen SAS and so constantly make adjustments to the roll setting on the SAS of my ships and my rovers can drive over texture boundaries without having wheels explode... I need to be able to nag Squad on the bug-tracker and can only do that with a vanilla game.

I have always supported the use of Mechjeb and feel that it is useful to veterans like myself as well as beginners.

I normally use a multitude of mods and actually miss them a lot.

Edited by Daveroski
Link to comment
Share on other sites

New title of the thread: @Daveroski confuses the KSP community to a prefessional software development company.

On 11.11.2016 at 3:55 PM, adsii1970 said:

Yes, this is exactly why I quit using B9 Aerospace. I almost feel the same way about Firespitter. I really hate a majority of the parts in that mod and delete them each time I update the mod (and forget that all I really need is to replace the DLL :huh:).

If you use CKAN, you can install the Firespitter Core module. If you don't, why not just delete all the parts?

 

On 11.11.2016 at 3:55 PM, adsii1970 said:

Now, if anyone wants a challenge, why not create a mod that scans the other mods and gives us a complete parts list within that mod. Select the parts you want to keep, the mod either deletes the rest or moves them to a folder that KSP does not use.  That would be pretty cool, if you ask me.

Those exist. There is even a CKAN plugin, but that one is broken and unmaintained, unfortunately. Are you up for the challange? :wink:

 

On 11.11.2016 at 4:37 PM, Tex_NL said:

There is an ever increasing number of players (apologies in advance to those that feel offended) that are too dumb to even install a mod without somebody holding their hand. Let alone dive into the installation folders and manually remove parts.

 

On 11.11.2016 at 4:37 PM, Tex_NL said:

P.S.
I chose Mk2 Expansion and B9 Aerospace in my example for no other reason than that I stopped using those mods for this exact same reason. Their RAM footprint started to outgrow their usefulness. 

So what you are essentially saying is that you yourself "are too dumb to [...] dive into the installation folders and manually remove parts."?

 

On 11.11.2016 at 5:46 PM, Tex_NL said:

Imagine building a car and give the customer the option to choose what engine he wants. And what gearbox, fuel type, body type, tire size, accessories, colour, etc. Now the customer will end up with exactly the car he wants and not an expensive garage full of parts he will never use

Oh wait. Car manufactures are already doing this.

 

On 11.11.2016 at 9:25 PM, Daveroski said:

It all comes down to tidy programming.

Backseat programming is best programming, right? :wink:

 

On 11.11.2016 at 9:25 PM, Daveroski said:

Had it started out in a modular fashion, most of us who have it installed would not have a complete install of Mechjeb.

I would, you would, but most other people wouldn't. People seem to like complete packages a lot, actually.

 

On 11.11.2016 at 9:25 PM, Daveroski said:

Adding features to the core mod could mean that the developer doesn't have to work on the whole thing, just a module. Bugs could be easier traced back to their module.

As said: MJ is already modular. However, Modularity increases other overhead.

 

On 11.11.2016 at 9:25 PM, Daveroski said:

I know most of you won't get it. I know some of you just like to be contrary. But some of you know that this is the direction mods should be moving in.

Oh how lucky we are that you are here to explain it to us dummies!

 

14 hours ago, Daveroski said:

I didn't. You did.

Sarbian doesn't have the time to immediately fix everything. It's completely irrelevant if MJ is modular or not. In this case, it is modular.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...