Jump to content

[Discontinued] Science Elaboration System


asdfCYBER

Recommended Posts

In order to make science less unrealistic and more challenging, I present to you the Science Elaboration System (original discussion thread here).
This mod aims to make the road from experiment to parts more challenging, adding gameplay, without making things too grindy.

tNFv3TS.png

A chart comparing the current science system to the Science Elaboration System (C)(TM)(SCIENCE!)

 

Overview

Planned features (subject to change):

  • Multiple science types (at least one for every major category like aero, engines, science, structural, etc)
  • Technology nodes and building upgrades need one or more of these science types to unlock (cost tweakable in settings)
  • Science can be made by processing data in science labs (processing is slow and can be sped up by using high-tech labs or multiple cheaper labs)
  • Processed science has to be transmitted or transported to the R&D lab (much like the current system but with more shiny buttons to press)
  • Data is gained by science instruments, science multipliers are now data multipliers
  • Lab efficiency: higher-tier labs need less data per science and work faster, but require far more power
  • Lab bonus efficiency: research lab location (atmospheric planet or not, orbiting or not, etc) affects science production, relevant science types will get a production bonus or penalty
  • Fast labs and large setups require serious power supplies (more than a single solar panel), perhaps detect mods like Near Future Electrical/Solar and Interstellar and adjust requirements
  • Entry-level research lab with terrible efficiency.
  • Support for science mods if feasible, include default configuration file
  • Lots of options to disable or tweak parts you don't like

 

Things I'd like your opinion on and may or may not be included (you can consider these more like statements rather than planned features, please react!):

  • Data decays over time unless stored in a powered lab
  • Data is a resource and can not be transmitted, but it can be moved in the way traditional science can (this requires you to bring a mobile research lab or a return rocket and will probably make things a lot harder, but maybe too hard. Maybe a inefficient autonomous lab is an idea?)
  • Higher tier science types require lower tier science types as an ingredient
  • Whatever feasible features you can come up with!
  • Meta-research: faster and more efficient research for unlocked science labs
  • Metadata: gain bonus data (unlock with research and strategies)

 

NYFAQTWPBAFIIDNITN
(Not Yet Frequently Asked Questions That Would Probably Be Asked Frequently If I Did Not Include This NYFAQTWPBAFIIDNITN)

Q: Why is this WIP?
A: This is the first major mod I'm making, and I need to figure out the Unity and KSP API, learn C# (I'm already familiar with C and have recompiled mods in the past), and likely reverse engineer other projects before I can start making my own stuff. As I am a physics university student, I barely have spare time, so this will take a while. Please do not expect (rapid) development. I am also still thinking about what I would like this mod to become and how that fits with your expectations.

Q: Why do you want me to give you opinions?
A: I value your input! You might see things from different perspectives and allow this mod to become better than the Science Elaboration System mod in the parallel universe where I didn't want your opinions!

Q: Where will you be pushing code 'n stuff to?
A: To this repo: https://github.com/asdfCYBER/Science-Elaboration-System. I tend to delay commits a lot though, so don't worry if there hasn't been a commit in a month.

Q: Roadmap?
A: https://github.com/asdfCYBER/Science-Elaboration-System/projects/1

Q: NOOOO DONT IMPLUMENT DIS STUPID FEETURE!!!(one)(eleven)
A: ...that's not a question. I can't please everyone but I will try to add configuration settings so you can play the way you like.

 

Downloads

Heh, you can put a reminder on your calendar for next year or something.

Edited by asdfCYBER
Added repository
Link to comment
Share on other sites

I like the idea. Warning: one of the most frustrating parts of KSP modding (at least for me) is trying to figure out where the function I need is - other than a largely un-commented function list (KSP documentation) about the only documentation there is is other mod's code - fortunately there's a lot of that available. The three sub forums of this forum are also a good place to look for answers and ask questions.

As far as your questions (only have thoughts on two of them):

