NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1108 most downloaded on pub.dev
A minimalist Flutter game engine, provides a nice set of somewhat independent modules you can choose from.
Last release 2 days ago
06 Oct 2026
Ships fairly regularly
a new release about every 5 weeks
Nearly every release is documented
notes for 57 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
151 releases · first in 2017
Note: This release has breaking changes.
Note: This release has breaking changes.
Published to pub.dev: https://pub.dev/packages/flame/versions/2.0.0-dev.1
One column per quarter.
Note: This release has breaking changes.
Note: This release has breaking changes.
Timer and TimerComponent APIs consistent (#4076). (87a0265a)Published to pub.dev: https://pub.dev/packages/flame/versions/2.0.0-dev.0
FIX : Scan the lifecycle queue without its iterator in dequeueAdd/dequeueRemove ( #4021 ).
Claude-Session: https://claude.ai/code/session_015gWB2TcjDnKkmMZk4g7s2H
FIX : Adapt to Flutter 3.47 ( #3995 ).
Claude-Session: https://claude.ai/code/session_01EJANnBFMk4Cfh3JRbUboQZ
Note: This release has breaking changes.
Note: This release has breaking changes.
FIX: Use proper hash combining in CollisionProspect to fix flaky test (#3864).
HasAutoBatchedChildren mixin (#3850). (a2b7f938)bleed option to SpriteBatch to prevent seam artifacts in tilemaps (#3871).HasAutoBatchedChildren mixin (#3850). (a2b7f938)FIX: Ray direction normalization drift issues (#3841).
CircleComponent ctor (#3842). (a0d2a5f3)fontPackage in IconComponent (_rasterizeIcon) (#3838). (cdb2a0dd)buildContext available during onLoad and onMount (#3833). (60bfcb30)TextBoxComponent (#3830). (7f41c261)removeAll(children) work in onRemove (#3823). (ff760230)clampDouble to Vector2Extension and its tests (#3840). (6c6ccf31)transformMatrix setter to Transform2D (#3836). (957ff2e0)dispose() method to FlameGame (#3825). (aa5a27b7)ComponentPool (#3816). (46802fab)Packages with breaking changes:
Packages with breaking changes:
Packages with other changes:
flame - v1.35.0flame_tiled - v3.0.10flame_behaviors - v1.3.2flame_behavior_tree - v0.1.4+1flame_test - v2.2.1flame_oxygen - v0.2.3+19flame_isolate - v0.6.2+19flame_texturepacker - v5.0.4flame_sprite_fusion - v0.2.2+2flame_steering_behaviors - v0.2.1+2flame_fire_atlas - v1.8.14flame_audio - v2.11.13flame_spine - v0.3.0+2flame_bloc - v1.12.20flame_kenney_xml - v0.1.1+19flame_lottie - v0.4.2+19flame_markdown - v0.2.4+12flame_console - v0.1.2+15flame_rive - v1.10.22flame_forge2d - v0.19.2+3flame_noise - v0.3.2+19flame_riverpod - v5.5.1flame_svg - v1.11.19flame_network_assets - v0.3.3+19flame_3d - v0.1.1+5Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
flame_behaviors - v1.3.2flame_behavior_tree - v0.1.4+1flame_test - v2.2.1flame_oxygen - v0.2.3+19flame_isolate - v0.6.2+19flame_texturepacker - v5.0.4flame_sprite_fusion - v0.2.2+2flame_steering_behaviors - v0.2.1+2flame_fire_atlas - v1.8.14flame_audio - v2.11.13flame_spine - v0.3.0+2flame_bloc - v1.12.20flame_kenney_xml - v0.1.1+19flame_lottie - v0.4.2+19flame_markdown - v0.2.4+12flame_console - v0.1.2+15flame_rive - v1.10.22flame_forge2d - v0.19.2+3flame_noise - v0.3.2+19flame_riverpod - v5.5.1flame_svg - v1.11.19flame_network_assets - v0.3.3+19flame_3d - v0.1.1+5FIX: Loading page should always be possible to add to route (#3800).
FEAT: Add scaling gesture for components (#3770).
CombinedEffect that bundles many effects together in one (#3776). (77869f57)DOCS: Deprecate TapDetector in favour of TapCallbacks (#2886).
addAll shouldn't create unnecessary growing lists (#3737). (d1fa9d0d)ComponentKey toString (#3739). (9a4a8f20)REFACTOR: Move MutableRSTransform out of flame_tiled package and into flame package (#3695).
FIX: Resume engine on mount if paused by backgrounding (#3631) (#3637).
ComponentRenderContext (#3669). (086096ca)ParallaxComponent should respect the virtualSize (#3666). (9f29c785)FIX: Hitboxes with vertically flipped ancestor should not reflect angle for vertices (#3642).
FIX: angleTo and lookAt should consider parental transformations (#3629).
angleTo and lookAt should consider parental transformations (#3629). (e6f3d105)angleTo, absoluteAngle and the angle setter now returns normalized angles between [-pi, pi] (#3629). (e6f3d105)super.onDispose last and check mounted before setState (#3623). (3d2716c1)target argument to SpawnComponent (#3635). (3747e1e8)spawnCount to SpawnComponent (#3634). (f377d7e7)WidgetTester for testGolden prepare function (#3624). (10509326)FIX: Only expose ReadOnlyOrderedset from component.children (#3606).
ReadOnlyOrderedset from component.children (#3606). (79351d19)parent after parent is remove from tree (#3602). (008829af)Note: This release has breaking changes.
ReadOnlyOrderedset from component.children (#3606). (79351d19)parent after parent is remove from tree (#3602). (008829af)REFACTOR: Replace dart:io usage with defaultTargetPlatform (#3567).
virtualSize when calling onParentResize on children of Viewport (#3577). (245fb3f5)FIX: Deprecate HasGameRef in favor of HasGameReference (#3559).
HasGameRef in favor of HasGameReference (#3559). (a882261b)SpriteButton (#3560). (eaa2b442)FIX: Fix priority rebalancing causing concurrent mutation of component ordered_set (#3530).
FIX: RouterComponent should be on top (#3524).
RotateAroundEffect (#3499). (0688f410)FEAT: Add a setter for TextBoxComponent.boxConfig and add a convenience method to skip per-char buildup (#3490).
PERF: Switch from forEach to regular for-loops for about 30% improvement in raw update performance (#3472).
REFACTOR: Fix lint issues from latest flutter release (#3390).
FIX: Remove extra implements SizeProviders (#3358).
FIX: Widgets flickering (#3343).
CircleHitbox (#3341). (7311d034)onMount (#3327). (f36533e7)SpriteGroupComponent.updateSprite assertion (#3317). (d976ee8c)Packages with breaking changes:
onLoad (#3302). (1204216c)Packages with breaking changes:
Packages with other changes:
behavior_tree - v0.1.3flame_behavior_tree - v0.1.3flame_bloc - v1.12.1flame_forge2d - v0.18.2flame_isolate - v0.6.2flame_kenney_xml - v0.1.1flame_lint - v1.2.1flame_lottie - v0.4.2flame_markdown - v0.2.2flame_noise - v0.3.2flame_oxygen - v0.2.3flame_rive - v1.10.3flame_spine - v0.2.2flame_splash_screen - v0.3.1flame_sprite_fusion - v0.1.3flame_svg - v1.11.0flame_test - v1.17.0flame_texturepacker - v4.1.0flame_tiled - v1.20.3jenny - v1.3.2flame_fire_atlas - v1.5.4flame_riverpod - v5.4.3flame_network_assets - v0.3.3flame_audio - v2.10.3BREAKING FIX: Use 32bit Vector2 in Flame to be compatible with shaders and forge2d (#3515).
Note: This release has breaking changes.
FollowBehavior (#3230). (524793d4)SpriteGroupComponent.sprites (#3185). (7c40034d)SpriteAnimationGroupComponent.animations (#3183). (52773407)pause and resume to HasTimeScale mixin (#3216). (9a86e7b5)PositionType from the docs (#3198). (b0ff5c41)FEAT: Implement closeToVector4 and closeToQuaternion by extracing a generic CloseToVector base (#3480).
Note: This release has breaking changes.
setToStart on child effect controller of wrapping effect controllers (#3168). (217c95f0)onReleased action to AdvancedButtonComponent which will be called within onTapUp (#3152). (2269732e)FixedResolutionViewport (#3132). (db4b6fd6)FEAT: Add a closeToVector3 matcher to flame_test (#3242).
Note: This release has breaking changes.
render properly from nested FlameGames (#3106). (cb1e3701)ColorEffect to 1.0 (#3069). (9282cc38)SpriteComponent.fromImage should be nullable (#3054). (2ed71a3c)copyWith method on the TextBoxConfig (#3099). (b946ba70)HasPerformanceTracker mixin on Game (#3043). (6270353a)REFACTOR: Fix unrelated types reported by DCM (#3023).
REFACTOR: Minimize Vector2 creation in IsometricTileMapComponent (#3018).
Vector2 creation in IsometricTileMapComponent (#3018). (5d3be313)JoystickComponent properly (#3019). (e27818d8)ComponentViewportMargin (#2983). (1d9fe613)Component.key public (#2988). (7fbd5af9)FIX: Set hitbox debugColor to yellow (#2958).
debugColor to yellow (#2958). (6858eae0)Note: This release has breaking changes.
debugColor to yellow (#2958). (6858eae0)FIX: The visibleGameSize should be based on viewport.virtualSize (#2945).
Packages with breaking changes:
Packages with breaking changes:
Packages with other changes:
flame_behaviors - v1.4.0flame_bloc - v1.12.24flame_steering_behaviors - v0.2.2+6flame_test - v2.3.0flame_tiled - v3.1.2flame_behavior_tree - v0.1.5+5flame_gamepads - v0.1.2flame_isolate - v0.6.3+23flame_texturepacker - v5.1.2flame_sprite_fusion - v0.2.4+2flame_fire_atlas - v1.8.18flame_audio - v2.12.2flame_spine - v0.3.1+6flame_kenney_xml - v0.1.3+2flame_lottie - v0.4.3+23flame_markdown - v0.2.5+16flame_console - v0.1.4flame_rive - v1.11.2flame_forge2d - v0.19.3+7flame_noise - v0.3.3+23flame_riverpod - v5.5.5flame_svg - v1.12.2flame_typled - v0.1.2flame_network_assets - v0.3.4+23Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
flame_behavior_tree - v0.1.5+5flame_gamepads - v0.1.2flame_isolate - v0.6.3+23flame_texturepacker - v5.1.2flame_sprite_fusion - v0.2.4+2flame_fire_atlas - v1.8.18flame_audio - v2.12.2flame_spine - v0.3.1+6flame_kenney_xml - v0.1.3+2flame_lottie - v0.4.3+23flame_markdown - v0.2.5+16flame_console - v0.1.4flame_rive - v1.11.2flame_forge2d - v0.19.3+7flame_noise - v0.3.3+23flame_riverpod - v5.5.5flame_svg - v1.12.2flame_typled - v0.1.2flame_network_assets - v0.3.4+23ScalingParticle (#2928). (3730cb1d)bounds while BoundedPositionBehavior's target is null (#2926). (bab9be6e)selfPositioning in SpawnComponent (#2927). (b526aa14)margin and spacing properties to SpriteSheet (#2925). (67f7c126)children to SpriteAnimationComponent.fromFrameData (#2914). (caf2b909)FIX: Bump Flutter min version to 3.41.0 (#3807).
FIX: Bump Flutter min version to 3.41.0 (#3807).
Note: This release has breaking changes.
FixedResolutionViewport and make withFixedResolution a redirect constructor (#2817). (3420d0e6)Offset with opacityFrom and opacityTo in ColorEffect (#2876). (0fd2662d)To specify start and end opacities for ColorEffect use the optional named parameters opacityFrom and opacityTo. So offset.dx should be set as opacityFrom and offset.dy should be set as opacityTo.
FIX: Properly resize ScreenHitbox when needed (#2826).
FixedResolutionViewport and make withFixedResolution a redirect constructor (#2817). (3420d0e6)BREAKING FIX: Migrate from RawKeyEvent to KeyEvent (#3002).
component.removeFromParent method should use parent.remove internally (#2779). (bdb1c79a)IgnoreEvents mixin to ignore events for the whole subtree (#2811). (313411c3)FixedResolutionViewport (#2796). (4c762f94)Packages with breaking changes:
Packages with breaking changes:
flame - v1.9.0flame_oxygen - v0.1.9flame_test - v1.13.0flame_tiled - v1.14.0flame_forge2d - v0.15.0flame_isolate - v0.5.0flame_lottie - v0.3.0Packages with other changes:
flame_audio - v2.1.0flame_bloc - v1.10.2flame_fire_atlas - v1.4.0flame_lint - v1.1.1flame_markdown - v0.1.1flame_network_assets - v0.2.0+5flame_noise - v0.1.1+5flame_rive - v1.9.2flame_spine - v0.1.1+2flame_svg - v1.8.2jenny - v1.1.0Packages with breaking changes:
Packages with breaking changes:
Packages with other changes:
flame - v1.15.0flame_isolate - v0.5.1flame_riverpod - v5.2.0flame_test - v1.15.4flame_oxygen - v0.1.9+8flame_tiled - v1.18.4flame_fire_atlas - v1.4.8flame_audio - v2.1.8flame_spine - v0.1.1+10flame_bloc - v1.10.10flame_rive - v1.9.11flame_lottie - v0.3.0+8flame_markdown - v0.1.1+8flame_forge2d - v0.16.0+5flame_svg - v1.8.10flame_network_assets - v0.2.0+13Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
flame_oxygen - v0.1.9+8flame_tiled - v1.18.4flame_fire_atlas - v1.4.8flame_audio - v2.1.8flame_spine - v0.1.1+10flame_bloc - v1.10.10flame_rive - v1.9.11flame_lottie - v0.3.0+8flame_markdown - v0.1.1+8flame_forge2d - v0.16.0+5flame_svg - v1.8.10flame_network_assets - v0.2.0+13Note: This release has breaking changes.
onRemove/onDetach being called for initial Gesture Detector addition (#2653). (d1721464)CameraComponent.priority to max (#2732). (820ece1c)FilterQuality.medium instead of high (#2733). (fc19890c)Vector2 in globalToLocal and localToGlobal (#2727). (9fb3bf8d)debugCoordinatesPrecision into a variable instead of a getter (#2713). (9918c051)onDispose to game.dart called from game_widget.dart (#2659). (2f44e483)SpriteSheet (#2754). (47722199)HasWorldReference mixin (#2746). (9105411d)pause and isPaused to SpriteAnimationTicker (#2660). (37271f5c)Forge2DGame to use CameraComponent (#2728). (7a3d5126)In this release the old camera system was renamed to oldCamera and replaced by a default
World and a CameraComponent which is now named camera.
To migrate from the old system:
Instead of adding the components directly to your game with add,
add them to the world, this will make the CameraComponent responsible
for rendering them instead of the game directly.
world.add(yourComponent);
(Optional) If you want to add a HUD component, instead of using PositionType, add the component as a child of the viewport.
cameraComponent.viewport.add(yourHudComponent);
(Optional) If you want to have a specificly set up CameraComponent in your
game from the start you can pass in a camera to the constructor.
class MyGame extends FlameGame {
MyGame()
: super(
camera: CameraComponent.withFixedResolution(
width: 800,
height: 600,
),
);
(Optional) A lot of the time it is no longer necessary to extend FlameGame,
you can instead build your game or level by extending the World and pass it
in to the FlameGame.
runApp(
GameWidget(game: FlameGame(world: MyWorld()),
);
class MyWorld extends World with TapCallbacks {
@override
Future<void> onLoad() async {
// Load your components
}
@override
void onTapDown(TapDownEvent event) {
print(event.localPosition); // Position of the tap in the world
}
}
DOCS: Fix workflow status badge paths (#3517).
Note: This release has breaking changes.
ComponentKeys to keep track of dispatchers (#2629). (ff59aa15)CameraComponent.canSee (#2616). (1cad0b23)CollisionProspects and remove some list creations from the collision detection (#2625). (e430b6cd)CameraComponent (#2615). (14f51635)DOCS: Remove AI assist badges (#3477).
Note: This release has breaking changes.
mustCallSuper from onComponentTypeCheck (#2561). (bcae760c)BREAKING FIX: Bump tiled to 0.11.0 and add ColorData extension (#3473).
Note: This release has breaking changes.
errorBuilder and loadingBuilder to constructors (#2526). (55ec0bc3)AnimationWidget (#2515). (0b68be8a)stepEngine to Game (#2516). (1ed2c5a2)CollisionType in hitbox constructor (#2509). (89926227)CameraComponent and events out of experimental (#2505). (87b8a067)SpriteAnimationTicker (#2457). (a50c80cf)In the future (maybe as early as v1.9.0) this camera will be removed, please use the CameraComponent instead.
This is the simplest way of using the CameraComponent:
Add variables for a CameraComponent and a World to your game class
final world = World();
late final CameraComponent cameraComponent;
In your onLoad method, initialize the cameraComponent and add the world
to it.
@override
void onLoad() {
cameraComponent = CameraComponent(world: world);
addAll([cameraComponent, world]);
}
Instead of adding the root components directly to your game with add,
add them to the world.
world.add(yourComponent);
(Optional) If you want to add a HUD component, instead of using PositionType, add the component as a child of the viewport.
cameraComponent.viewport.add(yourHudComponent);
FEAT: Deprecate Component.changeParent (#2478).
HasTappables (#2496). (d51a612f)Component.changeParent (#2478). (bd3e7886)Packages with breaking changes:
ColorEffect (#2469). (6fa9e9d5)isDragged in DragCallbacks mixin (#2472). (de630a1c)Packages with breaking changes:
Packages with other changes:
flame - v1.7.1flame_isolate - v0.3.0+1flame_tiled - v1.10.1flame_audio - v1.4.2flame_svg - v1.7.3flame_test - v1.10.1flame_flare - v1.5.4flame_oxygen - v0.1.8+2flame_bloc - v1.8.4flame_fire_atlas - v1.3.5flame_forge2d - v0.13.0+1flame_rive - v1.7.1flame_noise - v0.1.1+1flame_network_assets - v0.2.0+1flame_lottie - v0.2.0+2Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
flame_isolate - v0.3.0+1flame_tiled - v1.10.1flame_audio - v1.4.2flame_svg - v1.7.3flame_test - v1.10.1flame_flare - v1.5.4flame_oxygen - v0.1.8+2flame_bloc - v1.8.4flame_fire_atlas - v1.3.5flame_forge2d - v0.13.0+1flame_rive - v1.7.1flame_noise - v0.1.1+1flame_network_assets - v0.2.0+1flame_lottie - v0.2.0+2REFACTOR: Add new lint rules (#2477).
Packages with breaking changes:
Packages with breaking changes:
Packages with other changes:
flame - v1.21.0flame_fire_atlas - v1.6.0flame_test - v1.17.2flame_tiled - v1.21.0flame_audio - v2.10.5flame_forge2d - v0.18.2+2flame_oxygen - v0.2.3+2flame_rive - v1.10.5flame_texturepacker - v4.1.2flame_behavior_tree - v0.1.3+2flame_spine - v0.2.2+2flame_riverpod - v5.4.5flame_kenney_xml - v0.1.1+2flame_bloc - v1.12.3flame_noise - v0.3.2+2flame_lottie - v0.4.2+2flame_network_assets - v0.3.3+2flame_svg - v1.11.2flame_sprite_fusion - v0.1.3+2flame_markdown - v0.2.2+2flame_isolate - v0.6.2+2Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
flame_audio - v2.10.5flame_forge2d - v0.18.2+2flame_oxygen - v0.2.3+2flame_rive - v1.10.5flame_texturepacker - v4.1.2flame_behavior_tree - v0.1.3+2flame_spine - v0.2.2+2flame_riverpod - v5.4.5flame_kenney_xml - v0.1.1+2flame_bloc - v1.12.3flame_noise - v0.3.2+2flame_lottie - v0.4.2+2flame_network_assets - v0.3.3+2flame_svg - v1.11.2flame_sprite_fusion - v0.1.3+2flame_markdown - v0.2.2+2flame_isolate - v0.6.2+2Note: This release has breaking changes.
SpriteComponent on sprite change (#2430). (158460d7)onLoad (#2452). (d1ac01f5)Component.removeWhere (#2458). (13cce4ae)HasCollisionDetection to be on Component (#2404). (637c258b)autoResize for SpriteAnimationComponent and SpriteAnimationGroupComponent (#2453). (dbeba238)autoResize for SpriteGroupComponent (#2442). (1576bd83)HasTimeScale mixin (#2431). (d2a8fe01)limit field mutable in the Timer class (#2358). (4e0a8c46)HasTappableComponents mixin is no longer needed (#2450). (b5bdf4ec)If you have components that rely on receiving onGameResize calls before they load, then you can retrieve the game's size in onLoad manually via findGame()!.size.
The HasDraggableComponents mixin is now empty & deprecated. If your game used this mixin overriding its methods onDragStart, onDragUpdate, etc -- then they will no longer work. If you want to receive drag events at the top level of the game, then simply add a DragCallbacks component to the top level of the game.
The HasTappableComponents mixin is now empty & deprecated. If your game used this mixin overriding its methods onTapDown, onTapUp, etc -- then they will no longer work. If you want to receive tap events at the top level of the game, then simply add a TapCallbacks component to the top level of the game.
FEAT: Adding getter for the atlas image on flame fire atlas (#3326).
Note: This release has breaking changes.
Sprite.render (#2261). (736733d9)canSee method to the CameraComponent (#2270). (2347c8f5)moveBy to CameraComponent (#2269). (51e54ebe)onLoad() now returns FutureOr<void> (#2228). (d898b539)pushReplacement, pushReplacementNamed, and pushReplacementOverlay (#2249). (a2772b4e)Packages with breaking changes:
Packages with breaking changes:
Packages with other changes:
flame_svg - v1.11.13flame_texturepacker - v4.4.0flame_tiled - v3.0.4flame_behavior_tree - v0.1.3+13flame_oxygen - v0.2.3+13flame_isolate - v0.6.2+13flame_fire_atlas - v1.8.8flame_audio - v2.11.7flame_spine - v0.2.2+13flame_bloc - v1.12.14flame_kenney_xml - v0.1.1+13flame_lottie - v0.4.2+13flame_markdown - v0.2.4+6flame_console - v0.1.2+9flame_rive - v1.10.16flame_forge2d - v0.19.0+3flame_noise - v0.3.2+13flame_riverpod - v5.4.16flame_network_assets - v0.3.3+13flame_3d - v0.1.0-dev.13Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
flame_behavior_tree - v0.1.3+13flame_oxygen - v0.2.3+13flame_isolate - v0.6.2+13flame_fire_atlas - v1.8.8flame_audio - v2.11.7flame_spine - v0.2.2+13flame_bloc - v1.12.14flame_kenney_xml - v0.1.1+13flame_lottie - v0.4.2+13flame_markdown - v0.2.4+6flame_console - v0.1.2+9flame_rive - v1.10.16flame_forge2d - v0.19.0+3flame_noise - v0.3.2+13flame_riverpod - v5.4.16flame_network_assets - v0.3.3+13flame_3d - v0.1.0-dev.13Note: This release has breaking changes.
@mustCallSuper (#2036). (c26d5da3)RectangleComponent (#2167). (4020d68b)@mustCallSuper added (#2001). (45a9d79b)GameWidget (#1725). (d1cd8517)Particles (#2097). (59bd7ebb)Vector2.zero() to Vector2(0, -1) in Vector2Extensions.fromRadians() (#2016). (801c683c)World constructor (#2093). (3af416dc)maintainState property to Route (#2161). (576ceaac)clampLength for Vector2 extension (#2190). (51a896b2)removed future + isRemoved field for Component (#2080). (9f322785)FEAT(flame_behaviors): Add ScreenCollisionBehavior (#3910).
Note: This release has breaking changes.
REFACTOR: move broadphase-related functionality into separate subdirectory (#1943). (f23acd41)
REFACTOR: used simpler and more implicit widgets in GameWidget (#1862). (44d17c64)
PERF: SpriteAnimationWidget will re-render only when needed (#1876). (bb678301)
FIX: Hitbox children of a CompositeHitbox to return correct parent (#1922). (d518705e)
FIX: OpacityEffect rounding error calculation (#1933). (4cfcfa64)
FEAT: Make _ButtonState public for SpriteButtonComponent (#1941). (e80412c5)
FEAT: Add possibility for solid hitboxes (#1919). (205ac561)
FEAT: Adding callbacks for EffectController (#1926) (#1931). (8dcdf155)
FEAT: Add lookAt method for PositionComponent (#1891). (720c3566)
FEAT: add applyLifespanToChildren to Particle generate (#1911). (884d5190)
FEAT: Add broadphase generics to CollisionDetection (#1908). (f7714122)
FEAT: Add support for isometric staggered maps (#1895). (96be8408)
FEAT: RecycledQueue now supports modification during iteration (#1884). (01b59493)
FEAT: Allow children of ComposedParticle to have varied lifespan (#1879). (6db519ec)
FEAT: Possibility to ignore hitboxes for ray casting (#1863). (b22bc643)
DOCS: Added Style Guide and Test Writing Guide (#1897). (999caca1)
BREAKING FIX: Make all ComponentSet modifications internal (#1877). (f26a066d)
Migration instructions:
For most methods Component has the corresponding methods directly on it already.
For example, instead of using component.children.addAll you should do component.addAll.
BREAKING CHORE: Remove functions/classes that were scheduled for removal in v1.3.0 (#1867). (00ab347c) For each deleted function/method/class, the deprecation comment already specifies what functionality should be used instead.
FEAT: Add flame_behaviors package (#3717).
Note: This release has breaking changes.
componentsAtPoint (#1739). (f750d705)children argument to SpriteComponent.fromImage (#1793). (80a63362)Ray2 class to be used in raytracing/casting (#1788). (26196c01)HasAncestor mixin (#1711). (987a44f4)FIX: Update version of lints to comply with new pub requirements (#3223).
Note: This release has breaking changes.
componentsAtPoint (#1739). (f750d705)HasAncestor mixin (#1711). (987a44f4)FEAT: Expand flame_lint to respect required pub.dev checks (#3139).
Note: This release has breaking changes.
REFACTOR: Remove unecessary copy operation on Camera (#1708). (94cc115a)
REFACTOR: Update and guarantee consistency on mocktail dev dependency version across repo (#1701). (f4a98878)
REFACTOR: Add onComplete as optional parameter (#1686). (4ca65f8a)
REFACTOR: Added MultiDragListener - common API between HasDraggables and MultiTouchDragDetector (#1668). (801dbba1)
REFACTOR: Simplify Component.firstChild, .lastChild, and .findParent (#1673). (84f2f57e)
REFACTOR: Replace some usages of fold<> with .sum (#1670). (dd05ecb6)
REFACTOR: Deprecate ComponentSet.createDefault() (#1676). (f37e3a20)
REFACTOR: Component's lifecycle futures moved into LifecycleManager (#1613). (39201c40)
REFACTOR: TextRenderer and TextPaint moved to separate files (#1628). (5e1f5966)
FIX: Fix tile flips when using canvas.drawAtlas (#1610). (b4ad498f)
FIX: Anchor equality operator is now more reliable (#1560). (0d6581ef)
FIX: Avoid leaks when using PictureRecorders (#1643). (d67065e5)
FIX: Remove nonVirtual method shouldRemove (#1707). (1efd067e)
FIX: Subscription for events when game changes in GameWidget (#1659). (04f0d5d1)
FIX: performance improvements on SpriteBatch APIs (#1637). (4b19a1b2)
FIX: ParallaxComponent.update mustCallSuper (#1635). (9474ce74)
FIX: Isometric tile map component uses scale when getting block from position (#1569). (0c430786)
FIX: Dispose TextBoxComponent image cache properly (#1579). (c0e3257a)
FIX: Component can now be removed in any lifecycle stage (#1601). (c0a14156)
FIX: RectangleHitbox should shrink to bounds (#1596). (60df3b9f)
FIX: Components in uninitialized state can now be safely removed (#1551). (ba617790)
FIX: Component.loaded future sometimes failed to complete (#1593). (89ee9b98)
FIX: Optimize AcceleratedParticle and MovingParticle (#1568). (5591c109)
FEAT: Method componentsAtPoint now reports the "stacktrace" of points (#1615). (e2398966)
FEAT: Allow changing parent from null parent (#1662). (53268b5f)
FEAT: Callbacks in HudButtonComponent constructor and ViewportMargin mixin to avoid code duplication (#1685). (f55b2e0d)
FEAT: Keep stacktrace when rethrowing an error from GameWidget (#1675). (dd28183b)
FEAT: Aligned text in the TextBoxComponent (#1620). (c64aedae)
FEAT: Included completed completer in SpriteAnimation (#1564). (71999b19)
FEAT: Add isFirstFrame and onStart event to SpriteAnimation (#1492). (701d0706)
FEAT: Add FpsComponent and FpsTextComponent (#1595). (4c68c2b0)
FEAT: Added FollowBehavior and ability for the new Camera to follow a component (#1561). (b583388c)
FEAT: Added componentsAtPoint() iterable (#1518). (b99e3512)
FEAT: Added AnchorToEffect and AnchorByEffect (#1556). (eff72794)
FEAT: Added utility function solveCubic() (#1696). (31784ca0)
FEAT: add FutureOr support on SpriteButton (#1645). (2e82dc95)
FEAT: MoveAlongPathEffect can now be applied to any PositionProvider (#1555). (a0ff2d18)
FEAT: Add ability to add/remove multiple overlays at once (#1657). (0ac84c00)
FEAT: Helpers for whether a PositionComponent is flipped. (#1700). (cf67147e)
FEAT: World bounds for a CameraComponent (#1605). (abb497ab)
FEAT: Implement tap events based on componentsAtPoint (#1661). (2711ba60)
FEAT: add ParentIsA to force parent child relations (#1566). (2cdf3868)
FEAT: Adding classes for raw geometric shapes (#1528). (666a2b19)
FEAT: Add solveQuadratic() utility function (#1665). (d8bbfc06)
FEAT: allow external packages to await for game to be loaded (#1699). (a15eda0b)
FEAT: Add range constructor on SpriteAnimationData (#1572). (e42b4958)
FEAT: Add helper function for creating golden tests (#1623). (d0faaada)
FEAT: Added ability to render spritesheet-based fonts (#1634). (3f287898)
BREAKING FIX: FixedResolutionViewport noClip -> clip (#1612). (02be4acd)
BREAKING FEAT: Adding GameWidget.controlled (#1650). (7ef6a51e)
BREAKING FEAT: remove onTimingsCallback for Flutter 3.0 (#1626). (0761a79d)
BREAKING FIX: Game.mouseCursor and Game.overlays can now be safely set during onLoad (#1498). (821d01c3) Migration instructions: The mouseCursor property is now a plain property with a setter, not a ChangeNotifier. Consequently, instead of writing game.mouseCursor.value = ..., one needs to write game.mouseCursor = ... now.
BREAKING FEAT: Added anchor for the Viewport (#1611). (c3bb14b7) Migration instructions: The coordinate system of the Viewport now always has the origin in the top-left corner of its bounding box (previously it was in the center) -- similar to the local coordinate system of a PositionComponent.
BREAKING FEAT: Add ability to render without loading on image related widgets (#1674). (40a061bc) Migration instructions: It only breaks SpriteButton when you are using future as a sprite or pressedSprite parameter. You should use SpriteButton.future if previously you are using future as a parameter.
BREAKING FEAT: Size effects will now work only on components implementing SizeProvider (#1571). (1bfed571) Migration instructions: It only breaks SpriteButton when you are using future as a sprite or pressedSprite parameter. You should use SpriteButton.future if previously you are using future as a parameter.
Packages with breaking changes:
Packages with breaking changes:
Packages with other changes:
flame - v1.9.1flame_isolate - v0.5.0+1flame_tiled - v1.14.1flame_audio - v2.1.1flame_spine - v0.1.1+3flame_svg - v1.8.3flame_test - v1.13.1flame_oxygen - v0.1.9+1flame_bloc - v1.10.3flame_fire_atlas - v1.4.1flame_markdown - v0.1.1+1flame_forge2d - v0.15.0+1flame_rive - v1.9.3flame_noise - v0.1.1+6flame_network_assets - v0.2.0+6flame_lottie - v0.3.0+1Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
flame_isolate - v0.5.0+1flame_tiled - v1.14.1flame_audio - v2.1.1flame_spine - v0.1.1+3flame_svg - v1.8.3flame_test - v1.13.1flame_oxygen - v0.1.9+1flame_bloc - v1.10.3flame_fire_atlas - v1.4.1flame_markdown - v0.1.1+1flame_forge2d - v0.15.0+1flame_rive - v1.9.3flame_noise - v0.1.1+6flame_network_assets - v0.2.0+6flame_lottie - v0.3.0+1Packages with breaking changes:
Packages with breaking changes:
Packages with other changes:
flame_rive - v1.9.1flame_tiled - v1.13.0flame_isolate - v0.4.0+2flame_audio - v2.0.5flame_spine - v0.1.1+1flame_svg - v1.8.1flame_test - v1.12.1flame_oxygen - v0.1.8+5flame_bloc - v1.10.1flame_fire_atlas - v1.3.8flame_forge2d - v0.14.1+1flame_noise - v0.1.1+4flame_network_assets - v0.2.0+4flame_lottie - v0.2.1+1Packages with dependency updates only:
Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project.
flame_isolate - v0.4.0+2flame_audio - v2.0.5flame_spine - v0.1.1+1flame_svg - v1.8.1flame_test - v1.12.1flame_oxygen - v0.1.8+5flame_bloc - v1.10.1flame_fire_atlas - v1.3.8flame_forge2d - v0.14.1+1flame_noise - v0.1.1+4flame_network_assets - v0.2.0+4flame_lottie - v0.2.1+1FEAT: Deprecating Rect methods (#1455).
debugMode should be inherited from parent when mounted (#1469). (e894d201)Rect extension docs is out of date (#1451). (7e505722)FIX: @mustCallSuper missing on components (#1443).
FIX: Setting images.prefix to empty string (#1437).
REFACTOR: Parent change and component removal logic (#1385).
Your coding agent can read these notes before it upgrades. Set up the MCP server →