Oxygine is C++ engine for 2d mobile games. One more shell around OpenGL/D3D API you would say? No, this is a set of classes and tools to create a game according to your requirements.
In the basis of the engine there is a scene graph, that is similar to Flash one. To be short, You can call this as Flash for C++, but more comfortable and way faster. Initially it was developed for mobile platforms (iOS, Android), but can be also used for PC games.
Source code is available under MIT license (use for free anywhere).
- Source code, libraries
- Necessary tools, documentation
- Demo for testing and demonstration of base features
Download base features demo:
- Android version built with Marmalade
- Android version built with native Android SDK/NDK and SDL2
- Windows version
- Online version for web built with Emscripten
You could build it on top of the Marmalade, SDL2 or adapt it for your platform. Oxygine could be build with Emscripten for internet browser too (see online demo).
Examples of code:
//create sprite and display it spSprite sprite = new Sprite(); sprite->setResAnim(gameResources.getResAnim("anim")); sprite->attachTo(getRoot()); sprite->setScale(0.5f); //run animation tween sprite->addTween(TweenAnim(gameResources.getResAnim("anim2")), duration, loops); //run position tween sprite->addTween(Sprite::TweenPosition(x, y), duration, loops); //handle events sprite->addEventListener(TouchEvent::CLICK, CLOSURE(this, &someClass::onClick)); //short syntax example sprite = initActor(new Sprite, arg_resAnim = gameResources.getResAnim("plus"), arg_scale = 0.5f, arg_onClick = CLOSURE(this, &HUD::clicked), arg_pos = Vector2(70, 55), arg_attachTo = getRoot());