Data decays over time unless stored in a powered lab - Maybe biology sample data but not the rest - but this would be treating the data more like an actual sample rather than data.

Data is a resource and can not be transmitted, but it can be moved in the way traditional science can (this requires you to bring a mobile research lab or a return rocket and will probably make things a lot harder, but maybe too hard. Maybe a inefficient autonomous lab is an idea?) - I'd say no to this but would think the transmission cost (in EC) of raw data would typically be a magnitude or more larger than the processed data/science. Would mean transmitting raw data from the field would require lots more power but in-the-field processing would require hauling the lab into the field.

Happy modding (and don't forget to stop once in a while and play the game instead of modding it)

Link to comment
Share on other sites

3 hours ago, wasml said:

I like the idea. Warning: one of the most frustrating parts of KSP modding (at least for me) is trying to figure out where the function I need is - other than a largely un-commented function list (KSP documentation) about the only documentation there is is other mod's code - fortunately there's a lot of that available. The three sub forums of this forum are also a good place to look for answers and ask questions.

True, I have been looking at the documentation yesterday but found no api for adding other science-like resources or editing the R&D lab at this level, so that probably means I need to write my own system from the ground up. I'm currently thinking about detecting science experiments and converting stored science to stored data, but editing R&D will be the hardest part.

Quote

Data decays over time unless stored in a powered lab - Maybe biology sample data but not the rest

 - but this would be treating the data more like an actual sample rather than data.

I'm not planning on different kinds of data to avoid having to carry all kinds of experiments around, only at the processing step multiply science types will be made.

Quote

I'd say no to this but would think the transmission cost (in EC) of raw data would typically be a magnitude or more larger than the processed data/science. Would mean transmitting raw data from the field would require lots more power but in-the-field processing would require hauling the lab into the field.

Maybe power requirements and data loss should be directly related to the total distance the data has to travel through the commnet to the lab, basically forcing labs or return capsules at remote locations.

 

Edited by ExtremeTrader
Link to comment
Share on other sites

@ExtremeTrader

What I would like to see is to see some logical relation between the source of collected data and the various types of science. To achieve that we could link usage with specific science. For instance, it would make sense to be able to advance rocket science after gaining experience while using rocket engines. Whenever a player uses a rocket engine, the engine would collect data (with diminishing return) for every situation it is in. The situation would not only include the basic in flight, low orbit, high orbit, but also situation like long burn, long service, takeoff, reentry, submerged, high temperatures, high pressure, high torque, high drag, crashing, colliding, landing, jumping, hovering, etc. Depending on certain conditions, (like part tech level presence of scientists, in contact with KSC) bonuses could be applied to Data collection.  All the data collected would then allow researchers to design better rockets which allow you to unlock more advanced rocket tech nodes.

The same can be applied to other science areas:

  • Using Electric parts would unlock more advanced electric nodes
  • Using Storage parts would unlock more advanced storage nodes
  • Using Aero parts would  unlock more advanced aero nodes
  • Using Air-breathing engines would unlock more advanced air-breathing nodes
  • Using Nuclear devices would unlock more advanced nuclear nodes
  • Using Crewed parts would unlock more advanced crewed tech nodes
  • Using Structural part would unlock more advance structural nodes
  • Using Probe cores would unlock more advanced probe core nodes
  • Using Thermal control parts would unblock more thermal control nodes
  • Using Life support parts would unlock more advanced Life support nodes
  • etc etc etc

As a result, research and development would match much more natural to actual gameplay where are nodes are gradually unlocked depending on player actual experience instead of multiple connected nodes being unlocked simply because the player has scanned a new celestial body.

A notable exception would be Scientific experiments,  which data could be used as a kind of universal science. To balance it with data collection from usage, the cost of all tech nodes could be increased.

All of this could be achieved by added a part module to every part which generates data and registers all its gained experience

Possibly this mod could be combined with a specially designed tech tree (like the existing Engineering Tech Tree), which makes clear distinctions between every type category.

 

Edited by FreeThinker
Link to comment
Share on other sites

3 hours ago, FreeThinker said:

What I would like to see is to see some logical relation between the source of collected data and the various types of science. To achieve that we could link usage with specific science. For instance, it would make sense to be able to advance rocket science after gaining experience while using rocket engines. [...] Depending on certain conditions, (like part tech level presence of scientists, in contact with KSC) bonuses could be applied to Data collection. All the data collected would then allow researchers to design better rockets which allow you to unlock more advanced rocket tech nodes.

As far as I can see you are suggesting to combine option 2a and 3 from this braindump. If I can get one type of data to work then multiple would be a matter of copy-pasting, so it's certainly possible. The problem I see with this however is that multiple data types would need to be implemented, and that reduces the data processing step to nothing more than a grind. I chose for the universal data type because irl an experiment isn't purely one field of science: it can be interpreted in different ways and combined with other data. It's the processing step that determines what kind of science it is - whether the scientists chose to write a report concerning the biology, the physics or the chemistry (just to name a few major fields).

I am planning on applying multipliers for different types of science depending on the lab location and situation (chemistry should get a multiplier smaller than 1 if the lab is in orbit for example, since fluids and powders get messy really quick). I may change my opinion in the future but I don't think having multiple types of data is a good idea.

 

Quote

As a result, research and development would match much more natural to actual gameplay where are nodes are gradually unlocked depending on player actual experience instead of multiple connected nodes being unlocked simply because the player has scanned a new celestial body.

I'd say the stock system is worse than this, since that lacks the processing step and throws all experiments on one big science pile with which you can unlock anything. If you want to unlock technologies purely based on the experience of the player, option 2b from the braindump linked above would be a good idea. The problem with 2b is that it deprives the player of the freedom they have, even more than other possible science systems ("no, you can't build that interstellar mothership, you have to achieve a velocity of mach 5 at sea level and plant a flag on Dres first").

 

Quote

Possibly this mod could be combined with a specially designed tech tree (like the existing Engineering Tech Tree), which makes clear distinctions between every type category.

I'm planning to support the stock tech tree and the Community Tech Tree and include a default config for everything else. I may look at supporting ETT after release (assuming this ever gets there).

 

Thanks for the suggestions!
 

I have been trying to reverse engineer the MicrowavePowerReceiver and MicrowavePowerTransmitter from your WarpPlugin.dll, but the lack of comments and documentation aren't really helping. Do you happen to know if those functions would be usable for resources other than electric charge (like data) @FreeThinker?

Edited by ExtremeTrader
Link to comment
Share on other sites

1 hour ago, ExtremeTrader said:

I have been trying to reverse engineer the MicrowavePowerReceiver and MicrowavePowerTransmitter from your WarpPlugin.dll, but the lack of comments and documentation aren't really helping. Do you happen to know if those functions would be usable for resources other than electric charge (like data) @FreeThinker?

Its not clear what you want to achieve. If you want to transmit science data I suggest you look at Science Relay, Kerbalism, Remote Tech

Link to comment
Share on other sites

33 minutes ago, FreeThinker said:

Its not clear what you want to achieve. If you want to transmit science data I suggest you look at Science Relay, Kerbalism, Remote Tech

If you look at the schematic at the top of the first post, you can see a 'Data' resource I want to implement. I would like to move this resource from one vessel to another while one or both are on rails (from a probe to a lab, for instance). Your plugin beams energy (not sure if it was electric charge or thermal power) in that way, but I can't figure out if this can be modified to use any arbitrary resource. If it can, that would save me some time. If not, I'll write my own system from scratch (and maybe release it as a standalone tool for everyone who wants to teleport resources).

Edited by ExtremeTrader
+logic
Link to comment
Share on other sites

  • 5 months later...

After getting stuck on one very specific bit of the mod, I have now actually started doing things. That makes this mod a WIP now! So far, I implemented a partmodule that intercepts science reports and one that stores the results, next step is to make a GUI for those reports :)

