Code Monkey home page Code Monkey logo

testflight's Introduction

TestFlight

Release: Build Status Master

Prerelease: Build Status dev


TestFlight

A configurable, extensible, parts research and reliability system for Kerbal Space Program (KSP).


Release Details

Please see Github releases or CKAN for installation. Note, do NOT simply download the repository. That will not work!

License

TestFlight is released on the Creative Commons 4.0 by-nc-sa License.

http://creativecommons.org/licenses/by-nc-sa/4.0/

What Is TestFlight?

TestFlight is a persistent, parts based, research and reliability system. It gives you a reason to do test flights of your rockets. Test flights let your engineers generate flight data, which can then be analyzed to further improve the reliability of your rocket parts. Flight data generated on a part is persistent, and carries over to new rockets flown with those parts.

In a nutshell; Fly your parts more, generate flight data, get more reliable parts. But TestFlight is much more!

FlightData

The more you fly parts, the more flight data they record, which in turns improves reliability. As stated, this is persistent. That means that if you launch a "Super Rocket 1" with a Mainsail engine, that mainsail generates let's say 10,000 units of flight data. Now you go back to the VAB and build "Super Rocket 2" which also uses the mainsail. That instance of the mainsail starts with 10,000 units of flight data already from the earlier flight. That means test flights make your rockets more relable!

Reliability and Failures

TestFlight calculates reliability using the flight data recorded by a part, based on various criteria and mathemtical equations. It will periodicly make failure checks against this data and if a part is determined to have failed, it will generate failure events.

TestFlight is Configurable and Extensible

The real beauty of TestFlight is that it is extremely configurable by the end user, or by mod authors who want to integrate it into thier own mods. TestFlight works on a series of pluggable PartModules that give full control over how reliability is calculated and what failures are possible - all on a per part basis if desired. Further more, all of the various options can be configured by the user or mod authors, such as minimum and maximum reliability ratings, failure rates, repair costs, and more.

On top of all that, TestFlight comes with a public API that allows mod authors to further extend the system! Mod authors can easily add additional failure types, or change how flight data is recorded, or how reliability is calculated. The API for example could allow a mod auther to easily extend the system to penalize the reliability of individual parts as they get old.

testflight's People

Contributors

al2me6 avatar anxcon avatar bornholio avatar capkirk123 avatar dependabot[bot] avatar drveyl avatar falki-git avatar hebarusan avatar jwvanderbeck avatar jwvanderbeck-unity avatar lamont-granquist avatar lpgagnon avatar nathankell avatar pap1723 avatar rcrockford avatar siimav avatar starstrider42 avatar stratochief66 avatar sundhaug92 avatar ts826848 avatar waffle-iron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

testflight's Issues

Expand failure API to allow repairs to take time

This should be easy to do. Make AttempRepair() return a double instead of a bool. -1 indicates failure to repair. 0 indicates repaired. Any value above 0 indicates time to finish repairs.

Add new method GetTimeUntilRepairComplete() that returns the same information. In this case -1 would indicate that something happened during the repair time that caused a failure to repair, such as a prerequisite condition no longer being valid.

The MSD/FlightHUD will need to display a countdown when a part is being repaired, and the UI will need to adjust for this. Might be able to put this in the tooltip, but not sure if that will be very good. Need to think on it.

MFT/RF integration

In order to work properly with MFT and RF, we need to treat engines with a ModuleEngineConfig as a stand-alone part.

Add in "configuration" property to all modules to indicate that the module and its settings apply to a specific ModuleEngineConfig

After engine shutdown failure repair, Reliability keeps checking for failure before restart

  1. Engine fails with EngineShutdown failure
  2. Part is repaired
  3. After repair, the part's Reliability module will start doing failure checks again, even though the engine has not been restarted.

When this occurs, FlightData is not accumulating so the DataRecorder properly recognizes the engine is not operating. Most likely the Core is not properly checking for active operation, and so the operatingTime starts running again, which causes the Reliability module to start checking for failures.

Failed parts continue to accruss operating time

When a part fails, it continues to accrue operating time that will then be added when it is repaired - often resulting in an immediate second failure due to delta difference.

When a part is failed it should not be accumulating operating time, and it should start at 0 time when repaired.

Difficulty Settings out of date

The options in the Difficulty Settings window are old and very much out of date. Needs to be looked at and the ones no longer valid removed.

Tie in with Contracts system

Make TestFlight create in game contracts to get a certain amount of FlightData for a part in a certain scope. Assuming KCT integration happens, there would need to be a check that ensures this happens in flight and not in a sim.

Needs a settings window

Currently global settings can only be edited directly in the CFG file. There needs to be a way to do this through the GUI in game.

ModuleEngineConfigs are not set at start of flight scene

When the Flight scene starts up, the ModuleEngineConfigs configuration is the base value initially, and doesn't change to the proper value until a bit later. Unfortunately TestFlight is attaching based on that incorrect initial value, causing all derivative engines to not work properly.

Need to find out if there is a way to tell when MEC is correct and then grab it through a coroutine maybe.

This is the cause of #36 and probably more yet unseen bugs.

Check with @NathanKell in case he has any ideas.

Make failures harder to repair

In the current test builds, all failures are easy to repair. The consume no resources to repair and have a 100% repair rate.
Need to work in the code to allow repairs to consume resources, like spare parts, have a chance to NOT succeed, and verify preconditions such as EVA requirements, etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.