Versão 3

Requisitos funcionais e não funcionais

Requisitos funcionais:

  1. Suporte a IPv4 e IPv6.
  2. Suporte a TCP e UDP para transferência de arquivos.
  3. Suporte a UDP, SCTP e SCTP sobre UDP para mídias em tempo real.
  4. Suporte a HTTP nas versão 1.0, 1.1, 2.0 e 3.0.
  5. Suporte a WebSocket sobre HTTP/1.1.
  6. Balanceamento de carga em serviços Web e WebSocket.
  7. Autenticação e autorização com OAuth 2.0 no Google e posterior sessão via cookie para permitir autorização entre URLs distintas.
  8. Suporte obrigatório às seguintes APIs Web: Device orientation, Fullscreen, Gamepad, Geolocation, Service worker, Storage, Touch, WebGL, WebRTC, WebSocket.
  9. Suporte desejável às APIs Web: Battery, Web Bluetooth, Console, Fetch, Notification, Performance, Push, Vibration, WebTransport, WebXR.
  10. Persistência dos dados de usuários em bancos de dados centralizado.
  11. Uso de Selective Forwarding Unit (SFU) para mídias em tempo real entre os jogadores.

Requisitos não funcionais:

  1. Suporte a pelo menos 1000 conexões WebSocket simultâneas.
  2. Testes regulares de carga em servidores e de monitoramento dos serviços Web.
  3. Possibilidade de migração futura de WebSocket sobre HTTP/1.1 para WebTransport sobre HTTP/3.
  4. 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.