So, I was thinking on delegating initialization (from the gamesystem) to the visualization code (jme) related to the specific
getAddedEntities() new ones exclusively, by registering listeners (interface) at the gamesystem pointing to the visualization code and all others.
But, I guess, instead of that it would be better to just, at the visualization code, check for a boolean (specific to the visualization), and if it was not initialized, do it.
Also, I think each ES system scope must be quite limited (cohesion): “what will it specifically deal with?”
so I could have a gameSystem (things like combat ex.: who fights who)
and a 3DPhysicsSystem (to calculate distances, travel time, target visibility etc)
and the final visualization, be it in 2D, 3D or even text mode.
But instead of that, If I am not wrong, it would be better to make the 3DPhysicsSystem dependent on JME and bullet, merely to re-use all the 3D calculations, already available and not reinvent the wheel, but that decision would also deny me “insta plug” an alternative 2D or even textmode engines (not that I want to actually plug other engines, I am just thinking).
What I mean is, an ES System may not need to be so 100% completely independent of the “visualization”, othewise we would have to reinvent many things that it provides, at least JME + bullet physics.
and yes, I am asking before trying it, because trying and see that it should be different is quite time consuming to restructure and readapt everything :chimpanzee_facepalm: