There is a very old topic for this in Technical, but I wanted to start a proper thread here and keep it up to date, so forgive the double post.
For the good part of the past 6 years I've been working on a massive cross-platform development framework called Polycode. It is designed to be used as both a C++ library and a standalone Lua-based scripting system with bindings to the main C++ core, which can publish to multiple platforms, not unlike Love2D, only with the ability to be distributed as a standalone executable and with a lot more features.
The core of Polycode provides easy access to accelerated 2d and 3d graphics, shaders, skeletal animation, physics, sound, windowing, config/data loading and pretty much everything you might need to develop games and other applications. It currently runs on Windows, Mac and Linux.
I released Polycode publicly over a year ago, and have been slowly working on fixing bugs and polishing the existing features, but one thing I always really wanted to do was to turn it into a sort of open source answer to Unity.
I have used Polycode in my own work to build everything from 2d platformers to first person shooters, so the features are by and large already there, but I always wanted to make it a standalone development tool like Unity, and the time for that has come.
I am currently gearing up to releasing Polycode for the first time as a standalone application (along with the usual C++ SDK of course). It will have a script editor, a 2d layout editor and a visual material editor and will be able to publish directly to Windows, Mac and Linux (from any of the three). The next release will have a 3d editor and more granular shader editor options.
The IDE is actually written IN Polycode, which has its own complete UI toolkit, so that gives you an idea of what it can possibly do.
I have shut the website down for remodeling while I work on the final features for first release. Originally I was going to release it on Dec 12, but since I am definitely not going to make this date, I decided to make a devlog to keep people updated on the progress, along side with the project's Tumblr and Twitter (
To start things off, here is a screenshot of the 2d editor laying out a platformer level.