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

  Рет қаралды 653,585

MCH2022

MCH2022

Жыл бұрын

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

Пікірлер: 860
@BigFreakingCacodemon
@BigFreakingCacodemon 29 күн бұрын
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.
@Spikehead777
@Spikehead777 29 күн бұрын
I would've left out the +1 though You die, the game dies as well 🤣
@markbloom7434
@markbloom7434 29 күн бұрын
Sadly, PI is a const and cannot be changed during runtime. But yeah, that would be hilarious.
@yusuf_kizilkaya
@yusuf_kizilkaya 29 күн бұрын
​@@markbloom7434 nothing stops you from defining PI as a variable
@4P5MC
@4P5MC 29 күн бұрын
​@@yusuf_kizilkaya The lookup tables do. Granted, it's simple enough to precompute them for all health values.
@kirillbrest1239
@kirillbrest1239 29 күн бұрын
​@@yusuf_kizilkayayou'd have to constantly recalculate lookup tables tho
@dannadx3840
@dannadx3840 28 күн бұрын
Most important conclusion: Rounding down pi to 3 is an acceptable practice in game development
@AnnieC.1993
@AnnieC.1993 27 күн бұрын
More acceptable than whatever the fuck EA is doing
@SmallSpoonBrigade
@SmallSpoonBrigade 27 күн бұрын
In general, it depends what level of accuracy and precision you need. The smaller the circle, the larger the difference.
@ForgottenMyth
@ForgottenMyth 27 күн бұрын
@@AnnieC.1993 A dumpster fire is more acceptable
@soupcangaming662
@soupcangaming662 27 күн бұрын
@@AnnieC.1993 "pi = 3 polygons"
@no_name4796
@no_name4796 26 күн бұрын
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?
@memes_gbc674
@memes_gbc674 Ай бұрын
lets normalize a pi=e% speedrun
@NoahtheEpicGuy
@NoahtheEpicGuy 28 күн бұрын
heh normalize... you're funny.
@larseriksson1184
@larseriksson1184 28 күн бұрын
I read pi is on a spectrum
@bibo2445
@bibo2445 28 күн бұрын
@@NoahtheEpicGuy Heh heh shut up
@bruh.j4mes
@bruh.j4mes 28 күн бұрын
DOOM (Engineer Edition)
@Amberlynn_Reid
@Amberlynn_Reid 28 күн бұрын
Let's normalise being a 30 year old virgin
@Evan64m
@Evan64m 29 күн бұрын
It turns into LSDoom
@SonOfMeme
@SonOfMeme 28 күн бұрын
DooMT
@martybyrnemusic
@martybyrnemusic 27 күн бұрын
@@SonOfMeme KetaDoom
@SonOfMeme
@SonOfMeme 27 күн бұрын
@@martybyrnemusic nah you ruined it
@FleshWizard69420
@FleshWizard69420 27 күн бұрын
ShrooM
@duffman18
@duffman18 26 күн бұрын
​@@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.
@PTFVBVB
@PTFVBVB Ай бұрын
As an engineer, I use the identity of pi=e=√g
@wernerviehhauser94
@wernerviehhauser94 Ай бұрын
And always get saved by sufficiently high safety factors
@keiyakins
@keiyakins 29 күн бұрын
pi ≈ 1. it has the right number of digits
@neohavic6012
@neohavic6012 29 күн бұрын
As a physicist I hate that I love this
@dsdy1205
@dsdy1205 29 күн бұрын
Found the astronomer ​@@keiyakins
@FunctionallyLiteratePerson
@FunctionallyLiteratePerson 29 күн бұрын
2=e=3=pi=sqrt(g)
@AdrianMagni
@AdrianMagni Ай бұрын
Carmack is always right, it's circles that are wrong!
@SuPeRNinJaRed
@SuPeRNinJaRed 29 күн бұрын
π = John Carmack
@Chad48309
@Chad48309 28 күн бұрын
This sounds like a line from The Simpsons
@NickiRusin
@NickiRusin 28 күн бұрын
of course the circles are wrong if they're coming up against supergenious alien in person suit John Carmack
@seltzer666
@seltzer666 27 күн бұрын
psychic supersoldier prototype and brazilian jiu jitsu practitioner john carmack?
@EBHsswvZUM
@EBHsswvZUM 26 күн бұрын
@@seltzer666 The same John Carmack who used chemlab thermite to break into his school so he could play with the school's Apple ][s.
@MichaelLesterClockwork
@MichaelLesterClockwork 24 күн бұрын
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...
@TheCatBilbo
@TheCatBilbo 15 күн бұрын
That's excellent thinking! 😊
@WeirdInfoTV
@WeirdInfoTV 15 күн бұрын
I just downloaded MAME and minecraft on the main shared folder no f given
@arjovenzia
@arjovenzia 12 күн бұрын
We did a similar thing in Highschool, except we renamed the to NoCD Counterstrike .zip to a random file/path on the public share (also usually in some other class shares), and saved the location to a non-descript file. Once everyone had a local copy, run the batch, and move it for the next group. He mustn't have been very good sysadmin, because there was always a copy of CS on the server somewhere, I would have looked for the file size, as it was the same copy that we originally got caught with. I like your method better tho.
@MichaelLesterClockwork
@MichaelLesterClockwork 10 күн бұрын
@@arjovenzia There was some back and forth before we arrived at the scattered parts method.
@laststand6420
@laststand6420 9 күн бұрын
That's great
@pleasantivan
@pleasantivan 29 күн бұрын
10:33 me trying to play doom after the lobotomy:
@monad_tcp
@monad_tcp 28 күн бұрын
you should have two lobotomies, not only one.
@xanderplayz3446
@xanderplayz3446 28 күн бұрын
???
@Skiivin
@Skiivin 28 күн бұрын
@@xanderplayz3446sorry, let me explain it for you. It’s them trying to play doom after the lobotomy
@user-cj3pk2tm9s
@user-cj3pk2tm9s 28 күн бұрын
Me trying to understand words after the lobotomy
@dispenser6257
@dispenser6257 28 күн бұрын
#relatable
@CoolAsFreya
@CoolAsFreya 27 күн бұрын
When he said "Pi=0 does it run?" and all the software developers in the audience confidently yell "NOOO!"
@M4Dbrat
@M4Dbrat 24 күн бұрын
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
@Serenity_Dee
@Serenity_Dee 23 күн бұрын
Yeah, I figured it would throw a divide by zero error or, because of the lookup table, an indexing error.
@StijnDeWitt
@StijnDeWitt 14 күн бұрын
@@Serenity_Dee As strange as PI is, it has to bow its head to zero, which must be the strangest number of all!!
@Xeridanus
@Xeridanus 2 күн бұрын
@@Serenity_Dee I assumed it's because the values became too big and overwrote something else in the code since it is all bit shifted nonsense.
@TerjeMathisen
@TerjeMathisen 26 күн бұрын
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...
@asuka_the_void_witch
@asuka_the_void_witch 23 күн бұрын
what
@TheOriginalCoda
@TheOriginalCoda 23 күн бұрын
@@asuka_the_void_witch What what?
@lordbored2706
@lordbored2706 19 күн бұрын
The Man in Black
@KeksimusMaximus
@KeksimusMaximus 18 күн бұрын
Very cool! But according to the Doom wiki, the guy was hired by Carmack for Quake 2. And he was the lead programmer there. And the man left id in 2000 and later worked on World of Warcraft at Blizzard. Talented guy. Worked as a software engineer and the passion for games led him to Carmack himself to get an offer to fix the bug in the code, all of which shaped his career in game development for years, lol
@TerjeMathisen
@TerjeMathisen 18 күн бұрын
@@KeksimusMaximus The starting at Quake 2 quote is definitely wrong: John started well before the original quake architecture had settled down, something which caused a lot of issues when Carmack's very frequent rewrites caused Cash's bot code to stop working.
@MrSkaizZ
@MrSkaizZ 28 күн бұрын
I love the Jpeg injection part. Now the question isn't "can it run doom ?", it is "can it run on doom ?"
@landspide
@landspide 28 күн бұрын
"can doom load run doom?"
@JoshWiniberg
@JoshWiniberg 28 күн бұрын
DoomOS
@thecatofnineswords
@thecatofnineswords 27 күн бұрын
That was indeed very cool.
@lilwyvern4
@lilwyvern4 27 күн бұрын
@@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.
@ryanstedman41
@ryanstedman41 24 күн бұрын
@@JoshWinibergnew linux distro idea. based on arch to further solidify the meme value
@veiledAutonym
@veiledAutonym Ай бұрын
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
@thehellriddenBaron
@thehellriddenBaron 29 күн бұрын
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
@hornylink
@hornylink 28 күн бұрын
or use dynamic tables that changes the value of pi to something between 2.5 and 3.3 every x seconds
@BradenBest
@BradenBest 27 күн бұрын
​@@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.
@robin9740
@robin9740 26 күн бұрын
​@@BradenBestWoooow that's awesome!
@bosobot
@bosobot 26 күн бұрын
@@BradenBest real one
@surthing6711
@surthing6711 28 күн бұрын
imagine making a friend on acid play the 3π version while he thinks its just normal doom
@zloidooraque0
@zloidooraque0 28 күн бұрын
probably will look normal to him and he will doubt acid kicked in
@benturner6270
@benturner6270 26 күн бұрын
"these tabs were bunk, man. you got burned"
@plasma5545
@plasma5545 Ай бұрын
breathes really heavily into your ear "yeah"
@yobson
@yobson Ай бұрын
it's yeah, pretty yeah, a little... yeah
@SkilledTadpole
@SkilledTadpole 29 күн бұрын
"so now it starts to just be yeah it's uh it's yeah um a little yeah pretty pretty hard"
@JuanMendoza-qd5lm
@JuanMendoza-qd5lm 29 күн бұрын
​@@SkilledTadpole Boioioioioioing🍆
@zelda_smile
@zelda_smile 28 күн бұрын
"I bet he's thinking about that hottie in front of us" Him:
@KingLich451
@KingLich451 27 күн бұрын
​@@zelda_smilenothing hotter than my fridge running doom
@Dayanto
@Dayanto 28 күн бұрын
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.
@stefanhoffmann5281
@stefanhoffmann5281 28 күн бұрын
I am also sure ist Not an real non euclidea geometry. You need tensor calculations. Objects are warped and don't disappear
@RKroese
@RKroese 28 күн бұрын
​@@stefanhoffmann5281but the objects are 2D. Either visible or non visible.
@stefanhoffmann5281
@stefanhoffmann5281 27 күн бұрын
@@RKroese nope : read Riemann
@XENOGOD
@XENOGOD 26 күн бұрын
@@stefanhoffmann5281 read riemann what exactly? any specific theorems/results you could point to?
@ellowell8160
@ellowell8160 17 күн бұрын
@@stefanhoffmann5281 If it breaks the rules of euclidean geometry, then that is not euclidean geometry. non-euclidean. it's not specifying what it is, just what it isn't.
@Kazuo1G
@Kazuo1G Жыл бұрын
Pi over 2: You have collapsed space-time into a smaller area. XD
@ginogarcia8730
@ginogarcia8730 28 күн бұрын
ahhh fascinating
@yellowblanka6058
@yellowblanka6058 27 күн бұрын
The “I hope somebody got fired for that blunder” was a tongue-in-cheek Simpsons reference, lol
@dave7922
@dave7922 23 күн бұрын
“Pi is equal to exactly three!!!”
@zimriel
@zimriel 16 күн бұрын
@@dave7922 not in Indiana, it's legally four by state law
@The-Anathema
@The-Anathema 29 күн бұрын
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?
@4rumani
@4rumani 29 күн бұрын
I thought about this too. Why didn't he put this in his talk??
@sophiacristina
@sophiacristina 29 күн бұрын
And why would it segfault to begin with?!
@mrgunn3r904
@mrgunn3r904 28 күн бұрын
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
@The-Anathema
@The-Anathema 28 күн бұрын
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.
@Blxz
@Blxz 28 күн бұрын
More interesting questions than does it play at -1000000. The talk had the bones of a good concept but not properly explored.
@paultapping9510
@paultapping9510 29 күн бұрын
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.
@vytah
@vytah 28 күн бұрын
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.
@paultapping9510
@paultapping9510 28 күн бұрын
@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).
@atifarshad7624
@atifarshad7624 27 күн бұрын
1993 actually. Doom released in December 1993 and became source code was released in December 1997. So just 4 years.
@ThePurplePassage
@ThePurplePassage 27 күн бұрын
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
@psykauze
@psykauze 26 күн бұрын
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.
@PlatFormerlyKno
@PlatFormerlyKno 27 күн бұрын
someone make me a sign that says if you are here for euclidean doom you're in the wrong room 😂
@SeveralGhost
@SeveralGhost 24 күн бұрын
The next frontier isnt what can we run doom on, its what we can run in doom. Asteroids is just the first step.
@endymallorn
@endymallorn 8 күн бұрын
Asteroids was always intended as a map-screen Easter egg, though?
@julianaradanas6346
@julianaradanas6346 11 ай бұрын
This is why all the cthulu mythos inhabitants go insane lol
@RKroese
@RKroese 28 күн бұрын
Omg Carmack is Cthulu
@Merble
@Merble 8 күн бұрын
Nah, it's just because Lovecraft was really afraid of brown people and of the Hindu gods being real.
@bigginsmcsauce
@bigginsmcsauce 28 күн бұрын
pi=3 is basically Playstation 1 mode!
@TheCarPassionChannel
@TheCarPassionChannel 9 күн бұрын
Except Doom came out before PS1, which makes it look even more impressive that it needs a downgrade to look like PS1 haha
@helium73
@helium73 Ай бұрын
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.
@saschabaer3327
@saschabaer3327 Ай бұрын
This sounds like motion sickness: the game
@bb010g
@bb010g Ай бұрын
Check out Hyperbolica.
@Neubulae
@Neubulae Ай бұрын
It's been around for a while and wobbling your head changes direction. Motion Sickness: The Game it is!
@breathlessblizzard
@breathlessblizzard Ай бұрын
This exists! It is called "Redirected Walking" in research papers, see Nilsson et al, IEEE 2015
@enoua5222
@enoua5222 Ай бұрын
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
@kargaroc386
@kargaroc386 28 күн бұрын
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"
@knightrider585
@knightrider585 26 күн бұрын
I think for most of the history of trigonometry the fastest way to calculate trig functions was using pre-computed tables.
@the_pieces_fit
@the_pieces_fit Ай бұрын
8:37 when the shrooms hit
@haydenlandry3837
@haydenlandry3837 29 күн бұрын
Things are a little off, the walls move in a way that you don't expect, amd things start to shift 🤣🤣🤣
@ChaplainDMK
@ChaplainDMK 27 күн бұрын
Movies trying to show how a trip looks: *pink floating elephants everywhere* Actually how a trip looks like: *Doom with Pi=e*
@FleshWizard69420
@FleshWizard69420 27 күн бұрын
Shrooms will eat a slice of your pi
@PsychonauticExplorer
@PsychonauticExplorer 24 күн бұрын
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.
@RaposaCadela
@RaposaCadela 24 күн бұрын
kinda accurate actually huh
@SuPeRNinJaRed
@SuPeRNinJaRed 29 күн бұрын
I’d say “π = e” is the sweet spot 9:33 (aka DrunkDOOM) but ShroomDoom at 10:20 might be a little too high...
@asuka_the_void_witch
@asuka_the_void_witch 23 күн бұрын
ShroomDoom
@antonc81
@antonc81 28 күн бұрын
Let’s take it into the imaginary realm: Pi = i
@forbiddenera
@forbiddenera Ай бұрын
9:20 but what aboit non-hitscan weapons? Those might be fkd
@ph0end
@ph0end 29 күн бұрын
yeah I really wanted to see a rocket
@makipri
@makipri 21 күн бұрын
BFG-9000!
@ph0end
@ph0end 20 күн бұрын
@@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.
@megan00b8
@megan00b8 20 күн бұрын
​@@ph0endTechnically enemies like imps fire non hitscan projectiles.
@davidgarcia1163
@davidgarcia1163 20 күн бұрын
I love how with this crowd the question "Why do anything like this?" is not asked, or even considered.
@draco18s
@draco18s 26 күн бұрын
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.
@CellGames2006
@CellGames2006 23 күн бұрын
Heheh, imagine non-Euclidean geometry causing Musk's spaceships to explode...
@vapourmile
@vapourmile 28 күн бұрын
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.
@nowonmetube
@nowonmetube 25 күн бұрын
Yesn't
@troyjohnson2137
@troyjohnson2137 25 күн бұрын
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?
@vapourmile
@vapourmile 24 күн бұрын
@@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.
@SebastianGrantElKiva
@SebastianGrantElKiva 24 күн бұрын
@@nowonmetube😂
@bramvanduijn8086
@bramvanduijn8086 24 күн бұрын
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?
@GingkoBalboa142
@GingkoBalboa142 21 күн бұрын
I know nothing about programming and I do math on my fingers but I find this absolutely fascinating.
@Skeletons_Riding_Ostriches
@Skeletons_Riding_Ostriches 12 күн бұрын
On your fingers you do arithmetic, not math.
@GingkoBalboa142
@GingkoBalboa142 12 күн бұрын
@@Skeletons_Riding_Ostriches I don't know the difference :D
@sossupummi
@sossupummi 5 күн бұрын
@@GingkoBalboa142 :DDD
@Oli1974
@Oli1974 25 күн бұрын
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."
@facundosoler2200
@facundosoler2200 21 күн бұрын
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 ! ❤🎉
@MinhTran-freespirit
@MinhTran-freespirit 29 күн бұрын
"I bet he's thinking about that hottie in front of us" Him:
@keithincomics6102
@keithincomics6102 27 күн бұрын
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.
@RoamingAdhocrat
@RoamingAdhocrat 29 күн бұрын
not sure I've ever been nauseated by a tech talk before
@dymaxion3988
@dymaxion3988 26 күн бұрын
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
@ObscuraDeCapra
@ObscuraDeCapra 26 күн бұрын
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.
@champagnesupernova1839
@champagnesupernova1839 29 күн бұрын
code injection via jpg? so you could port pico-8 stuff to run on doom?
@abcpea
@abcpea 29 күн бұрын
but will it run Doom?
@xs246
@xs246 28 күн бұрын
to run Doom on Doom
@champagnesupernova1839
@champagnesupernova1839 28 күн бұрын
@@abcpea someone did port doom to the pico-8, so it might be possible :3
@dawid035
@dawid035 26 күн бұрын
​@@champagnesupernova1839It could be, which makes it even more interesting
@unic0de-yvr
@unic0de-yvr 27 күн бұрын
"...and smokes of assorted types." Nice, very subtle.
@Patrick-857
@Patrick-857 3 күн бұрын
I love that a game made in 1993 by a small team of developers who had to do crazy workarounds to achieve an 3D-like experience on hardware that wasn't ready for it, is still being experimented with, modified and studied today. Such a small game by today's standards and yet after all these years there's still things that haven't been discovered about it.
@scmstr
@scmstr 29 күн бұрын
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.
@philipegoulet448
@philipegoulet448 29 күн бұрын
That would be so sick!
@scmstr
@scmstr 29 күн бұрын
@@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.
@pastorpresent4940
@pastorpresent4940 Ай бұрын
I used to play this a lot as a kid; it was fun but also a frightening experience
@Spax_
@Spax_ 29 күн бұрын
well now I'm really curious what the highest value pi can be while keeping the game playable
@yixing09
@yixing09 27 күн бұрын
same here. he had a whole gradient over numbers lower than pi, and none noticeably greater than pi
@seriouscat2231
@seriouscat2231 25 күн бұрын
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.
@asdbanz316
@asdbanz316 15 күн бұрын
​@@seriouscat2231what if you manually fix those values or set maximum for them to see how it runs?
@selfworm
@selfworm 22 күн бұрын
Reminds me of MIT's "A Slower Speed of Light" for some reason
@drd2093
@drd2093 28 күн бұрын
“Hyperbolica” on Oculus Quest deserves special mention. Non-Euclidean vr is fun
@tylerduncan5908
@tylerduncan5908 27 күн бұрын
The largest value of pi I would assume is whatever value that the lookup table will no longer be able to compute.
@QQ-rx9xp
@QQ-rx9xp 9 күн бұрын
The jpeg injection has flipped the eternal question of “Can it play doom?” into “Can doom play it?”, and I love it!
@tsoupakis
@tsoupakis 2 күн бұрын
As a psychologist and psychonaught the last couple of years with huge interest in psychedelics and the nature of reality through philosophy and perspective and not through maths and with a background in it & coding I find this presentation extremely entertaining and informative. Thank you my friend
@Jakob.Hamburg
@Jakob.Hamburg 14 күн бұрын
Very nice and interesting speech/presentation. The code injection is awesome. :D
@ObiwanNekody
@ObiwanNekody 25 күн бұрын
You didn't try the Indiana Legal pi of 3.2 😢
@Novastar.SaberCombat
@Novastar.SaberCombat Күн бұрын
After crafting "Darkhell" and "Blakhell" (36 custom maps for two episodes) waaayyy back in the day for D1, I never would've imagined that people would still be playing DOOM 30+ years later.
@TheJmax04
@TheJmax04 26 күн бұрын
I'm not sure that this is actually non-euclidean, but I'm interested in what is actually going on under the surface here.
@MrOranj
@MrOranj 3 сағат бұрын
A few of us playing Doom in 93 brought our uni network to a standstill. So we used to play after 5pm.
@tomdavies6443
@tomdavies6443 25 күн бұрын
Are there harmonic resonance points along the substituted value for pi? Regards from a Tom :)
@ObviousSchism
@ObviousSchism 28 күн бұрын
Such an enjoyable presentation. Thanks for this!
@cichlisuite2
@cichlisuite2 25 күн бұрын
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?
@nickkohlmann
@nickkohlmann 25 күн бұрын
​@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.
@cichlisuite2
@cichlisuite2 25 күн бұрын
@@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.
@bramvanduijn8086
@bramvanduijn8086 24 күн бұрын
@@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.
@evancourtney7746
@evancourtney7746 28 күн бұрын
So what's the convergence function for non-euclidean Doom playability?
@goldenkurlz
@goldenkurlz 10 күн бұрын
This cracks me up. I would love to see the key inputs to know how the alternate pi values change how the controls work.
@dr_jaymz
@dr_jaymz 27 күн бұрын
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.
@demonicsquid7217
@demonicsquid7217 26 күн бұрын
22/7 is where it's at...
@marcocorrieri3681
@marcocorrieri3681 24 күн бұрын
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
@blusterhash
@blusterhash 28 күн бұрын
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 :)
@Kj16V
@Kj16V Сағат бұрын
"I hope someone got fired for that blunder" I think that's a Simpson's reference: "...Are we supposed to believe this is some sort of magic xylophone? I hope someone got fired for that blunder!"
@bernds6587
@bernds6587 9 күн бұрын
now - another thing to try - I am not sure if or how that will influence the game. On Quake 3 Arena a method called fast inverse square root was used. back when integer was way faster than floating point operations. It used a constant 0x5f3759df to get a surprisingly close approximation of any square root value I wonder - what will happen if you modify that constant....
@kjeldgaard0
@kjeldgaard0 26 күн бұрын
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.
@timburlingame5893
@timburlingame5893 24 күн бұрын
*sporadic half-hearted clapping* "Thank you for the warm welcome."
@ZeMovinPixxle
@ZeMovinPixxle 29 күн бұрын
as an engineer, put a highpass filter on that audio, holy shit that rumble... why?
@arenomusic
@arenomusic 29 күн бұрын
As a mechanical engineer this really fucks with my audio engineering sensibilities, won't this in-person conference speaker think of the KZfaq sound quality?!
@ZeMovinPixxle
@ZeMovinPixxle 29 күн бұрын
@@arenomusic can easily be done in post quickly before an upload. fuck, id do it for free
@arenomusic
@arenomusic 29 күн бұрын
@@ZeMovinPixxle Wasn't watching with headphones but I get what you mean 😂 It's part of the IMMERSION
@ZeMovinPixxle
@ZeMovinPixxle 29 күн бұрын
@@arenomusic i work events sometimes and we always put a highpass on every microphone.
@ictogon
@ictogon 28 күн бұрын
It's for artistic effect
@tomdavies6443
@tomdavies6443 25 күн бұрын
Is it possible to find "sweet spots" on the map where things appear normal until the player moves? Regards from a Tom :)
@void6432
@void6432 28 күн бұрын
The question is no longer can it play Doom, the question is weather you can.
@minutokbca
@minutokbca 8 күн бұрын
π/2 is like moving through Cooper's tesseract inside the black hole.
@JetJockey87
@JetJockey87 23 күн бұрын
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.
@cynth0984
@cynth0984 26 күн бұрын
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?
@Erik_Danley
@Erik_Danley 6 күн бұрын
Brief “segway” huh. Man this got me
@oz9884
@oz9884 22 күн бұрын
I think 3.5 would have been an interesting one to try, between pi and 4
@jimmy_jamesjams_a_lot4171
@jimmy_jamesjams_a_lot4171 18 күн бұрын
SO MANY firsts to my disbelief. I mean, this is a first person shooting game, and doesn’t even employ DirectX because it’s from a time before DirectX - probably 10 years before or more. I can recall a few of my very first encounters with l desktop computers where x86 machines required the user to type a few DOS commands to actually start up Doom. Reminds me of Sierra games. The guys who created Doom though - must be some awesome people - for giving Doom the open source licensing at a time when Napster would be the big media buzz for a couple years at least… what great and special times these software engineers helped bring to us!
@StijnDeWitt
@StijnDeWitt 14 күн бұрын
It may well be that without DOOM, DirectX would have come later. DOOM exploded onto the scene and everyone wanted a part of it. It dod something that most would have thought was impossible on the hardware of those days. Its impact on gaming cannot be overestimated.
@idogaming3532
@idogaming3532 27 күн бұрын
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)
@saberlike659
@saberlike659 8 күн бұрын
Would love to see it with the lookup tables recalculated logarithmically for an extra layer of chaos. Or maybe altering every other value on the table or something
@etaidade3983
@etaidade3983 29 күн бұрын
I think this is the closest I will ever get to being a 4th dimensional being
@HFamilyDad
@HFamilyDad 25 күн бұрын
How much time do you have on your hands?
@amigalemming
@amigalemming 18 күн бұрын
18:15 I would change the sine table to a triangle waveform, thus making the unit circle a diamond.
@Oli1974
@Oli1974 25 күн бұрын
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.
@g.dalfleblanc63
@g.dalfleblanc63 10 күн бұрын
In 1993 it was easy to get online as that was the year WWW became accessible to the general public, the number of websites at the start of the year was 130 and by the end of the year it was 623, so he really didn't have an excuse lol. 1993 I used to go to my local uni and use the WWW and their dot matrix printers for free. I really loved those times.
@MrJC1
@MrJC1 25 күн бұрын
holy moly... PI being 3 is trippy as ballz man.
@ThatClassicalGuy
@ThatClassicalGuy 13 күн бұрын
fascinating talk. Thank you.
@henriquereisjr6771
@henriquereisjr6771 26 күн бұрын
This is what Lovecraft was talking about.
@universalperson
@universalperson 27 күн бұрын
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.
@TiagoTiagoT
@TiagoTiagoT 26 күн бұрын
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.
@TheDeadError
@TheDeadError 3 күн бұрын
The Doomslayer put a few of those funny looking paper squares on his tongue.
@Robonauta
@Robonauta 2 күн бұрын
I'd like to see the map layout (tab while playing) on those different pi values. Would be really funny if they remained the same while everything else you saw was completely weird
@zstewart
@zstewart 16 сағат бұрын
'Three and a bit, that's the ticket. Only Bloody Stupid Johnson said that was untidy, so he designed a wheel where the pie was exactly three.'
@tinkeringtim7999
@tinkeringtim7999 24 күн бұрын
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.
@shotasdg3679
@shotasdg3679 29 күн бұрын
I love those kind of talk
@ABCDE1120
@ABCDE1120 18 күн бұрын
Very interesting
@mathgeniuszach
@mathgeniuszach 28 күн бұрын
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
@bramvanduijn8086
@bramvanduijn8086 24 күн бұрын
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.
@alexplorer
@alexplorer 12 күн бұрын
That's how you turn a horror game into a Lovecraftian horror game. For those who haven't read any H.P. Lovecraft, he was a big fan of the science of his day, and in the post-Relativity world, non-Euclidian geometry featured in a couple of his most famous stories: "The Call of Cthulhu" and "Dreams in the Witch House."
@dannyd4339
@dannyd4339 19 күн бұрын
Where exactly in tables.c does it define pi? I would like to try it for myself but i am not very knowledgeable about it.
@Tuckerslam
@Tuckerslam 29 күн бұрын
>guitars Hackers in 1993 were so much cooler.
How do non-euclidean games work? | Bitwise
14:19
DigiDigger
Рет қаралды 2,4 МЛН
I Made a Graph of Wikipedia... This Is What I Found
19:44
adumb
Рет қаралды 2,4 МЛН
Countries Treat the Heart of Palestine #countryballs
00:13
CountryZ
Рет қаралды 22 МЛН
СНЕЖКИ ЛЕТОМ?? #shorts
00:30
Паша Осадчий
Рет қаралды 4,5 МЛН
The Batsh*t Software Aphex Twin Used
24:17
Benn Jordan
Рет қаралды 888 М.
How Different Are Doom 64's Demons?
19:20
decino
Рет қаралды 521 М.
The Most Hilarious Doom Speedrun Ever Performed
19:51
Karl Jobst
Рет қаралды 2,2 МЛН
Doom didn't kill the Amiga...Wolfenstein 3D did
16:58
Modern Vintage Gamer
Рет қаралды 586 М.
Did Archimedes Write a Problem That Took 2,200 Years to Solve?
12:09
Let's Play SECRET HITLER | Overboard, Episode 3
38:11
Polygon
Рет қаралды 2,1 МЛН
I Made a Neural Network with just Redstone!
17:23
mattbatwings
Рет қаралды 531 М.
Why Does Diffusion Work Better than Auto-Regression?
20:18
Algorithmic Simplicity
Рет қаралды 181 М.
Iron Lung is Absolutely Terrifying
22:33
Power Pak
Рет қаралды 6 МЛН
My brain wasn't ready for Non-Euclidean gaming...
10:23
Real Civil Engineer
Рет қаралды 625 М.