Flame is a 2D game engine for Flutter and Dart. It provides a component-based game framework for managing entities and their lifecycles through a hierarchical architecture, alongside a dedicated system for game asset management and input handling.
The engine distinguishes itself through a specialized integration layer for external physics engines to handle rigid body dynamics and collision detection. It also features a high-performance task model that uses isolates to offload heavy computations and prevent main thread blocking.
The framework covers a broad range of capabilities including visual rendering for sprites, SVG graphics, and particle effects, as well as support for vector animations via Lottie and Rive. It manages a full asset pipeline that includes texture atlas mapping, Tiled map integration, and remote image loading. Audio capabilities encompass background music management and sound effect triggering with dedicated player pooling and caching.
The system also integrates with external gamepad libraries for interactive input and supports state management integration through BLoC.