All Projects → Rubentxu → Entitas-Java

Rubentxu / Entitas-Java

Licence: MIT License
Entity Component System (ECS) in Java 8

Programming Languages

java
68154 projects - #9 most used programming language
groovy
2714 projects

Projects that are alternatives of or similar to Entitas-Java

Entitas Csharp
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Stars: ✭ 5,393 (+14475.68%)
Mutual labels:  gamedev, entity-component-system, entitas
Entityplus
A C++14 Entity Component System
Stars: ✭ 181 (+389.19%)
Mutual labels:  gamedev, entity-component-system
Uecs
Ubpa Entity-Component-System (U ECS) in Unity3D-style
Stars: ✭ 174 (+370.27%)
Mutual labels:  gamedev, entity-component-system
Dome
A lightweight game development environment where games can be written in Wren
Stars: ✭ 251 (+578.38%)
Mutual labels:  gamedev, games
Flecs
A fast entity component system (ECS) for C & C++
Stars: ✭ 2,201 (+5848.65%)
Mutual labels:  gamedev, entity-component-system
Flaxapi
Old repository with C# Editor and C# API for creating games in Flax Engine
Stars: ✭ 131 (+254.05%)
Mutual labels:  gamedev, games
xtory
a tool for writing branching nonlinear stories.
Stars: ✭ 14 (-62.16%)
Mutual labels:  gamedev, games
Netdynamics
Data-oriented networking playground for the reliable UDP transports
Stars: ✭ 65 (+75.68%)
Mutual labels:  gamedev, entity-component-system
gdk-for-unity-blank-project
SpatialOS GDK for Unity Blank Project
Stars: ✭ 33 (-10.81%)
Mutual labels:  games, entity-component-system
ecs
A dependency free, lightweight, fast Entity-Component System (ECS) implementation in Swift
Stars: ✭ 79 (+113.51%)
Mutual labels:  gamedev, entity-component-system
moon-cheeser
Moon Cheeser is an infinite runner where the player plays as a mouse gathering cheese pieces and avoiding craters and other astronomical objects, such as comets and planets, on a moon made of cheese.
Stars: ✭ 32 (-13.51%)
Mutual labels:  gamedev, games
Finisterra
Java game client and server based on the popular argentina MMORPG Argentum Online
Stars: ✭ 107 (+189.19%)
Mutual labels:  gamedev, libgdx
Entitas Sync Framework
Networking framework for Entitas ECS. Targeted at turnbased games or other slow-paced genres.
Stars: ✭ 98 (+164.86%)
Mutual labels:  gamedev, entity-component-system
Libgdx
Туториалы по LibGDX
Stars: ✭ 143 (+286.49%)
Mutual labels:  gamedev, libgdx
Everpuzzle
Tetris Attack / Pokemon Puzzle style game written in Rust
Stars: ✭ 88 (+137.84%)
Mutual labels:  gamedev, games
Entitas Cpp
Entitas++ is a fast Entity Component System (ECS) C++11 port of Entitas C#
Stars: ✭ 229 (+518.92%)
Mutual labels:  gamedev, entity-component-system
Crystalshire
Legacy VB6 open-source ORPG
Stars: ✭ 24 (-35.14%)
Mutual labels:  gamedev, games
Beaverandfairies
Stars: ✭ 14 (-62.16%)
Mutual labels:  gamedev, games
Magictools
🎮 📝 A list of Game Development resources to make magic happen.
Stars: ✭ 8,853 (+23827.03%)
Mutual labels:  gamedev, games
SpaceWar-ECS
A space war game made with ECS and JobSystem in Unity.
Stars: ✭ 26 (-29.73%)
Mutual labels:  entity-component-system, entitas

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

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