fishfolk / punchy

A 2.5D side-scroller beatemup, made in Bevy
https://fishfolk.github.io/punchy/player/latest
Other
271 stars 32 forks source link

Ingame level editor #26

Open odecay opened 2 years ago

odecay commented 2 years ago

I propose that we set up an ingame level editor state that consists of an egui menu which shows available fighter/character definitions loaded from the definitions as well as item pickups which should be defined similarly. Selecting a fighter or item from the menu should then allow you to click to place it in the scene. Then these placements should be saved to a new level definition file.

zicklag commented 2 years ago

With hot reload, we should even be able to have you editing a scene in one puncy window, and playing it in the other!

erlend-sh commented 2 years ago

Some minimal editor features would be a nice addition to our modding story started by #107.

We’re already using egui, and bevy_editor_pls by @jakobhellermann is also egui-based. We also rewrote the original Fish Fight editor in egui:

zicklag commented 2 years ago

I was thinking about this and thinking that an editor might be a pretty big deal to have. Just thinking about things like collision boxes for animated sprites and having the collision box need to move around to match the look of the sprites. I'm thinking that we could add a punchy subcommand to run an editor that would be essentially an interactive interface to modifying any of the assets.

I like the idea of keeping our assets still in YAML and easy to read and write manually if needed, but the editor could become a way to edit even the basic fighter settings, etc. without having to remember which fields are valid and stuff like that, with al the extra stuff where you really want a visual representation of your changes such as trip lines, items spawns, collision boxes, animations, etc.

I'm fairly good at designing UI and I like doing it so this is probably something I could take on, maybe more like an 0.0.5 or later kind of thing, though, after we get some of the in-game UI more solid and the scripting MVP to a slightly settled state.