Protótipo · DEVLOG

Controles: movimento remapeável e câmera

Primeira e terceira pessoa agora compartilham oito associações de movimento editáveis no menu principal, com preferências salvas. Veja os controles, os testes e a revisão interativa ainda pendente.

Projeto D3D10 min de leitura

Ilustração de ambientação gerada com IA

Comparação técnica histórica dos quatro modos de câmera em Tristram, usada como contexto; não mostra o remapeamento de teclas, os novos controles, a calibração ocular, a transição pela roda ou a colisão visual da câmera.
Comparação técnica histórica dos quatro modos de câmera em Tristram, usada como contexto; não mostra o remapeamento de teclas, os novos controles, a calibração ocular, a transição pela roda ou a colisão visual da câmera.

Atualização de 9 de outubro: o movimento em primeira e terceira pessoa agora permite escolher uma tecla principal e outra alternativa para cada direção, pelo menu principal. As oito associações podem ser alteradas ou desassociadas, e ficam salvas. O commit a4a87d20e foi instalado no mesmo Iniciar-Tristram.cmd, às 01:35, horário de Brasília. A avaliação interativa com dispositivos físicos permanece pendente.

Na entrega de 8 de outubro, a primeira pessoa de Tristram passou a combinar mouse para olhar, WASD ou setas para caminhar e roda para aproximar da terceira pessoa até a primeira — ou voltar. A proteção visual da câmera passou a considerar a arquitetura montada, preservando as regras de movimento do Diablo; a amostra técnica descrita abaixo não cobre todas as estruturas ou posições. Esse incremento do commit 3863e4436 foi instalado às 19:31 daquele dia.

Os controles iniciais de mouse e setas chegaram às 17:30 daquele dia, no commit a227d4afc. A calibração ocular posterior continua registrada abaixo.

A comparação de câmeras acima já havia sido publicada e serve somente como contexto. Não há novas capturas de gameplay, do retículo ou do menu de remapeamento nesta publicação. A implementação e os limites dos testes estão na documentação da revisão atual.

Escolher as teclas de movimento

No menu principal → Configurações → Mapeamento de Teclas, há quatro direções de movimento, cada uma com associação principal e alternativa. Os padrões continuam sendo W/S/A/D e ↑/↓/←/→. É possível trocar ou remover cada associação; Restaurar teclas de movimento repõe somente esse grupo.

As mesmas preferências valem para primeira e terceira pessoa. O movimento continua relativo à câmera e usa as oito direções, a cadência e a colisão nativas. A tecla principal e a alternativa são independentes: segurar W e ↑ e soltar apenas uma mantém o avanço.

Esse contexto preserva os atalhos comuns do jogo: S pode continuar associado às magias fora do movimento da câmera. Teclas reservadas para câmera, pausa e captura de tela são protegidas; um conflito entre movimentos é recusado com identificação da associação existente. Se um padrão estiver indisponível, o reset informa isso sem tomar a tecla reservada.

As mudanças, incluindo uma alternativa explicitamente vazia, persistem no arquivo de preferências INI. Também foi corrigida a primeira tecla de movimento após usar gamepad: ela passa pelo contexto correto de teclado. Solturas, repetições e entradas antigas após mudar associação, foco, menu ou modo são tratadas para evitar movimentos presos ou acionamentos indevidos de atalhos.

Como entrar e se movimentar

Em Tristram, F4 alterna a visão original e o protótipo 3D. K percorre isométrica, órbita livre, terceira pessoa e primeira pessoa; esse atalho é remapeável. Home restaura a câmera original.

Na primeira pessoa, o movimento horizontal do mouse gira a câmera e o vertical muda a inclinação. Não é preciso segurar o botão central; a sensibilidade usa a preferência já salva. O controle só é ativado quando a plataforma confirma a captura relativa do mouse.

Entrada padrão Ação na primeira pessoa
W ou ↑ / S ou ↓ Avançar / recuar em relação à câmera.
A ou ← / D ou → Deslocar lateralmente.
Roda Aproximar da terceira até a primeira pessoa; afastar para voltar.
Esc Liberar o mouse e seguir a ação nativa.
Clique no mundo após a suspensão Retomar a captura; esse primeiro clique é consumido.

As combinações de WASD e setas são convertidas para as oito direções nativas, na mesma cadência de caminhada. A inclinação da câmera não inclina o deslocamento. Posição, velocidade, animação e colisão do personagem continuam sob as rotinas existentes do jogo. As teclas são independentes: segurar W e ↑ e soltar somente uma delas mantém o avanço.

Abrir interfaces e retomar o mouse

