Browse Source

update readme

pull/72/head
sebas77 2 years ago
parent
commit
92084384cd
4 changed files with 37 additions and 3 deletions
  1. +30
    -1
      README.md
  2. +1
    -1
      com.sebaslab.svelto.common
  3. +1
    -1
      com.sebaslab.svelto.ecs/CHANGELOG.md
  4. +5
    -0
      com.sebaslab.svelto.ecs/Svelto.ECS.csproj

+ 30
- 1
README.md View File

@@ -7,7 +7,36 @@ Real ECS framework for c\#. Enables to write encapsulated, decoupled, maintainab
Svelto.ECS is easy to start with, but full of tricks for expert users. The hardest problem to overcome is usually to shift mentality from OOP programming to ECS programming more than using the framework itself.

### Svelto.ECS at glance
WIP
```csharp
public class SimpleContext
{
public SimpleContext()
{
var simpleSubmissionEntityViewScheduler = new SimpleEntitiesSubmissionScheduler();
//Build Svelto Entities and Engines container, called EnginesRoot
_enginesRoot = new EnginesRoot(simpleSubmissionEntityViewScheduler);

var entityFactory = _enginesRoot.GenerateEntityFactory();
var entityFunctions = _enginesRoot.GenerateEntityFunctions();

//Add an Engine to the enginesRoot to manage the SimpleEntities
var behaviourForEntityClassEngine = new BehaviourForEntityClassEngine(entityFunctions);
_enginesRoot.AddEngine(behaviourForEntityClassEngine);

//build a new Entity with ID 0 in group0
entityFactory.BuildEntity<SimpleEntityDescriptor>(new EGID(0, ExclusiveGroups.group0));

//submit the previously built entities to the Svelto database
simpleSubmissionEntityViewScheduler.SubmitEntities();

//as Svelto doesn't provide an engine ticking system, it's the user's responsibility to
//update engines
behaviourForEntityClassEngine.Update();
}
readonly EnginesRoot _enginesRoot;
}
```

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


+ 1
- 1
com.sebaslab.svelto.common

@@ -1 +1 @@
Subproject commit 14e47cff9ec13489c26ce68dd50ea0fea896b57f
Subproject commit 3e3a02d49fdcc7b0b22bb22df525eb5940ab69d4

+ 1
- 1
com.sebaslab.svelto.ecs/CHANGELOG.md View File

@@ -13,7 +13,7 @@ All notable changes to this project will be documented in this file. Changes are
* Improved Serialization system
* Improved SveltoOnDots system
* Tons of other improvements and bug fixes
~~~~
## [3.2.5]

* refactor and improved NativeBag and UnsafeBlob. This fix a previously known crash with Unity IL2CPP


+ 5
- 0
com.sebaslab.svelto.ecs/Svelto.ECS.csproj View File

@@ -48,4 +48,9 @@
<None Remove="**\*.meta" />
<ProjectReference Include="..\com.sebaslab.svelto.common\Svelto.Common.csproj" /> <!-- Do not delete. Used for nuget packing -->
</ItemGroup>
<ItemGroup>
<Content Include="..\README.md">
<Link>README.md</Link>
</Content>
</ItemGroup>
</Project>

Loading…
Cancel
Save