Client side - worldscapes/engine GitHub Wiki

Merge layer

Merge layer simply takes update from server and updates client world state using it.

Preprocessing

Preprocessing logic is working with client world state before it goes to display layer. It run ECR simulation as on server, but does different things with it (movement interpolation, managing client-exclusive entites)

Also, some entities exist only client-side (for example, camera). So, their logic stays in preprocessing layer.

Display

Display logic is client-side logic that take resulting world state from preprocessing layer and presents it to user.

Display logic has separate implementation and can be completely replaced by custom implementation. But this replacement is not meant in runtime since simulation implementation can depend on presentation implementation (for example, do we need cameras when we render in ASCII?). So, if you use custom solution, you use it from a start of a project or refactor needs to be done.

Display side should be described and built as separate part while Engine can be tested with some simplified version of it.

Clent presentation feature domains

  • Audio
  • Cameras
  • User interface
  • Resource management
  • User input