Skip to content

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

15 stars

Watchers

0 watching

Forks

Repository files navigation

FlatRedBall2

NuGet

NuGet

NuGet

Join the chat

Early Preview — This engine is in active development. APIs will change between releases.

FlatRedBall2 is the next generation of FlatRedBall — a 2D game engine with 20+ years of iteration behind it, rebuilt from the ground up on modern .NET. It is built on KNI, an XNA-compatible framework that runs on desktop and in the browser (via Blazor WASM) from a single codebase.

Samples

Each sample is a complete runnable game built on the engine — open the source to see real usage patterns.

Sample Description Play
ShmupSpace Shoot-em-up ▶ Play in browser
PlatformKing Platformer ▶ Play in browser
Solitaire Klondike solitaire ▶ Play in browser

Tools

AnimationEditor — author and preview sprite animation chains (.achx). Self-contained downloads (no .NET install required):

Platform Download
Windows (x64) AnimationEditor-win-x64.zip
macOS (Apple Silicon) AnimationEditor-osx-arm64.zip
macOS (Intel) AnimationEditor-osx-x64.zip
Linux (x64) AnimationEditor-linux-x64.tar.gz

The downloads above always resolve to the latest published release; older release downloads are on the Releases page.

Binaries are unsigned, so Windows SmartScreen and macOS Gatekeeper warn on first run. See the install guide for the steps for each platform.

Features

  • Screens & Entities — structured game object model with lifecycle hooks (CustomInitialize, CustomActivity, CustomDestroy)
  • Collision relationships — declarative move/bounce collision between entity groups; one call to wire up an entire system
  • Shapes & physics — built-in AARect, Circle, and Polygon with kinematic physics
  • Platformer & top-down movement — first-class built-in behaviors; no custom physics code required
  • Gum UI integration — full MonoGame Gum support for menus, HUDs, and in-game UI
  • Input system — keyboard, gamepad, and input interfaces for action binding
  • Camera — configurable 2D camera with world/screen coordinate transforms
  • Async support — async/await compatible throughout the game loop
  • Hot reload — all content files reload at runtime without restarting
  • Extensive XML documentation — every public API documented; IntelliSense covers everything
  • AI assistant support — ships with skill files in /frb-skills/ for any AI coding tool

Quick Start

Requires the .NET 10 SDK (install guide).

dotnet new install FlatRedBall2.Templates
dotnet new frb2-desktop -n YourGameName
cd YourGameName/YourGameName.Desktop
dotnet run

A window opens showing "Hello from FlatRedBall 2" — if you see that, everything works.

dotnet new uses whichever template version is installed locally and never updates it on its own. Re-run dotnet new install FlatRedBall2.Templates before each new project to pick up the latest version.

See the full setup guide for prerequisites, multi-platform (desktop + web) projects, manually wiring FlatRedBall2 into an existing project, and troubleshooting.

Working with AI Assistants

FlatRedBall2 ships with skill files in /frb-skills/ — plain Markdown guides covering common engine tasks (entities, collision, physics, animation, audio, and more). Copy them into your game repo so your AI coding assistant has engine context without you pasting anything manually.

Add the skill files to your project. Run these from your project's root folder (e.g. YourGameName/):

dotnet new install FlatRedBall2.Templates   # also updates an older install
dotnet new frb2-skills

This creates a frb-skills/ folder in the current directory. Most AI tools can be pointed at that folder or configured to load files from it automatically.

Claude Code — copy the skills into .claude/skills/ so they are picked up automatically. Run from the same project root:

# macOS / Linux
mkdir -p .claude/skills && cp -r frb-skills/. .claude/skills/

# Windows (PowerShell or cmd)
xcopy /E /I frb-skills .claude\skills

You can keep frb-skills/ as the source of truth and gitignore .claude/skills/, or drop frb-skills/ and commit .claude/skills/ directly — either works.

Other AI tools — paste the relevant file from frb-skills/ into your context window before starting a task. Each file is self-contained.

FlatRedBall vs FlatRedBall2

FlatRedBall (FRB1) has been in active use since the early 2000s. FlatRedBall2 is a clean-slate rewrite that keeps the things that worked — the screen/entity model, collision relationships, shape-based physics — while fixing the things that didn't.

The biggest workflow change: FRB1 centered on Glue, a Windows-only visual editor that generated code and managed assets. FRB2 drops the editor entirely — everything is code. The API has been unified from scratch rather than grown organically, which eliminates a lot of the inconsistencies that accumulated in FRB1 over two decades. Third-party libraries (Gum, Tiled) use their standard MonoGame versions rather than FRB1's modified forks, so ecosystem updates flow in automatically.

FRB2 does not have a migration path from FRB1 projects. It is a fresh start with familiar concepts.

Contributing

Contributions welcome. Before submitting a PR:

  • Run dotnet test tests/FlatRedBall2.Tests/ — all tests must pass
  • Engine behavior changes require a failing test first (see .claude/skills/engine-tdd)
  • Code style rules are in .claude/code-style.md

License

MIT

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages