Game Transport Endpoints And QUIC Exposure
Purpose
Transport endpoint setup decides what a game-server instance can safely advertise: HTTP, QUIC, public host/port, UPnP exposure, certificate status, listener health, and /info transport descriptors. It is operationally important because incorrect endpoint advertising sends clients to transports that cannot accept them.
How It Works
Startup resolves bind addresses and public endpoints, may widen local binds for exposure, starts QUIC when enabled, optionally requests a UPnP lease, records certificate status, and registers only the usable endpoint data with service discovery. /info exposes the server's transport descriptor for clients and operators.
Configuration
Transport behavior is controlled by game-server config and AETHER_GAME_* style environment variables. Certificate settings determine whether QUIC uses configured certificates or a local self-signed development certificate. Public endpoint settings determine what remote clients see, while bind settings determine what the process listens on.
Invariants
Do not advertise QUIC as usable when the listener failed to start. Do not treat UPnP exposure or self-signed certificates as production success without health labels. Public endpoint, runtime profile, and control-plane registration must agree about transport capabilities.
Debugging
Check /info, startup warnings, endpoint health labels, QUIC listener errors, certificate status, and control-plane registration. If local clients work but remote clients fail, compare bind address, public endpoint, firewall/NAT, and UPnP lease status. If QUIC handshakes fail, verify certificate trust and runtime profile negotiation.
Examples
For local development, self-signed QUIC can be acceptable if clients opt into insecure local certificates. For a private server with QUIC disabled, registration should advertise stream-capable HTTP/realtime behavior without QUIC datagram assumptions. For UPnP exposure, failure should degrade endpoint health instead of pretending the port is reachable.