Menus, inventário, outros painéis e perda de foco suspendem o controle de primeira pessoa e limpam as entradas que ele possui. Sair desse modo também libera o mouse.

Fechar uma interface ou voltar à janela não recaptura o mouse automaticamente. Um novo clique esquerdo ou direito dentro do mundo retoma o controle; esse clique e sua soltura não executam uma interação. Deltas antigos são descartados, e teclas de movimento que já estavam seguradas precisam ser soltas e pressionadas novamente para mover.

A órbita livre e a visão isométrica conservam seus controles. Ao assumir um controlador, o jogo mantém a rotina nativa de gamepad e suspende esse adaptador de teclado e mouse.

Selecionar depois de girar a câmera

Durante a captura, a seleção usa o centro do viewport lógico do mundo, onde o código desenha o retículo. Girar a câmera ou usar a roda invalida a seleção anterior.

Um clique recebido antes do próximo desenho agora aguarda uma seleção atualizada, preservando a ordem entre movimentos do mouse, cliques e solturas. Isso evita usar o alvo anterior ao giro ou enviar uma caminhada indevida para o tile do herói. Olhar para o céu sem um alvo válido não produz um comando de chão.

A correção foi exercitada com seleção de chão pelo caminho CPU. Interações com NPCs, itens e combate ainda precisam de revisão em uma partida real, assim como a aparência do novo retículo nas diferentes escalas.

Altura dos olhos

Atualização de 8 de outubro, às 18:18:44 de Brasília: o relato de câmera baixa diante dos NPCs levou a uma calibração independente. A altura dos olhos na primeira pessoa passou de 1,1 para 1,7 unidade; o alvo da terceira pessoa permanece em 1,1. A correção do commit 4a276a10b já está instalada no mesmo iniciador.

Passaram 202 verificações de câmera e novamente 1.652 verificações dos controles. Uma comparação nativa CPU, em um ponto diante de Griswold e da ferraria, em 640×480, conservou a imagem indexada e a paleta da terceira pessoa byte a byte. Os 44 arquivos do perfil preservaram bytes, tamanho e data nessa instalação.

1,7 é uma calibração inicial, ainda sujeita à avaliação na partida diante de outros moradores e com outras classes e poses. Não houve mudança de modelos, materiais ou iluminação, nem teste de mouse físico, execução GPU ou medição de FPS nesta correção. A documentação da calibração registra os limites da amostra.

Roda entre as vistas e colisão da câmera

A roda preserva a direção e a inclinação ao alternar entre terceira e primeira pessoa. Distância e altura mudam gradualmente, mantendo a altura independente do alvo da terceira pessoa em 1,1 e a do olho da primeira pessoa em 1,7. Um clique após a roda aguarda a seleção atualizada, assim como um clique após girar a câmera; as interfaces conservam seu uso normal da roda.

A colisão visual usa os triângulos da arquitetura montada, incluindo as aberturas existentes, para proteger o olho e o plano próximo da câmera durante o movimento. Diante de uma parede, a câmera encurta imediatamente a distância e a recupera gradualmente quando há espaço. Isso não altera a colisão nem a navegação do personagem. Atores, árvores e rochas ainda ficam fora dessa proteção.

O que passou nos testes

Os resultados desta seção correspondem às entregas de 8 de outubro. O build Release/NONET x64 foi aprovado. O incremento de roda, WASD e colisão passou 253 verificações de câmera, 1.239 de entrada pura, 29 de colisão e 2.777 do caminho produtivo, além das regressões de 946 do HUD e 59.452 das configurações. A primeira instalação dos controles havia passado 673 verificações puras e 1.652 produtivas.

O diagnóstico CPU com o pacote selecionado percorreu 34 quadros: 14 tiveram a câmera limitada pela arquitetura e nenhum ficou sem posição segura. O índice espacial BVH dos 82.086 triângulos foi construído uma vez; a entrada sem avanço de tempo manteve imagem e paleta exatas. Essa amostra não cobre todas as estruturas ou posições.

Os testes exercitaram movimento nas oito orientações, combinações de WASD e setas, comandos e cadência nativos, colisão, suspensão e retomada, descarte de deltas e cliques ordenados após girar a câmera. O estado do gerador de números aleatórios foi preservado.

O diagnóstico produtivo usa o handler real do jogo e comandos nativos, mas substitui os serviços de foco e captura do sistema e roda com janela oculta, GPU desligada e perfil temporário. Isso não comprova o comportamento do mouse físico, Alt+Tab ou uma janela real. As regressões de HUD e configurações também não são uma aprovação visual do retículo. As 946 verificações do HUD desta rodada de câmera não cobriam o defeito das páginas Gameplay 1/2. Uma entrega separada instalou posteriormente a correção técnica do HUD; a confirmação na partida habitual pelo usuário continua pendente. Não houve execução GPU ou novo benchmark de FPS nesta rodada.

