Jump to content

[0.90] Released -- BlueSky R&D: A more intuitive stock-parts tech tree, using TechManager mod


sherkaner

Recommended Posts

Inspired by the excellent discussion in an ongoing development suggestion thread, this is an all-new new tech tree implementing many of the very good ideas there, using the TechManager mod. I hope it provides a more satisfying career/science-mode experience using the current stock parts, as well as to serve as a proof-of-concept for this different style of tech tree that I hope might nudge the KSP developers more in this direction as the game progresses through beta.

To summarize the discussion thread that led to this, these are the goals of this tree:

  • Provide players with much greater flexibility in play styles by taking parts out of the current somewhat arbitrary node bundles and putting them into a tree where most nodes contain a single part, as well as offering a broad swath of parts right from the start. Specifically, it gives players immediate access to parts that would allow them to build a (very simple) rocket, plane, or even rover right from the start.
  • Dependencies will both feel intuitive -- with simpler versions of parts generally leading to more complex versions -- as well as provide multiple paths through the tree so that a player can "discover" new parts and technologies organically, much as they would in real-world R&D.
  • Parts should still fall into three major technology "eras", defined by the state of the KSC R&D facility. (More on this below however...)
  • The overall "difficulty" of the tree should not be substantially different, with the power of choosing a specific path through the tree counterbalanced by the per-part science costs being, on balance, somewhat higher.
  • The new tree should use all current (0.90) stock parts so that it can be immediately played through by any player -- but of course I would encourage others to supplement the tree with versions that incorporate popular mod parts.

I've released the first version of BlueSky R&D -- download it here.

You will of course need to install TechManager to use it. That done, it's basically as simple putting the .cfg file in your game directory at GameData/TechManager/ and starting up the game. With TM installed, a window will appear for new careers asking you what tech tree you would like to use -- or for existing games, alt-f7 inside the R&D facility will let you switch between them. Because BlueSky R&D is meant as a total replacement of the stock tree, please make sure that you ONLY select it -- make sure the stock KSP tree is unselected.

When creating a new game, please manually start yourself with 30 science points. This tree requires purchasing even your first parts and so 30 science will give you an amount to make your first choices. I am not able to specify this in the tree itself so you must do it manually.

Project background:

Although I believe this tree is ready to play, there are a few things to be aware of:

  1. Because I want to release something for as wide an immediate an audience as possible, I am using purely stock parts. Because I am cannot rebalance the parts themselves, some overall balance issues will exist putting them into a drastically different tree. There are a number of areas of the tree that could be much improved with changes (and additions) to parts. Also, I am unable to change the money cost to get specific parts (only science cost for its node). However, I didn't want to let the perfect stand in the way of the good -- and I really believe that this tree will provide a very rewarding career option for those who chafe a bit at the stock tree's tendency to force a certain development approach. I certainly plan to update this tree with future modifications to parts.
  2. Currently it seems that the R&D facility's level puts a very simplistic limit on tree progress by way of thresholds on the science cost of nodes. Because my node costs are going to be drastically lower and more varied (one part per node generally rather than many), this approach is incompatible. This means that currently the R&D facility level will essentially put few limitations on your tree progress. (I would be very happy if TechManager or KSP itself included a way in the tech tree config file to simply specify the required R&D facility level in each node directly.)For now, I have put some labelled dummy nodes into the tree that will visually show you the divisions between the three R&D facility levels. If you want to play honest, make sure you pay to upgrade your R&D facility before you unlock any parts beyond these lines.
  3. While I have populated real science costs for the nodes thorughout this tree, this is really only a best-effort attempt with no real playtesting. However the overall costs and scaling with tier level should be roughly sensible. But I am very open to feedback on science cost balancing (especially if your feedback is more than just "this one part is way too low/high!"). Currently what I do is rate each part on a 1-4 scale of relative costliness. Then I have a script that automatically applies a multiplier to R&D tier 1, 2, and 3 nodes to generate the actual costs. Currently the scales are 5, 25, and 200 respectively. So a part with a rating of 3 in tier 2 would have a science cost of 3*25=75. Keep this system in mind when suggesting changes.
  4. Because the tree is so much larger than stock, it may be a little confusing when you first open it up. Zoom all the way out and scroll to the left to see the starting parts which should look like this:

ghUgwDc.png

The reason there are those dangling nodes to the right is because, again, I can't lock out parts based on R&D facility level and those are intended to be prerequisiteless nodes, once you've reached tier 2 or 3.

Once you research the initial "free" (in science) nodes, it should look like this:

rKM1eol.png

And finally, here is the complete tree (unless you want to be surprised):

rP2kaAo.png

For reference, here is the diagram I put together of how the new tree would be laid out, which I have 95% stuck with in the BlueSky tree:

5PKkHI3.png

Enjoy and hope to hear feedback from people as they play through careers using it!

Edited by sherkaner
Tree release
Link to comment
Share on other sites

Am I understanding correctly that the canvas is wider than it is tall?

Yes, about twice as wide as tall. The tree you see there essentially takes up the right half of the canvas. Here's what it looks like on the overall available canvas:

WotjhWo.png

I agree that the descending tree is a good compromise. Thinking about that more, I think I may be able to come up with a script to modify the coordinates of each node in the config file directly to flip and shift the nodes in one batch which would make that a MUCH more appealing option and allow me to finish something we could play (ignoring the R&D facility level limitation). Stay tuned.

Edited by sherkaner
Link to comment
Share on other sites

(ignoring the R&D facility level limitation). Stay tuned.

Until a new mechanism arrives you could add a short description to all the first nodes of each new tier telling users they might want to hold off researching them until they upgrade the R&D building. It breaks immersion a lot, but I can't think of a less hacky way

Link to comment
Share on other sites

Until a new mechanism arrives you could add a short description to all the first nodes of each new tier telling users they might want to hold off researching them until they upgrade the R&D building. It breaks immersion a lot, but I can't think of a less hacky way

Yeah, good idea. I've also rigorously made sure that the nodes align so that you can draw clear lines down the tree to delineate where the tier levels are supposed to be (although unfortunately I can't actually draw those lines in the game).

Link to comment
Share on other sites

Okay, I've got a little perl script that lets me do big bulk changes to node positions -- now I can do just about anything with the layout and formatting by twiddling a couple lines of code. So I'm happy to say that I'll definitely be able to complete something sooner rather than later.

However, I've run into a new problem:

jR0htuw.png

KSP's flowchart arrows really want to be horizontal. With the tree laid out mostly vertically as shown above you can see it gets kinda ugly, with orphaned arrows on the sides of node boxes. So now I'm conflicted: do I live with the ugly, or go back to the previous horizontal style and try to compress things somehow to make enough vertical room. With my new perl script I think it might be possible, but it's kind of unfortunate since I'll have all kinds of horizontal space I'm not using. Plus if anybody wants to add mod parts onto this tree, they would really have to do it by adding onto existing technology "lines" rather than adding new categories.

I'm going to keep noodling this, but I'm open to any clever ideas.

Edit: Ah, actually I think I can work it out by compressing the nodes just a tad in a horizontal orientation. Unfortunately still means that mods will have to add onto existing tech lines rather than add "rows", but at least there will be tons of room to the right to do that.

Edited by sherkaner
Link to comment
Share on other sites

Based just on look at picture, I think you can put nodes about 4 pixels closer to each other without conflicting lines. Doesn't sound like much, but with so many nodes you can profit from that. There is also some space to move higher grade nodes slightly offside from root nodes that will give you few extra pixels of space.

Flowchart arrows looks a bit odd, but not much, whole tree is much better then a stock one, even if it is not that stylish.

Link to comment
Share on other sites

KSP's flowchart arrows really want to be horizontal. With the tree laid out mostly vertically as shown above you can see it gets kinda ugly, with orphaned arrows on the sides of node boxes. So now I'm conflicted: do I live with the ugly, or go back to the previous horizontal style and try to compress things somehow to make enough vertical room. With my new perl script I think it might be possible, but it's kind of unfortunate since I'll have all kinds of horizontal space I'm not using. Plus if anybody wants to add mod parts onto this tree, they would really have to do it by adding onto existing technology "lines" rather than adding new categories.

Edit: Ah, actually I think I can work it out by compressing the nodes just a tad in a horizontal orientation. Unfortunately still means that mods will have to add onto existing tech lines rather than add "rows", but at least there will be tons of room to the right to do that.

