Svelto Entity Component System 2.0 ===================================== Real Entity-Component-System for c#. Enables to write encapsulated, decoupled, highly efficient, data oriented, cache friendly, multi-threaded, code without pain. Although the framework is platform agnostic ( https://github.com/sebas77/Svelto.ECS.Vanilla.Example/) it comes with several unity extensions. you can find a working example to learn how to use the framework here: https://github.com/sebas77/Svelto-ECS-Example I advise to clone the example repositories separately from the framework one, both under the same Unity project Assets folder. relative articles: http://www.sebaslab.com/ecs-1-0/ http://www.sebaslab.com/svelto-ecs-svelto-tasks-to-write-data-oriented-cache-friendly-multi-threaded-code-in-unity/ http://www.sebaslab.com/svelto-ecs-2-0-almost-production-ready/ http://www.sebaslab.com/learning-svelto-ecs-by-example-the-survival-example/ If you want to know more about the theory and rationale behind this framework: http://www.sebaslab.com/ioc-container-for-unity3d-part-1/ http://www.sebaslab.com/ioc-container-for-unity3d-part-2/ http://www.sebaslab.com/the-truth-behind-inversion-of-control-part-i-dependency-injection/ http://www.sebaslab.com/the-truth-behind-inversion-of-control-part-ii-inversion-of-control/ http://www.sebaslab.com/the-truth-behind-inversion-of-control-part-iii-entity-component-systems/ http://www.sebaslab.com/the-truth-behind-inversion-of-control-part-iv-dependency-inversion-principle/ http://www.sebaslab.com/the-truth-behind-inversion-of-control-part-v-drifting-away-from-ioc-containers/ The perfect companion for Svelto.ECS is Svelto.Tasks to run the logic of the Systems even on other threads! https://github.com/sebas77/Svelto.Tasks Unity official thread: https://forum.unity.com/threads/open-source-svelto-ecs-lightweight-entity-component-system-for-c-and-unity.502163/ Dario Oliveri articles: https://eagergames.wordpress.com/category/ecs/ **_Note: Dear Svelto Users : Although I am committed to help you and write articles as much as I can, I will never be able to keep all the documentation up to date. If you are a happy svelto user and you want to contribute, please feel free to update the github wiki! 🙏👊_** **Note: don't beat yourself if you find Svelto.ECS hard to use at first. The framework is very light in features, but it forces the use of a new coding paradigm and shifting code paradigm is hard! I will try to clarify all the concepts writing more and more articles** **Note: The folders Svelto.ECS, Svelto.Tasks and Svelto.Common, where present, are submodules pointing to the relavite repositories. If you find them empty, you need to update them through the submodule command. Check some instructions here: https://github.com/sebas77/Svelto.ECS.Vanilla.Example/wiki** Copyright (c) Sebastiano Mandalà Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.