flame-engine

flame: Build Games with Flutter

Flame is a Dart game engine that adds a game loop, component system, rendering helpers, input handling, and collision detection to Flutter. It suits developers building 2D games who want game-focused tools alongside Flutter.

Stars
10.8k
Forks
1k
Stars, last 8 days
+2

Our take

Health score

79/100

How it is scored
Activity
88
Community
88
Issues
76
Pull requests
65

+2 stars in the last 8 days

  • Merges more pull requests than 95% of the projects we track
  • Releases more often than 91% of the projects we track
  • More contributors than 77% of the projects we track

Overview

Flame is a game engine built on Flutter and Dart. It fills in common game-development needs that Flutter applications do not provide as a focused engine, including a game loop, a component/object system, input handling, and collision detection.

It is intended for developers making games in the Flutter ecosystem. Core functionality can be extended with official packages for integrations such as audio, physics, tile maps, and animation formats. The project provides documentation, browser-based examples, and tutorials to help evaluate its approach.

Key Features

  • Game loop for updating and rendering game state.
  • Component/object system for organizing game entities.
  • Effects, particles, images, animations, sprites, and sprite sheets.
  • Collision detection and gesture or input handling.
  • Utility functions for common game-development tasks.
  • Bridge packages for integrations including audio, Forge2D physics, gamepads, and tile maps.
  • Official testing helpers and lint rules are available as companion packages.

Use Cases

  • Flutter developers building a 2D game who need a game loop and reusable game components.
  • Small game teams that want sprites, animations, effects, and collision handling within a Dart-based workflow.
  • Developers prototyping touch- or gesture-driven games that fit naturally into Flutter applications.
  • Projects needing an integration such as audio, physics, or tile maps, where an official Flame bridge package is available.

Getting Started

Install the flame package from pub.dev and follow the documentation for setup and examples. The README links to tutorials, browser examples, and the API reference.

Alternatives

  • Bevy: Bevy is a Rust engine for 2D and 3D games, while Flame is a Dart game engine built on Flutter.
ProjectLanguageLicenseStarsStatus
flameDartMIT10.8kNot checked yet
bevyRustApache-2.048.6kActive

Considerations

  • Flame builds on Flutter, so it is most relevant when your project is already using, or is willing to use, the Flutter and Dart ecosystem.
  • The README describes common game-engine features and integrations, but does not establish that Flame is a general-purpose 3D engine. Its 3D extension is explicitly described as experimental.
  • Bridge packages are separate integrations. Check their documentation and compatibility for the specific services or formats your game needs.
  • The repository's main-branch documentation may be newer than the released documentation, so check the version selector when following guides.

Found this useful?

Share it with someone who would like flame.

Comparisons