We're near a major milestone with the new editor. It's usable for creating maps again now, and the only major feature that remains to be completed is adding support for inheriting contexts. There are still a large number of bugs that need to be squashed as well, but most of them are small. I'm really happy with our new editor and even though it took longer than I expected to do this work, I think it has been worth it.
still lists several optional tasks for the editor that have been discussed in this thread. I think it's unlikely that those will be implemented in this release. My efforts are going to be needed more strongly elsewhere (probably map creation/design), so unless someone else steps in to work on the editor or other people are covering the more important work, those features will have to wait. There are, however, several small features that I've realized would be immensely useful that I realized during my work on the editor and playing around with Tiled
. Those I'm going to attempt to add in, but might leave them out if they are harder to add than I expected (I'll discuss these shortly).Final Steps
Here's the final list of things that I'm going to finish for the editor in this release, in roughly the order I plan to do them. Once this list of items is complete, I'm going to step away from the editor and either use it to make our maps, or work on other more urgent tasks.
- Change the edit mode "Move" to "Swap"
We've had this edit mode since the dawn of time, but it's never been very useful. The move mode allows you to drag a single tile to a new location and erases the tile at the old location. I'm going to instead rename this to swap mode and it will work nearly the same, but instead of erasing the tile at the old location it will swap the contents of the new and old locations. This will apply to selection rectangles too. Should be pretty simply.
- Implement Inheriting Context Feature
There is already partial support for this, I just need to finish it up. I might decide to do the "bare minimum" necessary to get this working and leave it up to future releases to really polish this feature in the editor.
- Fix bugs and "missing" functionality like fill/clear selection
As I said, there are tons of small bugs everywhere. Some old features like fill layer are completely gutted and need to be re-implemented. The most difficult bugs deal with operations on selection areas.
- Dialog for insert/remove rows/cols
Currently we can only insert or remove a single row/column from the map at a time. I want to add a right click option that brings up a dialog window that will make this much more powerful. Might add it to the main menu as well.
- Improve tileset tab widget and tileset add/removal/update support
I'd like to improve this widget in the UI to make it easier to add and remove tilesets from the map. I'll probably add a right-click menu to this
- Improve selection actions
Using the selection tool is quirky right now and difficult to use. You can enable "select mode" but there's no tool to really create, change, or clear your selection. I need to figure out a better way to do this, and will likely look to the Tiled editor and follow their example.
- Right click selection menu
I want to add a right click menu for the selection area on a map. Actions in this menu could be "Copy to Layer", "Move to Layer", etc. I'm sure that we can figure out some more uses for this menu down the line. The use case I'm thinking for this is when plopping down a large object or structure (such as a tree). You want some tiles in a "ground" layer and others in a "sky" layer. Would be convenient if you could put the whole tree down at once, then select the portion that should go on a different layer and use this menu to do that. Right now, you'd have to select each half of the object individually.
- Add "ghost paint" feature from Tiled editor
One super nice thing about the Tiled editor is that you can see what you're painting before you plop it down. We don't have any thing other than the cursor, and sometimes I'll accidentally paint something in the wrong spot because I wasn't aware of exactly where it was going to be placed. Was only a minor annoyance when we had the undo/redo support, but that feature is now missing so it's an important issue to address, less we waste more time with map design than we should.
- Created editor use video and upload to youtube channel
Once I'm comfortable with the editor for prime-time use by others, I'm going to make a short video explaining how to use it and its capabilities. I'll upload this to our youtube channel (which contains only a single video I made a couple years ago). This video will serve as our "user documentation" for the time being, as I don't really have time to write that up myself.Future Changes
Now here's some things for us to consider for the future.
- Add code editor documentation to the wiki
The editor is a major component of the code yet has no documentation on how it works in the wiki. I'd really like to change this, and I expect I'm going to be the only person willing to do this work. I might get around to doing this before the release, but we'll see. Part of the reason I want to write this is to make it easier for others to help out with the editor. It's not a good situation for me to be the only one able to work on it, considering all the other things in this project needing my attention.
- Re-enabled undo/redo support
I bring up this feature because it would be really, really nice to have it back. The problem is that it is very difficult to add in, and will have to be done in a completely different way than it was before. Ideally, this feature will be working before the 0.1.0 release, but I'm not holding my breath.
Would be nice if we could find a short-term developer willing to finish the rest of the editor features and really polish it off. I miss having gorzuate around (who fathered the original editor and took care of it for the rest of us). I don't expect that we'll need or want to continue investing our time in the editor for the long-term once we have all of these nice features in place.