3 points par GN⁺ 2024-05-18 | 1 commentaires | Partager sur WhatsApp

Doom non euclidien : que se passe-t-il dans un jeu quand pi n’est pas égal à 3,14159 ?

  • Présentateur : Luke Gotszling
  • Durée de la vidéo : 19 minutes
  • Événement : MCH2022
  • Date : 2022-07-23 ~ 2022-07-24

L’importance de la valeur de pi

  • La valeur de pi (π) est une constante fixe qui joue un rôle important dans le rendu visuel en programmation graphique.
  • La trigonométrie et d’autres techniques mathématiques sont également essentielles au rendu visuel.
  • Il a été découvert que la valeur de pi utilisée dans le code source du jeu Doom était incorrecte.

L’impact d’une modification de la valeur de pi

  • La présentation explore ce qui se passe dans le jeu lorsque la valeur de pi est remplacée par une valeur encore plus erronée.
  • Elle examine aussi les effets produits lorsque d’autres fonctions trigonométriques et constantes sont remplacées par de mauvaises valeurs.
  • Elle analyse les changements que ces modifications apportent à notre compréhension du monde virtuel et à notre capacité à l’explorer.

Les possibilités de la géométrie non euclidienne

  • La présentation s’intéresse aux possibilités intrigantes qu’offre l’application de la géométrie non euclidienne dans un jeu.
  • Elle explique aussi brièvement quelques astuces d’optimisation utilisées pour que le jeu fonctionne correctement sur le matériel de l’époque.

Compiler une version du jeu avec de mauvaises mathématiques

  • Des liens sont fournis vers d’autres jeux utilisant une valeur de pi incorrecte ainsi que vers des dépôts de code source publics.
  • Le public est également guidé sur la manière de compiler lui-même une version du jeu avec de mauvaises valeurs mathématiques.

L’avis de GN⁺

  • L’importance des concepts mathématiques : cette présentation montre très bien à quel point les concepts mathématiques sont importants dans le développement logiciel et la programmation graphique. En particulier, la précision de constantes comme pi a un impact majeur sur les éléments visuels d’un jeu.
  • L’intérêt de la géométrie non euclidienne : appliquer la géométrie non euclidienne à un jeu peut ouvrir de nouvelles possibilités de gameplay. Cela peut donner aux développeurs de jeux de nouvelles idées.
  • Les astuces d’optimisation : apprendre comment les jeux étaient optimisés pour le matériel de l’époque peut aussi être utile pour l’optimisation logicielle moderne. Cela aide à comprendre différentes approches d’amélioration des performances.
  • La valeur pédagogique : compiler un jeu en utilisant des valeurs mathématiques incorrectes a une forte valeur pédagogique. Cela offre aux programmeurs l’occasion d’apprendre expérimentalement l’importance des concepts mathématiques.
  • Le défi technique : ce type d’expérimentation constitue un défi technique et aide les programmeurs à améliorer leurs capacités de résolution de problèmes. C’est particulièrement utile pour trouver et corriger des bugs dans des systèmes complexes.

1 commentaires

 
GN⁺ 2024-05-18
Avis Hacker News

Résumé des commentaires de Hacker News

  • Exemple de Duke Nukem 3D

    • Le niveau « Lunatic Fringe » de Duke Nukem 3D utilisait le moteur « build » pour implémenter un couloir circulaire qui tourne deux fois sans se croiser.
    • Cette technique était innovante à l’époque et ajoutait du fun au mode multijoueur.
    • Elle a aussi été utilisée pour résoudre le « puzzle des 3 maisons et des 3 services publics à relier sans croisement ».
  • Le roman Operation Chaos de Poul Anderson

    • Ce roman se déroule dans un monde parallèle où la magie existe réellement et progresse rapidement aux côtés de la science.
    • L’enfant du protagoniste est enlevé en enfer, et grâce à l’indice selon lequel la géométrie spatio-temporelle de l’enfer est non euclidienne, des scientifiques découvrent comment s’y rendre et en revenir en toute sécurité.
  • Le conseil de chercher 8400 dans une base de code

    • Comme John Carmack s’était trompé en se rappelant le 10e chiffre de pi, chercher 8400 dans une base de code permet souvent de trouver des cas où le nombre de secondes dans une journée a été mal saisi.
    • La leçon est qu’il vaut mieux utiliser la bibliothèque standard plutôt que d’écrire les constantes en dur.
  • Problèmes de graphismes et de mouvement

    • Les graphismes et les mouvements se mettent à glitcher, et le jeu finit par devenir injouable.
    • Il serait plus juste de voir cela non comme un « Doom non euclidien », mais comme le résultat d’avoir touché aux constantes de l’univers.
  • Modifier le code source d’un émulateur de console

    • Il est amusant de prendre le code source de son émulateur de console préféré, d’y injecter des erreurs aléatoires en virgule flottante ou d’inverser le sens des instructions de branchement.
    • Plus le jeu est ancien, plus il a de chances de continuer à fonctionner, ce qui peut produire des expériences étranges.
  • Doom n’est pas une simulation

    • Doom n’étant pas une simulation, modifier les constantes revient simplement à casser certaines routines.
    • La plupart des modifications rendent le jeu injouable.
  • La valeur maximale de pi

    • Une question est posée sur la valeur maximale possible de pi.
    • Quand pi vaut 4, il y a de fortes chances qu’un segmentation fault se produise ; la valeur maximale jouable de pi serait donc probablement légèrement supérieure à pi.
  • Pi en géométrie non euclidienne

    • Même en géométrie non euclidienne, pi reste pi.
    • La caractéristique de la géométrie non euclidienne est que la courbure sectionnelle n’est pas nulle.
    • On peut mesurer la circonférence de petits cercles pour voir la différence avec un cercle euclidien.
  • Souhait d’avoir davantage d’explications sur les mécaniques du jeu

    • Certains estiment que la vidéo aurait dû expliquer plus en détail les mécaniques du jeu et les effets du changement de pi.
  • Nausée immédiate

    • Certaines valeurs (e et pi/2) provoquent une nausée immédiate.