2022 - Non-Euclidean Doom: what happens to a game when pi is not 3.14159…

2022 ж. 23 Шіл.
447 466 Рет қаралды

media.ccc.de/v/mch2022-236-no...
We all know that the value of pi is a constant with a particular immutable value. Anyone who has done any graphical programming also knows that visual rendering relies not just on pi but trigonometry more broadly as well as other mathematical techniques. If we look into the source code of the first person shooter Doom we find that the value of pi used in the game is wrong. In this talk I will explore what happens when we subtly and not so subtly break math in the source.
Doom is a well known classic first person shooter game with source code released under the GPL in 1999. In this talk I will begin by exploring what happens to the game when we make the value of pi even more wrong. What about when we change other trigonometric functions and constants to incorrect values? How will our familiar understanding and ability to traverse this virtual world change when we do this. Are there any interesting gaming possibilities with non-Euclidean geometries? A brief segway will cover some optimization tricks made to enable the game to run well on hardware available at the time. At the end I will provide a link to other games and public source code repositories that also use an incorrect value of pi. Pointers will also be provided to allow the audience to compile their own incorrect math version of the game.
Luke Gotszling
program.mch2022.org/mch2022/t...
#mch2022 #MCH2022Curatedcontent

Пікірлер
  • Pi = (Health + 1) / 201 * 3.1415... The world becomes more and more unhinged as you loose health. You MUST find health bonuses, soul spheres, and mega spheres in order to have a normal experience. +1 so that PI is never 0.

    @BigFreakingCacodemon@BigFreakingCacodemon9 күн бұрын
    • I would've left out the +1 though You die, the game dies as well 🤣

      @Spikehead777@Spikehead7779 күн бұрын
    • Sadly, PI is a const and cannot be changed during runtime. But yeah, that would be hilarious.

      @markbloom7434@markbloom74349 күн бұрын
    • ​@@markbloom7434 nothing stops you from defining PI as a variable

      @yusuf_kizilkaya@yusuf_kizilkaya9 күн бұрын
    • ​@@yusuf_kizilkaya The lookup tables do. Granted, it's simple enough to precompute them for all health values.

      @4P5MC@4P5MC9 күн бұрын
    • ​@@yusuf_kizilkayayou'd have to constantly recalculate lookup tables tho

      @kirillbrest1239@kirillbrest12399 күн бұрын
  • Most important conclusion: Rounding down pi to 3 is an acceptable practice in game development

    @dannadx3840@dannadx38409 күн бұрын
    • More acceptable than whatever the fuck EA is doing

      @AnnieC.1993@AnnieC.19938 күн бұрын
    • In general, it depends what level of accuracy and precision you need. The smaller the circle, the larger the difference.

      @SmallSpoonBrigade@SmallSpoonBrigade7 күн бұрын
    • @@AnnieC.1993 A dumpster fire is more acceptable

      @ForgottenMyth@ForgottenMyth7 күн бұрын
    • @@AnnieC.1993 "pi = 3 polygons"

      @soupcangaming662@soupcangaming6627 күн бұрын
    • Or just use lots of triangles instead. Honestly i can't really think for what you would need pi, other then round objects. Is there some magic optimization somewhere needing PI?

      @no_name4796@no_name47966 күн бұрын
  • lets normalize a pi=e% speedrun

    @memes_gbc674@memes_gbc67410 күн бұрын
    • heh normalize... you're funny.

      @NoahtheEpicGuy@NoahtheEpicGuy9 күн бұрын
    • I read pi is on a spectrum

      @larseriksson1184@larseriksson11849 күн бұрын
    • @@NoahtheEpicGuy Heh heh shut up

      @bibo2445@bibo24458 күн бұрын
    • DOOM (Engineer Edition)

      @bruh.j4mes@bruh.j4mes8 күн бұрын
    • Let's normalise being a 30 year old virgin

      @Amberlynn_Reid@Amberlynn_Reid8 күн бұрын
  • As an engineer, I use the identity of pi=e=√g

    @PTFVBVB@PTFVBVB11 күн бұрын
    • And always get saved by sufficiently high safety factors

      @wernerviehhauser94@wernerviehhauser9410 күн бұрын
    • pi ≈ 1. it has the right number of digits

      @keiyakins@keiyakins10 күн бұрын
    • As a physicist I hate that I love this

      @neohavic6012@neohavic60129 күн бұрын
    • Found the astronomer ​@@keiyakins

      @dsdy1205@dsdy12059 күн бұрын
    • 2=e=3=pi=sqrt(g)

      @FunctionallyLiteratePerson@FunctionallyLiteratePerson9 күн бұрын
  • It turns into LSDoom

    @Evan64m@Evan64m10 күн бұрын
    • DooMT

      @SonOfMeme@SonOfMeme8 күн бұрын
    • @@SonOfMeme KetaDoom

      @martybyrnemusic@martybyrnemusic8 күн бұрын
    • @@martybyrnemusic nah you ruined it

      @SonOfMeme@SonOfMeme8 күн бұрын
    • ShrooM

      @FleshWizard69420@FleshWizard694207 күн бұрын
    • ​@@martybyrnemusic you don't understand how drugs work. At least, not ketamine. This is not how it feels to be in a k-hole. A K-Hole is weird, it's like you can't remember how you even got there, like that scene at the cafe in Inception where Di Caprio explains that you never remember the start of a dream, you never remember how you arrived there. The main thing about being in a k-hole is that everything kinda starts feeling like you're in a world of bubble wrap, or that everything in the world is pixelated. But it's less that you're seeing the world like that and more like you're _FEELING_ it. Time itself stops being one smooth movement and instead becomes very jittery and only progresses in distinct pixelated chunks like that too. It becomes next to impossible to move, because every step feels like it takes an absolutely monumental amount of time to happen, and you feel so shaky and your legs weak that you don't wanna risk moving anyway and so if you do, then it'll be on your hands and knees crawling so that you don't fall over. And sound becomes pixelated too, if that makes sense. It probably doesn't make sense, unless you've been in a k-hole before. You know like when you put your face up to a fan and start humming into it and it makes it sound weird? It's like that. Except you're the only person who can hear sound in that way, other people just hear you sounding normal. It's nothing like non-euclidean Doom.

      @duffman18@duffman187 күн бұрын
  • Carmack is always right, it's circles that are wrong!

    @AdrianMagni@AdrianMagni10 күн бұрын
    • π = John Carmack

      @SuPeRNinJaRed@SuPeRNinJaRed9 күн бұрын
    • This sounds like a line from The Simpsons

      @Chad48309@Chad483099 күн бұрын
    • of course the circles are wrong if they're coming up against supergenious alien in person suit John Carmack

      @NickiRusin@NickiRusin9 күн бұрын
    • psychic supersoldier prototype and brazilian jiu jitsu practitioner john carmack?

      @seltzer666@seltzer6667 күн бұрын
    • @@seltzer666 The same John Carmack who used chemlab thermite to break into his school so he could play with the school's Apple ][s.

      @EBHsswvZUM@EBHsswvZUM6 күн бұрын
  • 10:33 me trying to play doom after the lobotomy:

    @pleasantivan@pleasantivan9 күн бұрын
    • you should have two lobotomies, not only one.

      @monad_tcp@monad_tcp8 күн бұрын
    • ???

      @xanderplayz3446@xanderplayz34468 күн бұрын
    • @@xanderplayz3446sorry, let me explain it for you. It’s them trying to play doom after the lobotomy

      @Skiivin@Skiivin8 күн бұрын
    • Me trying to understand words after the lobotomy

      @user-cj3pk2tm9s@user-cj3pk2tm9s8 күн бұрын
    • #relatable

      @dispenser6257@dispenser62578 күн бұрын
  • At university we scattered parts of a zip file for installing Doom across the generic logins used for night classes. A batch file would go and retrieve the parts, assemble them, and install, and delete itself after. To hide from the sysadmin...

    @MichaelLesterClockwork@MichaelLesterClockwork5 күн бұрын
  • When he said "Pi=0 does it run?" and all the software developers in the audience confidently yell "NOOO!"

    @CoolAsFreya@CoolAsFreya8 күн бұрын
    • The "it doesn't compile" part is interesting, because calculating the LUTs is a build step and the program that does it crashes. And the segfaults happen because it tries to look up a value for an angle that's not in the table, I assume

      @M4Dbrat@M4Dbrat5 күн бұрын
    • Yeah, I figured it would throw a divide by zero error or, because of the lookup table, an indexing error.

      @Serenity_Dee@Serenity_Dee4 күн бұрын
  • It was my friend John Cash who discovered that Doom ran by using global broadcast packets, he saw that when he used a LanAlyzer to capture the traffic from their regular night-time deathmatches on the corporate IPX net. When he told Carmack, Carmack replied by sending him the source code and told him to "fix it!" Cash did so and later joined Carmack and Abrash to make Quake...

    @TerjeMathisen@TerjeMathisen7 күн бұрын
    • what

      @asuka_the_void_witch@asuka_the_void_witch3 күн бұрын
    • @@asuka_the_void_witch What what?

      @TheOriginalCoda@TheOriginalCoda3 күн бұрын
    • The Man in Black

      @lordbored2706@lordbored27063 сағат бұрын
  • I love the Jpeg injection part. Now the question isn't "can it run doom ?", it is "can it run on doom ?"

    @MrSkaizZ@MrSkaizZ9 күн бұрын
    • "can doom load run doom?"

      @landspide@landspide8 күн бұрын
    • DoomOS

      @JoshWiniberg@JoshWiniberg8 күн бұрын
    • That was indeed very cool.

      @thecatofnineswords@thecatofnineswords7 күн бұрын
    • @@landspide I'm fairly certain I've seen that. But maybe I'm just remembering that time someone (technically) got it running in Minecraft via redstone.

      @lilwyvern4@lilwyvern47 күн бұрын
    • @@JoshWinibergnew linux distro idea. based on arch to further solidify the meme value

      @ryanstedman41@ryanstedman415 күн бұрын
  • Now I want to make the lookup tables dynamic and make damage / healing cause the tables to regenerate with a value of pi with accuracy based on remaining health

    @veiledAutonym@veiledAutonym11 күн бұрын
    • Damn, that actually sounds really dope. Throw in some palette magic and maybe even texture shifting, sprite scaling or sound pitching as well while you're at it :D

      @thehellriddenBaron@thehellriddenBaron9 күн бұрын
    • or use dynamic tables that changes the value of pi to something between 2.5 and 3.3 every x seconds

      @hornylink@hornylink8 күн бұрын
    • ​@@thehellriddenBaron I saw this suggestion (linking pi to your health) in another comment and got nerd sniped by it. Long story short, I uploaded a video to my channel of me attempting to play nightmare with this change, and it's very cursed. In fact that's the title of the video. "Doom E1M1 Nightmare Difficulty but it's cursed". I also included the git diff in a gitlab snippet which is linked in the description. It would probably be more balanced being normalized to a range other than 1-100. Right now it's clamped to 1 so dying doesn't crash the game, but by the time you're below 50 health, you've already lost because basic navigation becomes impossible. Like, I'm in E1M2 right now and I'm stuck in the east stair wing because I can't turn around to get to the door.

      @BradenBest@BradenBest7 күн бұрын
    • ​@@BradenBestWoooow that's awesome!

      @robin9740@robin97407 күн бұрын
    • @@BradenBest real one

      @bosobot@bosobot7 күн бұрын
  • imagine making a friend on acid play the 3π version while he thinks its just normal doom

    @surthing6711@surthing67119 күн бұрын
    • probably will look normal to him and he will doubt acid kicked in

      @zloidooraque0@zloidooraque08 күн бұрын
    • "these tabs were bunk, man. you got burned"

      @benturner6270@benturner62706 күн бұрын
  • The “I hope somebody got fired for that blunder” was a tongue-in-cheek Simpsons reference, lol

    @yellowblanka6058@yellowblanka60588 күн бұрын
    • “Pi is equal to exactly three!!!”

      @dave7922@dave79223 күн бұрын
  • breathes really heavily into your ear "yeah"

    @plasma5545@plasma554510 күн бұрын
    • it's yeah, pretty yeah, a little... yeah

      @yobson@yobson10 күн бұрын
    • "so now it starts to just be yeah it's uh it's yeah um a little yeah pretty pretty hard"

      @SkilledTadpole@SkilledTadpole9 күн бұрын
    • ​@@SkilledTadpole Boioioioioioing🍆

      @JuanMendoza-qd5lm@JuanMendoza-qd5lm9 күн бұрын
    • "I bet he's thinking about that hottie in front of us" Him:

      @zelda_smile@zelda_smile8 күн бұрын
    • ​@@zelda_smilenothing hotter than my fridge running doom

      @KingLich451@KingLich4518 күн бұрын
  • Pi over 2: You have collapsed space-time into a smaller area. XD

    @Kazuo1G@Kazuo1G Жыл бұрын
    • ahhh fascinating

      @ginogarcia8730@ginogarcia87308 күн бұрын
  • An issue with this is that the maps are still euclidean even though the rendering is not, so you get a clash between different geometries.

    @Dayanto@Dayanto9 күн бұрын
    • I am also sure ist Not an real non euclidea geometry. You need tensor calculations. Objects are warped and don't disappear

      @stefanhoffmann5281@stefanhoffmann52818 күн бұрын
    • ​@@stefanhoffmann5281but the objects are 2D. Either visible or non visible.

      @RKroese@RKroese8 күн бұрын
    • @@RKroese nope : read Riemann

      @stefanhoffmann5281@stefanhoffmann52818 күн бұрын
    • @@stefanhoffmann5281 read riemann what exactly? any specific theorems/results you could point to?

      @XENOGOD@XENOGOD6 күн бұрын
  • 8:37 when the shrooms hit

    @the_pieces_fit@the_pieces_fit12 күн бұрын
    • Things are a little off, the walls move in a way that you don't expect, amd things start to shift 🤣🤣🤣

      @haydenlandry3837@haydenlandry383710 күн бұрын
    • Movies trying to show how a trip looks: *pink floating elephants everywhere* Actually how a trip looks like: *Doom with Pi=e*

      @ChaplainDMK@ChaplainDMK8 күн бұрын
    • Shrooms will eat a slice of your pi

      @FleshWizard69420@FleshWizard694207 күн бұрын
    • Shrooms hit in a nearby forrest once and I wanted to walk home as the mosquitos bugged me... normally a 15 min walk now felt like walking around in a maze. Everything further away than the tips of my shoes didn't make sense anymore... everything I focused on in front of me became an individual and isolated piece/snapshot of reality suspended in a void as if my brain lost the ability to "glue" the pieces together and turn everything in a coherent reality, which made navigating very challenging. A weak mind would've probably freaked out, I thought it was as interesting as it was annoying. The interesting part was having a direct experience on how bits and pieces of smaller realities become a coherent big reality.

      @PsychonauticExplorer@PsychonauticExplorer4 күн бұрын
    • kinda accurate actually huh

      @RaposaCadela@RaposaCadela4 күн бұрын
  • I think programmers should stop abusing the term "non-Euclidian". If you screw with the variables (or constants) in a program so it doesn't work properly anymore that isn't non-Euclidian it's just intentionally introducing bugs into a program which still uses Euclidian geometry only it doesn't produce the calculations you expect.

    @vapourmile@vapourmile8 күн бұрын
    • Yesn't

      @nowonmetube@nowonmetube5 күн бұрын
    • so you're telling me that making a euclidian world work in a way that breaks the euclidian part of it doesn't make it non-euclidian?

      @troyjohnson2137@troyjohnson21375 күн бұрын
    • @@troyjohnson2137 It isn't breaking anything. It's just changing the formula. If you swap 2 + 3 = 5 for 2.1 + 3 = 5.1 you haven't broken anything.

      @vapourmile@vapourmile5 күн бұрын
    • @@nowonmetube😂

      @SebastianGrantElKiva@SebastianGrantElKiva4 күн бұрын
    • Doesn't the change to pi make movement of the character non-euclidian? Well technically, the character doesn't move, the world moves around the character, but it does so relative to the player, so it is in essence a circle around the character. So by changing the value of pi, that circle now has a curvature stronger or weaker than it should have. Which makes it non-euclidian, yes?

      @bramvanduijn8086@bramvanduijn80864 күн бұрын
  • The question really is, between pi and 4, where exactly does it segfault. It clearly doesn't like pi=4 but likes pi=3.141952654 so where is the cutoff? Is 3.5 fine? 3.75? 3.25?

    @The-Anathema@The-Anathema10 күн бұрын
    • I thought about this too. Why didn't he put this in his talk??

      @4rumani@4rumani9 күн бұрын
    • And why would it segfault to begin with?!

      @sophiacristina@sophiacristina9 күн бұрын
    • Theres probably a bounding limit on the functions used , maybe they limited the domaine of definition to - pi to pi. And since the real pi is smaller by the the pi coded it works. Idk tho just a hypothesis

      @mrgunn3r904@mrgunn3r9049 күн бұрын
    • Maybe, but then that would require the function to have the correct definition of PI as well. More probably the maths result in a runtime error (division by zero or other illegal operation) at some value greater than pi. It's also worth noting that carmack's wrong pi is technically larger than pi, by 0.0000000003 but still it *is* larger, so the precise cutoff would be interesting (and the effects thereof likely subtle since 4 crashes) Anyway, it'd be trivial enough to test this myself but I don't actually care enough to do that. I just wish it was covered in the talk is all. Hell, given a few minutes I could work through the code and figure out why it crashes too but again: not worth the effort.

      @The-Anathema@The-Anathema9 күн бұрын
    • More interesting questions than does it play at -1000000. The talk had the bones of a good concept but not properly explored.

      @Blxz@Blxz8 күн бұрын
  • This is why all the cthulu mythos inhabitants go insane lol

    @julianaradanas6346@julianaradanas634610 ай бұрын
    • Omg Carmack is Cthulu

      @RKroese@RKroese8 күн бұрын
  • wait. That timeline though? Doom was released in 92 but opensourced in 1997? Opensourcing a game after just 5 years of release is wild, considering modern aaa are still expecting players to purchase games made 10+ years ago for modern day, adjusted for inflation, full-price.

    @paultapping9510@paultapping95109 күн бұрын
    • 90s were a period of rapid technological breakthroughs, a game would look completely outdated after just a few years. Quake came out in 1996, and it had a fully 3D graphics engine with free look. At that point, a game like Doom had no market value.

      @vytah@vytah9 күн бұрын
    • @vytah indeed, indeed. It's such a trip seeing how quite much has changed in the intervening years. Such a shame we don't live in the timeline where this is still the norm (opensourcing older games, that is).

      @paultapping9510@paultapping95109 күн бұрын
    • 1993 actually. Doom released in December 1993 and became source code was released in December 1997. So just 4 years.

      @atifarshad7624@atifarshad76248 күн бұрын
    • It's not the actual game (as in levels, graphics, sounds etc) that was made free, just the engine source code - unless you were going to pirate Doom then you would have been expected to pay for it

      @ThePurplePassage@ThePurplePassage8 күн бұрын
    • The Doom's distribution was initially a shareware. Meaning the Game Engine was free to share and use but not the contents of the game itself (maps, graphics, sounds...). Elite had just released the source code of the game engine, by doing this, the game is technically playable and saleable on everything.

      @psykauze@psykauze6 күн бұрын
  • Speedrunners: "What's code injection? I've never heard about that before and don't know what you can do with it." (and then they get told) "Oh its arbitrary code execution? cool"

    @kargaroc386@kargaroc3868 күн бұрын
  • The next frontier isnt what can we run doom on, its what we can run in doom. Asteroids is just the first step.

    @SeveralGhost@SeveralGhost5 күн бұрын
  • someone make me a sign that says if you are here for euclidean doom you're in the wrong room 😂

    @PlatFormerlyKno@PlatFormerlyKno8 күн бұрын
  • I wonder if you could use this for VR games. That way you can walk for miles without leaving your room. You'd probably get dizzy because you'd have to end up walking in cricles. However what if for every pi you used 2*pi that way you are trying to go left in the game but you actually walk in a circle. In order to walk slightly right you walk in a circle. Or maybe a straight line in the game requires you to walk in a circle. Maybe you could do it outside you walk in a large circle to go in a straight line. Turning left requires more turning than turning right. And going in a straight line requires turning.

    @helium73@helium7311 күн бұрын
    • This sounds like motion sickness: the game

      @saschabaer3327@saschabaer332711 күн бұрын
    • Check out Hyperbolica.

      @bb010g@bb010g11 күн бұрын
    • It's been around for a while and wobbling your head changes direction. Motion Sickness: The Game it is!

      @Neubulae@Neubulae10 күн бұрын
    • This exists! It is called "Redirected Walking" in research papers, see Nilsson et al, IEEE 2015

      @breathlessblizzard@breathlessblizzard10 күн бұрын
    • Check out Hyperbolica! It's a VR game with noneuclidean spaces -- the main hub area has 5 squares to a corner so it has more space per space

      @enoua5222@enoua522210 күн бұрын
  • 9:20 but what aboit non-hitscan weapons? Those might be fkd

    @forbiddenera@forbiddenera10 күн бұрын
    • yeah I really wanted to see a rocket

      @ph0end@ph0end9 күн бұрын
    • BFG-9000!

      @makipri@makipri2 күн бұрын
    • @@makipri I could be wrong but given that the only examples shown on his slides of the Doom splash-screen are those from the shareware doom1.wad, I think that's what he was using in this demonstration. If so, Plasma Rifle and BFG are unavailable even with cheats; the only non-hitscan weapon he could have shown was the Rocket Launcher.

      @ph0end@ph0endКүн бұрын
    • ​@@ph0endTechnically enemies like imps fire non hitscan projectiles.

      @megan00b8@megan00b823 сағат бұрын
  • I’d say “π = e” is the sweet spot 9:33 (aka DrunkDOOM) but ShroomDoom at 10:20 might be a little too high...

    @SuPeRNinJaRed@SuPeRNinJaRed9 күн бұрын
    • ShroomDoom

      @asuka_the_void_witch@asuka_the_void_witch3 күн бұрын
  • pi=3 is basically Playstation 1 mode!

    @bigginsmcsauce@bigginsmcsauce9 күн бұрын
  • I just submitted a bug report to a Google project and a Starlink project that had this wrong value of pi present. It makes me giggle like a little girl to know that even such large companies have replicated this discrepancy.

    @draco18s@draco18s6 күн бұрын
    • Heheh, imagine non-Euclidean geometry causing Musk's spaceships to explode...

      @CellGames2006@CellGames20063 күн бұрын
  • I know nothing about programming and I do math on my fingers but I find this absolutely fascinating.

    @GingkoBalboa142@GingkoBalboa142Күн бұрын
  • Let’s take it into the imaginary realm: Pi = i

    @antonc81@antonc818 күн бұрын
  • Having spent way too much time in E1M1 in my life... this makes my skin absolutely crawl in a way I can't adequately explain.

    @ObscuraDeCapra@ObscuraDeCapra6 күн бұрын
  • not sure I've ever been nauseated by a tech talk before

    @RoamingAdhocrat@RoamingAdhocrat9 күн бұрын
  • I like how the slide spelled it “segway” instead of “segue” - the homophone-induced visual metaphor is so strong for me that they’re just the same word in my mind

    @dymaxion3988@dymaxion39886 күн бұрын
  • That was a very fun talk given that code is involved ! Its amazing to see that after 30 years since launched this game is still disscused and studied. What a technical breakthrough Doom was ! ❤🎉

    @facundosoler2200@facundosoler22002 күн бұрын
  • "I bet he's thinking about that hottie in front of us" Him:

    @MinhTran-freespirit@MinhTran-freespirit9 күн бұрын
  • code injection via jpg? so you could port pico-8 stuff to run on doom?

    @champagnesupernova1839@champagnesupernova18399 күн бұрын
    • but will it run Doom?

      @abcpea@abcpea9 күн бұрын
    • to run Doom on Doom

      @xs246@xs2469 күн бұрын
    • @@abcpea someone did port doom to the pico-8, so it might be possible :3

      @champagnesupernova1839@champagnesupernova18399 күн бұрын
    • ​@@champagnesupernova1839It could be, which makes it even more interesting

      @dawid035@dawid0356 күн бұрын
  • I wonder if you could find the limits, figure out a way for the values and tables to be recalculated every tick, and then modulate the base value of pi with a (limited) feedback loop of something else, like the player's health or the look vert angle or some combination of who-knows-what-else.

    @scmstr@scmstr10 күн бұрын
    • That would be so sick!

      @philipegoulet448@philipegoulet44810 күн бұрын
    • @@philipegoulet448 you could even make it so it wouldn't update if you didn't move location, so that you had a *chance* at gaining a bearing.

      @scmstr@scmstr9 күн бұрын
  • I used to play this a lot as a kid; it was fun but also a frightening experience

    @pastorpresent4940@pastorpresent494016 күн бұрын
  • Lovecraft would have loved that. He anticipated that in his famous story "The Call of Ctulhu": "... and twisted menace and suspense lurked leeringly in those crazily elusive angles of carven rock where a second glance shewed concavity after the first shewed convexity."

    @Oli1974@Oli19746 күн бұрын
  • I think for most of the history of trigonometry the fastest way to calculate trig functions was using pre-computed tables.

    @knightrider585@knightrider5856 күн бұрын
  • "...and smokes of assorted types." Nice, very subtle.

    @unic0de-yvr@unic0de-yvr8 күн бұрын
  • The largest value of pi I would assume is whatever value that the lookup table will no longer be able to compute.

    @tylerduncan5908@tylerduncan59087 күн бұрын
  • well now I'm really curious what the highest value pi can be while keeping the game playable

    @Spax_@Spax_10 күн бұрын
    • same here. he had a whole gradient over numbers lower than pi, and none noticeably greater than pi

      @yixing09@yixing097 күн бұрын
    • If the lookup table for tangents had 4096 slots, then it's probably π + (π / 4096) or something like that, which causes an additional value in the table to become infinity or switch sign.

      @seriouscat2231@seriouscat22316 күн бұрын
  • Guys... I really love you so much... thanks a lot! I was searching for an inspiration for describing not euclidean spaces in a Call of Cthulhu adventure. Now i have it

    @marcocorrieri3681@marcocorrieri36815 күн бұрын
  • Lol, that was my idea for day of PI 14 of March, glad that somebody made this already and i don't have to recompile any doom port for that :)

    @blusterhash@blusterhash9 күн бұрын
  • Such an enjoyable presentation. Thanks for this!

    @ObviousSchism@ObviousSchism9 күн бұрын
    • I wish I could understand why anyone would think this. I'm trying to put myself in the shoes of a software engineer and still can't see how I would find this entertaining or even mildly interesting? If you can explain it, I'm curious?

      @cichlisuite2@cichlisuite26 күн бұрын
    • ​@cichlisuite2 I randomly came across this. I have no idea about code or developing, neither am I good at maths. I clicked it out of pure curiosity expecting the game to look trippy with changed pi values, and it did. That was neat :) Hence me liking this.

      @nickkohlmann@nickkohlmann6 күн бұрын
    • @@nickkohlmann Thanks for the explanation. I also randomly came across it and watched hoping it might show something interesting. It wasn't that trippy to my eyes and the presentation style was about as drab as it could be. But good to know that for some the visuals alone were enough to generate enjoyment. I thought maybe you might have to understand coding or game mechanics.

      @cichlisuite2@cichlisuite26 күн бұрын
    • @@cichlisuite2 You never think "what would the universe look lik e if the constants are different?" or "what would it be like to live in a two dimensional world?" If you would like to explore the second question, go read the book Flatland by A. Square.

      @bramvanduijn8086@bramvanduijn80864 күн бұрын
  • “Hyperbolica” on Oculus Quest deserves special mention. Non-Euclidean vr is fun

    @drd2093@drd20938 күн бұрын
  • Stuff like this makes math look cool. If I had lessons in high school that allowed me to slice open Doom and play around then maybe I wouldn't have had to take Algebra II three fucking times.

    @keithincomics6102@keithincomics61028 күн бұрын
  • You didn't try the Indiana Legal pi of 3.2 😢

    @ObiwanNekody@ObiwanNekody5 күн бұрын
  • I like this video becasue im not knowledgeable enough to understand the JPEG injection part, but im delighted that the audeince did and it made them happy.

    @altusshow7574@altusshow75743 күн бұрын
  • Are there harmonic resonance points along the substituted value for pi? Regards from a Tom :)

    @tomdavies6443@tomdavies64436 күн бұрын
  • So does it calculate the x,y coordinate of objects using pi, because that may explain the x,y shifting being amplified, makes me wonder if you could create an incorrect map file which would then sort of work correctly.

    @dr_jaymz@dr_jaymz7 күн бұрын
  • Software Engineer - Data Platforms here. Precomputing via LUTs is such a great strat. I use it all the time, especially when you don't need reactive concurrency for data retrieval. Say you've got a PowerBI model (ugh IKR), selecting from data on that model takes compute, DAX on the query takes compute... Say, why don't we use a CTE to precompute the results for the semantic model? Then we can just create a holding table and truncate it and insert from the view every time we want to run this report. Well that just removed a lot of compute time for end users! And since we're inserting a whole dataset, we can then alias that against anything else we might want precomputed... How about a date slicer with historical values grouped by date? Dynamic, complex, historical queries. In PowerBI. Resolved to the end user in 0.001s Powerful stuff LUTs. Oh they also make LODs a lot easier in Game Design. Dame with lighting and reflection probes too actually.

    @JetJockey87@JetJockey874 күн бұрын
  • What would make this really weird is if the object hitboxes and the map were actually moving. I don't think they are, since they are determined by the map developer, without need for pi (they are simple co-ords)

    @idogaming3532@idogaming35327 күн бұрын
  • This is what Lovecraft was talking about.

    @henriquereisjr6771@henriquereisjr67717 күн бұрын
  • I think 3.5 would have been an interesting one to try, between pi and 4

    @oz9884@oz98842 күн бұрын
  • I wonder if pi=3.2 will work. If so, that needs to be released as "Indiana Doom"

    @erickdredd@erickdredd8 күн бұрын
  • I think this is the closest I will ever get to being a 4th dimensional being

    @etaidade3983@etaidade39839 күн бұрын
  • I love those kind of talk

    @shotasdg3679@shotasdg36799 күн бұрын
  • So what's the convergence function for non-euclidean Doom playability?

    @evancourtney7746@evancourtney77468 күн бұрын
  • I was missing pi=3.15 or something like that. Would have been interesting for what values of fake_pi > pi it still would have been playable.

    @Oli1974@Oli19746 күн бұрын
  • Is it possible to find "sweet spots" on the map where things appear normal until the player moves? Regards from a Tom :)

    @tomdavies6443@tomdavies64436 күн бұрын
  • are there any practical advantages for speedruns of the incorrect value of pi = 3.14...7, like going through walls, increase of max speed etc?

    @cynth0984@cynth09846 күн бұрын
  • Reminds me of MIT's "A Slower Speed of Light" for some reason

    @selfworm@selfworm2 күн бұрын
  • Would be interesting to see what that actually do to the geometry of the space and how/if things change relative to player or camera movement and stuff like that.

    @TiagoTiagoT@TiagoTiagoT7 күн бұрын
  • as an engineer, put a highpass filter on that audio, holy shit that rumble... why?

    @ZeMovinPixxle@ZeMovinPixxle9 күн бұрын
    • As a mechanical engineer this really fucks with my audio engineering sensibilities, won't this in-person conference speaker think of the KZhead sound quality?!

      @arenomusic@arenomusic9 күн бұрын
    • @@arenomusic can easily be done in post quickly before an upload. fuck, id do it for free

      @ZeMovinPixxle@ZeMovinPixxle9 күн бұрын
    • @@ZeMovinPixxle Wasn't watching with headphones but I get what you mean 😂 It's part of the IMMERSION

      @arenomusic@arenomusic9 күн бұрын
    • @@arenomusic i work events sometimes and we always put a highpass on every microphone.

      @ZeMovinPixxle@ZeMovinPixxle9 күн бұрын
    • It's for artistic effect

      @ictogon@ictogon9 күн бұрын
  • I'm not sure that this is actually non-euclidean, but I'm interested in what is actually going on under the surface here.

    @TheJmax04@TheJmax046 күн бұрын
  • If you compute the circumference of Earth using the incorrect value, the result is 4 cm larger than using the correct value, so errors are negligible. However, it would be interesting to use the value 3.2 for pi in this simulation, since this was the value proposed in the Indiana pi bill of 1897, that sought to fix the value of pi once and for all. Using the Indiana value for pi, the calculation of Earth's circumference would be 742.6 km too large.

    @kjeldgaard0@kjeldgaard06 күн бұрын
  • I love how with this crowd the question "Why do anything like this?" is not asked, or even considered.

    @davidgarcia1163@davidgarcia116310 сағат бұрын
  • this is funny. i just watched another conference which started with a discussion on pi and i think the lecturer used that same incorrect approximation as an icebreaker

    @tsvtsvtsv@tsvtsvtsv5 күн бұрын
  • It seems kind of odd, but computing trigonometric functions in hardware has gotten so fast that on modern hardware it beats table-driven functions. Partly that's an accuracy issue, but if we don't mind weird visual artifacting, then I guess it doesn't matter, and clearly there are games now that use the effect intentionally.

    @anon_y_mousse@anon_y_mousse7 күн бұрын
  • How much time do you have on your hands?

    @HFamilyDad@HFamilyDad6 күн бұрын
  • 10:33 the world melting around you doom guy: 😐🤨

    @trannusaran6164@trannusaran61645 күн бұрын
  • The question is no longer can it play Doom, the question is weather you can.

    @void6432@void64328 күн бұрын
  • *sporadic half-hearted clapping* "Thank you for the warm welcome."

    @timburlingame5893@timburlingame58934 күн бұрын
  • That was so cool!

    @Raven3one@Raven3one8 күн бұрын
  • 12:07 so it compiles when you fit a number by original digital pattern of pi, like, x.xxxxx ?

    @queterian1526@queterian15266 күн бұрын
    • I don't think it would "not compile" for any other value than 0

      @lionel4685@lionel46854 күн бұрын
  • since computers are powerful enough, you could have some code that periodically changes the lookup table values based on new values of pi. That would be interesting to see

    @mathgeniuszach@mathgeniuszach8 күн бұрын
    • Or calculate them instead of looking up, if you're going to be updating the lookup tables anyway the performance boost from using lookup tables is gone. That way you can put powerups in the map that change all sorts of constants.

      @bramvanduijn8086@bramvanduijn80864 күн бұрын
  • Doom's existence skewing over 2000 code commits is amazing.

    @rompevuevitos222@rompevuevitos2225 күн бұрын
  • I have a distant memory of taking a value of Pi from somewhere dubious, to use in some serious software.

    @SeanHoulihane@SeanHoulihane7 күн бұрын
  • I suspect large values of pi don't work because it runs into DOOMs various hard coded size limits. I wonder if it would work in limit removing ports. The infinitesimal and zero values appear to be triggering a hall of mirrors effect. With the title screen.

    @universalperson@universalperson8 күн бұрын
  • This is how I perceive moving through higher dimensions with a 3D body

    @heyimgoingtoplaysomegames@heyimgoingtoplaysomegames20 сағат бұрын
  • Might have to speedrun this.

    @angelapianomusicstudio3816@angelapianomusicstudio38164 күн бұрын
  • Very interesting. With today's modern computers and the processing power available to them, are there still lookup tables in place for certain functions?

    @AllenHaid@AllenHaid7 күн бұрын
  • 4:20 Did he not have a pocket calculator at his disposal?

    @hueyiroquois3839@hueyiroquois38396 күн бұрын
  • Even in these 93 terms, I may as well be a fly on the wall listening to some conversation in from some remote village in the Andes or could be an alien outpost on an unknow planet.

    @survidmt@survidmt5 күн бұрын
  • Take a drink everytime hes "um" or "yeah". 3 drinks for an "um... yeah"

    @blah9500@blah95005 күн бұрын
  • We've got wolfenstein on a z80 at 14 and 28mhz see the zx spectrum next and the atm turbo 2+

    @ZXSpectrum128K@ZXSpectrum128K2 күн бұрын
  • The biggest takeaway I got from this was that even in a non-euclidean world Doomguy can still smite his enemies.

    @EHellKnight@EHellKnight7 күн бұрын
  • >guitars Hackers in 1993 were so much cooler.

    @Tuckerslam@Tuckerslam9 күн бұрын
  • Its not really non-euclidean geometry with a fixed value of pi, its just a bug. Value of pi would vary with position/size of circle in a euclidean geometry. It can't be fixed at 3.

    @tinkeringtim7999@tinkeringtim79995 күн бұрын
  • i have often wondered what the universe would be like if pi was different. It's difficult to visualise..

    @kahlzun@kahlzun8 күн бұрын
  • holy moly... PI being 3 is trippy as ballz man.

    @MrJC1@MrJC16 күн бұрын
  • 8:53 I ❤ this

    @kilianlindberg@kilianlindberg4 күн бұрын
  • For the record, that's STILL the fast way to do trig functions.

    @codahighland@codahighland2 күн бұрын
  • The reason for lookup tables wasn't that there was no 3D acceleration. The reason was that you couldn't assume there was an FPU! The first Intel x86 chip with an integrated FPU was the Pentium (originally with its FDIV bug). 386 and 486 didn't have one. That's a bit of an egregious error to make in a presentation like this.

    @samiraperi467@samiraperi4676 күн бұрын
    • 486 already had an integrated FPU. en.m.wikipedia.org/wiki/I486

      @makipri@makipri2 күн бұрын
  • I wonder if there is a clever way to distort reality for Championship Manager (specifically 03-04) that creates lots of lovely impossible scenarios?😅😅😅

    @robertwilloughby8050@robertwilloughby80504 күн бұрын
  • You need lookup table because calling sin and cos function from C++ Requires a call to math co processor everytime. This means halting ALU every time. Can cause bottleneck in speed.

    @mohsinnaseer9892@mohsinnaseer98926 күн бұрын
    • So LUT Caches those values In array on startup So you don't need to call sin or cos functions everytime.

      @mohsinnaseer9892@mohsinnaseer98926 күн бұрын
KZhead