← Registro de alterações
Diário2026-06-20

UI bilíngue completa + painéis devtools completos

Este dia fez uma internacionalização completa: toda a interface do estúdio tornou-se bilíngue, alternável com um clique, sincronizada ao vivo entre janelas, com o editor totalmente bilíngue também; os painéis Console/Rede/log devtools passaram de shells vazios para recursos reais; O empilhamento da interface do usuário, o contraste do formulário e os títulos de acessibilidade foram corrigidos; o bug de sombra direcional de vários dias do motor foi finalmente corrigido; a lógica do jogo ganhou agendamento de sistema declarativo; e os recursos do motor obtiveram ciclo de vida disciplinado e isolamento de falhas.

Enfrentando o mundo e enfrentando a depuração

Este dia enfrentou duas direções. Uma saída: bilinguizar totalmente toda a interface para que ela não atenda mais apenas aos usuários chineses, mas possa atender o mundo inteiro – um passo necessário para que um produto alcance um público mais amplo. A outra parte interna: completar os devtools para que os criadores que depuram seus próprios jogos possam ver claramente a saída do console, as solicitações de rede e os logs de tempo de execução – a confiança de poder “ver o que você está fazendo”. O exterior e o interior parecem não estar relacionados, mas a essência é a mesma: ambos removem a barreira do “não consigo ver/não consigo entender”. A barreira do idioma transforma a interface em uma parede; nenhuma maneira de depurar transforma o problema em uma névoa. Este dia derrubou os dois tipos de barreira ao mesmo tempo. Enquanto isso, o mecanismo corrigiu o problema de sombra de vários dias na raiz, adicionou uma maneira mais ordenada de agendar a lógica do jogo e estabeleceu regras mais rígidas para seu próprio gerenciamento de recursos. Mais acessível por fora, mais transparente por dentro, mais sólido por baixo — essas são as três facetas do dia.

Alterne toda a interface entre inglês e chinês com um clique

Este dia fez uma internacionalização completa, e com cuidado. O primeiro passo foi um núcleo multilíngue leve: inglês como fonte de referência (todas as cópias autorizadas em inglês), chinês como sobreposição (substituindo o inglês quando presente), alternável a qualquer momento. A segunda etapa migrou toda a interface para este sistema, arquivo por arquivo, em lotes – barra superior, painel, painel de bate-papo, gaveta de configurações, barra lateral, vários comutadores, dezenas de painéis e componentes, nenhum deixado de fora. Por que "arquivo por arquivo" em vez de tudo de uma vez? Porque a cópia codificada está espalhada por centenas ou milhares de pontos na interface, e apenas passar por cada um não perde nada. Após a migração, a interface é padronizada para o inglês, segue o idioma do sistema automaticamente e tem um detalhe bem pensado: sincronização ao vivo entre janelas – mude o idioma para chinês em uma janela e outra janela aberta segue imediatamente, sem mudar cada uma delas. O editor também concluiu a bilinguização completa e passou na verificação de tempo de execução. Para uma plataforma que deseja ser usada por criadores de todo o mundo, o muro da linguagem deve ser derrubado primeiro – e hoje foi derrubado completamente.

Painéis Devtools concluídos: Console + Rede + logs em disco

A área devtools anteriormente tinha painéis que eram espaços reservados vazios ou não clicáveis; este dia os transformou em recursos reais de uma só vez. O painel do console conectou todos os fluxos de saída do jogo e do editor – cada registro que seu jogo imprime e cada erro que ele gera agora flui aqui em tempo real. O painel Rede passou de um espaço reservado morto para real, capturando as várias solicitações de rede que seu jogo testado faz: solicitações regulares, solicitações assíncronas e conexões de longa duração, todas visíveis. Além disso, o console, a rede e os fluxos de informações não são apenas mostrados em um painel, mas espelhados em arquivos de log locais para análise posterior — você não precisa detectar um problema ao vivo; você pode reproduzi-lo a partir dos registros posteriormente. Uma aba redundante com a visualização de monitoramento foi removida para evitar a confusão de mostrar a mesma coisa em dois lugares. O significado: a depuração é uma parte inevitável da criação, e o pré-requisito para a depuração é “ser capaz de ver”. Quando um jogo se comporta de maneira errada, ver todos os erros do console e o tráfego de rede diretamente em um painel transforma a depuração de "adivinhar pelo sentimento" em "verificar evidências".

Polimento da interface do usuário: empilhamento, contraste, acessibilidade

