Hytale Modding
Informações estabelecidasServidorInterface

Personalização da IU

Informações sobre a personalização da IU no Hytale.

A interface do usuário pode ser personalizada por mods feitos diretamente no lado do servidor. Grande parte das telas da interface do usuário, mostradas aos jogadores, podem ser modificadas pelos donos de servidores através de mods.

Personalização da IU no Hytale

O Hytale oferece extensas capacidades de personalização da interface do usuário através de mods gerenciados pelo servidor, permitindo que os donos de servidores modifiquem muitas das páginas da IU com as quais os jogadores interagem.

Controle de fluxo

O sistema de IU do Hytale adota um padrão de fluxo de controle específico:

  1. O servidor envia os dados da IU para o cliente
  2. O cliente renderiza a IU
  3. O usuário interage com a IU (p. ex.: pressionando um botão)
  4. O cliente envia o evento de interação para o servidor
  5. O servidor executa a lógica de retorno de chamada para o evento

Essa arquitetura significa:

  • O cliente é responsável por renderizar a IU e enviar as interações do usuário para o servidor
  • O servidor lida com toda a lógica real por trás das interações do usuário
Possíveis implicações no desempenho

Como o servidor processa toda a lógica da interface, ocorre um impacto inevitável de latência na resposta aos comandos do usuário. Como os cliques e as interações dependem do processamento do servidor para serem validados, a latência da rede impacta diretamente a fluidez e a resposta da interface.

Além disso, uma vez que a modificação do lado do cliente não é suportada, nenhum valor modificado persiste no cliente.

Recursos de modelo da interface

O sistema de personalização da interface do Hytale funciona através da seguinte estrutura:

  • Modelo da IU: enviado ao cliente como um recurso
  • Comportamento da UI: definido no código Java
  • Layouts personalizados: Permite a criação de layouts de UI sob medida ao invés de reaproveitar os existentes (como modificações no menu do Minecraft)

Implementações do framework para a IU

Hytale atualmente suporta várias implementações da UI, com planos para consolidar no NoesisGUI:

Implementação legado

  • Serve como um exemplo das capacidades da modificação do servidor
  • Utiliza uma combinação de elementos do jogo, recursos de marcação de interface e código de mod em Java.
  • Utiliza uma linguagem de marcação personalizada legacy
  • Será descontinuado a favor do NoesisGUI

NoesisGUI (framework principal)

  • Usa a linguagem de marcação XAML para a definição da IU;
  • Compatível com várias linguagens para internacionalização;
  • Executa bindings em C# no lado do cliente, não em C++;
  • Representa a direção futura do sistema da IU do Hytale.

Terceiro framework

  • Em processo de descontinuação;
  • Será substituído por NoesisGUI como parte do esforço de consolidação.

Considerações de desempenho

Devido à natureza do processamento server-side da IU, há características de desempenho que devem ser consideradas, como:

  • Impacto na latência: os cliques dos botões e interações com a interface do usuário devem viajar para o servidor antes de ter efeito. Isso significa que a latência da rede afeta diretamente a capacidade de resposta da IU;
  • Sem Persistência de Cliente: Sendo que os mods client-side não é suportado, nenhum valor modificado persiste no client
  • Arquitetura Otimizada: O sistema de Hytale foi projetado para minimizar a latência através de protocolos de comunicação eficientes e otimizar a performance do servidor, garantindo interações suaves apesar dos requisitos de processamento do lado do servidor

A arquitetura prioriza a segurança e consistência ao centralizar a lógica UI no servidor mantendo experiências responsivas do usuário