MushRog

Dois na mesma sala

12 de outubro de 2026 arquiteturamecanica

O MushRog ficou online. Uma pessoa hospeda a sala pelo menu, até três entram pelo IP, e todo mundo enfrenta a mesma Salamandra. Quando alguém faz uma Sobrecarga, os outros veem a explosão e o nome dela no canto da tela.

Por quê

A fase 1 existe para responder uma pergunta: a simulação de combate que fizemos offline aguenta virar autoridade de servidor sem mudar? Aguentou. O código que decide dano, reação, troca e esquiva é exatamente o mesmo, e só mudou quem chama ele.

Como funciona

O servidor roda a simulação a 20 ticks por segundo. Os jogadores mandam só intenção (andar para lá, usar a skill 2, trocar), e o servidor confere alcance, recarga e mana e devolve o estado da sala e os eventos daquele tick. O cliente não simula nada online: guarda um espelho do estado e desenha, interpolando posições entre um tick e outro para não ficar travado.

Dá para hospedar e jogar no mesmo processo, ou subir um servidor sem tela para os outros entrarem. O menu tem as três opções: sozinho, hospedar, entrar.

O chefe ganha vida conforme entra gente: 1,7 vez para dois, 2,4 para três, 3 para quatro. A sala reinicia sozinha alguns segundos depois de vitória ou derrota.

Para testar, colocamos dois bots sem tela no servidor, andando, soltando Faísca e conferindo que um vê o outro. Esse teste roda junto com os outros a cada mudança.

Ainda falta login, criação de personagem e a cidade. Por enquanto cada um entra com o time padrão de Mago e Guerreiro.

Próximo passo

Login e criação de personagem, para cada um entrar com o próprio time.

Mudanças

  • feat(client,net): online rooms for up to 4 players

    Menu with solo, host-and-play and join. Listen host plays as p1; the room resets a few seconds after win or wipe; boss HP scales with the number of players. Client mirrors server state, interpolates between snapshots, renders every team with name and HP, and animates casts from a new cast event. tools/net_test.sh runs a dedicated server with two headless bots. Version 0.0.2.

← Todo o devlog