Sunday, February 6, 2011

The Flat Red Ball game engine

Flat Red Ball is a game engine for games developed in XNA. Currently 2 SGD projects – Moves and Virtuoso - are using the engine in their projects, and one other – Colors – used it last semester. It has also been used for projects such as the Android version of Steambirds, a popular game originally developed in Flash.

One of the biggest advantages to FRB is the automatic inclusion of input methods and collision detection. Normally it is fairly difficult to handle input and collisions (especially collisions) in XNA. Flat Red Ball makes it much easier to process input from numerous methods (such as the keyboard and Xbox gamepad), as well as not only detecting collisions, but reacting to them. This makes it much easier to set up the basics of a game and getting into the meat of the development.

Another big advantage to Flat Red Ball is the amount of tools for content creation. FRB has numerous tools to create sprites, animations, tiles, and levels. This makes it much easier to integrate this content into the game – creating a level in the level editor makes an XML file with all the data, which is then read into the game.

From a programming standpoint, FRB provides two main structures, Entities and Screens, to manage all the parts of the game, as well as a way to organize these structures, known as Glue. Entities are basically FRB’s definition of an object; if there is logic for an in game object, it is an entity. The biggest difference is the inclusion of a manager, an automatically created object that handles all of the entities added to it. Screens are exactly what they sound like – objects to hold all the data in any given “screen” in your game (such as the menu, level, etc). You use screens to add all the objects and entities to the game, as well as manage some of the logic necessary for the objects in the screen to interact. Glue is an IDE much like Visual Studio, but designed specifically for FRB. It makes adding and editing entities and screens much simpler than just doing it straight from FRB, though it is not necessary to use the engine.

All of these extra tools, however, come at a cost. While entities and screens are quite useful, it definitely makes the learning curve for FRB very steep. In addition, all the extra tools are completely separate applications, not one big one. Each of these applications works differently, and each one is integrated into the game in a different way. The result is a fairly clunky combination of tools that are fairly difficult to use all at once, even if they simplify the individual components greatly.

To download the FRB engine, or to get more information on what FRB can do and tutorials on how to do it, check out their website at

No comments:

Post a Comment

Although this organization has members who are University of Virginia students and may have University employees associated or engaged in its activities and affairs, the organization is not a part of or an agency of the University. It is a separate and independent organization which is responsible for and manages its own activities and affairs. The University does not direct, supervise or control the organization and is not responsible for the organization’s contracts, acts or omissions.