ID:2247260
 
Good day to all who reads this article, hope it gets you in good mood and attitude.

I have question about BYOND design used in particular game Space Station 13:
For example, how world ticking and updating clients, synchronizing clients with world and so on is done?
How render is managed: how it loads tiles, display changes, movement, etc.

If there any experienced devs please make sure to bring light to this matter.

Thank you for reading and have a good day.
P.S.Sorry if i struck wrong section of the forum with my message, i'm kinda new.
BYOND basically handles everything you mentioned for them.
In short, yes, a lot of that stuff is handled by the BYOND engine (client updating, movement, etc). BYOND is server authoritative, meaning a client will send commands to the server, the server processes those commands, then syncs all the clients with the current game state. Your local client is not detached and running its own simulation of the code like a lot of multiplayer games do. A lot of the graphics rendering is handled client side, such as blending sprites that are layered on top of each other, and rendering additional animations such as rotating sprites.

More specifically to SS13: all branches I'm aware of use a master controller for updating objects in the world that need to be regularly updated (think atmospheric simulation, power grids, lighting, etc). These tend to use infinite while loops, with a sleep call to determine the update frequency. Each complete cycle of the loop will go through a list of objects, calling the objects update function.

P.S. If anyone feels anything I've posted above is incorrect, please feel free to correct me. This is just my understanding of the engine.