flame icon indicating copy to clipboard operation
flame copied to clipboard

Flame v2 changes

Open spydon opened this issue 2 years ago • 5 comments

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).
  • [ ] 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.
  • [x] 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 #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.

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

Upvote & Fund

  • We're using Polar.sh so you can upvote and help fund this issue.
  • We receive the funding once the issue is completed & confirmed by you.
  • Thank you in advance for helping prioritize & fund our backlog.
Fund with Polar

spydon avatar Sep 24 '22 10:09 spydon

Looking forward to the v2

MuZiLee avatar Dec 03 '22 09:12 MuZiLee

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

What holding us back?, there is only one task that got converted into an issue

guyluz11 avatar Aug 22 '23 08:08 guyluz11

What holding us back?, there is only one task that got converted into an issue

First we want to stabilize the current version with the new CameraComponent API and there is still some work left to do there.

spydon avatar Aug 22 '23 08:08 spydon

Hello, @spydon! Is Version 2 included in the route of the following months? Thaaanks! :)

NashIlli avatar Apr 01 '24 19:04 NashIlli

Hello, @spydon! Is Version 2 included in the route of the following months? Thaaanks! :)

Hi, unfortunately not, we have not even decided on paper how the big architectural changes will look.

spydon avatar Apr 01 '24 19:04 spydon