- O Quake II relançado em 2023 introduziu uma nova API para comunicação entre o servidor e os módulos do jogo, um novo protocolo de rede e um módulo de "jogo do cliente" para melhores oportunidades de modding.
- A base de código atualizada mescla os módulos de jogo separados do jogo original e exige um compilador C++17.
- A DLL do jogo é compatível com Clang, VS2019 e VS2022, e pode ser compilada tanto em C++17 quanto em C++20.
- A versão relançada oferece suporte a uma taxa de tick de 40hz, proporcionando uma experiência de jogo melhor e mais precisa em comparação com os 10hz originais.
- A DLL do jogo agora não usa mais varargs em funções, transferindo a responsabilidade da formatação para quem faz a chamada.
- A versão relançada inclui mudanças nas funções matemáticas para facilitar o trabalho, usando
constexpr quando apropriado e sobrecarga de operadores.
- As mudanças no método sobre "se a entidade está visível no frame para o cliente" incluem suporte a tela dividida e culling de atenuação de som.
- A versão relançada oferece oportunidades ampliadas de modding, mas, devido a mudanças estruturais importantes, mods existentes podem precisar ser reescritos para usar a nova base de código.
- O movimento do jogador foi ajustado para que o módulo do jogo possa alterar a física e ainda funcionar com a previsão do cliente.
- As Configstrings foram atualizadas, com o comprimento máximo aumentando de 64 para 96, e determinadas faixas agora podem se estender por várias linhas.
- A versão relançada inclui mudanças em estruturas, adicionando novas flags em
svflags e alterando effects_t de uint32_t para uint64_t para representar mais efeitos.
- Um novo parâmetro
_key foi introduzido para evitar que o mesmo efeito seja enviado várias vezes para jogadores em tela dividida.
- O sistema de salvamento agora grava dados de nível e de jogo em JSON UTF-8, facilitando a navegação para desenvolvedores.
- O sistema de salvamento não faz mais interface direta com o sistema de arquivos, e outros mods não são obrigados a usar JSON.
- O protocolo de servidor do Quake II foi atualizado, incluindo a remoção de desafios fora de banda, mudanças nas mensagens de conexão e várias atualizações em pacotes
svc.
- O texto fornece explicações detalhadas sobre várias interações entre servidor e cliente, como ler diferentes tipos de dados do bitstream e como tratar flags e chaves específicas nos dados.
- O texto também explica a função de vários pacotes servidor-cliente, como
svc_waitingforplayers, svc_bot_chat, svc_poi, svc_help_path e svc_achievement, além de como ler seus dados.
- O pacote
clc_stringcmd é usado para ler comandos de string enviados do cliente para o servidor.
- O texto também descreve como lidar com casos especiais, por exemplo, quando uma chave diferente de zero é especificada para um POI, ou quando o tempo de um POI é definido como
0xFFFF ou 0.
1 comentários
Comentários no Hacker News