Jump to content

"Parts upgrades" and.. a place to learn Unity..


LadyAthena

Recommended Posts

Ok, so here's my thing. I wanted to mod KSP back in the day with an over top mod idea. Problem is, I didn't know how to program in Unity, or mod it in a way I needed. I know how to mod KSP in the most simplistic ways.. Tweaking engines, altering stats of things already there, but no real knowledge of adding things that don't exist, or tweaking elements already there and adding them to something they don't exist on yet, but before I get into that...

Mod Idea:

One problem with KSP, is the progression feels tacked on. By that, I mean, you do a few things, unlock a node, ton of new parts.. rinse and repeat. Many of those nodes you grab things you don't want, just because you need them. There are tech tree mods which break up the tech tree into much more intuitive ways allowing you to go down the path you want. I really like these. Want all un manned missions, and focusing on probes? You can do this. But there was always 1 thing inkling me that I couldn't put my finger on. Something was still missing in that progression.

One day I was playing Hearts of Iron, and realized that fine point KSP was missing, that is both realistic, and allows for nice progression. "Practical Knowledge". Practical Knowledge is basically the experience your little kerbals have in using a piece of equipment. This is realistic as well. Only way to truly upgrade something, is learning how it acts in all situations, and when and where it breaks, where it's the strongest, and weakest, etc. and only then can you finally sit down and upgrade that part, or make a better one.

I'm not sure the limitations of the coding in KSP, so I have 1 of two idea's. If the first one isn't possible.

Idea 1)

Nearly every single piece of equipment in KSP will have its own "Practical Knowledge" or PK gauge. As you use the piece of equipment in real time this PK gauge slowly fills. When it hits 100% you can spend science points to "upgrade" it.

So as an example: LV-45 engine. You use science to unlock the node which has this, and spend a few missions using it. On its little card in both the tech tree and in the hangar/VAB you'll see a roman Numeral I in the top right corner of its card. This means the LV-45 engine is the stock Tier I version.

However after using it several times the Practical Knowledge gauge is at 100% (which you can see by looking at the additional info on the part). By going into the Tech Tree at the research center (I'd like to make a whole new tab for this). You can click the parts you've unlocked, and click "upgrade".

What this will do, is boost the parameters of the engine slightly in all categories. Making it slightly better fuel efficiency, and slightly better power. On the Card in the VAB, you'll now see a roman numeral II on the top right and its new stats.

This can be done all the way to tier X. and the cost of the upgrade will double each time, as well as how long it takes before the Practical Knowledge bar fills each time its upgraded.

This can result in parts usually deemed redundant or useless, to be practical depending on your play style as well. If you hate super big parts like myself, but want a powerful launch base, you can upgrade the parts you like. Normally the Tri coupler, which allows for 3 fuel tanks to be placed next to each other in a triangle configuration is more or less useless. As once you unlock that, you also get the mega big fuel tanks and engines, which are more efficient and powerful anyway. However, if you've already spent time upgrading your LV 45 engines to tier V, and single base fuel tanks to tier III, 3 of your tier V LV 45 engines may give you 4x the boost that 1 big engine at tier I will give you. Allowing you to skip the parts you don't like, or want, and not feeling like you're only limiting yourself by doing so.

This upgrade system can be especially useful for new players, or players who have difficulty using specific parts. Such as Ion engines. After spending time learning and using Ion Engines, and getting it upgraded to tier V or VIII, may result in the engine having more than enough kick to boost that ship you were so wanting to put on it.

This can be done with every part, and maybe even fuels.

Antena's could get a slight boost to how much electricity it consumes per tick, and how much data it can transfer, (For mods like Remote Tech I could even add how far it can connect, etc.).

For science modules, it simply boosts how much data is recoverable by sending the data through antenna's without bringing it back. Or maybe even adds boosts to the total amount of science you can get, as the part increases in complexity, allowing for better science tests.

Fuel tanks allowing for slightly bit more fuel in the tanks each tier while keeping to its same size.

Even tweaking the fuel specs themselves. Realistically our knowledge of fuels to power rockets is advancing as well, allowing for more volatile, yet efficient fuels to power our ships longer distances and faster. By having a gauge for each fuel type as well which you can spend science to upgrade decreases the fuels weight, and adds more "kick" the engines get from using it.

However, even though I know only the most basics of modding KSP, I know this idea would result in many tweaks of the games initial mechanics, so I'm not even sure if its possible.

So onto Idea 2)

Idea 2 is a simplified version of Idea 1 which simply keeps it more "stock" like.

Each Tech Tree node will have its own seperate "Practical Knowledge" gauge. As you use any part in that Tech Tree node, the Practical Knowledge for it goes up. When it reaches 100% only then can you spend science to unlock the next Node. Much more simplified, but more stock like..

------------------------------------

My second request... Any good sites, or ways to really learn how to mod KSP for absolute noobs and beginners... I've looked at sites for Unity programming tutorials, but they are all written in C++ coding, which KSP does not seem to use, so I'm thinking is more or less useless to me, since I'd like, and I'm assuming need to stick to the same base type of programming Squad is using, which I can't seem to find..
Link to comment
Share on other sites

