When comparing Duality vs Twine, the Slant community recommends Duality for most people. In the question“What are the best 2D game engines?” Duality is ranked 30th while Twine is ranked 38th. 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 Easy to understand
The basics are very easy to grasp, and you can have a basic story up in minutes.
Pro Free for commercial projects
Twine is based on a GPL licence. You are free to download, modify and publish derivatives - even commercially.
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 Limited to interactive fiction
Twine is specialized to decision-based interactive fiction. Under the hood, a Twine game is just a flowchart for page transitions; the only way to add more complex behavior is to code it from scratch in JavaScript.