DarkflameServer icon indicating copy to clipboard operation
DarkflameServer copied to clipboard

feat: TCP Transport Layer

Open Wincent01 opened this issue 4 months ago • 0 comments

TCP Transport Layer

Scope

This PR seeks to add an alternative TCP transport protocol. It works under the specifications of lcdr's tcpudp shim dll. The protocol initially specified the use of UDP for unreliable packets, but this is disabled in the dll due to port issues. This feature PR will assume this disabled state is permanent; UDP for unreliable packets will not be enabled.

Current status

  • Optionally compiled additional TCP transport layer.
  • Config to enable it.
  • Tested and functional with 2 clients.
  • Removed unused RakNet replica manager and id manager. We've got our own replica manager since pre-open-source.
  • Utilizes async boost behavior.

Refactor structure

  • dServer is not an adaptor for the transport layer.
  • Multiple transport layers that implement a interface.
  • No significant change to the dServer interface.

Todo

  • Figure out how to do ping calculations.
  • Fix crashes on universe shutdown.
  • Test TLS on a VPS.
  • Remove unnecessary logging.
  • Test with lots of clients.
  • Maybe evaluate performance vs raknet.
  • Finish "master" to "manager" naming refactor (I'm going to be that guy, this is as good of a time as any).
  • Fix CI

Wincent01 avatar Oct 13 '24 20:10 Wincent01