JALSE is a lightweight entity framework for simulation written in Java 8. The framework is used to create a dynamic living data-model for your entity based simulation or game. By default all JALSE entities can have their attributes and child entities concurrently processed and mutated (no need for additional synchronisation).

JALSE takes entities one step further by allowing the user to create Entity types. Unlike classic Java objects JALSE entities can have multiple types and 'casting' to another type causes no issues (just null fields). As well as making use of typing (cow.isMooing()) entities can be grouped and processed by entity type. Inheritance still is at play here so I can be sure to feed() every Animal but only moo() a Cow!

Use JALSE for when you need to start processing a large number of entities or if you want a structured way to increase the level of detail kept about an entity (rather than adding yet another field).

Founded by Elliot Ford

Documentation

See the Wiki for full documentation, examples and project information.

See the API docs.

Getting the latest release

JALSE releases and (SNAPSHOTs) are published to maven central (http://search.maven.org/).

Example for Maven:

<dependency>
    <groupId>com.github.ellzord</groupId>
    <artifactId>JALSE</artifactId>
    <version>1.1.0</version>
</dependency>

Example for Gradle:

compile 'com.github.ellzord:JALSE:1.1.0'

Links

Licence

Code is under the Apache Licence v2.