Git Product home page Git Product logo

svelto.ecs.schema's Introduction

Nuget GitHub Discord

Svelto.ECS.Schema

Schema and State Machine extensions for Svelto.ECS.

Features

  • RDBMS-like Schema Definition with Extendible, Nestable Layout.
  • Abstracted Interface Definition to define how Engines should see Entities.
  • SQL-like Queries with Extra Type Safety.
  • Indexing Entities and Automatic Tracking over Tables.
  • Join between Entities, for One-to-One, One-to-Many or Many-to-Many relationships.
  • Finite State Machine with Transitions, Conditions and Callbacks.
  • Ensures Zero-allocation for Frequently Called Critical Pathes.

Getting Started

Currently it is alpha stage. You can clone this repository, or reference with NuGet. While I don't recommend to use it on production, feel free to try it and please share me the experience!

Svelto.ECS.Schema's minimum C# version is 8. (It requires default interfaces implementation)

Need help?

If you need help or want to give feedback, you can either join my Discord Channel or ping @cathei from Svelto's Official Discord Channel.

Documentations

Concept

Basic Usages

Advanced Usages

Etc.

svelto.ecs.schema's People

Contributors

cathei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

svelto.ecs.schema's Issues

IndexKey<T> refactoring

Let’s have nested IEntityIndexKey.Component instead of Indexed, so we can use it same as StateMachine

Deferred filter update

Maybe we should defer filter update so user can change filter index while iterating

We will have two problem

  • If we do it in step engine we will need user to call our engine.
  • Filters will not be updated right away.

What about just giving Copy() for FilteredIndices?

EntityDescriptor Inspection

It is possible to inspect what EntityDescriptor assigned with Table,
so it should be possible to inspect below

  • Direct Group-Component pair to Index list
  • Faster and alloc-free FindGroups implementation

Multi Index Query

Thinking of multi index query that gives intersection of two query

Memo<TComponent> equivalent to transient filter

You can add entity to it and use it for a step engine pipeline, after entity submission it will be cleared, or user can manually clean.

Should we retain filter after cleared? Need to check Svelto implementation…

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.