interviews.adoc 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. = interviews
  2. :revnumber: 2.0
  3. :revdate: 2020/07/15
  4. == ES Approaches
  5. Entity System implementations are various!
  6. As said, we are talking about Component oriented programming Entity System, implemented in an Object oriented programming language and environment like Java!
  7. So,we are
  8. * *not talking* about Groovy, Scala, Closure.. or any Java extension!
  9. * *not talking* about Entity system in any scope other than in a real-time application!
  10. * *focusing* in 'core' features, which exclude many specific usecases
  11. * *trying* to be unprejudiced , impersonal to make equitable judge.
  12. === Outline
  13. . Initial philosophy
  14. . Pure data or not?
  15. . Multi-threading, concurrency enable or not?
  16. . Communication: Event messaging enable or not?
  17. . Is database (and other kind of persistent) friendly or not?
  18. . Is enterprise friendly (expandable/ extensible/ modulizable) or not?
  19. . Script possibilities?
  20. . Restrictions and limitation
  21. . Dependencies
  22. . Current status: Long term, stable, community?
  23. The comparisons will focus in these below points, follow with the scope, status of each projects
  24. Detailed explanation of above points xref:es/entitysystem/points.adoc[points]
  25. == ES projects interviews
  26. These interviews are short but focus discussion to help you get a clear view of underlying implementation of each project.
  27. === Artemis: General
  28. GoogleCode: link:https://code.google.com/archive/p/artemis-framework/[https://code.google.com/archive/p/artemis-framework/]
  29. Website: link:http://gamadu.com/artemis/index.html[http://gamadu.com/artemis/index.html]
  30. Wiki: link:http://entity-systems.wikidot.com/artemis-entity-system-framework[http://entity-systems.wikidot.com/artemis-entity-system-framework]
  31. ==== Short conclusion
  32. Artemis approach
  33. . Initial philosophy : Lightweight, small footprint and 1.5+
  34. . Pure data: No
  35. . Multi-threading, concurrency: with care
  36. . Communication: Event messaging enable or not? No implementation yet
  37. . Is database (and other kind of persistent) friendly or not? No implementation yet
  38. . Is enterprise friendly (expandable/ extensible/ modulizable) or not? Not clear but because not pure data, consider Yes
  39. . Script possibilities? Yes
  40. . Restrictions and limitation: Custom System has to be extends base System; Processor base; Aspect base, Has documented about Dependencies between System
  41. . External library dependencies : No
  42. . Current status: Long term, stable, community? The earliest Java ES, more than 3 years, kind of inactive, has a forum.
  43. Read the full review for details
  44. === Zay-ES : @pspeed
  45. Forum : link:https://hub.jmonkeyengine.org/c/user-code-projects/zay-es[https://hub.jmonkeyengine.org/c/user-code-projects/zay-es]
  46. Wiki: xref:es/entitysystem/entitysystem.adoc[entitysystem]
  47. 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]
  48. // Interview: xref:jme3/contributions/entitysystem/interviews/zay-es.adoc[zay-es]
  49. [IMPORTANT]
  50. ====
  51. 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!
  52. ====
  53. ==== Short conclusion
  54. Zay-ES approach
  55. . Initial philosophy : Lightweight, small footprint and 1.5+
  56. . Pure data: Yes
  57. . Multi-threading, concurrency: free, by design, but still _need better design contract_
  58. . Communication: Event messaging enable or not? No implementation yet
  59. . Is database (and other kind of persistent) friendly or not? No implementation yet
  60. . Is enterprise friendly (expandable/ extensible/ modulizable) or not? Not clear, _lack of design contract_
  61. . Script possibilities? Yes
  62. . Restrictions and limitation: Free of System implementation, but _lack of design contract_
  63. . External library dependencies : No
  64. . Current status: Long term, stable, community? more than 2 years, open source recently, active, has a forum in Jmonkey's hub.
  65. Read the full review for details
  66. === EntityMonkey : @zzuegg
  67. 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]
  68. // Interview: xref:jme3/contributions/entitysystem/interviews/em-es.adoc[em-es]
  69. === Private : @Empire phoenix
  70. // Interview: xref:jme3/contributions/entitysystem/interviews/emp-es.adoc[emp-es]
  71. == Others
  72. === Java & Java extension
  73. ==== Spartan: [used for Slick. abandoned]
  74. GoogleCode: https://code.google.com/archive/p/spartanframework/[https://code.google.com/archive/p/spartanframework/]
  75. === Not Java
  76. ==== C++
  77. ==== JavaScript
  78. ==== C#
  79. ==== ActionScript