Skip to content

Flame v2 changes #1938

@spydon

Description

@spydon

Flame v2 changes

This issue doesn't mean that we are soon to release v2, it's not even on the horizon yet.
In here we'll track breaking changes that we would want to do for Flame v2 so that they are not forgotten.

  • Create a new tree structure, instead of using nested OrderedSet, possibly one tree for updating and one for rendering.
  • Support a global z-index/priority.
  • More efficient event system (currently the events go through the whole component tree).
  • Discuss changing anchor system so that children's 0,0 is at parents anchor.
  • Convert the use of ShapeComponent in the collision detection to use pure shapes instead.
  • Return a list instead of a set from the collision detection methods.
  • Completely rewrite ParallaxComponent to have the layers based on PositionComponent and make it more intuitive to use.
  • Clean-up the HasPaint mixin.
  • ColorEffect should not take in an Offset, but separate doubles.
  • Use a more efficient data structure than OrderedSet for children.
  • Create a MarginComponent that can replace HudMarginComponent and work when added to the viewport (or any sized parent).
  • Call onGameResize only when the game actually resizes.
  • Component.add() should return void.
    Whoever wants to wait for the component to load can wait for component.loaded, and who wants to wait for it to mount can await component.mounted.
  • Figure out what to do with Game's mount/attach and remove/detach.
  • Component.children should return a nullable ComponentSet?, so that it won't be instantiated when there are no children.
  • Report normal of collision for collision events.
  • Allow decoding json arrays in the root from the cache. (see fix!: Allow AssetCache to load json files with array at root #2688)
  • Rename GameWidget.controlled to GameWidget.managed.
  • Structure caches so that the are consistent and have method names that make sense.
  • Maybe rename onPressed and onReleased to onTapDown and onTapUp in AdvancedButtonComponent.
  • Remove middle intersection point on line for collision detection.
  • Add generics for CameraComponent type in FlameGame.
  • Migrate to Float32 vector math.
  • SpawnComponent should only have one factory that returns a list of components.
  • SpriteBatch should take an Anchor in relation to size instead of Vector2 with exact pixels for the anchor.
  • Caches should maybe not have a default prefix, so it become more in-line with Flutter (especially for the widgets).
  • We should support package for the caches and for the widgets' .asset constructors.
  • Only expose Iterable<Component> from children and have query etc directly on the Component.
  • game.paused -> game.isPaused

Once we are ready to start working at v2 we'll convert this task list into issues.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions