Skip to content

nathhB/artemis-odb

 
 

Repository files navigation

Preamble

This is a fork of Artemis Entity System Framework.

Discussion/Forum

There's a google group at https://groups.google.com/forum/#!forum/artemis-odb - in addition to the issues, where hitherto much of the discussion has taken place. The original artemis forum is still around too, though it doesn't see much traffic, nor is it specific to artemis-odb: http://slick.javaunlimited.net/viewforum.php?f=28

What's changed

Somewhat outdated, see CHANGELOG.md for recent changes.

  • More efficient for loops, bounds checking performed once during loop initialization.
  • processEntities forgoes Bag's getter in favor of direct array access.
  • No more classes instantiated every time World.process is run.
  • Systems can be enabled/disabled, see EntitySystem.setEnabled(boolean) and EntitySystem.isEnabled().
  • Bag now sports sort; borrows libGDX's TimSort implementation.
  • Foreach-friendly Bag: implements a one instance per Bag iterator.

Module overview

Required

  • artemis: Base library.

Optional

  • artemis-maven: Maven plugin for transforming @PooledWeaver and @PackedWeaver components.

Other

  • artemis-weaver: Transforms com.artemis.Component classes when annotated with @PooledWeaver or @PackedWeaver, see artemis-maven.
  • artemis-test: Compliance tests.

Maven

Embracing Artemis

	<properties>
		<artemis.version>0.5.0</artemis.version>
	</properties>
	
	<dependencies>
		<!-- base library -->
		<dependency>
			<groupId>net.onedaybeard.artemis</groupId>
			<artifactId>artemis-odb</artifactId>
			<version>${artemis.version}</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>net.onedaybeard.artemis</groupId>
				<artifactId>artemis-odb-maven-plugin</artifactId>
				<version>${artemis.version}</version>
				<executions>
					<execution>
						<goals>
							<!-- enables @PooledWeaver and @PackedWeaver -->
							<goal>artemis</goal>
							
							<!-- generates the component dependency matrix report -->
							<goal>matrix</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

Minimal (no weaving/compile-time transformations)

<dependency>
	<groupId>net.onedaybeard.artemis</groupId>
	<artifactId>artemis-odb</artifactId>
	<version>0.5.0</version>
</dependency>

Direct Download

Jars can be downloaded manually from the maven repository: http://repo1.maven.org/maven2/net/onedaybeard/artemis/artemis-odb/0.5.0/

Agrotera: Anti-boilerplate lib for Artemis

Agrotera uses annotations to configure EntitySystems, removing the need for defining Aspects inside constructors and takes care of injecting ComponentMappers, Managers and EntitySystems. Can also simulate aspects for Managers and inject profiling calls.

Games using this library

Open source

game source/binaries matrix author
Sine source cdm @timtipgames
Ned et les Maki source N/A Geeky Gobling Prod
Naturally Selected 2D source play cdm @DaanVanYperen
The Underkeep source play cdm @DaanVanYperen
Spaceship Warrior Redux source play cdm updated by @Flet