Hm, well your version II parts *are* new parts, they have different stats - so what you want are lots of different parts that just look like versions of the same part in the editor - which I guess might trivially be done with filters, although that would be a whole lot of tabs... how moddable the editor views are I have no idea. You could have your V2 part just replace the V1 part completely, but that will upgrade all your existing spawned craft too.
Link to comment
Share on other sites

I love the idea of tiered part upgrades, especially for engines! It parallels what really happens in real life engines. NASA really does upgrade existing engines and their stats because of the gaining of "practical knowledge" as you say it: better manufacturing techniques, improved engineering designs etc. gained through years of flight experience.
Although I could imagine that the coding part of this proposal might be a pain in the butt.
Link to comment
Share on other sites

[quote name='Van Disaster']Hm, well your version II parts *are* new parts, they have different stats - so what you want are lots of different parts that just look like versions of the same part in the editor - which I guess might trivially be done with filters, although that would be a whole lot of tabs... how moddable the editor views are I have no idea. You could have your V2 part just replace the V1 part completely, but that will upgrade all your existing spawned craft too.[/QUOTE]

See, I know the logic behind programming and what you can and cannot do. I just don't know how to actually do it you know? I know that if I were to replace the part out right, it would essentially either break craft already in flight, or replace the engine itself. Which is a no go. The easiest thing I could do is instead just have every part hidden until you unlock it. On the left of the VAB screen, I'd have tabs for each tier. So you'd see a tab with I on it, and II on it, III, IV, etc. Clicking those tabs shows you parts you've unlocked at that tier, this would keep things seperate and not replace anything on crafts, or break the craft.

My goal is to also allow for even more immersion. It's not just "oh cute a probe with a a LV 45 engine XD", but "Ok, here's my Unison 4 Mission to Eeloo with a Tier IV Nuclear engine, when I've just launched a new manned mission to Dres with a Tier VIII Nuclear engine". Going back to ships that are in flights for 8 years, and seeing your old engines that are the same but lower tier, is more like looking back in time, than just looking at an earlier tech tree node in a way, because you know all the time and experience and science spent in those last 8 years to get to where you are now, from where you were when the mission took off from 8 years ago.

[quote name='Insanitic']I love the idea of tiered part upgrades, especially for engines! It parallels what really happens in real life engines. NASA really does upgrade existing engines and their stats because of the gaining of "practical knowledge" as you say it: better manufacturing techniques, improved engineering designs etc. gained through years of flight experience.
Although I could imagine that the coding part of this proposal might be a pain in the butt.[/QUOTE]

That's what I'm afraid of, the coding is going to be a royal pain if I want my first idea to go through 100%.
Link to comment
Share on other sites

To start with, if you add a part module to every part (module manager is your friend!) that can be upgraded... that gives you a place to store the tier level and any other information your part needs, because partmodules can save data in the persistence.sfs file on a per instance basis. So tracking 'this is a tier 1 and that's a tier 4' won't be as hard as it sounds. The question is, and I don't have a development environment set up to check right now... whether everything you need is accessible to write to the data stored in memory about each part, or if any of those properties are read only?

When you load the VAB, you've got to iterate through every part and update the parameters that will come up in the right click menu based on the current tier of the parts....

When you place an instance of a part in the VAB, you've got to replace the default loaded parameters with the upgraded ones so that delta-v and TWR calculations are accurate... (which may mean figuring out where Mechjeb and KER (and FAR?) get their data and getting your new data into that place before they pull it... if they only pull it once instead of checking over and over.... though you could always jump into the code of these mods and create a method for other plugins to assert new info for this purpose... then make a pull request... as long as you didn't break anything! :)

And then every time a vessel is loaded in flight you have to swap the values loaded into memory from the .cfg file for the correct ones. All of that sounds easy enough in the partmodule IF those parameters are not read only?


The hardest part of what you mentioned seems like adding a page to the R&D building. Has anyone succeeded at adding pages to the buildings? I'd thought about it myself... I'd had an idea for an ISRU plugin that required you to do research before you could use ISRU... so you'd have to do an atmospheric analysis on Duna, for example, before you would know there were appropriate chemicals to make monoprop, and you'd have to actually do a sample return before you'd unlock what you needed to mine materials for LFO.... but I digress. You may not need a tab in the building. You could display the pk progress bar like the other slider bars in the vab right click menu? Or just as a number in the right click text... and then when your pk is sufficient, all versions of the new part are the upgraded one? Or add a button to the right click menu to select between tiers, if you balanced it such that there was any circumstance under which a tier 1 was better than a tier 2? (some parts could conceivably cost more in the upgraded version? And other parts the upgraded thrust and efficiency come with a lower heat tolerance? Just ideas... that could make it much more complicated for the user to have to know or find out all those different cases for each part... maybe best to just make the upgrade a true upgrade and not give the option to use the lower tier once the part was 'improved.'
Link to comment
Share on other sites

I honestly think creating completely seperate parts with perhaps a Partmodule that just says { UpgradesFrom = <other part name> } would be the best approach rather than trying to make many parts out of one part cfg - that way it's easy to place the parts in the tech tree too. As everyone's saying I suspect the UI is by far the worst part.
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...