All over internet there are a lot of SDKs, APIs, wrappers and libraries to simplify game development. All "old school" people will remember the famous Click & Play, a toolset to create not very complex 2D games (but with a very innovative point and click system).
The creators, ClickTeam, evolved the idea and created later The Games Factory, that continued empowering the "event oriented" development, just with mouse clicks on a visual way (without needing to write actual code).
In one of my previous jobs, my project manager was a hobbyist game developer (not very complex but very entertaining). He bought the Games Factory and shown me that for creating 2D platform games it was very suitable, because it allowed you to create games without needing to know a programming language, but focusing on game development aspects (like collisions, input handling...).
Jamagic has a very good 2D engine, with collision detection, multiple-layers (allowing easy alpha effects for example), graphical surfaces management... The 3D engine supports both hardware and software acceleration.
And now the cons:
- The 3D engine is very rough and does not bring much features. It's the point of most critics at the official forums, because you can't do anything medium-good with it.
- Being an interpreted language, for medium-to-large projects the speed is not optimal.
- And the most important problem: The creators have decided to stop giving support to it :(
The problem? I was doing my final degree asignment using Jamagic (a small RPG). Apart from a few initial problems learning the untyped language (a burden in my opinion), the I/O it brings is poor; Either you embedd the data inside the executable itself (as interal resources) must go as they are (you can't use a zip, for example). But among all, the speed is not impressive even in 2D stuff. With a good computer you will make decent games, but a pure C++ game doing the same will support a lot more sprites at once.
For not maintaining the support (for more than a year no patches have been released, even having a buglist at the forums) each day they lose more people (and achieve a bad image). I am thinking about if I will be able to finish the project on Jamagic, or switching to either Visual C++ + DirectX or C# + Managed DirectX.