import asyncio import os from server.server import GameServer from server.config import ServerConfig from server.transport import InMemoryTransport async def main(): from server.server import GameServer from server.transport import InMemoryTransport cfg = ServerConfig() server = GameServer(transport=InMemoryTransport(lambda d, p: server.on_datagram(d, p)), config=cfg) await asyncio.gather(server.transport.run(), server.tick_loop()) if __name__ == "__main__": try: # Optional QUIC mode if env vars are provided cert = os.environ.get("QUIC_CERT") key = os.environ.get("QUIC_KEY") host = os.environ.get("QUIC_HOST", "0.0.0.0") port = int(os.environ.get("QUIC_PORT", "4433")) if cert and key: from server.quic_transport import QuicWebTransportServer from server.server import GameServer cfg = ServerConfig() async def start_quic(): server = GameServer(transport=QuicWebTransportServer(host, port, cert, key, lambda d, p: server.on_datagram(d, p)), config=cfg) await asyncio.gather(server.transport.run(), server.tick_loop()) asyncio.run(start_quic()) else: asyncio.run(main()) except KeyboardInterrupt: pass