Visão geral
O Roundkeep conduz um combate de D&D 5e no navegador: iniciativa, PV, condições e uma biblioteca de criaturas e magias do SRD. Ele roda na máquina do mestre, sem conta e sem nuvem, e os jogadores acompanham o combate pelo celular na mesma rede.
O que faz
- Mesa de combate com turnos, rodadas, iniciativa editável, dano, cura, PV temporário e condições.
- Biblioteca offline com 331 criaturas e 319 magias do SRD 2024.
- Importação do Improved Initiative ou de backups do Roundkeep, com uma etapa de revisão antes de salvar.
- Visão dos jogadores em /p/{id} para celulares na rede local.
- Backups portáteis em JSON para levar uma campanha para outro dispositivo.
- Atalhos de teclado para próximo turno, busca na biblioteca, dados e desfazer.
Como foi construído
- A visão dos jogadores atualiza ao vivo via Socket.IO na rede local, com BroadcastChannel como alternativa dentro do mesmo navegador.
- Os catálogos ficam no IndexedDB e o encontro é salvo a cada mudança. Depois do primeiro carregamento, um service worker faz o build de produção funcionar offline, com versões de cache geradas no build.
- Web Locks permitem que só uma aba do mestre edite a campanha por vez, para que duas abas nunca sobrescrevam uma à outra. As janelas dos jogadores ficam abertas em paralelo.
- A mesa fica disponível na rede local, mas o endpoint de bootstrap que serve os dados privados da campanha só responde em loopback. Não é uma sala pública na nuvem.
- O catálogo SRD é convertido do Open5e v2 por um script Python reproduzível, com créditos e licenças incluídos no app.
- Os testes cobrem regras de encontro, dados do catálogo e importação.
As criaturas vêm do SRD 5.2 (2024) via Open5e, sob CC BY 4.0. As magias vêm do catálogo básico distribuído pelo Improved Initiative.
