= interviews :revnumber: 2.0 :revdate: 2020/07/15 == ES Approaches Entity System implementations are various! As said, we are talking about Component oriented programming Entity System, implemented in an Object oriented programming language and environment like Java! So,we are * *not talking* about Groovy, Scala, Closure.. or any Java extension! * *not talking* about Entity system in any scope other than in a real-time application! * *focusing* in 'core' features, which exclude many specific usecases * *trying* to be unprejudiced , impersonal to make equitable judge. === Outline . Initial philosophy . Pure data or not? . Multi-threading, concurrency enable or not? . Communication: Event messaging enable or not? . Is database (and other kind of persistent) friendly or not? . Is enterprise friendly (expandable/ extensible/ modulizable) or not? . Script possibilities? . Restrictions and limitation . Dependencies . Current status: Long term, stable, community? The comparisons will focus in these below points, follow with the scope, status of each projects Detailed explanation of above points xref:es/entitysystem/points.adoc[points] == ES projects interviews These interviews are short but focus discussion to help you get a clear view of underlying implementation of each project. === Artemis: General GoogleCode: link:https://code.google.com/archive/p/artemis-framework/[https://code.google.com/archive/p/artemis-framework/] Website: link:http://gamadu.com/artemis/index.html[http://gamadu.com/artemis/index.html] Wiki: link:http://entity-systems.wikidot.com/artemis-entity-system-framework[http://entity-systems.wikidot.com/artemis-entity-system-framework] ==== Short conclusion Artemis approach . Initial philosophy : Lightweight, small footprint and 1.5+ . Pure data: No . Multi-threading, concurrency: with care . Communication: Event messaging enable or not? No implementation yet . Is database (and other kind of persistent) friendly or not? No implementation yet . Is enterprise friendly (expandable/ extensible/ modulizable) or not? Not clear but because not pure data, consider Yes . Script possibilities? Yes . Restrictions and limitation: Custom System has to be extends base System; Processor base; Aspect base, Has documented about Dependencies between System . External library dependencies : No . Current status: Long term, stable, community? The earliest Java ES, more than 3 years, kind of inactive, has a forum. Read the full review for details === Zay-ES : @pspeed Forum : link:https://hub.jmonkeyengine.org/c/user-code-projects/zay-es[https://hub.jmonkeyengine.org/c/user-code-projects/zay-es] Wiki: xref:es/entitysystem/entitysystem.adoc[entitysystem] Links: link:https://hub.jmonkeyengine.org/t/zay-es-links-more-chars-because-forum-is-dumb/27135[https://hub.jmonkeyengine.org/t/zay-es-links-more-chars-because-forum-is-dumb/27135] // Interview: xref:jme3/contributions/entitysystem/interviews/zay-es.adoc[zay-es] [IMPORTANT] ==== In my POV, Zay-ES has the most active development status and also the maintainer is a core JME3 dev, that's why all its functions and wisdom are close to JME3! ==== ==== Short conclusion Zay-ES approach . Initial philosophy : Lightweight, small footprint and 1.5+ . Pure data: Yes . Multi-threading, concurrency: free, by design, but still _need better design contract_ . Communication: Event messaging enable or not? No implementation yet . Is database (and other kind of persistent) friendly or not? No implementation yet . Is enterprise friendly (expandable/ extensible/ modulizable) or not? Not clear, _lack of design contract_ . Script possibilities? Yes . Restrictions and limitation: Free of System implementation, but _lack of design contract_ . External library dependencies : No . Current status: Long term, stable, community? more than 2 years, open source recently, active, has a forum in Jmonkey's hub. Read the full review for details === EntityMonkey : @zzuegg Post: link:https://hub.jmonkeyengine.org/t/entitymonkey-a-simple-entity-system-for-jme/23235[https://hub.jmonkeyengine.org/t/entitymonkey-a-simple-entity-system-for-jme/23235] // Interview: xref:jme3/contributions/entitysystem/interviews/em-es.adoc[em-es] === Private : @Empire phoenix // Interview: xref:jme3/contributions/entitysystem/interviews/emp-es.adoc[emp-es] == Others === Java & Java extension ==== Spartan: [used for Slick. abandoned] GoogleCode: https://code.google.com/archive/p/spartanframework/[https://code.google.com/archive/p/spartanframework/] === Not Java ==== C++ ==== JavaScript ==== C# ==== ActionScript