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
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.
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.
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.)
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).
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…)
Portals allow weird stuff (non linear geometry) in a BSP level. I thought Doom had petals.
There is a very interesting Doom level named “myhouse.wad” that does a lot of clever things to seemingly allow room-over-room.
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.
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.
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.
only tracks X/Y coordinates of player(s)/monsters.
It does, otherwise Lost Souls and Cacodemons wouldn't able to fly.
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)
No mention of the real Prey (2006) in a discussion of weird geometry in games?
I was truly amazed by this game! You don’t see anything like that elsewhere
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.
The DN example would be an instance of non-Euclidean topology whereas the other one is presumably non-Euclidean geometry.
It's an example of "non-euclidean" space, and yes, it is a bit different than the article.
also drove the 'room over room' technology which was groundbreaking at the time.
Descent did this in 1994.
Descent was a polygonal game though, Duke3D was a raycasting engine. It was the first four a raycasting engine, and quite impressive.
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.php
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.
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.
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.
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.
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!
This video does a good job explaining it, yes it really is quite mind-bending.
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.
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.
This might come off as trite (and it probably is) but why don't we get novels this creative nowadays?
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.
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.
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.
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 حَرَام or अघ्न्या (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/InTheOriginalKli...
Are you complaining about gay characters existing or something? Cause if you are then aaa lmao
You do, but then you get games like Sunless Sea which are praised by critics but don't sell millions
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.
The Bobiverse books are great IMHO.
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.
https://en.wikipedia.org/wiki/Diaspora_(novel) and of course other Greg Egan works
In particular Dicronaughts is quite mind-bending, with its two time dimensions.
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.
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.
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.
I liked this one
https://www.amazon.com/Terraformers-Annalee-Newitz/dp/125022...
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.
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.
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.
I loved Operation Chaos, but I found the much later sequel to be disappointing.
See also Jack Vance's wonderful story collection Tales of the Dying Earth, which also includes magic/science and daemon dimensions.
That sounds awesome.
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.
If you can't do multiplication and you rely on a library for that. I feel sorry for you.
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.
So meta that you typed 356 instead of 365
That was their point.
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.
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.
*the number of seconds in most days
Depends what planet you're on too, I suppose.
earth has leap seconds
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.)
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
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.
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...
I like defining constants with math.
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.
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.
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...
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.
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?
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...
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.
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
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.
Turn your screen brightness down. This solves so many cases of "I have to use dark mode or my eyes burn."
Maybe it would help, but I remember the issue being more the sharp contrast and weirdly vibrant colors than the actual brightness itself.
.... turn your screen contrast down too.
Check out Manifold Garden too!
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.
He didn't recall it correctly? Why didn't he asked Siri on his cell connected iPad?
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)
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.
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
In a previous reality, Pi did equal 3. It was crazy! March 0 Pi day, what!
You mean March 0 of course, which is leap day.
Agree!
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
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.
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.
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.
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.
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.
All of Doom's movement code is based on radians.
pi is never 3.14159
Truth
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.
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.
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...
Marathon was so much fun on the old Macintoshes with OS6 and OS7!
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.
Same talk on YouTube: https://youtu.be/_ZSFRWJCUY4
Wow the JPEG injection was super cool.
Like Missingno. in Pokémon
I wonder if it plays properly with a value of pi equals to 3.2, that would make a few people in Indiana happy.
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.
In the context of differential geometry, π is still π 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 π x.
Circumference taking sectional curvature into account, for small x: C(x) = 2 π x - (1/3) K π 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 π K.
π can still be computed by taking the first derivative of circumference at 0: C'(0) = 2 π, independent of curvature.
So even non-Euclidean geometry respects the value of π.
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.
Any playable values above π? I'd guess 3.15 should still be OK.
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.
Pi = 3 just looked like some of the more budget games of the era.
I wish this video went more into the game mechanics and why changing Pi messed with things the way it did.
And this is why Sutskever only sent a list of 30 papers to Carmack.
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.
Let's round pi to 2 and forget about it
I ways surprised how almost instantaneously nauseous some of those made me feel. e and pi/2 were straight into barf territory
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...
"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.)
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."
What if it satisfies an as-of-yet undiscovered set of axioms?
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
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?
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.
It can be given an as-of-yet unchosen new name :)
Fair point.
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.
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.
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)
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.
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.
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)
Some vanilla Doom levels get exceptionally close to simulating it using portals and other tricks.
And bridges and such, but I'd put the line on Boom compatible engines.
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.
Woah! Thanks for sharing, that video is amazing, I'd love to see an actual game using that effect.
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.
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?
Remembered the entity name, and this information is on the wiki page: https://developer.valvesoftware.com/wiki/Linked_portal_door
Antichamber: https://store.steampowered.com/app/219890/Antichamber/
Also look at myhouse.wad for actual Doom in actual non-Euclidean spaces.
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.
If you like this, try Superliminal (https://store.steampowered.com/app/1049410/Superliminal/)
https://en.wikipedia.org/wiki/HyperRogue
(not exactly the effect in the video you responded to, but similar category)
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.
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.
Superliminal is also good. (https://store.steampowered.com/app/1049410/Superliminal/)
If you play it, though, expect something that's not a challenge but more just an interesting presentation of some ideas.
Also consider Manifold Garden.
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.
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.
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!
For a more modern take (that's kid friendly) have a look at https://store.steampowered.com/app/1256230/Hyperbolica/
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.
More links for the pile
https://youtu.be/tl40xidKF-4?feature=shared
I expected MyHouse.WAD https://www.youtube.com/watch?v=5wAo54DHDY0
Here's another example of a "non-euclidean" engine/game, which in my opinion is more authentically non-euclidian: https://youtu.be/tl40xidKF-4
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