SCTP provides a nice protocol that gets you the best of both worlds in many ways between TCP and UDP. It features:
- hybrid reliable and unreliable, ordered and unordered delivery semantics
- automatic MTU fragmenting, to avoid router fragmentation
- ordered multi-channel multiplexing
Unfortunately SCTP never took off, but it is the data channel protocol for WebRTC, which uniquely positions WebRTC as a nice platform for game networking in the browser. (However, the stack must be implemented in user space since it is SCTP over DTLS over UDP.)
We are working on a WebRTC based game networking server for Social Mixed Reality at Mozilla which uses the Janus WebRTC gateway as the connection manager, our initial work can be found here:
https://blog.mozvr.com/enabling-the-social-3d-web/
Our initial SFU plugin for Janus already out of the box makes it easy to set it up as a dumb game networking server that just relays messages between peers, but our plan is to turn it into a connection manager in front of an OTP service that provides full authoritative game networking services.