A 2D game development framework.
What is Duality?
Duality is a modular 2D game engine / editor combo, written entirely in C# and built on top of an OpenGL backend. It's open source, features an open architecture that invites extensibility and technical ownership, and it embraces C# as a language rather than a scripting solution.
- 1,338 Stars
- 289 Forks
- 138 Open Issues
Comments and Reviews
- 2D Game
- Game Engine
- Game Development
Recent user activities on Duality
- ddabrahim edited Duality
- POX added Duality as alternative(s) to microStudio
- sr00 added Duality as alternative(s) to Flax Engine
I'm using Duality since October 2015 and I'm totally happy with it. Here are some reasons why:
Before I started using Duality, I developed my games with Unity. For me it was quite easy to switch to Duality, because it also uses the "Component-Based"-Design. Aside from this design decisions, the developer of Duality implemented a well conceived API, that makes developing games enjoyable. On top of that he does also a great job posting his design decisions or his progresses on github.
2. Open Source:
I could expand my knowledge in programming, because this neat software is open source and so well written. If you want to know how you can implement something in your game and there isn't any documentation written yet, just look up the repository.
The community is just awesome. If you have any question, just ask them. There is always someone how can help you. They are very friendly and helpful.
This game engine is open source and has obtained the 'MIT' licences. No hidden cost or other restrictions.
Duality has a build in package manager (plugin). Everyone can develop their plugins and share them with the community. You can also install some example projects with source code from this package manager.
What bothers me a bit is the fact that you can develop you games on a windows machine only.
In my opinion it's the best 2D game engine out there and I wouldn't switch to an other at the moment.
[Edited by christiangreiner, February 27]
Duality has a perfect mix of design and programming and a good mix of ease of use and power. The fact that it's open source is great, and that it was made by one guy is incredible. The community is very friendly; the friendliest I've ever come across. Overall, Duality is the best 2D game engine out there, if not, the best game engine in general, both 2D and 3D.
Great and wonderful.
Develop games with modding support out of the box The first thing that really stand out for me with this engine is that you can publish your game with modding support out of the box. You can choose to include the Duality editor with your game when you publish which people can use to open the project, edit the levels, use the components you made and add their own content. You can also choose to include the full source in which case basically you share the entire project as-is but it is optional. If you don't want to, you can just publish the game as normal and people can not edit the project.
Modular game development In Duality basically we are developing components that we can attach to game objects which is then going to perform certain actions and we are getting full freedom. We can design any kind of component we want and we can also expose any properties from the component that we can edit from the editor so we don't need to keep editing the code and compile to change something. We can just write the component once and change values from the editor.
No restriction and royalties Duality is free as in "free speech" you can do anything with it, even include the editor in your game and let people have it and use it to modify your game if that's what you want
Visual editor Many people who prefer coding avoid engines that comes with an editor built-in simply because it is stand in their ways when they are trying to code certain things. With Duality I don't have this problem at all. The visual editor allow us to create objects, create levels and populate the levels with objects but then, everything else done with components and since we are developing the components from scratch it is up to us what each component going to do and how. We can even access components within components and create objects from prefabs which really makes the visual editor totally optional you can just code everything you want even the editor itself which in my opinion very useful after all even if you prefer coding it is a lot easier if you can visually design a level, Duality got this without any annoying workflow and limitations.
Workflow I've been using many different game engines and frameworks but Duality is simply the best. The API is extremely well designed, well organised and well documented you can easily find your way around in Duality and achieve anything very quickly. It is also very easy to bring 3rd party libraries in to Duality, all you need to do is reference them and you can start using them in your components. Can't be any more simple than that. The coding experience with Duality is truly amazing and fun.
Plugins It is also very easy to extend the engine with additional features and functionality, you can download and install many useful plugins from an online repository that give you additional features. Duality has many useful features that not everyone mentioning, for example:
Windows only? maybe not Officially Duality is Windows only, but the actual game we are making can be compiled technically to any platform with .NET and Mono which includes Linux, macOS, HTML5, Android and iOS. However It is not easy, does require some effort and dedication. If you are looking for an easy export option, then Duality is Windows only. Which might sounds very disappointing at first but all the above I mentioned in this review for me at least totally worth it.
It is an amazing engine. Even if you have doubts because of Unity which got absolutely nothing to do with Duality other than the component based design or because of being Windows only which is technically not entirely true, just give it a try for a week and see if you like it.