Testes e instalação do remapeamento

Em 9 de outubro, o build Release/NONET passou 5.341 verificações de entrada pura, 60.944 de configurações, 3.792 de runtime, 29 de colisão e 946 do HUD. Um gate separado de câmera produziu 24 PNGs CPU/GPU offscreen; essa prova finita de renderização não transforma os testes simulados de entrada em testes de dispositivos físicos.

O menu principal real passou 3.324 verificações, em português e inglês, nas resoluções 640×480 e 1920×1080. Foram exercitados conflitos, captura de teclas, solturas e repetições, Escape, desassociação e restauração completa ou parcial. Quatro pares de processos escritor/leitor confirmaram a persistência pelo INI, sem regravar as preferências na leitura. Duas ações foram efetivamente editadas; os oito IDs e padrões foram conferidos. O idioma veio do INI, sem teste de troca pela interface.

As 20 capturas indexadas do menu não incluem o fundo RGB final; duas amostras PT-BR foram inspecionadas. Instruções e descrições nativas longas podem recortar em 640×480. Essas imagens continuam privadas. Os testes de entrada e runtime substituem serviços físicos do SDL: mouse, teclado, gamepad, foco e Alt+Tab físicos, FPS sustentado e aprovação artística integral permanecem fora desta validação.

A instalação das 01:35 preservou conteúdo, tamanho e data dos 44 arquivos do perfil. Os três aliases receberam o mesmo executável, com backups e zero processos encerrados. O preparo posterior do iniciador alterou somente o recibo esperado de runtime.

Instalação e próxima avaliação

Na instalação anterior de 8 de outubro, às 19:31, os 44 arquivos do perfil habitual preservaram bytes, tamanho e data; os três aliases receberam o mesmo executável, sem encerrar processos. A preparação posterior do iniciador alterou somente o recibo esperado de runtime. A primeira instalação dos controles havia preservado 41 arquivos. Modelos, texturas, iluminação e o backend GPU não foram alterados por aquele incremento.

Após o lote anterior de melhorias na GPU, o autor relatou que “melhorou muito o desempenho do jogo!”. Esse retorno é uma avaliação subjetiva daquela entrega anterior; os controles de primeira pessoa não acrescentam uma medição de FPS nem um novo benchmark. A correção do zoom e recuperação da GPU permanece registrada separadamente.

O próximo passo é testar pelo iniciador habitual: alterar, desassociar e restaurar as teclas de movimento no menu principal, reiniciar para conferir a persistência e caminhar em primeira e terceira pessoa. A revisão também inclui roda entre as vistas, altura dos olhos diante dos moradores, câmera junto das paredes, captura e liberação do mouse, Alt+Tab, interfaces, retículo e cliques em NPCs e itens. Gravação/reprodução de demos legadas e captura em SDL1 continuam fora deste incremento.

O objetivo continua sendo Diablo 1 inteiro em 3D. Estes controles valem para o protótipo de Tristram; os demais níveis ainda usam a renderização original. A documentação atual dos controles separa a entrega instalada e as próximas avaliações.

Continue acompanhando.

Protótipo

Duas câmeras de gameplay e continuidade da Catedral

Atualização local de 10 de outubro: paredes opacas da Catedral, vãos de portas e grades preservados e nomes nativos dos itens em 3D. Gameplay e arte continuam em revisão.

5 min de leitura
Protótipo

Diablo 3D em vídeo: controles, Tristram e Catedral

Gameplay gravado por Douglas e prévias históricas mostram controles, HUD, Tristram, Ogden e Catedral. Vídeo horizontal e Short com legendas em inglês e limites do desenvolvimento.

2 min de leitura
Geometria

Catedral: materiais nativos e transparência mais leve

O piloto do primeiro andar recebe piso, alvenaria e madeira do original, com aproximações visuais explícitas. A cópia regional reduz o custo medido da transparência; formas, portas e gameplay ainda precisam de revisão.

7 min de leitura

Faça parte do Diablo 3D

Ajude esta comunidade a crescer

Ajude o Diablo 3D a crescer: entre no Discord para conversar com a comunidade e acompanhe as novidades do projeto no YouTube.

Entrar no Discord Acompanhar no YouTube

A participação é voluntária. Você pode abrir este convite pelo rodapé quando quiser.