2 pontos por GN⁺ 2023-08-11 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2023-08-11
Comentários no Hacker News
  • A republicação do código-fonte de Quake II trouxe uma onda de nostalgia à comunidade técnica
  • Muitos comentaristas compartilharam que aprenderam a programar com Quake II, destacando o código claro e consistente do jogo como uma excelente ferramenta de aprendizado
  • Quake II foi usado no fim dos anos 1990 e no início dos anos 2000 para ensinar aulas de VR a crianças, permitindo que criassem seus próprios níveis de jogos de realidade virtual
  • Alguns usuários compartilharam memórias de criar mods para o jogo, e um deles até atribui sua carreira como programador às primeiras experiências com Quake II
  • O relançamento também provocou discussões sobre a preservação de jogos antigos, com alguns usuários sugerindo que jogos que não são mais vendidos ou suportados deveriam ser liberados como código aberto por sua importância cultural
  • A republicação do código-fonte de Quake II foi elogiada pela compatibilidade com ferramentas modernas de programação, como o clang
  • Alguns usuários expressaram decepção pelo fato de o relançamento não incluir uma versão para Linux, mas reconheceram que a id (desenvolvedora do jogo) manteve seus princípios
  • O relançamento também gerou discussões sobre a convenção de usar o sufixo "_t" em tipos de C/C++ usados no código-fonte de Quake II
  • Os usuários recomendam experimentar o Quake2Quest no Oculus Quest 2 para reviver a experiência nostálgica do jogo