All over internet there are a lot of SDKs, APIs, wrappers and libraries to simplify game development. Some old school people will remember the famous Click & Play software, 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, which continued empowering the event oriented development model, via just mouse clicks on a visual way, without needing to write actual code.
At one of my previous jobs, my project manager was a hobbyist game developer. 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 any specific programming language and building a game engine. You could instead focus on the pure game development aspects, like collisions, input handling...
Jamagic has a very good 2D engine, with collision detection, multiple-layers (allowing for example easy alpha effects), graphical surfaces management... The 3D engine supports both hardware and software acceleration.
It was initially built for Windows, but it had a PocketPC extension, and that for me was the most incredible feature: Building cross-platform games with the same codebase and just a few tweaks (mostly just adjusting screen resolution and input handling). I tried it with two different PDAs and worked really nice.
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 minimally decent with it. It is not very powerful nor too fast.
- Being an interpreted language, for medium-to-large projects the speed is not optimal, even in 2D stuff. With a good computer you can make decent games, but a pure C++ game doing the same will support a lot more sprites at once.
- The I/O system is quite poor; Either you embed the data inside the executable itself, as internal resources, or they must go as they are. You can't use a zip, for example, or encrypt the data. You can for sure create save-game files, but for reading is quite limited.
- And the most important problem: The creators have decided to stop giving support to the platform. For more than a year no patches have been released, despite having a very precise bug-list at the forums, and each day they lose more people.
So what's my biggest problem? I was doing my degree's final thesis using Jamagic (building a small RPG and documenting all the process). So now I am thinking if I will be able to finish the project on this platform, or if I should switch to either Visual C++ & DirectX or C# & Managed DirectX.