rewin123 / space_editor

bevy prefab editor
MIT License
386 stars 49 forks source link

Editor as master application #108

Open rewin123 opened 11 months ago

rewin123 commented 11 months ago

https://github.com/lee-orr/dexterous_developer allow hot reaload code and build fully featured editor like Unity or Unreal Engine.

May by, in very far future it can be tried.

naomijub commented 11 months ago

I had started prototyping this in my previous editor, might be able to add it for version 0.4

rewin123 commented 9 months ago

coreh in the editor_dev channel on the bevy server offered a great interface for the editor and implemented a cool approach to remote game control. His approach seems to me to be the best one I know and space_editor should realise no less UI quality and also allow remote control, which will allow recompiling the game without recompiling the editor. (Otherwise a separate repository/branch of space_editor would not make sense, as without realising the master application approach it will not be easily usable by everyone)

rewin123 commented 9 months ago

To achieve the goal of being a master app you need to do the following steps in the abstract, I think:

  1. Move UI rendering from bevy_egui to bevy_ui (and add as much custom rendering and custom UI elements as we need to implement a beautiful editor). (This is necessary because bevy_egui has a certain ceiling in customisation and even more so in performance due to single-threaded world access. Moreover, egui is evolving in its own way, and our contribution to bevy_ui can develop the community a bit)
  2. Create editore_remote_protocol - for communication between editor (client) and game (server)
  3. Allow server-side ui node renders and send them to the editor for game-side customisation of the editor (like dioxus or leptos do).
  4. Create a new tool bevy_editor to automatically build and recompile the game when game files are changed, automatically run after compilation and connect the game to the editor (automation is everything). (Ot use cargo watch, but it will be very good to add some asset processing steps in future)