[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  : 570 points
       Date   : 2024-05-17 12:43 UTC (1 days 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.
        
               | anthk wrote:
               | And bridges and such, but I'd put the line on Boom
               | compatible engines.
        
           | int_19h wrote:
           | FPS games of that era were usually either in the portals camp
           | or the BSP camp, BSP being the "OG" way to do it precisely
           | because Doom did it that way.
        
         | 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
        
               | drdeca wrote:
               | Rather than including "portal" as a kind of thing in your
               | space, I would think to just say, "around each point,
               | there is an open ball such that the metric (not the
               | metric tensor, just the d(x,y) thing) is the same as a
               | ball in Euclidean space".
               | 
               | Oh, and then I guess you could add requirements that for
               | any continuous path along with a, continuous choice of an
               | orthonormal basis of the tangent space, along that path,
               | that uh, transporting small volumes along it, not change
               | the volume?
        
               | 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.
        
             | thaumasiotes wrote:
             | > 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.
             | 
             | This one might not hold either, depending on your point of
             | view. If you take the point of view of someone traveling
             | along a line, that can still go on forever.
             | 
             | But if you're measuring the line, portals can easily
             | prevent it from extending indefinitely, by wrapping it
             | around to an earlier part of itself. It would then fail to
             | be the case that, for any distance, there are two points on
             | the line separated by at least that distance.
        
         | 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.
        
             | mat0 wrote:
             | This is not really true. It is true that this particular 3D
             | environment has some limitations, but it is 3D. A video
             | here discussing this exact topic:
             | https://www.youtube.com/watch?v=ZYGJQqhMN1U
        
           | 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.
        
             | astrange wrote:
             | Superliminal is also good.
             | (https://store.steampowered.com/app/1049410/Superliminal/)
        
               | ghusbands wrote:
               | If you play it, though, expect something that's not a
               | challenge but more just an interesting presentation of
               | some ideas.
        
               | astrange wrote:
               | It's made to make you feel smart when you solve the
               | puzzles while not actually being really difficult, which
               | is fine if you only play it once.
               | 
               | The writing is too wordy though, which is an issue when
               | translated - I've watched some Japanese streamers play it
               | and the subtitles try to keep every single idea in there,
               | making them so long they're a headache to read.
        
           | hcs wrote:
           | Also consider Manifold Garden.
        
             | mock-possum wrote:
             | Man I spent so many happily stoned hours digging into that
             | game. Sometimes I'd get stuck and just spend some time
             | throwing myself off the edge of a cliff face and falling
             | into eternity, watching the fractal platforms just unfold
             | around me, until I felt like nudge my course back over to
             | solid ground and resume puzzle solving.
        
         | 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.
        
               | ghusbands wrote:
               | I've read them and somewhat disagree. The protaganist(s)
               | in the book almost never choose a sensible course of
               | action for their goals, even given elapsed decades in
               | which to make them. If I can come up with much better
               | plans on the fly while reading, the main character surely
               | could in decades.
        
           | 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
        
             | mr_toad wrote:
             | In particular Dicronaughts is quite mind-bending, with its
             | two time dimensions.
        
           | 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.
        
             | drdeca wrote:
             | Huh? I would imagine that content that is about people's
             | feelings and the things those feelings are about, would be
             | more likely to offend? Who gets offended by content about
             | like, "How navigation would be different if space were like
             | X?" or, "How would sheet music for music in a world with
             | two time dimension look? Might we have music where along
             | one direction the frequency is increasing in magnitude, but
             | decreasing along another, played to depict a scene in which
             | a pursuer gets closer to a target along one direction of
             | time but further along the other?" ?
             | 
             | (Though, I'm not sure if two time dimensions exactly makes
             | sense, because like, R\\{0} has two connected components,
             | which seems connected to the distinction between the past
             | and the future, while R^2\\{0} is connected (though not
             | simply-connected) , so I'm not sure if the distinction
             | between past and future, can still be made? Maybe if
             | instead of a 0-dimensional point we have a 1-dimensional
             | curve? )
             | 
             | As I imagine it, for the most part, the further something
             | is from human experience, the less it would tend to remind
             | people of whatever things in life they find objectionable.
        
               | moomoo11 wrote:
               | Because in trying to tell that kind of interesting story
               | today, the creators would force the current day politics
               | and other bullshit into it and make that the front and
               | center instead of the cool math or science stuff.
               | 
               | If even simple children's stories can't escape it with
               | the remakes, forget it when it comes to something
               | interesting.
               | 
               | I'm always happy when there are exceptions to this of
               | course, but it is quite rare. One of my goals if I ever
               | make it to the 9 figure club is to start a media company
               | based outside the US where we can make great content
               | about interesting concepts like this, without injecting
               | politics into it or having to work with people who inject
               | nonsense into everything. (on a side note, this is why I
               | enjoy working with E. Euro and S. American engineers -
               | they just focus on working and problem solving, not
               | feelings and shit based on half truths they made up from
               | taking drugs or whatever)
               | 
               | Anyway I was just responding to why stuff like that isn't
               | made anymore. That's my opinion.
        
               | ben_w wrote:
               | > Because in trying to tell that kind of interesting
               | story today, the creators would force the current day
               | politics and other bullshit into it and make that the
               | front and center instead of the cool math or science
               | stuff.
               | 
               | That's _always_ been the case. If you look at Star Trek,
               | the TOS Klingons were a very thinly veiled reference to
               | the Soviet Union, the Federation was the USA (and in some
               | cases not even thinly veiled, they had an episode where
               | Kirk was  "yo, sounds like you're quoting the
               | constitution"); the whole of _The Undiscovered Country_
               | was chock full of similarly themed memes with Praxis
               | being Chernobyl,  "Shakespeare is best in the original
               | Klingon" was the kind of thing that the Soviet Union was
               | famous for doing[0] with all the culture they liked, and
               | with Rura Penthe being a very obvious reference to a
               | Siberian Gulag.
               | 
               | TNG comes around, over a thousand people on the ship,
               | statistically speaking 50 or so are probably gay... none
               | are mentioned because that was just before "don't ask,
               | don't tell" was introduced, which itself was a mild
               | improvement on "we will discharge you for this". Even the
               | attempt at an LGBT episode (the planet which had
               | eliminated gender and brainwashed anyone who still had
               | one) only got the T, and not the LGB parts.
               | 
               | DS9's handling of the Bajorans feels to me like it was
               | riffing on then-current US attitudes towards the
               | Mujahideen (who were still broadly seen as a positive
               | because they had kicked the Soviets out of Afghanistan
               | and 9/11 had not yet happened) and the Provisional IRA
               | (who were, when the show began, still engaged in armed
               | conflict with the government of the UK).
               | 
               | Enterprise's Archer felt like Bush Jr, and the Xindi arc
               | felt like it was done as a reference to the 9/11 attacks
               | (I don't know how much of a delay there is between
               | scriptwriters experiencing real life and the result
               | hitting the airwaves).
               | 
               | Every show you've ever seen has something like this, just
               | to get distributed. But these days, we've got more
               | options for distribution, so you're not limited to your
               | own country's Overton Window for "what counts as art and
               | not filth that corrupts the minds of our youth", so you
               | can much more easily access things that those around you
               | would revile you for -- be that smoking tobacco or
               | marijuana, or depicting casual consumption of pork or
               | beef like those aren't Haram or aghnyaa (in Islamic and
               | Hindu cultures respectively), or which you are upset more
               | about out of nipples and guns.
               | 
               | [0] https://tvtropes.org/pmwiki/pmwiki.php/Main/InTheOrig
               | inalKli...
        
             | fennecbutt wrote:
             | Are you complaining about gay characters existing or
             | something? Cause if you are then aaa lmao
        
             | adammarples wrote:
             | You do, but then you get games like Sunless Sea which are
             | praised by critics but don't sell millions
        
         | 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.
        
             | andrewflnr wrote:
             | > the Pak really spoil Known Space for me
             | 
             | Out of curiosity: why? They are rather silly, but I'm
             | mostly thinking about their implausible evolutionary
             | history when I say that.
        
         | 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.
        
           | bruce343434 wrote:
           | https://www.reddit.com/r/Vinesauce/comments/baclu0/real_time.
           | ..
        
       | 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...
        
         | metadat wrote:
         | Marathon was so much fun on the old Macintoshes with OS6 and
         | OS7!
        
       | 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...)
        
             | immibis wrote:
             | The Doom design starts with X,Y,Z and then finds your BSP
             | node. You can't warp to a different X,Y,Z without some type
             | of warp portal which doesn't exist in Doom. Modern Doom
             | forks have this feature and also have graphics portals so
             | you can implement this (as MyHouse.pk3 does).
        
           | 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.
        
             | jorvi wrote:
             | There is a very interesting Doom level named "myhouse.wad"
             | that does a lot of clever things to seemingly allow room-
             | over-room.
        
               | Narishma wrote:
               | I don't think that mod works on a normal Doom engine.
        
           | formerly_proven wrote:
           | No mention of the real Prey (2006) in a discussion of weird
           | geometry in games?
        
             | rompledorph wrote:
             | I was truly amazed by this game! You don't see anything
             | like that elsewhere
        
               | habitue wrote:
               | The portals in prey were cool but, definitely the games
               | Portal and Portal 2 are places you could see it
               | elsewhere. Also in portal you can actually choose where
               | the portals are, whereas Prey's portals were fixed in
               | place
        
           | somat wrote:
           | Sure you can do this in doom, or at least it can be done in
           | modern source ports.
           | 
           | https://www.youtube.com/watch?v=Iq1-TZXz9xo (myhouse.wad)
           | 
           | There is nothing about the data structures ID choose to use
           | in doom that prevent portal shenanigans. ID(John Carmack)
           | just did not implement them.
        
             | anthk wrote:
             | Modern source ports are a totally different thing. If any,
             | try to do what the former comment states with a Boom
             | compatible engine as Crispy Doom or Chocolate Doom.
        
               | jalbertoni wrote:
               | You're confusing things a bit here, Boom is already an
               | enhanced port and it got the kind of line-to-line
               | teleport that allows you to do this.
               | 
               | Crispy and Chocolate Doom are what the community calls
               | "vanilla" Doom, with no enhancements at all.
               | 
               | That said, if you are willing to hex-edit the map data,
               | you can have non-euclidean geometry in vanilla Doom:
               | https://doomwiki.org/wiki/Linguortal
        
         | 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.
        
           | snthpy wrote:
           | The DN example would be an instance of non-Euclidean topology
           | whereas the other one is presumably non-Euclidean geometry.
        
         | Synaesthesia wrote:
         | This video does a good job explaining it, yes it really is
         | quite mind-bending.
         | 
         | https://www.youtube.com/watch?v=UitzmhJe578
        
         | immibis wrote:
         | I wrote a little engine with this capability a long time ago. I
         | didn't know about the Build engine at the time. I divided the
         | world into convex sectors and allowed arbitrary links (portals)
         | instead of following a BSP tree. Rendering is front-to-back and
         | clips at the portal boundary.
         | 
         | If you can rasterize the inside of a convex shape, you can
         | rasterize a sector-portal-world by marking certain faces as
         | portals, and when rendering one, setting the clipping region
         | (or stencil buffer) to where the face would be, then rendering
         | the sector behind it with an appropriate transformation (which
         | is part of the portal's data, alongside the ID of the other
         | sector).
         | 
         | Collisions through portals are much harder than rendering
         | through portals.
        
         | thaumasiotes wrote:
         | > the "3 houses with 3 utilities without crossing" puzzle
         | 
         | In graph theory's terminology, this is "K3,3", one of two
         | irreducible nonplanar graphs. The other one is K5.
         | 
         | You can also make all the connections without crossing any
         | edges if you embed the graph in a torus, which is equivalent to
         | building a bridge over some set of edges that other edges are
         | allowed to take.
        
         | Andrew_nenakhov wrote:
         | There is an interesting VR game called "Tea For God" that puts
         | you in your play area, and cleverly creates new corridors and
         | rooms as you make it around the corner or lift so there is an
         | illusion that you are in a very vast place, despite never
         | leaving the same room, all without using the joystick or
         | teleporting.
        
         | eek2121 wrote:
         | I spent so much time back in the day working with build. In
         | many ways it was super easy (and fun!) to use.
         | 
         | Thanks for the throwback!
        
       | 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...
        
           | hnlmorg wrote:
           | I don't think you're missing anything. Some have found the
           | comments on this video to be more thoughtful than the content
           | of that presentation.
           | 
           | I was hoping when he mentioned other projects that he'd found
           | on GitHub and Google that he'd talk a little about them too
           | but alas he shared that he just clicked search and then did
           | nothing with the results. A big missed opportunity in my
           | opinion.
           | 
           | Still, at least the comments on HN were largely worthwhile.
        
           | dgellow wrote:
           | It's just a fun talk to make people curious about a topic,
           | there isn't anything too serious in it. Lots of talks at
           | hacker conferences are just people sharing fun technical
           | topics they enjoy
        
       | 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.
        
         | immibis wrote:
         | Turn your screen brightness down. This solves so many cases of
         | "I have to use dark mode or my eyes burn."
        
           | foota wrote:
           | Maybe it would help, but I remember the issue being more the
           | sharp contrast and weirdly vibrant colors than the actual
           | brightness itself.
        
             | immibis wrote:
             | .... turn your screen contrast down too.
        
         | the__alchemist wrote:
         | Check out Manifold Garden too!
        
       | 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
        
             | hnlmorg wrote:
             | I think the GP was making a sarcastic point about how much
             | harder it was to confirm assumptions like the 10 digit
             | constant of pi
        
             | nuancebydefault wrote:
             | So funny that people took me seriously... I thought the
             | over the topness was large enough to detect the irony. I
             | really did not want to take the irony down by adding this
             | ugly /s token... Pitty for my karma points...
             | 
             | Edit: my muscle memory of right hand on mouse, left hand on
             | asd, starts tickling when seeing these video's after 'bring
             | 'm on' is clicked.
        
       | 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.
        
             | sambazi wrote:
             | earth has leap seconds
        
               | thaumasiotes wrote:
               | But those don't increase the number of seconds in the
               | day. Instead, the final second happens twice.
               | 
               | This is different from what happens in leap year, where
               | February is actually lengthened and February 29 is
               | considered a different day from February 28. It escapes
               | me why leap seconds aren't treated that way. (I know,
               | people say the stupid treatment of leap seconds is
               | required by the POSIX definition of time. So what? Change
               | the POSIX definition.)
        
               | sambazi wrote:
               | > But those don't increase the number of seconds in the
               | day. Instead, the final second happens twice.
               | 
               | i agree that this is a rather confusing way of putting it
        
               | leni536 wrote:
               | > But those don't increase the number of seconds in the
               | day. Instead, the final second happens twice
               | 
               | No, it adds a 61th second to the last minute.
               | 
               | UNIX timestamps happen twice, because it's broken. NTP
               | too.
        
         | 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.
        
           | spacebanana7 wrote:
           | I've encountered similar issues for long lived tokens in
           | cookies on Safari.
           | 
           | Turned out my Maths was okay, but Safari under many
           | circumstances removes first party cookies after 7 days.
           | 
           | https://snowplow.io/blog/tracking-cookies-length/
        
           | shepherdjerred wrote:
           | I find it easier to do something like:
           | 
           | SECONDS_IN_MINUTE = 60
           | 
           | REFRESH_TIME_MINUTES = 15
           | 
           | REFRESH_TIME_SECONDS = SECONDS_IN_MINUTE *
           | REFRESH_TIME_MINUTES
           | 
           | e.g. I define every constant separately, and ideally any
           | constant defined by an operation will only have one such
           | operation. This makes mistakes _much_ easier to spot.
        
         | Pikamander2 wrote:
         | Oh wow, you weren't kidding. Even big projects like MySQL and
         | Textmate look like they might have that error in their
         | codebase.
         | 
         | https://github.com/search?type=code&auto_enroll=true&q=84600
         | 
         | https://github.com/mysql/mysql-server/blob/824e2b4064053f7da...
         | 
         | https://github.com/textmate/textmate/blob/346b52b108b387462d...
        
       | Angostura wrote:
       | I ways surprised how almost instantaneously nauseous some of
       | those made me feel. e and pi/2 were straight into barf territory
        
       | ngneer wrote:
       | pi is never 3.14159
        
         | contingencies wrote:
         | Truth
        
       | system2 wrote:
       | Wow the JPEG injection was super cool.
        
       | ajxs wrote:
       | This brought _this_ other video to mind:
       | https://www.youtube.com/watch?v=jQOJ3yCK8pI
       | 
       | See also: https://github.com/shaunlebron/blinky
       | 
       | Using non-standard projections in Quake.
        
         | RunSet wrote:
         | Descended from FOVquake and Pan(oramic)Quake.
         | 
         | https://strlen.com/gfxengine/panquake/
         | 
         | Changing the lens projection is a little different than
         | changing the value of pi, but it plays in the same "visually
         | wrong" space.
        
       | fecal_henge wrote:
       | Pi = 3 just looked like some of the more budget games of the era.
        
       | EDM115 wrote:
       | Let's round pi to 2 and forget about it
        
       | INTPenis wrote:
       | Great lecture. I just started getting into Doom levels through a
       | friend who's obsessed with Slade and Doom Builder.
       | 
       | It's an amazing community 30 years later, but I still prefer
       | Quake and its mods. Much more modern.
        
       | hilbert42 wrote:
       | Um, interesting, that has the smell of the Pentium bug about it.
       | Not so much the incorrect value of pi but the lookup table.
       | 
       | This Doom illustration reinforces the lesson from the Pentium bug
       | that substituting a lookup table for a slower but correct
       | algorithm is a bad idea unless absolutely necessary.
        
       | barrenko wrote:
       | And this is why Sutskever only sent a list of 30 papers to
       | Carmack.
        
       | robblbobbl wrote:
       | Like Missingno. in Pokemon
        
       ___________________________________________________________________
       (page generated 2024-05-18 23:02 UTC)