Informações do código do servidor
Slikey compartilhou algumas informações sobre o código do servidor em 15/12/2025. Este documento abrange os principais pontos e os tópicos dessa discussão.
As informações a seguir baseiam-se em observações compartilhadas pelo Diretor Técnico Slikey, em 15 de dezembro de 2025, no servidor de Discord do Hytale. Ele fornece uma visão geral da arquitetura do código do servidor e das capacidades dos plugins.
Este documento é composto principalmente por falas do próprio Slikey, com poucas observações adicionais. A ideia é manter o que foi dito em vez de mudar as palavras e o contexto.
Código-fonte do servidor
O servidor será lançado como shared source. Teremos acesso ao código-fonte sem qualquer ofuscação e com todos os seus comentários.
Licença
A licença autoriza o uso em tudo o que for ligado ao Hytale. A única restrição é não usar o servidor ou o código para fazer um jogo próprio ou comercializar os algoritmos da empresa.
Sistema de permissão
Após ser questionado no servidor Hytale Modding, o Arquiteto Chefe Zero respondeu:
É bastante básico, por isso não espere muito, mas sim, temos um sistema de permissões integrado. Também suporta a implementação do seu próprio backend. Ex. se você quisesse armazená-lo em um banco de dados.

Implementação da geração de mundo
O seguinte bloco de texto é diretamente do Arquiteto Chefe Zero:
Você pode implementar uma geração de mundo personalizada por um plugin de maneira super fácil. Portanto, se você deseja uma configuração ou lógica totalmente diferente para gerar terrenos, pode adicioná-la a um plugin e, em seguida, configurar um mundo para usá-la. Temos alguns prefabs de carregamento e existe código nos geradores de mundos atuais que poderia ser reutilizado, mas não há APIs específicas para os detalhes da geração em si.
public interface IWorldGenProvider {
BuilderCodecMapCodec<IWorldGenProvider> CODEC = new BuilderCodecMapCodec<>("Type", true);
IWorldGen getGenerator() throws WorldGenLoadException;
}public interface IWorldGen {
@Nullable
WorldGenTimingsCollector getTimings();
CompletableFuture<GeneratedChunk> generate(int seed, long index, int x, int z, LongPredicate stillNeeded);
@Deprecated
Transform[] getSpawnPoints(int seed);
@Nonnull
default ISpawnProvider getDefaultSpawnProvider(int seed) {
return new FitToHeightMapSpawnProvider(new IndividualSpawnProvider(getSpawnPoints(seed)));
}
default void shutdown() {}
}Trechos de código do servidor
Alguns trechos de código de um plugin que eles criaram também foram compartilhados. Os trechos a seguir são citações diretas do diretor técnico Slikey:
Plugin BlockSpawner
Tudo bem, vou deixar aqui alguns trechos de código para um plugin simples chamado “BlockSpawner”, que se transformará em um bloco “aleatório” quando colocado no mundo com base nas regras configuradas.
Há mais código aqui em geral, mas ele mostra o Sistema de Ativos e o layout do plugin. Você pode ver que o sistema de ativos define “Codecs” que são usados para serializar e desserializar dados. Usando esses codecs, podemos gerar esquemas. Digamos que você se conecte a um servidor e abra o editor de ativos: o servidor enviará esses esquemas - assim, todos os tipos de ativos definidos no lado do servidor, mesmo os seus próprios, agora fazem parte do editor de ativos no cliente - não é necessário fazer nada, basta aproveitar a interface do editor para criar os ativos que você definiu.

Acho que essa parte também mostra um pouco como usamos constantes para armazenar algumas chaves de idioma - Slikey (em referência à imagem abaixo)

Por exemplo, criamos um que fica vazio, sem carregar nenhum bloco do disco. Você pode adicionar um MySQLChunkStorageProvider, que pode ler os dados de um banco de dados. O mesmo vale para o worldgen. Basta implementar essa interface para gerar um gerador de mundos - slikey.

Quero dizer, aqui estão todas as armas definidas, você me diga, obviamente você descobrirá limitações, mas acho que há muito espaço para fazer mudanças — isso é realmente difícil, porém, há muito QoL para acontecer aqui.

Perguntas e respostas técnicas de desenvolvedor
Resumo completo de dicas técnicas dos desenvolvedores de Hytale, cobrindo arquitetura, modificação, sistemas de gameplay e filosofia de desenvolvimento.
Desenvolvimento Server-First
Informações sobre o significado de "desenvolvimento server-first" e mais.