Mirror of Svelto.ECS because we're a fan of it
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Sebastiano Mandalà 8b09f87bb0
Update package.json
4 years ago
.github Update FUNDING.yml 5 years ago
DataStructures UPM experiment 4 years ago
Dispatcher UPM experiment 4 years ago
ECSResources UPM experiment 4 years ago
Extensions UPM experiment 4 years ago
Hybrid UPM experiment 4 years ago
Serialization UPM experiment 4 years ago
AllowMultipleAttribute.cs UPM experiment 4 years ago
AllowMultipleAttribute.cs.meta UPM experiment 4 years ago
CheckEntityUtilities.cs UPM experiment 4 years ago
CheckEntityUtilities.cs.meta UPM experiment 4 years ago
DBC.cs UPM experiment 4 years ago
DBC.cs.meta UPM experiment 4 years ago
DataStructures.meta UPM experiment 4 years ago
Dispatcher.meta UPM experiment 4 years ago
DynamicEntityDescriptor.cs UPM experiment 4 years ago
DynamicEntityDescriptor.cs.meta UPM experiment 4 years ago
ECSException.cs UPM experiment 4 years ago
ECSException.cs.meta UPM experiment 4 years ago
ECSResources.meta UPM experiment 4 years ago
EGID.cs UPM experiment 4 years ago
EGID.cs.meta UPM experiment 4 years ago
EGIDMapper.cs UPM experiment 4 years ago
EGIDMapper.cs.meta UPM experiment 4 years ago
EnginesRoot.DoubleBufferedEntityViews.cs UPM experiment 4 years ago
EnginesRoot.DoubleBufferedEntityViews.cs.meta UPM experiment 4 years ago
EnginesRoot.Engines.cs UPM experiment 4 years ago
EnginesRoot.Engines.cs.meta UPM experiment 4 years ago
EnginesRoot.Entities.cs UPM experiment 4 years ago
EnginesRoot.Entities.cs.meta UPM experiment 4 years ago
EnginesRoot.GenericEntityFactory.cs UPM experiment 4 years ago
EnginesRoot.GenericEntityFactory.cs.meta UPM experiment 4 years ago
EnginesRoot.GenericEntityFunctions.cs UPM experiment 4 years ago
EnginesRoot.GenericEntityFunctions.cs.meta UPM experiment 4 years ago
EnginesRoot.Submission.cs UPM experiment 4 years ago
EnginesRoot.Submission.cs.meta UPM experiment 4 years ago
EntitiesDB.cs UPM experiment 4 years ago
EntitiesDB.cs.meta UPM experiment 4 years ago
EntityBuilder.CheckFields.cs UPM experiment 4 years ago
EntityBuilder.CheckFields.cs.meta UPM experiment 4 years ago
EntityBuilder.cs UPM experiment 4 years ago
EntityBuilder.cs.meta UPM experiment 4 years ago
EntityBuilder.cs.rej UPM experiment 4 years ago
EntityBuilder.cs.rej.meta UPM experiment 4 years ago
EntityCollection.cs UPM experiment 4 years ago
EntityCollection.cs.meta UPM experiment 4 years ago
EntityDescriptorTemplate.cs UPM experiment 4 years ago
EntityDescriptorTemplate.cs.meta UPM experiment 4 years ago
EntityFactory.cs UPM experiment 4 years ago
EntityFactory.cs.meta UPM experiment 4 years ago
EntityGroupNotFoundException.cs UPM experiment 4 years ago
EntityGroupNotFoundException.cs.meta UPM experiment 4 years ago
EntityHierarchyStruct.cs UPM experiment 4 years ago
EntityHierarchyStruct.cs.meta UPM experiment 4 years ago
EntityInfoView.cs UPM experiment 4 years ago
EntityInfoView.cs.meta UPM experiment 4 years ago
EntityNotFoundException.cs UPM experiment 4 years ago
EntityNotFoundException.cs.meta UPM experiment 4 years ago
EntityStream.cs UPM experiment 4 years ago
EntityStream.cs.meta UPM experiment 4 years ago
EntityStructInitializer.cs UPM experiment 4 years ago
EntityStructInitializer.cs.meta UPM experiment 4 years ago
EntitySubmissionScheduler.cs UPM experiment 4 years ago
EntitySubmissionScheduler.cs.meta UPM experiment 4 years ago
EntitySubmitOperation.cs UPM experiment 4 years ago
EntitySubmitOperation.cs.meta UPM experiment 4 years ago
EntityViewUtility.cs UPM experiment 4 years ago
EntityViewUtility.cs.meta UPM experiment 4 years ago
ExclusiveGroup.cs UPM experiment 4 years ago
ExclusiveGroup.cs.meta UPM experiment 4 years ago
ExecuteOnEntitiesDB.cs UPM experiment 4 years ago
ExecuteOnEntitiesDB.cs.meta UPM experiment 4 years ago
ExtendibleEntityDescriptor.cs UPM experiment 4 years ago
ExtendibleEntityDescriptor.cs.meta UPM experiment 4 years ago
Extensions.meta UPM experiment 4 years ago
GenericEntityDescriptor.cs UPM experiment 4 years ago
GenericEntityDescriptor.cs.meta UPM experiment 4 years ago
GenericentityStreamConsumerFactory.cs UPM experiment 4 years ago
GenericentityStreamConsumerFactory.cs.meta UPM experiment 4 years ago
Hybrid.meta UPM experiment 4 years ago
IEngine.cs UPM experiment 4 years ago
IEngine.cs.meta UPM experiment 4 years ago
IEntitiesDB.cs UPM experiment 4 years ago
IEntitiesDB.cs.meta UPM experiment 4 years ago
IEntityBuilder.cs UPM experiment 4 years ago
IEntityBuilder.cs.meta UPM experiment 4 years ago
IEntityDescriptorHolder.cs UPM experiment 4 years ago
IEntityDescriptorHolder.cs.meta UPM experiment 4 years ago
IEntityFactory.cs UPM experiment 4 years ago
IEntityFactory.cs.meta UPM experiment 4 years ago
IEntityFunctions.cs UPM experiment 4 years ago
IEntityFunctions.cs.meta UPM experiment 4 years ago
IEntityStruct.cs UPM experiment 4 years ago
IEntityStruct.cs.meta UPM experiment 4 years ago
IQueryingEntitiesEngine.cs UPM experiment 4 years ago
IQueryingEntitiesEngine.cs.meta UPM experiment 4 years ago
IReactOnAddAndRemove.cs UPM experiment 4 years ago
IReactOnAddAndRemove.cs.meta UPM experiment 4 years ago
IReactOnSwap.cs UPM experiment 4 years ago
IReactOnSwap.cs.meta UPM experiment 4 years ago
LICENSE update readme 4 years ago
LICENSE.meta UPM experiment 4 years ago
README.md update readme 4 years ago
README.md.meta UPM experiment 4 years ago
SUMMARY.md GitBook: [master] 5 pages modified 5 years ago
Sequencer.cs UPM experiment 4 years ago
Sequencer.cs.meta UPM experiment 4 years ago
Serialization.meta UPM experiment 4 years ago
SimpleSubmissionEntityViewScheduler.cs UPM experiment 4 years ago
SimpleSubmissionEntityViewScheduler.cs.meta UPM experiment 4 years ago
Svelto.ECS.asmdef UPM experiment 4 years ago
Svelto.ECS.asmdef.meta UPM experiment 4 years ago
Svelto.ECS.csproj UPM experiment 4 years ago
Svelto.ECS.csproj.meta UPM experiment 4 years ago
TypeCache.cs UPM experiment 4 years ago
TypeCache.cs.meta UPM experiment 4 years ago
WaitForSubmissionEnumerator.cs UPM experiment 4 years ago
WaitForSubmissionEnumerator.cs.meta UPM experiment 4 years ago
package.json Update package.json 4 years ago
package.json.meta UPM experiment 4 years ago

