Flame
Flame is a free, open-source 2D game engine that runs on top of Flutter, Google's cross-platform UI toolkit. It gives Flutter developers a game-oriented API with components, physics, audio and sprite support, so you can ship the same game to mobile, desktop and web from one Dart codebase.
Quick Facts
| Developer | Flame Engine community (created by Luan Nico) |
|---|---|
| First released | 2017 |
| Latest version | Flame 1.38 (2026) |
| Language | Dart |
| Platforms | Android, iOS, web, Windows, macOS and Linux via Flutter |
| License | MIT License |
| Pricing | Free, open source |
What is Flame?
Flame is a 2D game engine built on top of Flutter, the open-source UI framework created by Google. It was started by Luan Nico in 2017 and is now maintained by a community of contributors. If you already know Flutter, Flame feels like a natural extension: the same widgets, the same Dart language, the same one-codebase-many-platforms story.
Flutter handles the heavy lifting of rendering to mobile, desktop and web, while Flame adds the game-specific layer: a game loop, a component system, sprites, animation, tilemaps, particles, audio and physics integrations. You write your game in Dart and it runs on Android, iOS, the web and all desktop platforms.
Because Flame is built on Flutter, you can mix game scenes with regular Flutter UI, which is great for menus, HUDs and settings screens. That blend is the engine's superpower: your game and your app live in the same codebase and share the same tools.
Key Features
- Component-based game loop built on Flutter's render tree
- Sprite, animation, particle and tilemap support
- Built-in audio and background music handling
- Physics integrations for Box2D and Forge2D
- Camera, input and gesture handling out of the box
- Runs on Android, iOS, web and desktop from one Dart codebase
- Seamless mixing of game scenes with Flutter widgets
- MIT licensed with a friendly, active community
How to get started
You need Flutter installed, which is the same setup you would use for any Flutter app. Create a Flutter project and add flame to your dependencies, then replace the default app with a Flame Game widget and start adding components.
The official Flame documentation has a tutorial that builds a complete platformer game called Solo Survivor, with enemies, shooting and UI. Because Flutter hot reload works with Flame, you can tweak values and see changes almost instantly, which makes iterating on gameplay feel magical.
- Install Flutter and set up your editor
- Create a project and run flutter pub add flame
- Follow the Solo Survivor tutorial in the Flame docs
- Build your game with components, sprites and the game loop
- Run flutter build to ship to mobile, web or desktop
Use cases
- 2D mobile games for Android and iOS from a single codebase
- Web games via Flutter's web target
- Desktop games for Windows, macOS and Linux
- Games that need rich native UI around the gameplay
- Prototypes that reuse existing Flutter app infrastructure
- Learning game development in Dart and Flutter
Pricing and licensing
Flame is free and open source under the MIT license. You can use it in commercial games, closed-source projects and client work with no fees, no royalties and no attribution requirements.
The project is community-maintained and funded through sponsorship and donations. Like Flutter itself, all of Flame's features and documentation are available at no cost, and the source code is on GitHub for anyone to read or extend.
Pros and cons
Flame's strengths are its Flutter integration, its simplicity and its multi-platform reach. If you know Dart, you can start making games immediately, and shipping to every platform from one codebase with hot reload is a huge productivity win.
The trade-offs: the engine is best suited to 2D, its ecosystem is smaller than major engines, and it inherits Flutter's web performance characteristics, which are solid but not identical to native. There is also no visual editor; Flame is a code-first engine.
Alternatives
- Godot: free and open source with a full visual editor
- GameMaker: 2D-first engine with drag-and-drop and GML
- Defold: lightweight 2D engine using Lua
- Phaser: JavaScript framework for browser games
- Unity: cross-platform engine with C# and 3D support