C# Artemis Entity System News


ARTEMISIn 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 Versionhttp://thelinuxlich.github.com/artemis_CSharp/

The full source code is avaliable here:  https://github.com/thelinuxlich/artemis_CSharp