README.md

openupm

Svelto Entity Component System 2.9

=====================================

Real ECS framework for c#. Enables to write encapsulated, decoupled, maintainable, highly efficient, data oriented, cache friendly, multi-threaded (if used with Svelto.Tasks), code without pain. Although the framework is platform agnostic (compatible with c# 7 and .net standard 2.0), it comes with several Unity extensions.

Why using Svelto.ECS with Unity?

Svelto.ECS wasn't born just from the needs of a large team, but also as result of years of reasoning behind software engineering applied to game development(*). Compared to Unity.ECS, the main goals and reasons for Svelto.ECS to exist are different enough to justify its on going development (plus Svelto is platform agnostic, so it has been written with portability in mind). Svelto.ECS hasn't been written just to develop faster code, it has been built to help develop better code. Performance gain is one of the benefits in using Svelto.ECS, as ECS in general is a great way to write cache-friendly code. However Svelto.ECS has been designed around the shift of paradigm from Object Oriented Programming and the consequent improvement of the code design and maintainability. Svelto.ECS is the result of years of iteration of the ECS paradigm applied to real game development with the intent to be “junior coder proof”.

Official Examples

Official Chat (join to get help from me!)

Official Articles

Framework articles:

Theory related articles (in order of publishing date):

Note: I included the IoC articles just to show how I shifted over the years from using an IoC container to use an ECS framework and the rationale behind its adoption.

The perfect companion for Svelto.ECS is Svelto.Tasks to run the logic of the Systems even on other threads!

Users Generated Content (may use old versions of Svelto and be quite outdated)

In case of bugs

Best option is to fork and clone https://github.com/sebas77/Svelto.ECS.Tests, add a new test to reproduce the problem and request a pull. Then open a github, I come here pretty often :). Also feel free to contact me on twitter or leave comments on the blog!

The Github wiki page

It needs love and as far as I understood, anyone can edit it. Feel free to do so if you have a good understanding of Svelto!

I like the project, how can I help?

Hey thanks a lot for considering this. You can help in several ways. The simplest is to talk about Svelto.ECS and spread the word, more we are, better it is for the community. Then you can help with the documentation, updating the wiki or writing your own articles. Svelto.ECS has all the features needed to make a game with the ECS pattern, but some areas are lacking: A visual debugger and more unit tests are needed. Other platforms other than Unity could get some love too: Xenko, Godot and monogame. Porting to other languages, expecially c++, would be awesome!

Svelto Framework is used to develop the following products(*):

Gamecraft Robocraft Infinity Cardlife

*if you want your products made with Svelto here, just send me an email or whatever, I'll be super happy to add them.

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! 🙏👊