3 puntos por GN⁺ 2024-05-18 | 1 comentarios | Compartir por WhatsApp

Doom no euclidiano: qué le pasa a un juego cuando pi no es 3.14159

  • Ponente: Luke Gotszling
  • Duración del video: 19 minutos
  • Evento: MCH2022
  • Fecha: 2022-07-23 ~ 2022-07-24

La importancia del valor de pi

  • El valor de pi (π) es una constante fija y cumple un papel importante en el renderizado visual dentro de la programación gráfica.
  • La trigonometría y otras técnicas matemáticas también son esenciales para el renderizado visual.
  • Se descubrió que el valor de pi usado en el código fuente de Doom era incorrecto.

Qué pasa al cambiar el valor de pi

  • Se explora qué le ocurre al juego cuando el valor de pi se cambia por uno aún más incorrecto.
  • También se revisa el impacto de cambiar otros valores incorrectos en funciones trigonométricas y constantes.
  • Se analiza cómo estos cambios alteran nuestra comprensión y capacidad para explorar el mundo virtual.

Las posibilidades de la geometría no euclidiana

  • Se explora si aplicar geometría no euclidiana al juego puede abrir posibilidades interesantes.
  • También se explican brevemente algunos trucos de optimización que permitían que el juego corriera bien en el hardware de la época.

Compilar una versión del juego con matemáticas incorrectas

  • Se proporcionan enlaces a otros juegos que usan un valor de pi incorrecto y a repositorios públicos de código fuente.
  • También se explica cómo el público puede compilar por su cuenta una versión del juego con matemáticas incorrectas.

La opinión de GN⁺

  • Importancia de los conceptos matemáticos: Esta charla muestra muy bien cuán importantes son los conceptos matemáticos en el desarrollo de software y la programación gráfica. En particular, la precisión de constantes como pi influye mucho en los elementos visuales de un juego.
  • Lo interesante de la geometría no euclidiana: Aplicar geometría no euclidiana en los juegos puede abrir nuevas posibilidades de jugabilidad. Esto puede dar nuevas ideas a los desarrolladores.
  • Trucos de optimización: Aprender cómo se optimizaban los juegos para el hardware de esa época también puede ser útil para la optimización de software actual. Ayuda a entender distintos enfoques para mejorar el rendimiento.
  • Valor educativo: El proceso de compilar un juego usando valores matemáticos incorrectos tiene un gran valor educativo. Les da a los programadores la oportunidad de aprender de forma práctica la importancia de los conceptos matemáticos.
  • Desafío técnico: Estos experimentos plantean desafíos técnicos y ayudan a los programadores a mejorar su capacidad de resolver problemas. Esto resulta especialmente útil para encontrar y corregir bugs en sistemas complejos.

1 comentarios

 
GN⁺ 2024-05-18
Comentarios de Hacker News

Resumen de comentarios de Hacker News

  • Ejemplo de Duke Nukem 3D

    • El nivel 'Lunatic Fringe' de Duke Nukem 3D implementó un pasillo circular que gira dos veces sin cruzarse usando el motor 'build'.
    • Esta técnica fue innovadora en ese momento y añadió diversión al modo multijugador.
    • También se usó para resolver el rompecabezas de 'conectar 3 casas y 3 servicios públicos sin cruces'.
  • La novela 'Operation Chaos' de Poul Anderson

    • La novela transcurre en un mundo paralelo donde la magia existe de verdad y avanza rápidamente junto con la ciencia.
    • El hijo del protagonista es secuestrado al infierno, y a partir de la pista de que la geometría del espacio-tiempo del infierno es no euclidiana, los científicos descubren cómo ir y volver del infierno de forma segura.
  • El consejo de buscar 84,600 en una base de código

    • Así como John Carmack recordó mal el décimo dígito de pi, buscar 84,600 en una base de código suele revelar casos donde alguien ingresó mal la cantidad de segundos en un día.
    • La lección es que conviene usar la biblioteca estándar en lugar de escribir constantes a mano.
  • Problemas de gráficos y movimiento

    • Los gráficos y el movimiento presentan glitches y al final el juego deja de ser jugable.
    • Más que llamarlo 'Doom no euclidiano', sería más apropiado verlo como el resultado de haber tocado las constantes del universo.
  • Modificar el código fuente de un emulador de consola

    • Puede ser divertido tomar el código fuente de tu emulador de consola favorito e insertar errores aleatorios de coma flotante o invertir el significado de instrucciones de salto.
    • Cuanto más viejo sea el juego, más probable es que siga funcionando y produzca una experiencia extraña.
  • Doom no es una simulación

    • Como Doom no es una simulación, cambiar constantes solo termina rompiendo algunas rutinas.
    • La mayoría de los cambios hacen que deje de ser jugable.
  • El valor máximo de pi

    • Hay una pregunta sobre cuál sería el valor máximo de pi.
    • Cuando pi es 4, es probable que ocurra un segmentation fault, así que el valor máximo jugable de pi probablemente sería apenas mayor que pi.
  • Pi en geometría no euclidiana

    • Incluso en geometría no euclidiana, pi sigue siendo pi.
    • La característica de la geometría no euclidiana es que la curvatura seccional no es 0.
    • Se puede medir la circunferencia de círculos pequeños para comprobar la diferencia con un círculo euclidiano.
  • Deseo de más explicación sobre la mecánica del juego

    • Hay comentarios de que el video debería haber explicado con más detalle la mecánica del juego y el efecto de cambiar pi.
  • Náusea inmediata

    • Algunos valores (e y pi/2) provocan náusea inmediata.