TurtleBrains  0.3.5
High quality, portable, C++ framework for rapid 2D game development.
Game Scene Management

Admittedly the scene management is fairly basic, supplying no transitioning between scenes or other glamorous features*. But you can create multiple scenes derived from TurtleBrains::Game::GameScene and change between them using TurtleBrains::Game::GameScene::ChangeToScene().

Although there is no transition help, a GameScene has powerful management of Graphic and Entity objects. Each scene is an EntityManager that will automatically perform Simulate, Update and Render on all entities.

Like the GameScene each Entity also contains the functionality of a GraphicList, meaning multiple Graphic objects can be added to and managed by the single entity object.

When adding an Entity or Graphic to be contained by a GraphicList or EntityManager it is critically important to understand the difference in how the object gets added. When adding by pointer, the container will take full control and will even call delete on that object. Useful when adding elements that can be forgotten about. When adding a by reference, the container will not delete the object, but it is extremely important to keep the object in scope until it is removed from the container.

The Entity also contains a stack based state/behavior "machine". This allows multiple behaviors to be pushed onto the entity that pop off or change depending on the needs at that moment.

*at current time, though transitions would be nice to support in future releases.