flame is a free, open source gaming project written in Dart and released under MIT. It has 10,773 GitHub stars, 1,043 forks and 90 open issues, and was last pushed 13 hours ago. On this registry it ranks #18 of 32 tracked projects in Gaming, with 5 head-to-head comparisons available.

What is flame?

Flame is a Flutter-based game engine distributed as an MIT-licensed Dart package, built for Flutter developers who want to write 2D games in Dart without hand-rolling a game loop, component system, and rendering utilities themselves.

What it is

Flame is a game engine written in Dart that runs on top of Flutter, so a game is a Flutter project and the language, tooling, and package ecosystem around it are the same ones Dart developers already use. The package is published as flame, with its generated dartdoc API reference hosted at pub.dev/documentation/flame/latest/, and the project maintains a documentation site at docs.flame-engine.org, a site of browser-playable examples at examples.flame-engine.org, a set of tutorials, and a curated community list, awesome-flame.

The concrete problem it solves is the pile of infrastructure that otherwise has to be written from scratch in every Flutter game. The README states the goal directly: to "provide a complete set of out-of-the-way solutions for common problems that games developed with Flutter might share." Instead of building a bespoke game loop, object model, collision system, and input layer on raw Flutter primitives, developers start from engine-provided versions of those pieces. Work that the core does not cover is handled through bridge packages, which add integrations with third-party libraries as separate dependencies.

Key capabilities

  • A game loop, plus general utilities intended to make development easier.
  • A component/object system, referred to in the README as FCS.
  • Effects and particles, for visual work beyond static sprites.
  • Collision detection, so physics-adjacent behaviour does not need custom code.
  • Gesture and input handling, including gamepad support through the flame_gamepads bridge.
  • Images, animations, sprites, and sprite sheets, with flame_texturepacker for TexturePacker-generated sheets and flame_fire_atlas for texture atlases.
  • Bridge libraries for established packages: flame_audio (AudioPlayers), flame_bloc (Bloc), flame_forge2d (Forge2D, a Box2D physics engine), flame_isolate (Flutter Isolates), flame_lottie (Lottie), flame_network_assets (loading assets from the network), flame_rive (Rive), flame_svg (flutter_svg), flame_tiled (Tiled tile maps), and flame_lint, the project's own analysis_options.yaml ruleset.

Who uses it and how

  • Flutter teams that want to reuse existing Dart and Flutter skills for a 2D game rather than adopt a second toolchain.
  • Games needing physics, which pull in flame_forge2d for Box2D behaviour and flame_tiled for levels authored in the Tiled 2D tile map editor.
  • Projects already committed to Bloc for state management, which use flame_bloc to keep that pattern inside the engine.
  • Games with heavy or loading-sensitive assets, which use flame_isolate for Flutter Isolates and flame_network_assets to fetch assets at runtime.
  • Contributors and community members: the project carries the hacktoberfest topic, has 90 open issues, and directs questions to the Blue Fire Discord server or to StackOverflow under the flame tag. Funding runs through OpenCollective, GitHub Sponsors, and Patreon, with Invertase listed as a top sponsor.

Getting started

Flame is consumed as the flame Dart package, and the documented starting points are the tutorials at docs.flame-engine.org and the browser-playable examples, whose code is reachable from the example pages themselves.

How it compares

No alternative engines, commercial or otherwise, are named in the facts available for this listing, so Flame stands alone in this registry rather than sitting alongside named competitors. Any comparison to other game engines would have to be made outside the material summarised here.

When to use it — and when not to

Choose Flame if the project is already a Flutter and Dart codebase and the target is a 2D game, accepting that the engine is extended by adding bridge packages such as flame_audio or flame_forge2d individually rather than getting everything in one bundle. Teams not using Flutter should look elsewhere, since the engine presumes the Flutter stack. Note also that the repository README functions largely as a link index and defers setup detail to the documentation site, where the main-branch content is newer than the released documentation, and that support is community-driven through Discord and StackOverflow rather than a vendor agreement.

project readme (upstream, from github) — read inline

Flutter favorite

flame

A Flutter-based game engine.


Documentation

The full documentation for Flame can be found on docs.flame-engine.org.

To change the version of the documentation, use the version selector noted with version: in the top of the page.

Note: The documentation that resides in the main branch is newer than the released documentation on the docs website.

Other useful links:

  • The official Flame site.
  • Examples of most features which can be tried out from your browser.
    • To access the code for each example, press the `` button in the top right corner.
  • Tutorials - Some simple tutorials to get started.
  • API Reference - The generated dartdoc API reference.
  • awesome-flame - A curated list of Tutorials, Games, Libraries and Articles.

Help

There is a Flame community on Blue Fire's Discord server where you can ask any of your Flame related questions.

If you are more comfortable with StackOverflow, you can also create a question there. Add the Flame tag, to make sure that anyone following the tag can help out.

Features

The goal of the Flame Engine is to provide a complete set of out-of-the-way solutions for common problems that games developed with Flutter might share.

Some of the key features provided are:

  • A game loop.
  • A component/object system (FCS).
  • Effects and particles.
  • Collision detection.
  • Gesture and input handling.
  • Images, animations, sprites, and sprite sheets.
  • General utilities to make development easier.

On top of those features, you can augment Flame with bridge packages. Through these libraries, you will be able to access bindings to other packages, including custom Flame components and helpers, in order to make integrations seamless.

Flame officially provides bridge libraries to the following packages:

Sponsors

The Flame Engine's top sponsors:

Invertase

Do you or your company want to sponsor Flame? Check out our OpenCollective page, which is also mentioned in the section below, or contact us on Discord.

Support

The simplest way to show us your support is by giving the project a star! :star:

You can also support us monetarily by donating through OpenCollective:

Through GitHub Sponsors:

Or by becoming a patron on Patreon:

You can also show on your repository that your game is made with Flame by using one of the following badges:

Powered by Flame Powered by Flame Powered by Flame

[![Powered by Flame](https://img.shields.io/badge/Powered%20by-%F0%9F%94%A5-272727.svg)](https://flame-engine.org)
[![Powered by Flame](https://img.shields.io/badge/Powered%20by-%F0%9F%94%A5-272727.svg?style=flat-square)](https://flame-engine.org)
[![Powered by Flame](https://img.shields.io/badge/Powered%20by-%F0%9F%94%A5-272727.svg?style=for-the-badge)](https://flame-engine.org)

Contributing

Have you found a bug or have a suggestion of how to enhance Flame? Open an issue and we will take a look at it as soon as possible.

Do you want to contribute with a PR? PRs are always welcome, just make sure to create it from the correct branch (main) and follow the checklist which will appear when you open the PR.

Also, before you start, make sure to read our Contributing Guide.

For bigger changes, or if in doubt, make sure to talk about your contribution to the team. Either via an issue, GitHub discussion, or reach out to the team either using the Discord server.

Credits

  • The Blue Fire team, who are continuously working on maintaining and improving Flame and its ecosystem.
  • All the friendly contributors and people who are helping out in the community.

Frequently asked questions

Is flame free to use?

flame is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does flame do?

A Flutter based game engine.

What is flame written in?

flame is primarily written in Dart. Its source is publicly available at https://github.com/flame-engine/flame, and it has 10,773 GitHub stars.