points.adoc 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. = points
  2. :revnumber: 2.0
  3. :revdate: 2020/07/27
  4. == ES Design goals explained
  5. This page revive and explain more about points of design goals and implementations for an ES and its usefulness (means features) to corporate with other Java and game software techs and layers.
  6. Theoretically a Java ES done right should be:
  7. . Pure data : very debatable
  8. .. Mutable : as bean with setter and getter
  9. .. Immutable : as bean with getter, should be replace if changed.
  10. . Multi-threading, concurrency enable : very debatable
  11. .. As my experience, pure data or not is not clear contract to multi-threading success. Consider other things happen outside of ES scope, so it not an solid warranty that those component will not be touched by any other thread.
  12. .. Also if there is a contract that no other thread touching those data, in Java style via synchronization or other paradigm like actor… multi-threading also consider success but just more complicated!
  13. . Communication: very debatable
  14. .. Event messaging enable
  15. .. No event or messaging : update beat, no need of inter-com or events. How can we do network messaging?
  16. . Is database (and other kind of persistent) friendly
  17. .. Save to XML (file, serialized)?
  18. .. Send over network?
  19. .. Change sets are resembling Database concept, what about transactions?
  20. . Is enterprise friendly (expandable/ extensible/ modulizable)
  21. .. Spring, as lazy loaded, injected?
  22. . Script possibilities
  23. .. Can be script, non trivial work in pure data!
  24. .. Can be use with other JVM language than java like groovy, or scala, jython?
  25. . Restrictions and limitation
  26. .. No dynamic Java object methods in Component ? What about Entities and Systems ( Processors)
  27. .. An overall way to manage and config Systems, freely chose? How to hook to its routine?
  28. . Dependencies
  29. .. The separation of components are clear, as no dependencies at all. Hard cored, scripted or injected will break the overall contract!
  30. .. The separation of Entities. What about dependencies of entities? Ex: parent/ child relationship in JME spatial. How the framework handle that?
  31. .. The separation of Systems. Ex: any contract about that?