EcsRx / ecsrx

A reactive take on the ECS pattern for .net game developers
MIT License
504 stars 34 forks source link

Plugin Merging Discussion #43

Open grofit opened 1 month ago

grofit commented 1 month ago

A discussion on the discord server covered the topic of merging certain Plugins back into the core library as the code footprint is minimal and in most use cases these Plugins would be used anyway.

Currently the Plugins that were identified as candidates for this would be:

The reasoning for merging them is to reduce nuget package bloat, and make the core more feature rich.

The downside to doing this is that you would need to manually unregister the conventional system handlers and other infrastructure should you not want the overhead for these systems.

The impact seems minimal for most and the system handlers would only add overhead on systems being added which is mainly an upfront cost.

I will leave this open incase anyone has any other comments related to this, outside of the discord.

grofit commented 3 weeks ago

The ReactiveSystems and Computeds have been merged in as these were originally part of the library anyway and have little friction and low code overhead, this was done as part of #45.

The Batching and Grouping plugins have quite a lot of code overhead for their functionality which imo would add too much noise to the core library so for the moment I am keeping those as their own plugins for people to include if they need it.

It is worth mentioning again that you can just make your own implementations of anything in the library and modify the DI logic to load your version of instead of the libraries built in stuff which should allow you to replace almost anything in the library at runtime without any issue as long as it adheres to the interfaces required.