Edited by ExtremeTrader
Link to comment
Share on other sites

I love this idea!

Have you thought about to extend the functionality of the science lab module? It converts science to data, then back to science already. Of course on a single track.

Then, Construction Time is delaying the  research process (among others).

 

 

Edited by kubi
Link to comment
Share on other sites

15 minutes ago, kubi said:

Have you thought about to extend the functionality of the science lab module? It converts science to data, then back to science already. Of course on a single track.

Yes, I'm planning to use the science lab as a data-to-science converter. There is no need for science-to-data, instead the whole standard science system will be ignored (experiments now collect data).

Quote

Then, Construction Time is delaying the  research process (among others).

I'm not sure if I want the research to take time, I don't want to add too much of a grind. I might make it optional at a later stage in development, right now I'm trying to get the basis up and running (replacing the techtree will probably be the most difficult, and I need to reinvent multiple GUIs which will be very timeconsuming)

Link to comment
Share on other sites

  • 5 weeks later...

Current progress: I have replaced the experiment UI. The buttons currently don't do anything (except that they all close the window), but the save button will save the data to a storage module based on module priority, and the transmit button will probably require DMagic's Science Relay mod or large sections of it (and have the data value decrease over distance based on antenna properties) in the future.

Here's a picture of the old UI and my UI side by side:

