New Urho3D Editor [update from 2017-11-03]


#21

Not sure if you guys know about this or not, but the Wargaming guys released a nice editor framework based on Qt5:
https://github.com/wgsyd/wgtf
Might make things easier to make this talk to Urho3D.


#22

[quote=“boberfly”]Not sure if you guys know about this or not, but the Wargaming guys released a nice editor framework based on Qt5:
https://github.com/wgsyd/wgtf
Might make things easier to make this talk to Urho3D.[/quote]
I heard some bad words about their code quality from one ex-employee, sooo…
Questionable.


#23

[quote=“Eugene”][quote=“boberfly”]Not sure if you guys know about this or not, but the Wargaming guys released a nice editor framework based on Qt5:
https://github.com/wgsyd/wgtf
Might make things easier to make this talk to Urho3D.[/quote]
I heard some bad words about their code quality from one ex-employee, sooo…
Questionable.[/quote]
This is from the Sydney branch, looking at the code it’s pretty clean enough and pretty much an empty shell with Qt5 + Python bindings. A friend of mine who works there tipped me off about it.


#24

BTW, I started. I’ll share my work when I have relatively stable architecture and some basic functions.

It explains a lot. That guy was from Moscow branch.


#25

A new editor wrote from scratch would be awesome. Is anyone against using Lua, and making it more modular / plugin based? The current editor defines a lot of global variables, which makes name conflicts more probable, and it can make tracking down things more difficult. Especially considering the code base size. And one could argue that Lua is more popular then AngelScript, considering its age and usage through out the industry. So using Lua may make contributing to the editor easier for those who haven’t spent the time to learn AngelScript, but have used Lua in the past (or even Javascript). I would be willing to help / lead a rewrite in Lua. Especially since I’ve switched back to Urho3D from Unity due to bugs with the Unity editor on Linux.


#26

Lua as it is in Urho currently has some problems in memory management; I personally would not recommend it over AngelScript. And using C++ still gains you better debugging possibilities, as well as performance.


#27

If C++ were to be used, I could see it being exposed to the scripting engines so that people writing games in Lua or AngelScript can make use of the editors pre-built functionality.

The issue I see with this is adding easy support for plugins to the Editor. I can see three options:

  • Dynamically load plugins as shared libraries at runtime. This is probably the best option. But will make authoring of plugins only available to those with knowledge of C++

  • Compile the plugin into the editor. This is less ideal. Since artists who may find a cool plugin that they want to use, would have to compile the editor (which they may not know how to do)

  • The core of the editor is wrote in C++, and we add plugin support via Lua / AngelScript. This is less ideal if say, someone wants to make use of the editor functionality in their Lua based game, but want to load in a plugin wrote in AngelScript (we would have to have both scripting languages running)

I’m thinking the dynamic C++ option would be best. But it’s going to make it harder for artists, who may only have basic knowledge of Lua / AngelScript, to create plugins for the editor that suit their needs.


#28

Sounds like games could be made only by artists without any programming knowledge which obviously is not true. What you suggest is another gamemaker or unity. To me Urho3D is appealing precisely because it is not gamemaker or unity and because it does not hide innards from me.

My dream would be to have a “libEditor”. Imagine you are presented with premade components, scene tree window for example. You manually have to rig your game to call that window but then it would allow you interacting with your scene inside your game. You could hook into various actions of saving/loading/manipulating scene. Now imagine every other component is like that. Imagine you could change model material of character that is passing by in your scene. Essentially it would turn game into editor your game needs. However i do realize this will work for some things and will be totally unfeasible for others. Just like making editor to be usable by non-artists for making entire games. On the other hand if there was such “libEditor” to exist and it was pluggable to the game while actual editor would be based on said lib it could allow some pretty neat flexibility for developers.


#29

[quote=“rku”]Sounds like games could be made only by artists without any programming knowledge which obviously is not true. What you suggest is another gamemaker or unity. To me Urho3D is appealing precisely because it is not gamemaker or unity and because it does not hide innards from me.

My dream would be to have a “libEditor”. Imagine you are presented with premade components, scene tree window for example. You manually have to rig your game to call that window but then it would allow you interacting with your scene inside your game. You could hook into various actions of saving/loading/manipulating scene. Now imagine every other component is like that. Imagine you could change model material of character that is passing by in your scene. Essentially it would turn game into editor your game needs. However i do realize this will work for some things and will be totally unfeasible for others. Just like making editor to be usable by non-artists for making entire games. On the other hand if there was such “libEditor” to exist and it was pluggable to the game while actual editor would be based on said lib it could allow some pretty neat flexibility for developers.[/quote]

