All Projects → sebas77 → Svelto.ecs

sebas77 / Svelto.ecs

Licence: mit
Svelto ECS C# Lightweight Data Oriented Entity Component System Framework

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Svelto.ecs

Endless Runner Entitas Ecs
Runner template for Unity
Stars: ✭ 41 (-93.22%)
Mutual labels:  ecs, unity, game-development, entity-component-system
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-80.33%)
Mutual labels:  ecs, unity, game-development, entity-component-system
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (-83.8%)
Mutual labels:  ecs, unity, game-development, entity-component-system
Ecs
LeoECS is a fast Entity Component System (ECS) Framework powered by C# with optional integration to Unity
Stars: ✭ 578 (-4.46%)
Mutual labels:  ecs, unity, game-development, entity-component-system
Gdk For Unity
SpatialOS GDK for Unity
Stars: ✭ 296 (-51.07%)
Mutual labels:  ecs, unity, game-development, entity-component-system
Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (+791.4%)
Mutual labels:  ecs, unity, game-development, entity-component-system
Etengine
Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14
Stars: ✭ 408 (-32.56%)
Mutual labels:  ecs, game-development, entity-component-system
Egocs
EgoCS: An Entity (GameObject) Component System framework for Unity3D
Stars: ✭ 211 (-65.12%)
Mutual labels:  ecs, unity, entity-component-system
Actors.unity
🚀Actors is a framework empowering developers to make better games faster on Unity.
Stars: ✭ 437 (-27.77%)
Mutual labels:  ecs, unity, entity-component-system
Shipyard
Entity Component System focused on usability and speed.
Stars: ✭ 247 (-59.17%)
Mutual labels:  ecs, game-development, entity-component-system
Flecs
A fast entity component system (ECS) for C & C++
Stars: ✭ 2,201 (+263.8%)
Mutual labels:  ecs, game-development, entity-component-system
Entitas Cpp
Entitas++ is a fast Entity Component System (ECS) C++11 port of Entitas C#
Stars: ✭ 229 (-62.15%)
Mutual labels:  ecs, game-development, entity-component-system
Ecsrx
A reactive take on the ECS pattern for .net game developers
Stars: ✭ 288 (-52.4%)
Mutual labels:  ecs, unity, game-development
Uecs
Ubpa Entity-Component-System (U ECS) in Unity3D-style
Stars: ✭ 174 (-71.24%)
Mutual labels:  ecs, game-development, entity-component-system
Unity resources
A list of resources and tutorials for those doing programming in Unity.
Stars: ✭ 170 (-71.9%)
Mutual labels:  ecs, unity, game-development
Kengine
Entity-Component-System (ECS) with a focus on ease-of-use, runtime extensibility and compile-time type safety and clarity.
Stars: ✭ 417 (-31.07%)
Mutual labels:  ecs, game-development, entity-component-system
Ape Ecs
Entity-Component-System library for JavaScript.
Stars: ✭ 137 (-77.36%)
Mutual labels:  ecs, game-development, entity-component-system
Octopuskit
2D ECS game engine in 100% Swift + SwiftUI for iOS, macOS, tvOS
Stars: ✭ 246 (-59.34%)
Mutual labels:  ecs, game-development, entity-component-system
Edyn
Edyn is a real-time physics engine organized as an ECS.
Stars: ✭ 113 (-81.32%)
Mutual labels:  ecs, game-development, entity-component-system
Godex
Godex is a Godot Engine ECS library.
Stars: ✭ 307 (-49.26%)
Mutual labels:  ecs, game-development, entity-component-system

Svelto Entity Component System 3.x

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

Real ECS framework for c#. Enables to write encapsulated, decoupled, maintainable, highly efficient, data oriented, cache friendly, 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 a result of years of reasoning behind software engineering applied to game development. Svelto.ECS hasn't been written just to develop faster code, it has been designed to help develop better code. Performance gains is just one of the benefits in using Svelto.ECS, as ECS is a great way to write cache-friendly code. Svelto.ECS has been developed with the idea of ECS being a paradigm and not just a pattern, letting the user shift completely away from Object Oriented Programming with consequent improvements of the code design and code maintainability. Svelto.ECS is the result of years of iteration of the ECS paradigm applied to real game development with the intent to be as foolproof as possible. Svelto.ECS has been designed to be used by a medium-size/large team working on long term projects where the cost of maintainability is relevant. Svelto.ECS can be educative for all kind of developers, but small teams must take in consideration the learning curve/cost of ECS in general and Svelto.ECS in particular.

How to clone the repository:

The folders Svelto.ECS and Svelto.Common, where present, are submodules pointing to the relative 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

Svelto is now distributed as Unity Package too openupm

read this article for more information: http://www.sebaslab.com/distributing-svelto-through-openupm/ or just install the package that comes from the link https://package-installer.glitch.me/v1/installer/OpenUPM/com.sebaslab.svelto.ecs?registry=https%3A%2F%2Fpackage.openupm.com

Note on the System.Runtime.CompilerServices.Unsafe.dll dependency and the bit of a mess that Unity Package Dependency System is:

Unity Package System has a big deficiency when it comes to dll dependency solving: two packages cannot point to the same dependency from different sources. Since Unity Collection removed the Unsafe.dll dependency, I had to distribute my own package. This means that if you want to use Svelto from UPM, you will need Svelto unsafe dll to be the only unsafe dll in the project. Otherwise you just download the source code and solve dependencies manually.

Official Examples (A.K.A. where is the documentation?)

Svelto doesn't have official documentation. The reason is that documentation is costly to mantain and...I reckon people don't need it, thanks to the highly documented and simple mini-examples. Please check and study them all regardless the platform you intend to use Svelto with.

* Mini Examples: https://github.com/sebas77/Svelto.MiniExamples (including articles)

After that, you can get all the help you need from the official chat:

Official Discord Server (join to get help from me for free!)

Official Articles

Framework articles:

Theory related articles (in order of publishing date):

Practical articles

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.

Users Generated Content (I removed all the outdated articles, so this is a call for new ones!)

In case of bugs

Best option is to fork and clone https://github.com/sebas77/Svelto.ECS.Tests, add new tests to reproduce the problem and request a pull. I will then fix the issue. Also feel free to contact me on Discord.

The Github wiki page

Completely outdated and could even mislead. Feel free to update it if you have a good understanding of Svelto! I decided I won't update it anymore as it's better for me to focus on other parts of Svelto development. If you need any help, you will need to join the aforementioned discord server.

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, the more we are, the 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: Stride Game, Godot, monogame, FNA or whatever supports c#. Porting to other languages, especially c++, would be awesome but probably pointless. Please check the lane dedicated to the community tasks list here: https://github.com/users/sebas77/projects/3 and let me know if you want to take something on!

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].