[HN Gopher] Non-Euclidean Doom: what happens to a game when pi i...
       ___________________________________________________________________
        
       Non-Euclidean Doom: what happens to a game when pi is not 3.14159
       (2022) [video]
        
       Author : robin_reala
       Score  : 346 points
       Date   : 2024-05-17 12:43 UTC (10 hours ago)
        
 (HTM) web link (media.ccc.de)
 (TXT) w3m dump (media.ccc.de)
        
       | DaiPlusPlus wrote:
       | What happens is the graphics and movement get glitchy and
       | eventually unplayable - I wouldn't call this "non-Euclidean Doom"
       | - just "consequences of messing with the constants of the
       | universe" - whereas I'd expect an actual non-Euclidean Doom to be
       | like this: https://youtu.be/kEB11PQ9Eo8?si=0HNlpGFBii2AIK1n
        
         | Ballas wrote:
         | That is exactly what I expected as well. Here's another non-
         | Euclidian implementation with a couple of other novel ideas (at
         | least they were to me):
         | https://www.youtube.com/watch?v=tl40xidKF-4
        
         | aeyes wrote:
         | I expected MyHouse.WAD
         | https://www.youtube.com/watch?v=5wAo54DHDY0
        
         | benrutter wrote:
         | Woah! Thanks for sharing, that video is amazing, I'd love to
         | see an actual game using that effect.
        
           | samvher wrote:
           | https://en.wikipedia.org/wiki/HyperRogue
           | 
           | (not exactly the effect in the video you responded to, but
           | similar category)
        
           | JonathonW wrote:
           | That'd pretty much be Portal; the technique he's using to
           | render there is basically the same as the one Portal uses
           | (the Portal engine can do "invisible" portals like this too,
           | but there's only one point across both games where they're
           | used in the finished game).
           | 
           | I suppose something around non-Euclidean levels without user-
           | created portals could be interesting, but I think it'd be
           | hard to flesh that out to a point where there's enough there
           | for a whole game without coming up with some other gimmick.
        
             | wizzwizz4 wrote:
             | I know it was left as an exercise for the reader, but I
             | never worked out where that was used. (The turret live fire
             | exercise comes to mind, but I thought I'd ruled that out.)
             | Do you happen to know?
        
               | wizzwizz4 wrote:
               | Remembered the entity name, and this information is on
               | the wiki page: https://developer.valvesoftware.com/wiki/L
               | inked_portal_door
               | 
               | > They are also used twice in the campaign (contrary to
               | the commentary's claim that they are only used once): in
               | the GLaDOS wakeup sequence where they are used to connect
               | the incinerator shaft to GLaDOS' chamber, and in Finale 2
               | where they are used to connect the "trap" chamber to the
               | main map. These are the only uses of this entity in the
               | final game.
        
           | smellf wrote:
           | Antichamber:
           | https://store.steampowered.com/app/219890/Antichamber/
           | 
           | Also look at myhouse.wad for actual Doom in actual non-
           | Euclidean spaces.
        
             | jimbobthrowawy wrote:
             | Hyperbolica exists too, and is pretty fun even if I haven't
             | finished it yet. it has hyperbolic and spherical geometry
             | in it at least.
             | 
             | The only game to give me motion sickness by watching a
             | streamer playing it, and no motion sickness at all playing
             | the VR version. Very odd.
        
           | sebazzz wrote:
           | If you like this, try Superliminal
           | (https://store.steampowered.com/app/1049410/Superliminal/)
        
         | torginus wrote:
         | This looks like portals. Essentially how FPS games of that era
         | worked is that they had rooms stitched together by doorways (or
         | 'portals') as a way of occlusion culling. While perfectly
         | capable of representing sensible geometry, it was actually not
         | a requirement that the geometry should make sense in any shape
         | or form and allowed arbitrary connections between rooms.
        
           | neglesaks wrote:
           | The Marathon 1+2 engine back in the 90s allowed for "5D
           | space", ie. "Spatial" Rooms that were capable of overlapping
           | each other, because the engine only defined the floor polygon
           | with a given height and these floor polys were connected to
           | each other at the vertices to create the actual level spaces.
           | 
           | So even though you were in the same absolute space coordinate
           | as another player, you were not necessarily in the same room.
           | 
           | Good times. <:o)
        
             | vitaflo wrote:
             | Huh I never knew that. I just knew you couldn't have two
             | floors directly above each other while also having both
             | floors visible to the player at the same time. All of my
             | Mara 1 maps I built would crash when I tried this. I wonder
             | if what you just explained is why.
        
               | hedgehog wrote:
               | I don't know how they actually did it but conceptually I
               | thought about it as traversing the map's segments depth
               | first in 2D starting at one edge of the viewport & the
               | currently occupied polygon. Simple, and allows freedom
               | like overlapping rooms, but would go sideways in cases
               | like the one you describe.
        
           | lupusreal wrote:
           | Doom actually didn't permit overlapping rooms like Duke3d and
           | some other games did, although some source ports of Doom do
           | allow it (notably used by the trendy MyHouse.wad)
        
             | bombcar wrote:
             | Some vanilla Doom levels get exceptionally close to
             | simulating it using portals and other tricks.
        
         | lambdaxyzw wrote:
         | This it's also not what non-euclidean means. It's just regular
         | 3d world with portals. Games of that era often used portals in
         | the engine, they just didn't use them to implement impossible
         | rooms. I'm not trying to be nitpicky, but it's a common
         | misunderstanding.
         | 
         | For actual non-Euclidean stuff I recommend ZenoRogue stuff. For
         | example a simple game with Nil geometry[1], giantic bossfight
         | in non euclidean world rogue game[2], or some general geometry
         | weirdness [3]. Or just check out any of their stuff.
         | 
         | [1]
         | https://m.youtube.com/watch?v=gejRg_q70EA&pp=ygUJemVub3JvZ3V...
         | 
         | [2]
         | https://m.youtube.com/watch?v=jcnXI8IArRI&pp=ygUJemVub3JvZ3V...
         | 
         | [3]
         | https://m.youtube.com/watch?v=yqUv2JO2BCs&pp=ygUJemVub3JvZ3V...
        
           | jerf wrote:
           | "Non-Euclidean" is probably just fine meaning "literally
           | anything other than straight Euclidean". Euclidean geometry
           | doesn't have portals in it. Being truly hyperbolic or
           | spherical is an interesting case but I don't think we have to
           | insist that's the only viable meaning. Adjoining portals to
           | Euclidean geometry by my reckoning breaks 3 of the 5 core
           | axioms of Euclidean geometry... which means by sheer axiom
           | break count, Euclidean geometry plus portals is "more" non-
           | Euclidean than spherical or hyperbolic geometry. (Which may
           | not seem like a terribly meaningful count, but I think would
           | be reflected in what proofs in a portalized space would end
           | up looking like. You'd grow a forest of case analyses and
           | conditions in even the simplest proofs.)
           | 
           | (And it's possibly 4 axioms broken; I'm reckoning "all right
           | angles are equal" as still holding, though I'm not 100% sure
           | a "normal" right angle and a right angle generated where a
           | portal bisects the angle is necessarily "equal" in all
           | relevant ways. It's been a while since I did geometry proofs
           | but the more I ponder it the less sure I am. If not that
           | would leave only "a straight line segment can be prolonged
           | indefinitely" as holding, and unlike in Euclidean geometry a
           | straight line segment may intersect itself arbitrarily
           | often.)
        
             | j2kun wrote:
             | Officially it cannot be called a "geometry" at all if it
             | does not satisfy the other axioms. So it's a "non-Euclidean
             | non-geometry."
        
               | jerf wrote:
               | Fair point.
        
               | lupusreal wrote:
               | What if it satisfies an as-of-yet undiscovered set of
               | axioms?
        
               | jerf wrote:
               | The math term "geometry" has a certain definition. Things
               | that fit it are geometries, things that don't, aren't.
               | 
               | The gee-whiz "what if" sort of question your asking
               | doesn't really mean anything anymore. In about the
               | mid-20th century math finally came to terms with
               | basically anything you can define being a valid subject
               | of investigation. Arguments about whether things like
               | "imaginary numbers" are "real" and _therefore worthy of
               | study_ are largely gone now. (Whether they are  "real"
               | for some definition is now a philosophy question.)
               | 
               | Since axioms _define_ the system you are building, if you
               | want  "Euclidean except plus portals" you just need to
               | write them down and start studying them. There are
               | multiple possible sets that describe different systems;
               | for a trivial example, you can assert in an axiom that
               | area is conserved on passing through a portal, or you can
               | write axioms that don't conserve that, and follow the
               | implications from there. Video games have had both kinds
               | of portals. Do portals need to be straight or can they be
               | curved? What do curved portals do to other curves if they
               | pass through them? Does "passing through them" even mean
               | anything (note Euclidean geometry doesn't have "time" in
               | it)? How crazy can I be with the portals? What happens if
               | I define a portal as having a boundary corresponding to a
               | Cantor set [1] and pass a line through it in an axiom
               | system that has "time"? There is no one answer to that
               | question, it depends on the axioms you write down, which
               | may or may not even permit such portals.
               | 
               | Mathematicians will accept any and all of these systems
               | if you write them down. Some may prove to be
               | "uninteresting". Some may prove to have contradictions in
               | them. But it's been a long time since a mathematician
               | would even _consider_ berating you about any of those
               | choices not being  "realistic" or something.
               | 
               | And I expect it is very likely some topologist somewhere
               | could hear all these idle musings of mine and say "Oh,
               | yes, you want to go to $TOPOLOGY_SUBDISCIPLINE for that."
               | I don't know what the subdiscipline is or I'd name it,
               | but I'm sure there's something already out there for all
               | this. Since the mathematicians stopped worrying about
               | "realness" they've really spread their wings as as
               | discipline.
               | 
               | [1]: https://en.wikipedia.org/wiki/Cantor_set
        
               | j2kun wrote:
               | It can be given an as-of-yet unchosen new name :)
        
               | mrighele wrote:
               | Axioms are not discovered but decided. A nice set of
               | axioms gives birth to interesting anduseful interactions
               | which you are the one that you discover, although in
               | practice there's is a bit of back-and-forth, as you
               | decides the axiom based on what you are trying to achieve
               | and they get changed or tuned as time pass.
               | 
               | Bonus point if the new axioms play well with existing
               | ones, and are useful to work on our reality.
        
         | jezzamon wrote:
         | To be a bit pedantic, that video is incorrect in its use of the
         | term non-euclidean. The folks behind hyperrogue made few videos
         | that show actual non-euclidean geometry:
         | https://youtu.be/yqUv2JO2BCs?si=AutaqS5unvT7cDjw
         | 
         | Comparing some of the weird geometry effects in the doom video,
         | like things sliding sideways when you move forward, I feel like
         | it's reasonable to call this doom non-euclidean!
        
           | babypuncher wrote:
           | Part of the problem is that Doom isn't truly 3D, it's a 2D
           | universe with hacks to make it look 3D.
           | 
           | So in the final presentation, you're seeing a facsimile of a
           | universe where the value of Pi has only changed in two out of
           | three spatial dimensions.
        
           | llm_trw wrote:
           | For a more modern take (that's kid friendly) have a look at
           | https://store.steampowered.com/app/1256230/Hyperbolica/
        
         | kqr wrote:
         | I'm surprised nobody has brought up Antichamber yet. It was an
         | excellent game using a similar concept to create actual
         | puzzles.
         | 
         | Come to think of it, long enough has probably passed that I
         | might enjoy replaying it.
        
           | cubefox wrote:
           | That's a great game, but it only uses portals to locally
           | break the rules of geometry. The phrase "non-euclidean
           | geometry" normally means either hyperbolic of elliptic
           | (spherical) geometry.
        
           | solardev wrote:
           | If you like that, take a look at Viewfinder too:
           | https://store.steampowered.com/app/1382070/Viewfinder/
           | 
           | You take pictures to create portals to other parts of the
           | level, but in any orientation/angle that you want.
        
           | hcs wrote:
           | Also consider Manifold Garden.
        
         | MaximilianEmel wrote:
         | Here's another example of a "non-euclidean" engine/game, which
         | in my opinion is more authentically non-euclidian:
         | https://youtu.be/tl40xidKF-4
        
         | water-your-self wrote:
         | More links for the pile
         | 
         | https://youtu.be/tl40xidKF-4?feature=shared
        
       | jerf wrote:
       | I wonder if this would be more interesting in the raytraced Doom
       | referenced. Hacking constants with rasterization techniques
       | pretty much produced the results I expected. But raytracing may
       | have more interesting results.
        
       | AdmiralAsshat wrote:
       | HN Hug of Death? Having a hard time getting the video to load
       | more than a half second before needing to buffer, even at lowest
       | resolution.
        
         | aeontech wrote:
         | Same talk on YouTube: https://youtu.be/_ZSFRWJCUY4
        
       | PaulHoule wrote:
       | Funny I was just reading this Poul Anderson classic
       | 
       | https://en.wikipedia.org/wiki/Operation_Chaos_(novel)
       | 
       | which is set in an parallel world where magic is real and
       | advancing rapidly along with science. (e.g. Edwin Land invents a
       | device to transform a werewolf without moonlight using polarized
       | light)
       | 
       | The protagonists have their child kidnapped and brought to Hell.
       | They are told that the Army had tried to investigate Hell 20
       | years ago but everyone was driven insane. An adversary drops the
       | hint that the space-time geometry of Hell is different from ours
       | so it would be possible to go back in time and retrieve the child
       | at the moment it arrives. This is enough of a hint for scientists
       | to determine that the geometry of Hell is non-Euclidean and
       | figure out spells for getting there safely, keeping safe, and
       | getting back. They pray to get the assistance of two 19th century
       | geometers, one a saint, to be able to navigate.
        
         | dekhn wrote:
         | See also Jack Vance's wonderful story collection Tales of the
         | Dying Earth, which also includes magic/science and daemon
         | dimensions.
        
         | torginus wrote:
         | This might come off as trite (and it probably is) but why don't
         | we get novels this creative nowadays?
        
           | PaulHoule wrote:
           | I liked this one
           | 
           | https://www.amazon.com/Terraformers-Annalee-
           | Newitz/dp/125022...
        
           | jmdeon wrote:
           | Honestly sounds like you're just disconnected from the
           | culture. There are plenty of creative novels coming out these
           | days. For a specific example check out Adrian Tchaikovsky's
           | work.
           | 
           | Also you may want to subscribe to a short story publication
           | like Clarkesworld. You'll have a drip feed of aspiring
           | creative writers and can follow the ones you find especially
           | good for when their forthcoming novels come out.
           | 
           | One that especially blew me away from Clarkesworld recently
           | was Axiom of Dreams by Arula Ratnakar.
           | 
           | https://clarkesworldmagazine.com/ratnakar_09_23/
        
           | yau8edq12i wrote:
           | Have you actually read recent SF novels? Think what you will
           | about awards, but I've never been exceedingly disappointed
           | when I read a novel that won a couple out of Hugo, Locus, and
           | Nebula. I'd suggest you start there.
        
           | com2kid wrote:
           | Laundry Files just recently had some novels that involves
           | cool weird dimensions.
           | 
           | The last Bobiverse book was about infiltrating a spaceship
           | that is an artificial world.
           | 
           | Heck Bobiverse in general has some cool ideas.
           | 
           | The Andrea Vernon books are a hilarious take on the superhero
           | genre.
        
             | PaulHoule wrote:
             | The Bobiverse books are great IMHO.
        
           | TheAceOfHearts wrote:
           | Stories with creative magic systems are still being produced.
           | Check out Unsong, by Scott Alexander. It's about a world
           | that's programmable by Hebrew and Kabbalah.
        
           | pas wrote:
           | https://en.wikipedia.org/wiki/Diaspora_(novel) and of course
           | other Greg Egan works
        
           | moomoo11 wrote:
           | I wonder that as well. And the same for movies, games, etc.
           | 
           | I think in order to "play it safe" against the 1% of people
           | who cry over the dumbest shit, but who happen to screech the
           | loudest, creators make everything about someone's feelings,
           | edge case stuff you hardly see represented in day to day. You
           | weave that web enough and you end up with the "creative"
           | output of something like Gemini lol.
        
         | mmcdermott wrote:
         | I loved Operation Chaos, but I found the much later sequel to
         | be disappointing.
        
         | idoubtit wrote:
         | The space-time geometry of our world is not Euclidian, not even
         | Riemannian. The story of "Operation Chaos" looks more chaotic
         | than scientific. That fits with the books of Poul Anderson I've
         | read, like the excellent High Crusade: he likes going wild and
         | doesn't care much for the scientific pretense.
         | 
         | For another take on non-Euclidian geometries, I have good
         | memories of Inverted World by Christopher Priest.
        
           | PaulHoule wrote:
           | I read a lot of sci-fi as a kid but really never got into
           | Anderson despite there being a lot of Anderson books at the
           | library but I do remember enjoying _Tau Zero_ (a better story
           | about Bussard Ramjets than any of Niven 's... And funny Niven
           | was my favorite author when I was 10 and I've got much less
           | regard for him now, the Pak really spoil _Known Space_ for
           | me)
           | 
           | I wound up re-reading _Tau Zero_ and was really blown away
           | which got me reading the Ensign Flandry books, _Corridors of
           | Time_ , _Star Fox_ , etc. I don't agree with his politics any
           | more than I agree with Niven or Heinlein but enjoy his books
           | anyway. I'm planning to read all the Anderson books at my
           | library.
           | 
           | Heinlein wrote a few crossover books like "Glory Road" and
           | "Magic Inc" but those were the exception for Heinlein and
           | closer to the rule for Anderson because Anderson was just as
           | important as a fantasy writer as a sci-fi writer.
           | 
           | I do have a copy of _The Inverted World_ that I ought to
           | read.
        
         | cubefox wrote:
         | That sounds awesome.
        
       | AshamedCaptain wrote:
       | Get the source code of your favourite console emulator. Insert
       | random floating point errors or reverse the meaning of some of
       | the branch opcodes. Enjoy. The older the game, the more likely it
       | will still work, and the more likely it will look like going on a
       | bad trip.
        
         | frakt0x90 wrote:
         | There was a tool a long time ago that did this for an n64
         | emulator. I tried it and it was fun for a while but predictably
         | would crash often. There was also a glitch art project that
         | would corrupt specific segments of famous image and video files
         | to create something new. I wish I could find either but I
         | cannot.
        
       | osigurdson wrote:
       | In a previous reality, Pi did equal 3. It was crazy! March 0 Pi
       | day, what!
        
         | adzm wrote:
         | You mean March 0 of course, which is leap day.
        
           | osigurdson wrote:
           | Agree!
        
       | torginus wrote:
       | Honestly, I'm not even sure where does PI factor into gameplay
       | code, like collision detection or movement.
       | 
       | I mean there are things like circular explosion radiuses which
       | would get scaled but not necessarily in an interesting way.
       | 
       | The fact that rendering gets effed up is no surprise.
        
         | chungy wrote:
         | All of Doom's movement code is based on radians.
        
       | cruffle_duffle wrote:
       | I wish this video went more into the game mechanics and why
       | changing Pi messed with things the way it did.
        
       | mnw21cam wrote:
       | The question at the end - what is the highest value of pi that is
       | playable (doesn't crash). I'm suspecting that when pi is 4, it
       | segfaults because some accesses to the lookup table fall off the
       | end of the lookup table, and therefore the highest value of pi
       | that will be playable is likely to be a very small amount higher
       | than pi itself.
        
       | Waterluvian wrote:
       | Marathon 1 (1994) supports non-Euclidean spaces but only got used
       | sparingly. So there's this whole game of levels with maps, and
       | then one or two levels with impossible spaces that the game
       | doesn't warn you about or tell you it could exist. So it's
       | possibly the best Easter egg location I've ever found in a game.
       | 
       | Found a video that demonstrates it:
       | https://www.reddit.com/r/Marathon/comments/vclu55/probably_n...
        
       | ColinDabritz wrote:
       | There was an example of this in the classic 'Duke Nukem 3d'. It
       | had a level by Richard "Levelord" Gray, 'Lunatic Fringe'.
       | 
       | https://dukenukem.fandom.com/wiki/Lunatic_Fringe
       | 
       | This level had a circular hallway ring around the outside that
       | had two full rotations around without intersecting, using the
       | 'build' engine's ability to separate areas by their room
       | connections that also drove the 'room over room' technology which
       | was groundbreaking at the time.
       | 
       | It made for fun multiplayer, and the illusion held well there.
       | The central chamber has 4 entrances/exits if I recall, and you
       | would only encounter two of them in each loop around the outside.
       | 
       | I recall building a toy level while experimenting with the engine
       | that "solves" the "3 houses with 3 utilities without crossing"
       | puzzle using this trick as well.
        
         | dfox wrote:
         | Room over room (as done in later build games) usually does not
         | require the sectors to overlap in this manner as it is a
         | different thing (it is extension of how swimable water works,
         | where the engine renders the other sector instead of
         | floor/ceiling).
         | 
         | While Lunatic Fringe is pretty in-your-face example of
         | impossible geometry in build, the duke3d maps contain many more
         | cases of intersecting geometry. Obviously such things are
         | impossible in Doom because there is no way to build BSP tree
         | out of that and because doom only tracks X/Y coordinates of
         | player(s)/monsters.
        
           | justsomehnguy wrote:
           | > only tracks X/Y coordinates of player(s)/monsters.
           | 
           | It does, otherwise Lost Souls and Cacodemons wouldn't able to
           | fly.
        
             | dfox wrote:
             | I meant that as in contrast to build tracking the sector
             | the thing is in. Due to that you can have two sectors that
             | intersect not only in 2D, but even in 3D and the engine
             | still does the right thing (ignoring the fact that the
             | renderer gets slightly confused when there are overlapping
             | sectors in the view)
        
           | wizzwizz4 wrote:
           | Is there no way of building a BSP out of it? I don't see why
           | it has to be Euclidean to be partitioned, and loops are also
           | possible (e.g. Deimos Lab). (The coordinates are definitely a
           | blocker, so this question is academic.)
        
             | dfox wrote:
             | The "sectors" in the resulting level data have to be convex
             | for the doom engine. The "asset pipeline" handles that by
             | breaking up non-convex geometry into smaller convex
             | sectors. So, there are no loops or holes in the actual
             | level data, also from the cursory glance both of the large
             | loops in Deimos Lab are actually not complete loops, but
             | they have a place where the loop is broken. But that does
             | not matter that much, as almost any level contains geometry
             | that is either concave or has a hole (courtyard in E1M1,
             | both large rooms in MAP01...)
        
           | ant6n wrote:
           | Portals allow weird stuff (non linear geometry) in a BSP
           | level. I thought Doom had petals.
        
             | dfox wrote:
             | The primary thing that BSP does is that it maps coordinates
             | onto a BSP node/sector. Thus you cannot have overlapping
             | geometry, as this mapping would not be unique. Quake has
             | some idea of portals (I'm not sure about Doom), but it is
             | used only as an additional layer of optimization, the
             | engine is not fundamentally portal-based.
        
           | formerly_proven wrote:
           | No mention of the real Prey (2006) in a discussion of weird
           | geometry in games?
        
         | whoopdedo wrote:
         | > the 'room over room' technology which was groundbreaking at
         | the time.
         | 
         | Bungie's Marathon from 1994 could also do this and demonstrated
         | it in the deathmatch map 5-D Space[1]. It was really only Doom
         | that bugged out on overlapping sectors.
         | 
         | [1] https://www.lhowon.org/level/marathon/30
        
         | SJC_Hacker wrote:
         | > also drove the 'room over room' technology which was
         | groundbreaking at the time.
         | 
         | Descent did this in 1994.
        
           | ChrisClark wrote:
           | Descent was a polygonal game though, Duke3D was a raycasting
           | engine. It was the first four a raycasting engine, and quite
           | impressive.
        
             | mysterymath wrote:
             | Duke3D isn't a raycaster; it's a portal-based quad
             | rasterizer. Wall quads are forced vertical, and floor quads
             | are rasterized using a neat trick. The renderer computes
             | successive lines of constant distance along slooped floor
             | surfaces, then draws textures using affine scaling, which
             | is correct along those lines. The portal walls clip the
             | draw of successive sectors, which solves the hidden surface
             | problem.
             | 
             | https://fabiensanglard.net/duke3d/build_engine_internals.ph
             | p
        
         | jandrese wrote:
         | I remember a Descent PVP level that was a big room with a
         | corridor that came off of one end and went to the other by
         | looping back through the main room but was not visible inside
         | of the main room. Was a bit of a mindbender in a game that
         | already stretched the players spatial awareness.
        
         | lucianbr wrote:
         | In what sense is the Duke Nukem thing "an example of this"? The
         | duke thing is an internally consistent programmed behaviour,
         | this is... just random errors caused by a random change in the
         | source code. Duke is maybe non-euclidean geometry, or
         | something. This doom pi thing is... nothing to do with
         | geometry. More an example of "garbage in, garbage out" maybe.
        
           | ColinDabritz wrote:
           | It's an example of "non-euclidean" space, and yes, it is a
           | bit different than the article.
        
       | cheschire wrote:
       | 8:30 Pi = 3
       | 
       | 9:30 Pi = e
       | 
       | 10:30 Pi = Pi/2
       | 
       | 11:15 Pi = 0.00001
       | 
       | 12:00 Truth table of compiled and playable values
        
         | mywittyname wrote:
         | I kind of wish the author of the talk worked with smaller
         | increments, so you could get an idea of how the world was
         | deviating from the original. By the time he gets to e,
         | everything is completely warped, but it's hard to grok in what
         | way it's warped.
         | 
         | My take away from the entire talk was, if you change pi, the
         | walls move. But I still don't understand how they move and what
         | changing pi is actually doing.
        
           | germinator wrote:
           | I think it's mostly messing up viewport and movement
           | calculations, which is why you have textures popping into
           | view when already in the viewport, and shifting too much in
           | the periphery.
           | 
           | In essence, you're just mildly glitching the display. It
           | doesn't really alter the map or the spatial relationship of
           | items. You'd need more fundamental game engine changes to
           | really implement a different geometry.
        
       | huhtenberg wrote:
       | Any playable values above p? I'd guess 3.15 should still be OK.
        
       | treflop wrote:
       | Doom isn't a simulation so changing a constant isn't really an
       | example of anything.
       | 
       | It's just screwing with some routines.
       | 
       | Thats why most of the changes are unplayable.
        
         | lucianbr wrote:
         | Yeah, I have no clue why this is interesting. Of course
         | changing a constant to a wrong number causes weird behaviour or
         | errors. How else could it be? And the weird behaviour does not
         | seem to be special in any way. What am I missing?
        
           | treesknees wrote:
           | I agree it wasn't super exciting. But I still like to see the
           | little niches and topics other people find interesting even
           | if they're pretty obscure like this. Obviously enough people
           | found it interesting that this guy gave a talk and received
           | audience questions.
           | 
           | I'd like to see something like this [1] where we can find out
           | how many digits of pi you really need to make Doom play
           | normally. But again, not super exciting. You would just need
           | to iterate from 1 to 9 digits and apply some subjective rules
           | about what counts as normal.
           | 
           | [1] https://www.jpl.nasa.gov/edu/news/2016/3/16/how-many-
           | decimal...
        
       | foota wrote:
       | My favorite non Euclidean game is antichamber. It's a bit dated
       | now (and the graphics are kind of eye burning) but it was a neat
       | puzzler.
       | 
       | Edit: I had the name wrong, ita antichamber! As many others have
       | correctly stated.
        
       | mrighele wrote:
       | I wonder if it plays properly with a value of pi equals to 3.2,
       | that would make a few people in Indiana happy.
        
       | matheist wrote:
       | In the context of differential geometry, p is still p even in the
       | context of non-Euclidean manifolds.
       | 
       | The distinguishing feature (again, in differential geometry) of
       | non-Euclidean geometry is that it has non-zero sectional
       | curvature. One way to measure sectional curvature is to measure
       | the circumference of a small circle and check how it deviates
       | from what would be expected of a Euclidean circle.
       | 
       | Euclidean circumference: C(x) = 2 p x.
       | 
       | Circumference taking sectional curvature into account, for small
       | x: C(x) = 2 p x - (1/3) K p x^3 + O(x^4), where K is sectional
       | curvature. (The negative sign in the second term means
       | circumferences are smaller than Euclidean when curvature is
       | positive, like on a sphere, and are larger than Euclidean when
       | curvature is negative, like on a saddle.)
       | 
       | Curvature can then be measured by taking the third derivative of
       | circumference at 0: C'''(0) = -2 p K.
       | 
       | p can still be computed by taking the first derivative of
       | circumference at 0: C'(0) = 2 p, independent of curvature.
       | 
       | So even non-Euclidean geometry respects the value of p.
        
       | fjfaase wrote:
       | I understand that the inspiration for this talk comes from the
       | fact that Doom is using 3.141592657 instead of the correct
       | 3.141592654 in the source code. John Carmack admits that he
       | incorrectly recalled the ten digit op pi.
        
         | nuancebydefault wrote:
         | He didn't recall it correctly? Why didn't he asked Siri on his
         | cell connected iPad?
        
           | fjfaase wrote:
           | The original Doom was released in 1993 for DOS [1]. The iPad
           | came in 2010 [2]. Siri was only released in 2011 [3].
           | 
           | [1] https://en.wikipedia.org/wiki/Doom_(1993_video_game)
           | 
           | [2] https://en.wikipedia.org/wiki/IPad
           | 
           | [3] https://en.wikipedia.org/wiki/Siri
        
       | jrockway wrote:
       | John Carmack may have misremembered the 10th digit of pi, but you
       | should all search your codebases for 84,600 and see who typo'd
       | the number of seconds in a day. It is surprisingly common and
       | there is a lesson about whether or not you should type constants
       | into your program when they likely exist in the standard library
       | of your programming language.
        
         | TZubiri wrote:
         | If you can't do multiplication and you rely on a library for
         | that. I feel sorry for you.
        
           | ornornor wrote:
           | Magic numbers something something. If your language provides
           | it as a constant, why not use that? You'll always get the
           | correct value AND a descriptive name for free.
        
           | jrockway wrote:
           | It's really a matter of who's going to catch your typos. If
           | you use the constant built into your language, millions of
           | people are looking at it. If you type them into your
           | throwaway bash script, nobody is going to notice you typed 60
           | * 60 * 24 * 356 to get a year's worth of seconds.
        
             | sva_ wrote:
             | So meta that you typed 356 instead of 365
        
               | tempestn wrote:
               | That was their point.
        
           | nixpulvis wrote:
           | If I have it I'd use it, but I'm not going to go out of my
           | way to add another dependency for it lol.
        
         | ClassyJacket wrote:
         | *the number of seconds in most days
        
           | HPsquared wrote:
           | Depends what planet you're on too, I suppose.
        
         | mywittyname wrote:
         | I spent an embarrassing amount of time debugging why some token
         | refresh code that was supposed to trigger every 15 minutes
         | didn't. Eventually I had to just print out the value for each
         | variable and found that I defined 15 minutes as 15 * 60 * 60...
        
           | water-your-self wrote:
           | I like defining constants with math.
        
       | Angostura wrote:
       | I ways surprised how almost instantaneously nauseous some of
       | those made me feel. e and pi/2 were straight into barf territory
        
       ___________________________________________________________________
       (page generated 2024-05-17 23:00 UTC)