[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)