Giter VIP home page Giter VIP logo

genentitas's Introduction

GenEntitas

Entitas generator using Entitas ECS framework

Build Status

Usage

  • clone this repository
  • build CodeGen.sln solution. See Console Runner for details
  • create settings. See Settings
  • call mono ./path_here/GenEntitas.exe --SettingsPath=./pathToSettings . See genComps.sh

How it works

  • Console Runner reads settings file
  • Systems are imported from dlls
  • Systems Initialize/Execute/Cleanup/TearDown once
    • DataProvider systems add entities with components
    • Generator systems react to components in entities
    • PostProcessor systems write changes to disk, log, etc.

Parts

Pros

  • familiar ECS architecture for Entitas users
  • easy to add custom generator - create System, add it to Systems
  • multiple input sources - dlls for reflection, GenEntitasLang files, Roslyn
  • option to wrap generated classes into namespace
  • no default context. No need to specify contexts beforehand in settings, contexts are read from components
  • Components without any generator attributes are not generated

Cons

  • unofficial
  • tied to specific entitas version
  • there is no settings auto creation. You'll have to provide paths to folders with unity dlls. After done once, settings can be copy/paste/tweaked for other projects
  • Roslyn data provider lacks server mode, and because of that is much slower compared to Entitas Jenny

genentitas's People

Contributors

c0ffeeartc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

genentitas's Issues

Future Entitas versions compatibility

Hi,
this generator started as alternative to Entitas unity generator. At the beginning I didn't understand much how unity generator works, so I rewrote some parts of it, which makes it tied to a specific Entitas version.

Now i think it's possible to make mostly version independent generator by wrapping some public methods from Entitas dlls. If you have time and desire to do so, please write such wrapper systems as a separate set of systems, then we can switch this generator systems with new ones and get version independent results.

Please share pros and cons, other ideas on how to achieve best results with ECS structure.

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.