Editor Restart

Involved development of the OpenMW construction set.
Post Reply
User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Editor Restart

Post by Zini » 25 Nov 2012, 17:44

As you all probably have recognized by now the development of our editor does not progress a lot. While we also do have a few larger issue to solve with OpenMW, the engine should be finished not too far into the future. That unfortunately means that the editor won't have the head start I was hoping for, which in turn means we will be stuck after 1.0 in regards to adding new features to OpenMW.

Our current approach (editor branch) has several problems. Some of them are structural (the data model not being entirely correct and the Ui design having significant usability problems), but there are also organizational problems (one developer working mostly by himself on whatever he fancies without communicating much or using the issue tracker).

It seems I need to take a stronger lead for the required progress to be made. Which I herewith do.

During the last few days I started to read up on Qt and I have already build a new framework for the editor (editor2 branch, just pushed to github). Hopefully we will probably be able to reuse a lot of the code for the editor branch, but from now on editor2 is the main branch for the new CS.

I have left lots of todo comments in the code and I will start to add tasks for it to the tracker (for 0.21.0). These are small to medium tasks of easy to medium difficulty. I hope this will make it easer for other developers to pick them up.

The new editor already provides the following features:
- multiple documents with only one editor process
- multiple top level views per document
- a sub-window system (blender-like)
- an undo/redo-system
- edit-locking
- the UI for multi-threaded operations (saving, searching and a few more; the actual multi-threading still needs to be implemented).

We can't do ESX loading yet. Still need to implement a data model. And we also need the refactored ESX selector from the launcher. But if everything goes well, I hope we are ready to release a partially functional preview of the editor along with 0.22.0 or maybe 0.23.0.

Eli2
Posts: 45
Joined: 27 Nov 2011, 08:23

Re: Editor Restart

Post by Eli2 » 26 Nov 2012, 23:15

Can you tell me the design flaws that made it necessary to start a new branch from scratch?

User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Re: Editor Restart

Post by Zini » 27 Nov 2012, 02:05

The problems are rather numerous. Some were obvious from the start, but I was thinking that we could make the necessary changes later. Others I only found after taking a step back and looking at the editor as a whole (and reading up a bit more on Qt, so I could actually understand what the code was doing). I am not sure if saying the restart is necessary describes it well. Its more like restarting and than moving over usable parts from the old editor will be less work than fixing up the old editor.

Here is a not necessarily complete list of issues in no particular order:

- Having the whole ESX file in a single model doesn't make too much sense. For all intents and purposes the CS is more a collection of independent editors, one for each record type (all referencable record types counting as one type). There are references between records and they share a single namespace, but that's it really.
- (still investigating this one, but my current thinking is:) Having a single view class for record lists isn't so great either, because different recrod types are indeed very different and there are plenty of special cases to consider.
- On the other hand creating a separate model class for each record type (I assume that is what you were planning to do) is unnecessarily repetitive.
- The editor did not take care of the dual record model (base, modified). That is a rather big problem.
- The editor did not provide multi-document capacity nor multi-view capacity. I guess you just didn't get to it yet, but adding it later would have meant an awful lot of moving code around.
- The filter system is too complex. You and me would be comfortable with it. Most people working on MW-scripting probably could deal with this kind of logical expressions. The rest of the MW-modding community most likely can't.
- The directory structure used for the source files looked a bit obscure. At least I wasn't fully able to comprehend it.

User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Re: Editor Restart

Post by Zini » 27 Nov 2012, 09:59

One another important point to add:

With the old editor there was no clearly visibly dividing line between GUI code and non-GUI code. We already discussed that we want scripting in the editor, both for additional editing features, but also for batch processing of records.

Doing the later from the command line (without a GUI) could be useful, too. With a clear division we can either check the command line argument on startup and run the code without the GUI if required. Or we could create a separate binary from the non-GUI part only. It remains to be seen what is more feasible. This has the potential of replacing the ESMTool eventually.

btw. I hope I am not stepping on your feet too badly. But from your communication I got the impression that you were losing interested in the editor anyway.

Eli2
Posts: 45
Joined: 27 Nov 2011, 08:23

Re: Editor Restart

Post by Eli2 » 27 Nov 2012, 12:51

If you want multiple views on the same data, having a single view model was the only sane way i saw to update all views if you change the data in one view (that already worked, also multiple views was working). For the single record type editors, the plan was to fetch a "managed" record from the view model that has change listeners on it so that any changes to that object get live updated in the view model.
As soon as the records are wrapped in QObjects with properties, they are already scripting enabled (can be done in a few days).
The dual record functionality you describe can be added transparently below the view model.
The next step would have been to store the filters and gui layout in the esx data(they both are already in the viewmodel).

Also to be honest, yesterday i was really upset about how you just dismissed the work already done.

User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Re: Editor Restart

Post by Zini » 27 Nov 2012, 13:10

Also to be honest, yesterday i was really upset about how you just dismissed the work already done.
Sorry about that. I assumed you were out of the game, so to speak. And to make that clear, I fully intend to re-use as much of your work as possible.

User avatar
ElderTroll
Posts: 485
Joined: 25 Jan 2012, 07:01

Re: Editor Restart

Post by ElderTroll » 27 Nov 2012, 13:20

Eli2,

Are you still wanting to work on the editor or do other aspects of the engine interest you? I hope you continue with the project and thank you for all your work. The modding community is really interested in where your work is going. :D
“A society grows great when old men plant trees whose shade they know they shall never sit in.”

User avatar
Zini
Posts: 5134
Joined: 06 Aug 2011, 15:16

Re: Editor Restart

Post by Zini » 28 Dec 2012, 23:47

Just a heads-up: I merged my work on the editor into the master branch. There is little benefit in keeping it in a separate branch for now. All editor feature branches should be based on master from now on.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest