Package selection guidance compiled from public package information, community data, and project usage.
Flame is a lightweight, modular Flutter game engine designed for building 2D games with flexibility and performance. It offers a collection of independent, composable modules—such as rendering, input handling, physics, and audio—that developers can mix and match based on their project needs. Built specifically for Flutter, Flame leverages the framework's capabilities while providing game-specific tools and abstractions. Its minimalist approach encourages clean architecture and efficient development. Flame supports multiple platforms including Android, iOS, Web, macOS, Windows, and Linux, making it ideal for cross-platform game creation.
Use cases
2D mobile games
Web-based games
Desktop games
Educational games
Prototyping game mechanics
Key features
Modular architecture
Cross-platform support
Built-in physics system
Event-driven input handling
Lightweight and fast
Easy integration with Flutter
Suitable for
Flutter developers new to game dev
Experienced game devs seeking modularity
Projects requiring cross-platform deployment
Small to medium-sized 2D games
Teams wanting flexible, reusable components
Considerations
Limited built-in 3D support
Steep learning curve for complex systems
Less mature than some full engines
Requires understanding of Flutter fundamentals
Community size smaller than major game engines
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
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:
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:
[](https://flame-engine.org)
[](https://flame-engine.org)
[](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.
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.