I wouldn't worry about the arrows too much. That's Squads problem. You can add a suggestion to fix that in the other thread.

As for mods, because this is meant to be a demo of the tree overhaul, you'll have to create new sections and nodes for specific things, like robotics, because modders can't add them dynamically yet. You can start by making just a few generic single lines for now, with one node for each tier (Robotics 1, robotics 2, robotcs 3, etc) or something similar, or whatever you want really.

I'll go through the the parts of the mods you want, and create MM patches for them. I just need to know the branch structure and techRequired names.

Link to comment
Share on other sites

Barring anything unforeseen, I should be able to release something by the end of this weekend.

I'll go through the the parts of the mods you want, and create MM patches for them. I just need to know the branch structure and techRequired names.

Oh, on that topic, it should be quite easy the way TechManager works. Basically I think you can simply create an additional .cfg file for each mod (or set of mods) that you like and TM lets the player load multiple trees at once, as long as they don't conflict. I need to test it out, but as long as you refer to the my node names where you want prereqs and don't physically conflict with node placement, this should work nicely to add on mod-based parts to the tree. Once I get my stock file done, it'll be easy for you to refer to and I've learned some tricks in making this that I'll share here to make it easier.

Edited by sherkaner
Link to comment
Share on other sites

I like where this is going, could you please also add a reactors section?

For my Current KSP Interstellar Near Future Techtree I added the following succeding technodes:

R&D Level 1:

-> Nuclear Engine (stock nuclear engines)

-> Nuclear Power (early nuclear reactor)

-> Improved Nuclear Power (efficient nuclear reactor)

-> NuclearRefueling (Breeder reactor)

-> High Intensity Nuclear Power ( Gas core reactor)

R&D Level 2:

-> Improved Cooling Systems

-> Fusion Power (Big fusion reactor)

-> Advanded Fusion Power (small fusion reactors)

R&D Level 3:

-> Particle Accelerator (Antimatter collector/ container)

-> Animater Power (antimater reactors)

-> Warpdrive (Alcubierre warpdrive)

Edited by FreeThinker
Link to comment
Share on other sites

Re: Interstellar and Near-Future Propulsion

I could never get into those mods. They are much too complex for me. That being the case I'll not be able to make patches for them, because I have no idea how all of the parts work.

Same goes for Karbonite and probably a bunch of others.

If anyone wants to make patches I'd recommend saying what you're going to do before you do it.

I'm reserving KW Rocketry to start with.

Link to comment
Share on other sites

Great work sir!

I want to suggest 3 things though:

1. In future versions have an option to switch from defending to ascending, if possible;

2. Also, if you have not already changed it, I think that the ant engine should come before the radial kind, as the radial kind has less restrictions then the normal one. The mono engine and vernal engine should still come after the radial one though.

3. Lastly, my I recommend that you make the final few nodes in the teur 3 area really expensive? It will make it harder to "beat the game"

EDIT: one more thought: somewhere when you click on the nodes, or hover over them or something, I would have the game tell you what teir the node is supposed to be in so that players can play it as it is intended though the honor system. Just as a placeholder until you get the code for it to work properly working.

Edited by tuckjohn
Another sugestion
Link to comment
Share on other sites

I like where this is going, could you please also add a reactors section?

For my Current KSP Interstellar Near Future Techtree I added the following succeding technodes:

It really should be quite easy for somebody else to add these (and I do plan to post some instructions here on how to go about it), but personally I plan to focus on adding the stock parts only. I really want this to be as newbie-friendly as possible, although I certainly will do what I can to make it extensible so others can add mods.

- - - Updated - - -

Great work sir!

I want to suggest 3 things though:

1. In future versions have an option to switch from defending to ascending, if possible;

2. Also, if you have not already changed it, I think that the ant engine should come before the radial kind, as the radial kind has less restrictions then the normal one. The mono engine and vernal engine should still come after the radial one though.

3. Lastly, my I recommend that you make the final few nodes in the teur 3 area really expensive? It will make it harder to "beat the game"

EDIT: one more thought: somewhere when you click on the nodes, or hover over them or something, I would have the game tell you what teir the node is supposed to be in so that players can play it as it is intended though the honor system. Just as a placeholder until you get the code for it to work properly working.

