3 pontos por GN⁺ 2024-05-18 | 1 comentários | Compartilhar no WhatsApp

Doom não euclidiano: o que acontece com um jogo quando pi não é 3,14159

  • Palestrante: Luke Gotszling
  • Duração do vídeo: 19 minutos
  • Evento: MCH2022
  • Data: 2022-07-23 ~ 2022-07-24

A importância do valor de pi

  • O valor de pi (π) é uma constante fixa e desempenha um papel importante na renderização visual em programação gráfica.
  • Trigonometria e outras técnicas matemáticas também são essenciais para a renderização visual.
  • Foi descoberto que o valor de pi usado no código-fonte do jogo Doom estava incorreto.

O impacto de alterar o valor de pi

  • Explora o que acontece com o jogo quando o valor de pi é alterado para um valor ainda mais errado.
  • Também examina o impacto de alterar outros valores incorretos em funções trigonométricas e constantes.
  • Analisa que mudanças isso traz para nossa compreensão e capacidade de explorar mundos virtuais.

As possibilidades da geometria não euclidiana

  • Explora se há possibilidades interessantes no jogo ao aplicar geometria não euclidiana.
  • Também explica brevemente alguns truques de otimização usados para que o jogo rodasse bem no hardware da época.

Compilando versões do jogo com matemática errada

  • Fornece links para outros jogos que usam valores incorretos de pi e para repositórios públicos de código-fonte.
  • Também orienta o público sobre como compilar por conta própria versões do jogo com matemática errada.

Opinião do GN⁺

  • Importância dos conceitos matemáticos: Esta apresentação mostra muito bem como os conceitos matemáticos são importantes no desenvolvimento de software e na programação gráfica. Em especial, a precisão de constantes como pi afeta fortemente os elementos visuais de um jogo.
  • O interesse da geometria não euclidiana: Aplicar geometria não euclidiana a jogos pode abrir novas possibilidades de jogabilidade. Isso pode oferecer novas ideias para desenvolvedores de jogos.
  • Truques de otimização: Aprender formas de otimizar jogos para o hardware da época também pode ser útil para a otimização de software moderna. Isso ajuda a entender diferentes abordagens para melhorar desempenho.
  • Valor educacional: O processo de compilar um jogo usando valores matemáticos incorretos tem grande valor educacional. Isso oferece aos programadores uma oportunidade de aprender experimentalmente a importância dos conceitos matemáticos.
  • Desafio técnico: Esses experimentos oferecem desafios técnicos e ajudam programadores a melhorar a capacidade de resolver problemas. Isso é especialmente útil para encontrar e corrigir bugs em sistemas complexos.

1 comentários

 
GN⁺ 2024-05-18
Comentários do Hacker News

Resumo dos comentários do Hacker News

  • Exemplo de Duke Nukem 3D

    • A fase Lunatic Fringe de Duke Nukem 3D implementou um corredor circular que dá duas voltas sem se cruzar usando a engine build.
    • Essa técnica foi inovadora na época e deixou o modo multiplayer mais divertido.
    • Também foi usada para resolver o “quebra-cabeça de conectar 3 casas e 3 serviços sem cruzamentos”.
  • O romance Operation Chaos, de Poul Anderson

    • O romance se passa em um mundo paralelo onde a magia existe de verdade e evolui rapidamente junto com a ciência.
    • O filho do protagonista é sequestrado para o inferno, e os cientistas descobrem como ir e voltar de lá com segurança a partir da pista de que a geometria do espaço-tempo do inferno é não euclidiana.
  • O conselho de procurar 84.600 no codebase

    • Assim como John Carmack lembrou errado a 10ª casa decimal de pi, procurar por 84.600 em um codebase costuma revelar casos em que o número de segundos de um dia foi digitado errado.
    • A lição é que é melhor usar a biblioteca padrão do que escrever constantes diretamente.
  • Problemas de gráficos e movimento

    • Os gráficos e o movimento apresentam glitches e, no fim, o jogo fica impossível de jogar.
    • Em vez de chamar isso de “Doom não euclidiano”, seria mais adequado ver como o resultado de mexer nas constantes do universo.
  • Modificar o código-fonte de emuladores de console

    • Pode ser divertido pegar o código-fonte do seu emulador de console favorito e inserir erros aleatórios de ponto flutuante ou inverter o significado de instruções de desvio.
    • Quanto mais antigo o jogo, maior a chance de ele ainda funcionar, o que pode gerar experiências bem estranhas.
  • Doom não é uma simulação

    • Como Doom não é uma simulação, mudar constantes só serve para quebrar algumas rotinas.
    • A maioria das alterações torna o jogo injogável.
  • O valor máximo de pi

    • Há uma pergunta sobre qual seria o valor máximo possível de pi.
    • Quando pi é 4, é provável que ocorra um segmentation fault, então o maior valor jogável de pi provavelmente seria um pouco acima do valor normal de pi.
  • Pi na geometria não euclidiana

    • Mesmo na geometria não euclidiana, pi continua sendo pi.
    • A característica da geometria não euclidiana é que a curvatura seccional não é zero.
    • Dá para medir a circunferência de um círculo pequeno e verificar a diferença em relação a um círculo euclidiano.
  • Desejo de mais explicações sobre a mecânica do jogo

    • Há quem ache que o vídeo deveria explicar com mais detalhes a mecânica do jogo e os efeitos de alterar pi.
  • Náusea imediata

    • Alguns valores (e e pi/2) causam náusea imediata.