I agree that Urho3D is appealing because it’s not gamemaker, although I’d say that after coming from Unity (I cannot speak for GameMaker), most of my work was programming with nearly nothing done in the editor. Unity is very flexible when it comes to writing procedural code. Urho, for me, was appealing because my development workflow didn’t change from Unity to Urho. This goes for UE4 as well. In my little time with UE4, I tried my best to avoid Blueprints as it wasn’t appealing to me. I do believe a great editor can exist without disrupting the workflow of a programmer. :slight_smile: But yeah, I totally get your concern! The editor shouldn’t be needed to build a game.


#30

Huh… It is harder than I imagined. Anyway, this is not a reason to stop.


#31

While I absolutely agree that you can’t create a full game without coding, I think that a well-designed editor can help iterate logic, mechanics, gameplay, visuals, etc way faster that tweaking values in code. More generally, it is often very difficult to get that initial spark of inspiration when faced with only code. That said, I actually don’t think that the traditional game engine editor UI is the best way to do this. Such editors help to set up a scene and perhaps expose some parameters of the components, but they don’t help the user to make that leap from having a bunch of great assets to having an engaging game world.

All this is to say 1) having a great editor for Urho would ABSOLUTELY increase its value (not necessarily in a monetary sense - rather in the sense of the value that it gives the users), and 2) Given the incredible base on which to build (i.e. the Urho source code), it might be worth trying to envision an equally innovative editor.

I’ve actually tried to implement a bunch of the above in iogram ([1], [2], [3]), and I would love to see iogram become a more general tool for Urho users. Not sure how others feel about that, though. Also, I’ve posted a lot about iogram - I’m not trying to spam the thread :slight_smile:! I just think it is a relevant bit of work on game/3d editor UI.


#32

Okay, first steps are made. However, it is still absolutely unusable.
It would be more fair to call him 'Urho3D scene viewer’
However, it already can into multiple tabs and huge scenes.


#33

Looks good!

As long as you don’t need to composite Qt UI widgets in software on top of the Urho 3D view through a (potentially per-frame) GPU texture upload, I believe you’ll be fine :slight_smile: Thinking of it, probably all those kind of cases can be handled with Urho-native objects, Text3D, debug geometry, debug meshes and such.

The reason why I’m even mentioning that, is just some war trauma from https://github.com/realxtend/tundra :slight_smile:


#34

Migrated Camera ang Gizmo logic as precise as possible.
Implemented configurable main menu layout.
Added undo/redo stack.
Added multiple viewports support, without margins for now.
Added auto-generated options dialog.
Editing gizmo with keyboard also creates undo action (original Editor miss it)


#35

Well, that looks pretty good indeed.
Are you using qss stylesheets for styling? It is what I would recommend since it is the most scalable and easily extendable solution. And almost as powerful as real css.

@cadaver Displaying something on top of a GraphicsScene is not much of an issue in Qt. IIRC correctly, it is as easy as adding a widget to the same GraphicsScene/View.
Ah, yeah, here is the update from Qt 4.4:

Qt 4.4 introduced a powerful feature to allow any QWidget subclass to be put into QGraphicsView. It is now possible to embed ordinary widgets in a QGLWidget, a feature that has been missing in Qt’s OpenGL support for some time.

Mind you, that was years ago and now we have Qt 5.7 (at least that’s what I’m currently using in another project), so it really shouldn’t be a problem.


#36

Yep, I use QDarkStyle stylesheet.


#37

This is awesome. Is code on public repo yet?


#38

Yep. Surprisingly, there are some Urho users who’ve already found it on Github.

However, I am not going to share this repo, make docs, answer questions, support or provide any guarentees until I make this Editor minimally usable (=until I start use it for my own project).

I started from scratch month ago. Estimated time for sharing zero-point-one version is several months.


#39

Not that its hard to find… :wink: Besides whats so bad if some people want to stalk the progress? :stuck_out_tongue:


#40

I think anybody sometimes have thoughts deep in mind like My code is so ugly so I don’t want anybody to see it