When comparing Duality vs Urho3D, the Slant community recommends Duality for most people. In the question“What are the best 2D game engines?” Duality is ranked 30th while Urho3D is ranked 61st. The most important reason people chose Duality is:
The full source code is available on GitHub, where the framework is actively developed. All of the editor, core and plugin code is written in C#.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Open source
The full source code is available on GitHub, where the framework is actively developed. All of the editor, core and plugin code is written in C#.
Pro Great editor
Duality includes a powerful visual editing system that can be used for previewing, integrating, editing and testing game content.
Pro Live reload of code and assets
Pro Very extensible
Because both Core and Editor are completely plugin-based, Duality not only incorporates a clean and modular design, but is also very extensible - even if it wasn't Open Source. In fact, most of the standard editing capabilities comes in form of Editor plugins.
Pro Built-in physics and lighting
Pro Friendly to version control systems
It can be configured to serialize all data in a text-based format, which has been structurally optimized for version control systems.
Pro Used in commercial projects
It has been used in a production environment without burning the place to the ground. Supposedly artist-proof editor workflow with an API for tailoring the system to fit your team.
Pro Free and fully open source
The entire engine is open source and makes use of other open source libraries. Source code is licensed under MIT and available on GitHub.
Pro Good documentation
The documentation for Urho3D can be split in two parts: auto-generated from class references and documentation written to cover the various aspects, features and systems of the engine. The written documentation is pretty good. It covers most of the aspects of the engine in clear and understandable English.
Pro Includes a lot of samples
There are a lot of sample projects included with the engine for both C++ and Angelscript. They are mostly very simple applications built to demonstrate the engines capabilities and features.
Pro Fat-free codebase
Only use what you need.
Pro Small turnaround times while developing
Builds are quite fast, aids in rapid development.
Pro Very high code quality
Urho3D is written in a modular and super-clean way, so that it can be integrated into the other parts of your game seamlessly.
Pro Good 3D level editor
Pro In constant active development
Bugs are usually fixed that same day. Core devs are very active on forums. New features are always being worked on. HTML5, DirectX11, and OpenGL3.1 support have recently been added (as of 4/15/15).
Pro Does not require an editor to get going
Pro Flexible rendering pipeline
You can configure rendering pipeline.
Pro Multi-Lights
There are no lights limits per mesh.
Pro Unofficial Oculus Rift support
Information on enabling OR support can be found here.
Cons
Con Visual Studio required
To have possibility for scripting you have to download entire Visual Studio and spend 10 GB of free space
Con Requires windows for development
Con It has been stopped developing
The owner has moved to build new 3D engine, however, that is also experimental stage, not for production.
Con Little documentation and small community
There are some high-level design docs and a bunch of examples, but code is poorly commented and nothing much more can be found.
Con The UI can be hard on the eyes
Urho3D's UI could cause eye strain.
Con There is no support for reflections
Neither SSR nor cubemap parallax correction are implemented in engine.
Con Bad Android support
You can not compile this engine using latest Android Studio.
Con May be a bit hard to get started
To install Urho3D you need to get the archive from GitHub (be careful to download the master branch) and extract it. After that, you need to compile the engine with CMake. If all the dependencies are installed, then it should be a straightforward process, otherwise you will need to track down and install all the missing dependencies.
For people who don't have much experience with CMake this whole process may seem a bit like magic. For people who do have experience with CMake, the whole installation will be relatively easy.