Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Flame v2 changes #1938

Open
1 of 22 tasks
spydon opened this issue Sep 24, 2022 · 5 comments
Open
1 of 22 tasks

Flame v2 changes #1938

spydon opened this issue Sep 24, 2022 · 5 comments

Comments

@spydon
Copy link
Member

spydon commented Sep 24, 2022

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.
  • 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.

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 spydon pinned this issue Oct 29, 2022
@MuZiLee
Copy link

MuZiLee commented Dec 3, 2022

Looking forward to the v2

@guyluz11
Copy link

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

@spydon
Copy link
Member Author

spydon commented Aug 22, 2023

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.

@NashIlli
Copy link
Contributor

NashIlli commented Apr 1, 2024

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

@spydon
Copy link
Member Author

spydon commented Apr 1, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants