Zay-ES game settings and sessions

I think that belongs not into ECS but some sort of DB. On login you get the info for the player at hand and enrich it with the data from DB.

I had a similar problem to solve for my space game … instead of arenas I have many sectors in space. Each sector is effectively its own scene in the game. I am using both zay-ez and ethereal for the networking. I created a Scene component with a Scene number. I have a physics instance per Scene, I modified Ethereal so that it only sends updates to the client based on the Scene the client is watching and created an RPC call that the client calls to switch Scenes. On the client the ViewManager filters only the Entities for the Scene it is watching. In order to switch a player from one scene to the next you just change the Scene component on the player Entity. Same holds true for every other entity. One EntityData instance, no fuss or muss and everything is easy peasy :slight_smile: Oh and yes … each Scene has it’s own Entity for the Scene specific stuff both client and server components … What Camera type am I using, background cube map, collision on/off, etc…

1 Like

Any chance you could share this modification?

Note that if you separate your “scenes” by enough physical space then SimEthereal is already only sending updates for the scene you are in.

This may get you by for a long time.

Yea, but I dont think I ever solved the issue with warping to a distant location (outside the ethereal zone radius) - going to different ‘scenes’ would require some sort of telerport function to work.

You could just remove/re-add the entity in the right spot.

Yep.

The “ship” or “avatar” or whatever is not the player… and shouldn’t be added to the space until the player is entering the scene. No warping required. It just is where it is.

Yes, but I never worked out how to get that working - is what I’m saying :slight_smile: Giving the player a new ‘avatar’ entity after deleting the old one.

The changes involve changes to about 6 Ethereal files. Unfortunately I am not a git person so I was not able to send them to @pspeed so he can incorporate them. The changes are really cool though because I also use them for temporary battle scene between fleet battles. Something you can not do just with zones … well you can but it’s much more complicated and you will have to keep track of position offsets on the client,

1 Like

Maybe a good opportunity to broaden your skills and learn git :wink:

Yes another skill I will never use … much like when I learned CORBA back in 1997 lol … I guess I can get the latest version of ethereal and run a diff on the files versus mine and post the diffs here. This way someone who knows Git can set up the pull request.

I wouldn’t mind doing it at all, given that I could certainly use the feature