Skip to content

Instantly share code, notes, and snippets.

@Eideren
Last active April 28, 2024 21:26
Show Gist options
  • Save Eideren/6424455fd25f3820bbce6594d67e307b to your computer and use it in GitHub Desktop.
Save Eideren/6424455fd25f3820bbce6594d67e307b to your computer and use it in GitHub Desktop.
Stride UI discussion

Editor UI

Issues:

  • WPF is windows only
  • It's a pain to maintain;
    • The logic behind it is not very flexible, loads of encapsulation and abstractions away from the raw types, tons of spaghetti logic.
  • Plugins are pretty much impossible to implement
    • The UI and system around scene management does not expect changes outside of editor-specific paths, see point #1.
      • I.E.: if a plugin were to change any value in a scene, that change would not be reflected in the editor or in the saved scene.
  • We can't feasibly implement a good run in editor feature

Requirements:

(most to least important)

  • Solves the issues listed above, obviously
    • For point #3 & #4, if/when the game runs in the editor our users might use the inspector/property grid to look at how their component values changes while the game runs so we have to 'update' the inspector regularly to present those new values to the user. UI element should be able to re-draw fairly fast to avoid impacting the game's performance in the process.
  • Free and open source
  • Fast/easy to produce debug uis (minimal boilerplate)
  • Good styling
  • Tabbing/Docking
  • Minimal amount of work on our part to support it (let's avoid uis without .net bindings)

In-game UI

  • Not fully-featured enough for our editor UI
  • It's not as well optimized as we would want
  • ~ but this is not as important as users can use all sorts of other ui systems that's more suited to their project

Alternatives:

https://gist.github.com/Eideren/4eb0199e87eb0a89092a3cd21332aa47

Avalonia

  • A pain to setup, though manio already dealt with most/all of it https://github.com/manio143/StrideComponentsEditorAvalonia
  • Fully featured
  • Good styling
  • Similar to WPF - easy to transition to
  • Might have performance issues ? Need to validate that
  • Might be missing some features ? Need to validate that
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment