Uma praça para esperar o grupo
Entre o login e a luta agora existe um lugar. É uma cidade pequena, com uma praça e uma fonte no meio, quatro prédios em volta e um portal ao norte que leva para a sala da Salamandra. Você chega com o seu time, vê quem está por perto, conversa e vai junto para a sala. Na volta, sai pelo mesmo portal.
Por quê
No documento de design a cidade sempre foi o coração social do jogo, no espírito de Ragnarok: onde se marca grupo, se mostra equipamento e se conversa. Ela também era o teste de rede mais sério da fase 1. Numa sala são quatro pessoas, numa cidade podem ser centenas, e não dá para mandar a posição de todo mundo para todo mundo.
Como funciona
O mapa é dividido em células do tamanho de uma tela. Cada jogador só recebe quem está nas células em volta e a menos de 560 pixels. Para deixar de ver alguém, a pessoa precisa passar de 720 pixels; essa diferença entre os dois números evita gente piscando na borda da tela. O servidor só manda posição quando algo mudou perto de você, e se todo mundo à sua volta está parado chega um pacote por segundo, só para confirmar que a conexão segue viva. Nome, classe e aparência de cada jogador chegam uma única vez, na primeira vez que você o vê. Depois vão só posição e direção.
Medimos com cem jogadores andando ao acaso pela cidade e deu menos de três milissegundos por tick, num orçamento de cinquenta.
O chat local vai para quem você está vendo e aparece num balão em cima da cabeça. Com “/g” na frente, vai para todo mundo conectado. São cinco mensagens a cada cinco segundos, depois espera. Os prédios têm colisão e você desliza pela parede em vez de travar nela. Por enquanto são blocos coloridos com o nome escrito (ferreiro, loja, armazém, taverna) e nenhum deles abre ainda.
O teste automático agora faz a volta completa: dois bots chegam na cidade, se veem, trocam mensagem no local e no global, contornam a fonte até o portal, entram na sala, lutam e voltam para a cidade.
Próximo passo
Uma sala de mobs para farmar, chaves de baú e loot pessoal. Depois, bots aos montes para ver a cidade com cem pessoas de verdade.
Mudanças
- feat(city): hub city with proximity replication, chat and portal
CityState (movement, building collision with sliding, portals) and InterestGrid (screen-sized cells, enter 560 px / leave 720 px). Server sends static player info once per viewer and positions only when something nearby changed (1 s keepalive), at 10 Hz. Local chat goes to visible players with speech bubbles; /g goes to everyone; rate limited. Portal moves the player into the boss room; leaving returns to the portal exit. Client gets CityView with camera, ChatUI, and a leave button in the room. 100 players cost under 3 ms per city tick. The network test now walks the full loop: city, chat, portal, room, back.