Versão 3
Requisitos funcionais e não funcionais
Requisitos funcionais:
- Suporte a IPv4 e IPv6.
- Suporte a TCP e UDP para transferência de arquivos.
- Suporte a UDP, SCTP e SCTP sobre UDP para mídias em tempo real.
- Suporte a HTTP nas versão 1.0, 1.1, 2.0 e 3.0.
- Suporte a WebSocket sobre HTTP/1.1.
- Balanceamento de carga em serviços Web e WebSocket.
- Autenticação e autorização com OAuth 2.0 no Google e posterior sessão via cookie para permitir autorização entre URLs distintas.
- Suporte obrigatório às seguintes APIs Web: Device orientation, Fullscreen, Gamepad, Geolocation, Service worker, Storage, Touch, WebGL, WebRTC, WebSocket.
- Suporte desejável às APIs Web: Battery, Web Bluetooth, Console, Fetch, Notification, Performance, Push, Vibration, WebTransport, WebXR.
- Persistência dos dados de usuários em bancos de dados centralizado.
- Uso de Selective Forwarding Unit (SFU) para mídias em tempo real entre os jogadores.
Requisitos não funcionais:
- Suporte a pelo menos 1000 conexões WebSocket simultâneas.
- Testes regulares de carga em servidores e de monitoramento dos serviços Web.
- Possibilidade de migração futura de WebSocket sobre HTTP/1.1 para WebTransport sobre HTTP/3.
- Possibilidade de migração futura de SRTP sobre HTTP/1.1 e HTTP/2.0 para Media over QUIC (MoQ) sobre HTTP/3.
Escolhas tecnológicas
Integração entre serviços
De acordo com #5, #6 #7 e #63, os serviços estão assim interligados:

Em termos de mensagens, um exemplo é o de entrada em um jogo com sessão válida a partir do backend da feira de jogos:

Desenvolvimento dos jogos
Para os jogos a serem desenvolvidos nesta versão, há um fluxo de tarefas recomendado, bem como um exemplo de ideia inicial.