✨FlatRedBall Features
Introduction
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.
FlatRedBall Editor
The FlatRedBall Editor is a visual tool for creating and organizing screens, entities, and files.
Project Setup Wizard
Use the wizard to get your game up and running in seconds.
Tiled Integration
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.
Gum UI Integration
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.
Game Live Edit
Run your game in edit mode to make changes in real time.
Hot Reload Files
Make changes to files such as Tiled (.tmx), Textures (.png), and spreadsheet (.csv) files and see the changes update in realtime.
Aseprite Integration
Native support for .aseprite files enables creating animated characters by drag+dropping files into the FlatRedBall Editor.
Platformer Controls and Physics
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.
Built-in Damage System
The flexible damage system simplifies and standardizes dealing damage and reacting to receiving damage.
Pathfinding
Create node networks from Tiled maps or in code to navigate maps.
AnimationEditor Integration
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
FlatRedBall.Forms is a flexible UI system similar to WPF and MAUI. It is fully integrated with Gum and has MVVM support.
SkiaSharp Integration
Use SkiaSharp to render GPU-accelerated vector graphics in your game. Perform layout purely in code or use Gum.
Spine Integration
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.
Tweening (Interpolation)
Use built-in interpolation systems to move, resize, rotate, and color objects over time.
Physics
Physics engine handles collision between circles, rectangles, polygons, and lines.
Collision Relationships
Define collision relationships in UI or code to add physics, damage dealing, and custom events.
Display Settings
Set your initial game's resolution, whether it supports resizing, aspect ratio, and more.
Camera Controlling Entity
The camera controlling entity can follow one or more targets, supports zooming, provides customizable tweening, and respects map bounds.
Realtime File Reference Tracking
Turn difficult-to-find runtime errors into clear in-editor errors the moment a file is changed or removed.
MonoGame/FNA and NAudio Music
MonoGame and FNA Song support included out of the box. For more flexibility song files can be loaded using NAudio.
CSV and Open Office/Libre Office Integration
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.
Flexible Input
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.
Localization Support
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.
Multiple Platforms
Target multiple platforms with the same code and content. FRB games can run on Windows, Mac, Linux, Android, and iOS. By using FNA and Native AOT, FlatRedBall can also run on consoles such as Switch.
Full .NET C# (not scripted)
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.
Open Source
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 is Text
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.
XNA-Like Foundation
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.
Async Programming
FlatRedBall provides a syncrhonization context and multiple methods returning Tasks to simplify async programming.