Thorium-Sim / thorium-nova

Next-generation Spaceship Controls
https://thoriumsim.com
Apache License 2.0
341 stars 13 forks source link

Feature Flags #54

Open alexanderson1993 opened 2 years ago

alexanderson1993 commented 2 years ago

Is your feature request related to a problem? Please describe.

Some crews and flight directors might not want to use all of the features. Maybe there should be some way of adding feature flags of sorts.

Describe the solution you'd like

I have no idea. Suggestions welcome. This won't be marked as approved until we have a good plan for moving forward.

Like, what even counts as a feature?

Additional context

This would be especially helpful for a few reasons

This also might be a bad idea - too much complexity, not a whole lot of value. I might just reject this idea anyway, but I want to hear if anyone has any other ideas.

Froginator45 commented 2 years ago

This might be a really "dumb" question but, what would you consider a feature? Is a feature basically the different items you can choose to install when setting up thorium?

alexanderson1993 commented 2 years ago

Not a dumb question - I asked it myself

Like, what even counts as a feature?

I don't have an answer really. I suppose at its broadest, a feature is anything that we change in the behavior of Thorium Nova that causes a user to go "Hey, wait. I liked it the way it was before better. Change it back!"

Froginator45 commented 2 years ago

As far as potential features that not everyone who downloads thorium might want (or might change the way thorium feels/functions), I can see the following:

  1. Main View screens
  2. Various assets related to Thorium Nova's story (i.e. missions, ship files, music) beyond the basics needed for initial tutorials and such.
  3. Any language files (if even applicable for Nova)
  4. "Extra themes/skins" beyond what is determined to be the "basic" pack.
  5. Non-required job related materials (i.e. medical).
  6. Any "mini-games" that are not required for normal gameplay. (I don't think this has been discussed but I could see some jobs having "mini games". For example: the pipe game for the engineer, an asteroids game for tactical, an alignment game for transporters, etc. Many mini games could be accomplished via a mini game or a more basic screen depending on the setup (and possibly even using real IO in the future, similar to the competition ran for Thorium Classic a while back)) (A version of your atom game might even apply here)
  7. The Vox plugin for voice manipulation.
  8. The ai version of the ship's interior might even be considered a feature. But it might be tied into too many things to not be considered as a feature.

I can see some people maybe wanting to install a "lite" version of thorium that only includes the bare minimum to run on "wimpier" pcs.

I'm not sure as to complexity vs added value for any of these items being features but they are what I came up with at first thought as being potential "features".

alexanderson1993 commented 2 years ago

That's a good list. Many of them are configurable as plugins, like extra themes and assets, but some of them are definitely deeply integrated and would need something special to toggle on and off.

Arcadianer commented 2 years ago

I don't know how hard it would be to do this kind of stunt. But what if everything is a plugin. Like a flight behavior plugin for a ship, or a different view screen plugin. This way by disabling the plugin itself you could implement a feature flag system. But I simply do not know enough about your plugin system to be certain if it's possible or if it would just throw out more issues than by just implementing some simple configuration feature flags.

alexanderson1993 commented 2 years ago

Plugins are just content packs. I would call any external package that adds code a "mod" and we decided in this discussion https://github.com/Thorium-Sim/thorium-nova/discussions/32#discussioncomment-1510208 that mods are a no-go. We'll expect people to just add code to the core. The feature flag discussion actually started in that discussion anyway.

Mods would add a ton of complexity and difficulty, especially when it comes to adding in new UI to the frontend. It's easier on developers to just build it in directly.

1deejay commented 1 year ago

The current plugin system I think answers this question.

As it stands, we are putting in what is necessary to run it, then different content packs people can add as plugins all they want.

It may be worth it to come back to this once we are closer to a more feature filled system to see what can be classified as "absolutely necessary" and "Optional that some people will pass on."