An Entity System of type "RDBMS Beta" (see the wiki for detailed explanation)
Latest commit 0c8852e Jun 5, 2013 adamgit Updated readme
Failed to load latest commit information.
EntitySystemJava Commit failed, retrying Apr 15, 2012 Updated readme Jun 5, 2013


This is a full, basic implementation of the Entity System described here:

PLEASE NOTE: this ES is intended as a teaching example: it works, it follows the principles of Entity System design -- but it has ZERO OPTIMIZATION; don't use it as a benchmark for performance.

What is an Entity System?

This is a "almost as simple as possible" implementation of the ideas in this series of blog posts:

It's a method for designing and programming games with lots of benefits in design and performance and development-time.

Using this on real projects

If your game is simple - e.g. Tetris / Bejewelled / etc - this might be good enough for your final, shipped game. Lots of small games have been written using this implementation - on a modern CPU, even a non-optimized ES is fast enough for simple games.

I've used it successfully even in Android 2.x games - it's fast enough to run on 2011-era mobile phones.

But for any major game, you'd want to optimize and extend it a great deal. It's a good start to get you up and running with development, but you should aim to replace / re-write / optimize it at some point.

License / Crediting

MIT - you can use this freely, for pretty much anything, commercial or non-commercial, etc.

If you have lawyers, they can contact me and I'll waive any/all rights over the code - I want you to use it.

It would be nice if you add a link to the Entity Systems Wiki in your credits - but entirely up to you.