CSCODEP
Loading...
CSCODEP.COM

UI panorâmica do CS2: vantagens em relação à interface

Examinamos o mecanismo de interface Panorama do CS2: a camada de UI baseada em XML/CSS, o acesso aos dados do HUD e os detalhes técnicos do desenvolvimento de sobreposições personalizadas.

O que é panorama e como funciona?

Panorama é o motor de interface utilizado pela Valve em seus jogos como CS2, Dota 2 e Deadlock. Todos os elementos visuais, como HUD, menu principal, tela de compras e placar, são criados com arquivos de layout baseados em XML, arquivos de estilo semelhantes a CSS e uma linguagem de script chamada Panorama Script. Essa estrutura é muito semelhante ao desenvolvimento web; Cada painel atua como um elemento DOM e está conectado ao estado do jogo no lado C++ por meio de ligação de dados. A visibilidade ou conteúdo de um painel é atualizado automaticamente quando o estado do jogo muda, o que é um ponto de entrada importante para entender a comunicação entre a UI e o mecanismo.

Acesse dados do HUD: saúde, munição, temporizador de bomba

Os painéis panorâmicos ouvem constantemente valores como saúde, munição, cronômetro de bomba em segundo plano e os refletem na tela. Este fluxo de dados pode, teoricamente, ser lido de fora; Camadas adicionais de informações, como mostrar o cronômetro de explosão da bomba maior e mais claro que o normal e resumir o estado de saúde dos companheiros de equipe em um pequeno painel, são criadas com este princípio. O objetivo aqui não é ocultar as informações fornecidas pelo jogo em si, mas sim tornar mais legíveis as informações que já estão na tela, mas apresentadas de forma pequena ou dispersa. Tais desenvolvimentos são feitos com uma camada de observação separada, sem tocar diretamente na árvore nativa do painel.

Camadas de informações adicionais com sobreposição independente

O sistema de sobreposição do PX8.2 sobrepõe sua própria camada de renderização no topo do loop de desenho do jogo, sem nunca entrar na árvore do painel do Panorama. Caixas ESP, pontos de radar, FPS e informações de ping são desenhados nesta camada independente; Nenhum arquivo XML ou CSS é compartilhado com os próprios painéis do Panorama. Esta distinção tem duas consequências importantes: primeiro, as atualizações da interface do jogo não quebram a sobreposição porque os dois são independentes um do outro; Em segundo lugar, como a sobreposição não interfere nos elementos nativos da UI, ela funciona de forma mais estável e não há conflito visual. No menu, a posição da sobreposição e a transparência podem ser ajustadas pixel por pixel, resultando em uma aparência consistente em cada resolução do monitor e escala do HUD.

Gestão de Desempenho e Riscos de Conflito

O Panorama já é um sistema de renderização em camadas que consome CPU e GPU; Colocar uma sobreposição adicional sobre ela pode estender o tempo do quadro se não for feito com cuidado. No PX8.2, a renderização de sobreposição é processada em um thread de renderização separado e é otimizada para rodar em sincronia com o loop de renderização principal do jogo, de modo que a perda adicional de FPS permanece praticamente imperceptível. A atualização da sobreposição compatível com vsync em monitores com alta taxa de atualização evita a oscilação das linhas (jitter). Em sistemas de baixo custo, a redução do número de elementos de sobreposição melhora ainda mais o desempenho; por exemplo, simplesmente ativar o ESP da caixa e desligar o desenho do esqueleto pode reduzir visivelmente o tempo do quadro.

Evitando métodos de detecção baseados em interface

Alguns métodos de detecção examinam a árvore de painéis do Panorama, procurando painéis inesperados ou não nos próprios arquivos do jogo; É assim que um painel .xml falso injetado pode aparecer. O PX8.2 elimina esse risco desde o início porque não adiciona nenhuma interface própria à árvore de painéis do Panorama, operando como uma camada de desenho completamente separada. Essa decisão de projeto não deixa rastros em nenhuma varredura de integridade baseada em interface. Parte dos anos de história livre de detecção de VAC do CSCodep é a manutenção meticulosa de tais separações no nível do motor, à medida que esse isolamento é revisitado e verificado a cada nova versão.

Artigos relacionados

Continue lendo: o que são os cheats CS2 · ver o pacote de cheats CS2 PX8 External

Todos os artigos