Git Product home page Git Product logo

entitas-java's Introduction

Entitas-Java

EntitasJavaLogo

Build Status

Overview

Entitas-Java is a port of [Entitas-CSharp] (https://github.com/sschmid/Entitas-CSharp).

Entitas is a so-called Entity Component System Framework [(ECS)] (http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part 1 /).

It is super fast designed specifically for C # and Unity. This port implementation is under Java 8 and uses the power of tools, internal caching, and fast access to components.

Several design decisions have been made to work optimally in a garbage collector environment and facilitate the work to this.

Entitas comes with a code generator that dramatically reduces the amount of code you have to write and makes it much easier to work with the framework.

EntitasJavaLogo

The code generator generates classes and methods for you, so you can focus on getting the job done. Radically reduce the amount of code you have to write and improve readability. It makes more of a sea code less prone to errors to ensure the best performance. I highly recommend its use!

The Code Generator has several options, to compile different kinds of help, it is recommended to activate them all.

The Component Folder input field is the source directory where the component classes are, which have to inherit from the Icomponent interface and be annotated with the annotation @Component.

The Generated Folder input field is the target directory of the generated classes, it must be within the project under the src /main/java and src/test/java directories (Replicate the directories as part of the package).

The annotation @Component has the parameters to configure:

String [] pools () -> an array with the names of the Pools to which the component belongs.

Boolean isSingleEntity () ---> the component is in a single Instance Entity.

String customPrefix () -> Currently not implemented

String [] customComponentName () -> Currently not implemented

Some of the classes that can generate children:

[NamePool] ComponentIds: You have the indexes of all components, their names and classes.

[NamePool] Matcher: It has all Matcher relation for each component.

Entiy: Inherits from Entity base and has help methods to manage the components of the entity.

[PoolName] Pool: Inherited from BasePool and has help methods to manage components annotated with isSingleEntity = true.

Pools: Help methods to create the different pools and where to save the instance of all pools.

+------------------+
|     Context      |
|------------------|
|    e       e     |      +-----------+
|        e     e---|----> |  Entity   |
|  e        e      |      |-----------|
|     e  e       e |      | Component |
| e            e   |      |           |      +-----------+
|    e     e       |      | Component-|----> | Component |
|  e    e     e    |      |           |      |-----------|
|    e      e    e |      | Component |      |   Data    |
+------------------+      +-----------+      +-----------+
  |
  |
  |     +-------------+  Groups:
  |     |      e      |  Subsets of entities
  |     |   e     e   |  for blazing fast querying
  +---> |        +------------+
        |     e  |    |       |
        |  e     | e  |  e    |
        +--------|----+    e  |
                 |     e      |
                 |  e     e   |
                 +------------+

Different language?

Entitas is also available in

entitas-java's People

Contributors

rubentxu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

entitas-java's Issues

Is this Library Obsolete?

Hi @Rubentxu, I was interested in your implementation of Entitas, but I noticed the development has stopped long time ago, do you not have any plans to maintain it any longer?

English

Hey Ruben,

great to see this active and up-to-date port of Entitas. Great work!
I'd suggest writing comments and commits in english as this will help other people to understand what you're working on and removes language barriers for future collaboration.

Keep it up! :)

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.