PDLJLFv.png

I will probably change the title and description to the style on the left, but I'm very happy with how it looks (especially since this is the first UI I made for KSP and had to endure a good deal of unity and textmeshpro weirdness - thanks a lot @DMagic for your UI tutorial!).

 

One thing I'm not totally sure of is the transmit icon - I made two versions and am currently using the most stockalike, but the other might blend in better with my other new icons:

RVvnyTl.png

Please tell me which one y'all like better

 

Edit: there's also a github repo now, and a roadmap.

Edited by asdfCYBER
added links
Link to comment
Share on other sites

On 11/29/2019 at 9:07 PM, asdfCYBER said:

One thing I'm not totally sure of is the transmit icon - I made two versions and am currently using the most stockalike, but the other might blend in better with my other new icons:

RVvnyTl.png

Please tell me which one y'all like better

The Dish transmit logo is better

Link to comment
Share on other sites

On 11/29/2019 at 3:07 PM, asdfCYBER said:

One thing I'm not totally sure of is the transmit icon - I made two versions and am currently using the most stockalike, but the other might blend in better with my other new icons:

RVvnyTl.png

Please tell me which one y'all like better

I prefer the un-stock-alike icon on the right... seems to fit better with your other two icons... as well as, if you want the one on the left, that is almost a copy of the stock icon, why bother with the other two custom icons, and not just keep the stock ones... vOv

Edited by Stone Blue
Link to comment
Share on other sites

  • 3 months later...

Quick update: university has cost more time than I originally thought. Now that I have to watch lectures from home however, I have three more hours each day I'd otherwise spend commuting, hopefully that means more modding time.
Right now I'm learning how to use Harmony to change stock UI (if at all possible) - the plan B I'd rather not use is simply drawing another UI on top of the old one.

Link to comment
Share on other sites

  • 1 month later...
20 hours ago, EchoLima said:

 Aaand it been a year!

How is your mod progressing?

Honestly? Nothing has happened since my last post. Turns out that if universities think students have more time, they'll just give more deadlines... Also modding hasn't exactly been a priority anyway. Maybe I should add another year to that calendar :/

Link to comment
Share on other sites

1 hour ago, asdfCYBER said:

Turns out that if universities think students have more time, they'll just give more deadlines...

Tell me about it...

I've got a final and two papers due next week...

Good luck!

Edited by EchoLima
Link to comment
Share on other sites

Nice to see that there is some activity here! I was looking for a mod exactly like this and found it, was pleasantly surprised that it's at least not ignored.

I look forward to continued development!  I can provide help writing .cfgs for modded experiments.

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...