Aproveitando essa grande mudança, vários problemas de longa data da interface do usuário foram resolvidos em conjunto. Uma delas é a ordem de empilhamento: anteriormente, algumas caixas de diálogo, menus suspensos e o seletor de idioma cobriam erroneamente a barra superior ou se escondiam abaixo de uma caixa de diálogo, e hoje reordenaram suas camadas de forma clara, para que o que deveria estar no topo permanecesse firmemente no topo. O segundo é o contraste do controle de formulário: certas caixas de entrada e botões nativos mostravam anteriormente o texto preto padrão do navegador porque os estilos não estavam conectados, quase ilegíveis em um fundo escuro; este dia deu-lhes cores de tema legíveis. O terceiro é a acessibilidade: os diálogos imediatos obtiveram os títulos exigidos pelo padrão, eliminando erros de acessibilidade e permitindo que as pessoas que usam leitores auxiliares entendam o conteúdo dos diálogos corretamente. Cada um deles é pequeno, pequeno o suficiente para que a maioria das pessoas não perceba especificamente; mas juntos eles decidem uma coisa: se a interface parece “normal” em todos os lugares. Uma interface com pequenos constrangimentos em todos os lugares esgota contínua e sutilmente a paciência do usuário; alisá-los um por um proporciona uma sensação sólida de que "parece que tudo está certo para usar".

Sombras direcionais fixas + agendamento de sistema declarativo

O mecanismo corrigiu, na raiz, um problema que o incomodava há vários dias: sombras de luz direcional. Ao construir jogos de amostra nos dias anteriores, não houve escolha a não ser o paliativo de “mudar a contagem em cascata das sombras de 4 para 1” para obter sombras projetadas de forma confiável – isso apenas evitou o sintoma, com a doença real no motor. Este dia curou-o completamente: as causas profundas da falha das sombras em cascata sob certas configurações e do desalinhamento num único nível foram eliminadas em conjunto. Com o upstream estável, as sombras direcionais de todos os jogos downstream funcionam corretamente, sem mais soluções alternativas apenas para sintomas. No mesmo dia, a lógica do jogo ganhou uma capacidade valiosa: agendamento de sistema declarativo. Um jogo é composto de muitos "sistemas" (módulos lógicos, cada um cuidando de uma área, como movimento, colisão, IA), cujo tempo e ordem de execução costumavam ser organizados manualmente; agora eles podem ser agendados declarativamente por condição, por rótulo, por estado atual — "executar este conjunto de sistemas apenas em estado de combate", "agendar esses sistemas juntos sob um rótulo". Isso torna a lógica complexa do comportamento do jogo mais organizada e menos propensa ao caos. Por baixo, o isolamento de falhas (transformando uma falha de baixo nível em um erro recuperável com nova tentativa automática) e um visualizador de quadros de renderização offline foram adicionados para uma depuração gráfica mais suave.

O mecanismo disciplina os recursos: recupere quando terminar, não bata quando quebrado

O mecanismo também colocou um trabalho real no “gerenciamento de recursos” hoje em dia, exatamente onde um programa de longa execução está mais sujeito a problemas. Uma parte é o ciclo de vida da GPU e dos recursos de áudio: cada pedaço de memória de vídeo e cada canal de som, quando não é mais referenciado por nada, pode ser identificado com precisão e recuperado a tempo, em vez de se acumular silenciosamente - este dia construiu especificamente um mecanismo de "liberação de recursos não mais referenciados" e verificado com um teste de estresse de longa duração que ele realmente se mantém em um nível de uso estável e limitado, em vez de aumentar. A outra parte é o isolamento de falhas: quando ocorre um erro grave de baixo nível, o mecanismo pode transformá-lo em um erro tratável adequadamente, em vez de travar por completo, tentando novamente quando necessário. Ambos são trabalhos ocultos que os usuários ainda não veem e que decidem diretamente "se podem funcionar de forma estável por um longo tempo". Um jogo pode durar várias horas seguidas, criando e destruindo recursos constantemente; somente tornando sólido "retornar quando terminar, resistir quando quebrado" o jogo longo evita ficar mais lento ou travar inexplicavelmente.

O que este dia significa

A palavra-chave do dia é “eliminar barreiras”. A bilinguização elimina a barreira linguística, dando à plataforma, pela primeira vez, as condições básicas para enfrentar um público global — o alcance de uma ferramenta depende primeiro de quantas pessoas conseguem compreendê-la e utilizá-la. A conclusão dos devtools elimina a barreira da depuração, permitindo que os criadores vejam a verdade quando surgem problemas, em vez de se preocuparem com uma caixa preta. Consertar as sombras do motor elimina a barreira do “tratamento dos sintomas” ao “tratamento da raiz”, resolvendo na origem uma doença recorrente que só poderia ser contornada. E o agendamento declarativo e o gerenciamento de recursos eliminam a barreira da possibilidade de jogos mais complexos e de longa duração. Derrubar estas barreiras uma a uma torna a plataforma simultaneamente mais acessível, mais transparente e mais fiável. Uma ferramenta que deseja genuinamente ser amplamente utilizada e confiável no longo prazo geralmente faz exatamente isso: encontra barreiras continuamente e depois derruba-as com seriedade.

← Todas as atualizações diárias