An Entity System of type "RDBMS Beta" (see the wiki for detailed explanation)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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.