First of all I’d like to criticize the motivation.
Overhauling the whole engine is a bad idea. It would take a lot of time and effort, and there won’t be any benefit in doing so.
It would only benefit projects that have the highest possible demands for performance, mostly graphics, and only projects with a budget of at least ~$10,000,000 would have the kind of assets and demands that would benefit from it, and I don’t think Urho users have such projects thus there’s no value in doing so.
I’d argue that work spent on adding new features to expand the possibility space of what can be made with Urho has much more value than overhauling the engine for what would be to virtually all Urho projects a premature optimization.
Rendering
? Unified shader language
- I’m for it, it would reduce work and maintainence.
? Modern Rendering pipeline targeted at a DirectX11 and DirectX12 work flow
without removing DirectX9 support for older systems.
- Against, a lot of work and users won’t benefit from it.
? Geometry shaders for tessellation
? Pre-Filtered PBR (filtered within the engine)
? Swappable render paths at either runtime or though a method at compile time
- Already possible to set render path at runtime, tho not sure if only before engine initialization. Even if it’s only before, having some sort of graphic settings menu and changing the render path would only require a game restart, which isn’t a big deal.
? Support for modern render API such as Vulkan and DirectX12
- Against. I heard they’re barebone and require a lot of work, and no Urho user won’t benefit from it. Even if it isn’t barebone it still isn’t beneficial.
? A low end and high end render path to enable maximum quality without losing
compatibility
- You can already have several paths, don’t know what compitability would be lost.
? Multi-threaded rendering
- Isn’t it the same as Vulkan/DX12?
? Material Prototypes
- Don’t know what that means.
Core
? Support for Code Plug-ins
- Not sure what you mean by plug-ins, but you can already use Urho as a C++ library and add whatever you want. And there’s scripting.
? Multi-threading using fibbers
- If it would offer sagnificant improvement, for.
? Hand written documentation on the engine
- Already exists, unless you mean documenting implementation details for engine developers and if so, for.
? A data driven engine design
- You already have event system, and node-component system.
Scripting
? Hand written documentation
? Auto generated script bindings
- Not sure if it’s worth it. Valve had a paper about how they made a very complicated special tool that can generate bindings (doesn’t work for all cases) and they spent a year making it instead of few days doing the bindings, and now you need specialized programmers to be able to even maintain it.
So you got partial solution that you’ll have very hard time to be able to find replacement developers for and spent orders of magnitude more time making than just writing the bindings.
In general against, unless it can be kept almost as simple is writing the bindings.
? Syntax Highlighting for major IDE
- For Lua you won’t have problems finding syntax highlighting for text editors.
For AS there are some efforts by community members, like atom.io/packages/language-angelscript.
There was also IDE stuff post12251.html
In general I wouldn’t consider it in the scope of Urho.
? Support for users to add there own languages with minimal effort
- Already exists, use Urho as a C++ library and use whatever you want.
Urho2D
? 2D Lighting
? 2D Shadows
? Normal mapped 2D sprites
- Technically you can have those with regualr 3D rendering, not sure if they can be used with Urho2D, never looked into it.
Performance shouldn’t be a problem if it’s a 2D game.
If it isn’t possible, then for.
? Spline based level creation
- Specialized content creation tool, not part of the engine level.
? Standard 2D movement in the editor with 2D mode enabled
- Never used Urho2D, don’t know if the urho editor supports it.
? Layers for producing parallax or other layer based effects
- For, increases possibility space. Is it really not possible already?
UI
? Easy to change editor themes
- You can already have default style file (usually XML). The only thing I can think of which will make it easier is a visual style editor, which I’m for.
? Sliders
- already exist (tho I’d like to have an option for fixed size bar)
? Animated widgets
Editor
? Changeable color themes
- Same as my visual style editor suggestion
? Updated UI textures
- What updating means? Better default ones?
? Integrated terrain editor
- Againt, specialized content creation tool, outside of engine scope. Urho just uses a heightmap image, and you can make the hieghtmaps with external tools.
Urho also has hot resource reloading, so it should be possible for the terrain to update as the image updates.
? Integrated IDE for AS and LUA
- Against, there are plenty of good editors out there, this would be a waste of time.
Also note that when I’m saying I’m against I don’t mean they should never be done, I mean they have very little value and thus should have very little priority.