🔗 Is your feature request related to a specific issue?
Yes. The current workflow relies on Tiled, which is powerful but external. This separation creates several friction points:
- No Live Preview: We cannot visualize runtime-specific effects (like our SDF/JFA lighting or Mortar script triggers) inside Tiled.
- Platform Barrier: Tiled requires local installation and it doesn't support Android or web yet.
💡 Feature Description
I propose adopting bevy_map_editor as the primary level editing solution for SoupRune, potentially replacing or augmenting Tiled. Of course, the specific feasibility of this plan still needs to be evaluated.
But in general, the following are the reasons for proposing this plan:
- Bevy-Native Workflow:
- Utilize
#[derive(MapEntity)] to define game entities (NPCs, SavePoints, FRE Triggers) directly in Rust code.
- Eliminate the need for string parsing and manual property mapping from Tiled objects.
- Web-Ready Ecosystem
- Since the editor is built with Bevy+Egui, it can be compiled to WASM.
- This lays the groundwork for a browser-based "SoupRune Playground" where users can instantly create, share, and play with mods without installing native tools.
- Deep Tooling Integration:
- Mortar/FRE: Embed a custom visualizer for Mortar scripts and Fact-Rule-Event logic directly into the editor's inspector.
- Lighting: Visualize 2D lighting (Ray Marching / Radiance Cascades) in real-time within the editor viewport.
- Hot Reloading:
- Leverage the editor's "Run Game" and live-editing features to iterate on game logic without restarting.
⚖ Alternatives Considered
-
Stick with Tiled:
-
Pros: Industry standard, very mature, widely used features (Terrains/Wang sets).
-
Cons: Relatively difficult to learn, External dependency, no knowledge of Bevy components, impossible to debug custom shaders/logic inside the editor.
-
LDtk:
-
Pros: Better user experience than Tiled for generic data.
-
Cons: Does not support animated tiles and free objects; Still an external tool.
📝 Additional Information
- Target Repo:
bevy_map_editor
- Implementation Strategy:
- We may need to fork the editor (or part of crates) to inject specific
egui panels for Mortar dialogue editing (replacing the default dialogue node system).
- The
Autotiling feature in bevy_map_editor is currently WIP, so we might need a hybrid approach (Tiled for base terrain, Native Editor for Entities/Logic) during the transition.
- This plan will be implemented in v0.7.0 (Render Pipeline Update).
🔗 Is your feature request related to a specific issue?
Yes. The current workflow relies on Tiled, which is powerful but external. This separation creates several friction points:
💡 Feature Description
I propose adopting bevy_map_editor as the primary level editing solution for SoupRune, potentially replacing or augmenting Tiled. Of course, the specific feasibility of this plan still needs to be evaluated.
But in general, the following are the reasons for proposing this plan:
#[derive(MapEntity)]to define game entities (NPCs, SavePoints, FRE Triggers) directly in Rust code.⚖ Alternatives Considered
Stick with Tiled:
Pros: Industry standard, very mature, widely used features (Terrains/Wang sets).
Cons: Relatively difficult to learn, External dependency, no knowledge of Bevy components, impossible to debug custom shaders/logic inside the editor.
LDtk:
Pros: Better user experience than Tiled for generic data.
Cons: Does not support animated tiles and free objects; Still an external tool.
📝 Additional Information
bevy_map_editoreguipanels for Mortar dialogue editing (replacing the default dialogue node system).Autotilingfeature inbevy_map_editoris currently WIP, so we might need a hybrid approach (Tiled for base terrain, Native Editor for Entities/Logic) during the transition.