I do have a WIP project I didn’t want to quite disclose yet until it’s in a better state, but I’m currently looking into the Cortex VFX/Gaffer projects from ImageEngine and extending it to support Urho3D:
imageengine.github.io/gaffer/
The tech behind it is C++/Python with Qt and Boost for the most part, which is a bit heavy and definitely not for the Urho3D runtime, but it’s very platform-agnostic in terms of supporting Linux/OSX currently (and I’m in the process of porting it to Windows in my Github). Gaffer really shines at procedurally building scenes using nodes from existing exported assets from a DCC package in Alembic or its own internal Cortex-specific format, and applying shaders, attributes, procedures, etc. and building scenes for offline renderers (Arnold and 3Delight/PRman currently).
My plan was to first make an ‘IECoreUrho3D’ which would link just the system+network libs of Urho for serialisation and to run a server in Cortex/Gaffer and the idea was to hook in an Urho3D client to pick up changes and hot-reloads of files to produce renders very very fast (and to save out EXRs at the other end), but this certainly could be extended for building environments procedurally for a game as the framework is very easy to extend in Python or C++. Gaffer’s file format .gfr is just a large python script full of operators so everything stays procedural and non-destructive when transforming your asset data, so this can be a huge production win for a large project.
As an example the most simple problem this could automatically solve is where you export out an asset from your DCC and modify attributes in the editor like add physics and shader settings, but then need to re-export your asset, you wouldn’t need to redo all that work in the editor because of the asset change. Imagine doing this on a large game, or you need to add some change to the xml data to all your assets due to some added feature. Cortex/Gaffer can also work headless so using a render farm or cloud service for a large change could be done as well. Lots of potential here.
The Urho3D editor itself is certainly very good, but I think some things should stay in an external tool as it doesn’t make sense to have some stuff in the runtime itself, like non-destructive asset formats, the runtime only cares about optimised final assets most of the time (depending on your game), there’s always going to be a conflict here on where to draw the line and not cause performance bottlenecks because your asset needs to stay non-destructive. Something like Sony’s editor could be really good here, I’ve not seen the API but the C#/WinForms/DX11 stuff isn’t too interesting to me.