Created: January 2011
Last Updated: March 2011
Original Author: Tony Huynh
Description
FlatRedBall is a game engine intended for 2D games, where everything is rendered in 3D space. It has limited support for 3D game elements, but physics engines such as Farseer Physics can be integrated with it. It is written in C# and currently supports development for the PC, Xbox360 and others. The official website for FlatRedBall is http://www.flatredball.com/frb/blog/index2.php.
Requirement(s)
Remark: The minimum requirements refers to the April 2011 release of FlatRedBall.
Visual C# 2010 Express or Visual Studio 2010
XNA Game Studio 4.0
.Net 4 Framework
DirectX 9.0c or greater
Shader Model 1.1 or greater
Features
See the following link for a list of features: http://www.flatredball.com/frb/docs/index.php?title=FlatRedBall_Features.
Definition(s)
Screens and Entities - (see http://www.flatredball.com/frb/docs/index.php?title=Glue:Tutorials:Adding_Screens_and_Entities for some intuition on the definition). In terms of code, Screens and Entities are classes. Screens are basically content managers, which takes care of loading and unloading/destroying content; they also contain and manage other objects such as Entities. An Entity is basically any game object.
Tutorial(s)
Remark: The tutorial here is only to provide some basic guidance on using the FlatRedBall game engine. For specific API details and other tutorials, please visit the official FlatRedBall website for reference at http://www.flatredball.com/frb/docs/?title=Category:Reference. Two tutorial categories that you will want to refer to often while working on a FlatRedBall project is the Content Creator's Section (see http://www.flatredball.com/frb/docs/index.php?title=Content_Creator%27s_Section) and the Programmer's Section (see http://www.flatredball.com/frb/docs/index.php?title=Category:FlatRedBall_XNA_Tutorials).
Overview
When using FlatRedBall, there are two main tools that you will want to work with: Visual Studio and Glue. The Visual Studio IDE is a necessity for any FlatRedBall project and is used for coding. Glue, a GUI that comes with the installation of FlatRedBall, is optional but extremely useful. One of the biggest advantages for using FlatRedBall over just XNA is the GUI tools that comes with it and this is where Glue comes into play. Glue is the central GUI tool for editing contents in your project; even your Visual Studio project can be launched from this application. The point of Glue is to mainly 1) provide GUI tools to apply visual (or graphical) representations (e.g. sprite or animations) to entities, 2) expose relevant variables for designers to manipulate in an editor without going into code, and 3) automatically generate the necessary code to interact with FlatRedBall. The following tutorials have been essentially split into 2 categories, where one deals with the GUI interface of Glue and the other with coding.
Glue Tutorial(s)
Remark: For more tutorials, see http://www.flatredball.com/frb/docs/index.php?title=Glue.
Starting a Project Using Glue (See http://www.flatredball.com/frb/docs/index.php?title=Glue:Tutorials:Creating_a_new_project )
Creating an Entity with 2D Animations:
Adding an Entity/Screen to the Project (See http://www.flatredball.com/frb/docs/index.php?title=Glue:Tutorials:Adding_Screens_and_Entities )
Adding 2D Animations to an Entity (See here )
Adding an Entity to a Screen (See the bottom section titled "Adding an Entity to a Screen" at http://www.flatredball.com/frb/docs/index.php?title=Glue:Tutorials:Adding_objects_to_Entities )
Exposing Variables (See http://www.flatredball.com/frb/docs/index.php?title=Glue:Tutorials:Custom_variables_and_behaviors )
Coding Tutorial(s)
Remark: For more tutorials, see http://www.flatredball.com/frb/docs/index.php?title=Category:FlatRedBall_XNA_Tutorials.
Using the Camera (See here )
Switching Screens (See here )
Managing Entities (See here )
Using Animations (See here )
Using Sprite Layers ( See http://www.flatredball.com/frb/docs/index.php?title=FlatRedBall.SpriteManager.AddToLayer )
Collisions (See here )
Other Tutorial(s)
Files to Omit when using Source Control (See http://www.flatredball.com/frb/docs/index.php?title=Tutorials:Version_Control, note that you may want to commit the generated files to the repository anyways for convenience, since the generated files are only re-generated when Glue is opened, which annoyingly pops up a box in visual studio asking you to re-load the files.)
Publishing a FlatRedBall Project (See here )
Troubleshooting