I'll take a look at your suggestions and take them into consideration.

I definitely plan on making the intended tier level clear, one way or the other. I have a couple of ideas here.

Link to comment
Share on other sites

Does Techmanager or KSP move nodes around dynamically? If it doesn't then how do you make sure modded branch don't conflict?

No, it doesn't. And that will be tricky. That's why the TM guy himself seems to have packaged a couple of popular mod sets into TM files. It will be easy to add to my stock tree -- just don't put nodes where I have my stock ones -- but there would have to be some coordination between others if you wanted to load multiple mod trees at once.

If that becomes an issue, one idea here might be to reserve a big block of space to the side of the stock tree and break it up into zones that mod trees can fill. With my perlscript, it would be easy to make different versions of mod trees that use different zones. Not super-elegant, but it would work.

Link to comment
Share on other sites

Great work sir!

I want to suggest 3 things though:

1. In future versions have an option to switch from defending to ascending, if possible;

2. Also, if you have not already changed it, I think that the ant engine should come before the radial kind, as the radial kind has less restrictions then the normal one. The mono engine and vernal engine should still come after the radial one though.

3. Lastly, my I recommend that you make the final few nodes in the teur 3 area really expensive? It will make it harder to "beat the game"

EDIT: one more thought: somewhere when you click on the nodes, or hover over them or something, I would have the game tell you what teir the node is supposed to be in so that players can play it as it is intended though the honor system. Just as a placeholder until you get the code for it to work properly working.

1 would be nice but hard to do IMHO.

I'm not sure about 2, the inline ant engine allows a lower craft mass for edge cases and this would allow a more advanced craft so I think I agree with the radial engines being lower tech (for gameplay, not realism) Mono and vernier engines should be later, yes.

3 sounds like a good idea to me.

Link to comment
Share on other sites

1 would be nice but hard to do IMHO.

I'm not sure about 2, the inline ant engine allows a lower craft mass for edge cases and this would allow a more advanced craft so I think I agree with the radial engines being lower tech (for gameplay, not realism) Mono and vernier engines should be later, yes.

3 sounds like a good idea to me.

Why do you say that the inline ant engine allows lower craft mass? I say that the inline engine should be first because with the radial one you can do 8x symmetry, giving it greater functionality with the same performance.

Link to comment
Share on other sites

Why do you say that the inline ant engine allows lower craft mass? I say that the inline engine should be first because with the radial one you can do 8x symmetry, giving it greater functionality with the same performance.

with tier1 VAB part count limits the ability to spam a part isn't as game breaking as it once was

Link to comment
Share on other sites

BlueSky R&D has been released! See the beginning of the thread for details.

While I'm at it, I also wanted to post a little info about creating .cfg files that can add to this tree, since it's a little tricky and not particularly documented.

I find the most efficient flow is to start with the TED app. It's not perfect, but it lets you get the basics into a file MUCH more quickly than direct hand editing of TechManager .cfg files. Install that, point it at your KSP directory (so it has an up-to-date database of parts in your install), and start creating nodes. Obviously you'll want to read the help for TED (and TM), but here are some pointers:

  • Add nodes by shift-clicking, and link nodes by cntl-clicking. Be aware that linking has a direction, so make sure your prereq node is selected first. If your prereq node is in a different tree (ie. my stock-parts tree), don't worry about it in TED -- you'll have to add it later.
  • The "any parent" flag means that if the node has more than one prereq node, any of them can unlock it (as opposed to requiring all of them).
  • Make sure to enter something into the "name" field that is unique -- both to nodes within your tree as well as the stock tree (or BlueSky). It can be as simple as "INTERSTELLAR_123".
  • If you want to see what the selections for "icon" look like, take a look in your gamefolder at GameData/Squad/PartList/SimpleIcons
  • Don't worry too much about the absolute position of your nodes in the field (assuming that you're going to create a block of nodes adjacent to the BlueSky parts -- if you want to mix them into the middle (not recommended), you'll want to figure out your coordinates to not conflict right away). The perlscript I have now (which I'll post below) will let you move the whole array around pretty freely. But you will want to get the node spacing accurate by entering round numbers directly into the coordinate fields in TED once you roughly have your layout and linkages. KSP won't draw a straight horizontal line between two nodes unless their coordinates are exactly lined up.

