In the last few days we (me and LinuxLich) implemented some cool new features in our C# version of Artemis.
Summarizing, Artemis is a high performance Entity System framework for games, originally written in Java by Arni Arent and Tiago Costa, now ported to C# by us.
Its goal is to provide a clean API to abstract your game world organization into entities, components and systems.
Our main differences from the original version are:
- Multithreading Support (Systems and Entity processing Multithreading)
- Specialized System templates for your multithreading needs
- Queue Systems templates (Process entities from Queues instead of Components types) [NEW]
- Communication between Systems using an advanced synchronized Blackboard approach [NEW]
- Bugs fixed, performance improvements
- PC/Xbox/WP7/Full Mono (Android/Linux/IOs) support [NEW]
- Events for intercepting adding/removal of entities/components
- Entity Pool (to make objects reusable, minimize garbage collection activity, improve performance)
- Small goodies, like feeding the EntityWorld with whole Entities(maybe loading from external resources), enabling/disabling systems and entities, getting Entity tag, API shortcuts(see unit tests for more on this), etc.
- Made the API more ” C# like” [NEW]
There is a new website dedicated to our Artemis Version: http://thelinuxlich.github.com/artemis_CSharp/
The full source code is avaliable here: https://github.com/thelinuxlich/artemis_CSharp