FlatRedBall is a set of technology for creating games on a variety of platforms. FlatRedBall focuses primarily on creating 2D games, although it does provide 3D support and full access to the underlying XNA-like system (MonoGame, FNA, Kni) for creating full 3D games.
FlatRedBall has been used to create dozens of commercial games on a variety of platforms. FlatRedBall's ultimate goal is to boost your productivity as a game developer and to help you ship your game on your target platform.
The FlatRedBall Editor is a visual tool for creating and organizing screens, entities, and files.
Use the wizard to get your game up and running in seconds.
Tiled maps can be drag+dropped into the FlatRedBall Editor and loaded with no extra code. Use Tiled to define visuals, collision, and add entity instances.
FlatRedBall provides full integration with the Gum tool. Gum projects are added to your project and loaded by generated code, enabling the creation of UI from the very first click.
Run your game in edit mode to make changes in real time.
Make changes to files such as Tiled (.tmx), Textures (.png), and spreadsheet (.csv) files and see the changes update in realtime.
Native support for .aseprite files enables creating animated characters by drag+dropping files into the FlatRedBall Editor.
FlatRedBall Editor supports customizing accent colors and changing between light and dark mode.
Add built-in effects like Bloom and CRT with a few clicks, or create your own fully customizable shaders.
Creating a platformer has never been easier. Mark your entity as a Platformer or use the new project wizard to get production quality platformer physics and movement.
The flexible damage system simplifies and standardizes dealing damage and reacting to receiving damage.
Create node networks from Tiled maps or in code to navigate maps.
Use the AnimationEditor to define animations for your characters using individual files or sprite sheets. Preview animations, adjust timing, and add shapes for collision or defining key positions.
FlatRedBall.Forms is a flexible UI system similar to WPF and MAUI. It is fully integrated with Gum and has MVVM support.
Use SkiaSharp to render GPU-accelerated vector graphics in your game. Perform layout purely in code or use Gum.
Use all features in the Spine tool including defining skeletons, animations, and events.
Spine files can be dropped in to your project and loaded with no code. Play animations at runtime in response to input or game events.
Use built-in interpolation systems to move, resize, rotate, and color objects over time.
Physics engine handles collision between circles, rectangles, polygons, and lines.
Define collision relationships in UI or code to add physics, damage dealing, and custom events.
Set your initial game's resolution, whether it supports resizing, aspect ratio, and more.
The camera controlling entity can follow one or more targets, supports zooming, provides customizable tweening, and respects map bounds.
Turn difficult-to-find runtime errors into clear in-editor errors the moment a file is changed or removed.
MonoGame and FNA Song support included out of the box. For more flexibility song files can be loaded using NAudio.
Use CSV files or open office spreadsheet files to define your game data. FlatRedBall automatically generates the classes for loading your data and deserializes the files in geneated code.
FRB input supports mouse, keyboard, touchscreen, and a variety of gamepads (Xbox, Switch, PlayStation, and PC) including direct and abstract access through a variety of interfaces.
Add multiple languages to your game using a simple spreadsheet. Localization is automatically loaded and can be accessed through a LocalizationManager static class. Include multiple pages per string ID and add custom columns for your game's specific needs.
Target multiple platforms with the same code and content. FRB games can run on:
Windows
Browser
Mac
Linux
Android
iOS
Switch/Xbox using FNA AOT
PS4/PS5 using MonoGame AOT (coming soon)
FlatRedBall projects are regular .NET projects with full access to modern C# syntax, the full .NET library, and NuGet packages. FlatRedBall Projects are regular Visual Studio project, enabling you to use your favorite IDE and debugger.
FlatRedBall is fully open source using the MIT License. It is built using libraries which themselves are also open source. You can build your games without the worry of future inconveniences caused by license changes.
All data created by FlatRedBall is in text format. The FlatRedBall Editor saves .json files and generates pure C# code files. Never worry about binary file conflicts wiping out your work again.
FlatRedBall was built in the early days of XNA and has continued to grow, adding support for MonoGame and FNA. Your FlatRedBall game is a MonoGame/FNA game, and the full flexibility of these libraries is available to you.
FlatRedBall provides a syncrhonization context and multiple methods returning Tasks to simplify async programming.