When you're done, save the file off to a TechManager .cfg file, then open it up in a text editor where you'll need to do a few things by hand:

  • At the top of the fie, change the "id" and "name" to something descriptive for your tree. "id" is what will show up in-game via TechManager
  • For each node, change the "techID" to be the same as the "name" you created in TED. The default values will be KSP stock values that TED (for some reason) automatically puts in, and will screw up the contents of your node. It can probably be anything different, but I name it the same as the name just in case.
  • If you have any items in the "PARTS" list for the node that includes an underscore, change the underscore in the name to a period. For example "awesome_part" would be "awesome.part". This is an odd bug that I don't understand, but it has proven true at least for all stock parts.
  • For any nodes that need to reference nodes outside your tree, add them to the "parents" list for the node (see other nodes for formatting examples).

I mentioned above to not worry too much about the absolute position of your nodes in TED. Now you'll need to get that right. If you open up my BlueSky .cfg file, you can see the range of coordinates that my nodes use. Figure out where your block of nodes want to go and how much you need to offset them in x and y to get it there. I've created a little perl script to let you easily make these changes for all files in your tree. I call it "posmath.pl" in the usage:

[COLOR=#232323][FONT=Tahoma]
[/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new]#!/usr/bin/perl[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new]
[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new]# usage: cat inputfile.cfg | ./posmath.pl > fixedfile.cfg[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new]
[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new]while (<STDIN>) {[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new]
[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new] if (/pos = (([-\d]+),([-\d]+),([-\d]+))/) {[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new] $whole = $1; $x = $2; $y = $3; $z = $4;[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new] $new_x = $x; #changes to the x axis coord go here[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new] $new_y = $y; #changes to the y axis coord go here[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new] $new_z = $z; #changes to the z axis coord go here (not typically needed)[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new] s/$whole/$new_x,$new_y,$new_z/;[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new] }[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new] print $_;[/FONT][/SIZE][/FONT][/COLOR]
[COLOR=#232323][FONT=Tahoma][SIZE=1][FONT=courier new]}[/FONT][/SIZE][/FONT][/COLOR]

For reference, here is my entire tree with the full "canvas" visible. The x,y coord range of that canvas is roughly -4000-0, 0-2400.

3Ybsde8.png

Get everything in the right place and your .cfg should now be ready to go. Make sure you've installed TechManager into your KSP install. Save the file, put it in your game directory at GameData/TechManager/ along with BlueSky's .cfg file and start up the game. You should be able to select both BlueSky R&D as well as your tree and if there are no conflicts and the dependencies are correct, you should see one combined tree I believe. Of course make sure the stock tree is NOT enabled as BlueSky completely replaces it.

Edited by sherkaner
Link to comment
Share on other sites

Adopting a new player perspective, my eyes bug out when I look at the proposed gigantic in-game tech tree. Of course you don't see it all at the start, but, going back later to review it... I think it becomes just too dense, and some grouping of very related parts is quite all right, and would save sherkaner some of the headache trying to make all stock part techs fit into a fixed-sized area, on a nearly individual basis. [Edit: posted before i'd seen released version: tree is now finished and not as crushingly dense as I worried it might get.]

I definitely think KSP needs more things to spend Science on (setting aside the debate about collecting moon rocks being used to unlock better parachutes) since the explosion of new Science sources in .90. And spreading the parts into more groups is a great way to do it. Maybe to go as far as doubling the stock number of groups, but I don't think the current tech UI is up to the task of displaying nearly per-part research unlocks, that is being attempted here.

Edited by basic.syntax
Link to comment
Share on other sites

Also, I am unable to change the money cost to get specific parts (only science cost for its node).

Do you mean the cost to research a part after unlocking its tech node? That's given by the part's entryCost field in the .cfg file (and the cost field is the actual purchase price in the VAB/SPH). There should be no problem adjusting that with Module Manager.

Link to comment
Share on other sites

Really excited. Starting a new game right now.

First thing. Is it not possible to start with all the free nodes already unlocked?

Also I'm sad to see that my new non-androgynous port now has absolutely no place in this tree.

Edited by Cpt. Kipard
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...