Kinsie Posted September 17, 2023 48 minutes ago, camper said: Sorry. I thought it wasn't quite the same. Since the model is located inside the clips, and not on the surface of the 3d floor. I know what you were asking, I know what I posted, and I know that I don't appreciate you treating us all like idiots in multiple threads. 0 Quote Share this post Link to post
Bauul Posted September 17, 2023 21 hours ago, Individualised said: This is the correct answer. 3D floors are like this because of the limitations of Doom map formats (including UDMF) I guess in theory you could write the information about 3D floors, ceilings, textures and properties to the extended UDMF fields of a given sector, and then if you slightly rewrote the engine to look in there rather than at a control sector, you could do away with the control sectors altogether. So it's not inherently a limitation of the map format as UDMF allows an unlimited amount of extra data to be appended to any sector. But that would be solving a problem no-one has, because control sectors work great for defining 3D floors (especially with UDB's 3D Floor mode). 0 Quote Share this post Link to post
Edward850 Posted September 17, 2023 (edited) 7 hours ago, Dark Pulse said: It's a lot easier to say "Levels are a 2D plan and any 3D floor stuff needs the floor laid out in its own map area, which is then moved over to the proper position at runtime." Except that's not what you said, you stated that Doom itself is 2D. However that's also not the limitation anyway so it's still not a correct reason least you forget about BUILD which can do arbitrary sector overlapping or fully 3D map formats like Turok which cannot. Missing this crucial information in turn makes my life miserable when someone makes a half baked YouTube video based on your post which in turn misinforms some poor person who doesn't understand anything at all when they ask questions on a discord. If you're going to provide a reason, you could stand to provide the right reason, for all our sanity. Edited September 17, 2023 by Edward850 0 Quote Share this post Link to post
esselfortium Posted September 17, 2023 6 hours ago, Bauul said: I guess in theory you could write the information about 3D floors, ceilings, textures and properties to the extended UDMF fields of a given sector, and then if you slightly rewrote the engine to look in there rather than at a control sector, you could do away with the control sectors altogether. So it's not inherently a limitation of the map format as UDMF allows an unlimited amount of extra data to be appended to any sector. But that would be solving a problem no-one has, because control sectors work great for defining 3D floors (especially with UDB's 3D Floor mode). I think this would still be worthwhile to do to get around the limits on texturing 3D floors, where each one has to either use a single unique texture or borrow an upper or lower from each line it touches. There are probably some other limitations like that that'd be worth being free of. 0 Quote Share this post Link to post
gibfrag Posted September 17, 2023 Are you talking about like those moving sectors in Powerslave/Exhumed? 0 Quote Share this post Link to post
Dark Pulse Posted September 17, 2023 (edited) 1 hour ago, Edward850 said: Except that's not what you said, you stated that Doom itself is 2D. However that's also not the limitation anyway so it's still not a correct reason least you forget about BUILD which can do arbitrary sector overlapping or fully 3D map formats like Turok which cannot. Missing this crucial information in turn makes my life miserable when someone makes a half baked YouTube video based on your post which in turn misinforms some poor person who doesn't understand anything at all when they ask questions on a discord. If you're going to provide a reason, you could stand to provide the right reason, for all our sanity. Well yes, if you want to be technical, the engine does do things in 3D, but again, this isn't about that, because to someone who doesn't know the engine's vagaries (as in the OP's case), if you say "It's a 3D engine" they'd be like "Okay, then why can't I just build a three-storey building? Why do you use these tricks?" or whatever. Then by the time you get to explaining that, not only are they confused, they're likely to not understand it as proper 3D at all. There's a height component, some things can go over/under, etc. etc. All of us in this community know the differences and the exceptions. But the level layout is always on a 2D plane, so rather than go "It's 3D, but you can't do this, this, or this," it's easier to say "Levels are laid out in 2D, so you can't really put a room over a room and you have to use some tricks to make it work" for a very basic, oversimplified explanation that would explain the important points without getting bogged down in the usual definition of 3D not applying 100% to everything Doom does. Perhaps I could've explained it better (and I edited my post to try to reflect this somewhat more), but the basic gist to get across to the guy is that you can't just make a room over another room in Doom, and so these tricks are necessary, rather than optional, to get any sort of 3D floors working - and those floors are built in a separate chunk of the map, rather than like how modern 3D engines would do it. To me it's a lot easier to start at "It's a 2D layout" and then explain how it does 3D stuff differently than to say "It's 3D, except only sorta, and here's the list of exceptions." Edited September 17, 2023 by Dark Pulse 1 Quote Share this post Link to post
kalensar Posted September 18, 2023 (edited) Zoom and GZDoom can do room over room, but yes it does require extra steps rather than just building it in a map editor like Quake can. And to make it worse, it does strain the engine more than necessary if you were go with more than just a 2 story house. Proper 3D room-over-room in Zdoom/GZD is doable but it's not easy. There's more than a few examples out there that does do it properly, but the best example I can offer is Map16 Suburbs in EDay Vanilla or EDay Beta version. This map has multiple 2 Story houses. I think Hell on Earth Starter Pack map16 also does it too, but haven't played that in awhile. HoE Starter Pack is the older version of Extermination Day compared to EDay Vanilla or EDay Beta. For 3 Story or higher proper room-over-room, I can't name a single one unfortunately. Edited September 18, 2023 by kalensar Info added 1 Quote Share this post Link to post
Bridgeburner56 Posted September 18, 2023 5 hours ago, kalensar said: Proper 3D room-over-room in Zdoom/GZD is doable but it's not easy. It's very easy. 5 hours ago, kalensar said: For 3 Story or higher proper room-over-room, Coma Moonlight is a 7 portal stack structure 1 Quote Share this post Link to post
Bauul Posted September 18, 2023 5 hours ago, kalensar said: For 3 Story or higher proper room-over-room, I can't name a single one unfortunately. I recall Dragonfly back in 2017 made a 9-story building for a simple community project using nothing but 3D floors (i.e. not a single portal). It's not especially complicated. ] 3 Quote Share this post Link to post
DRON12261 Posted September 18, 2023 (edited) On 9/16/2023 at 10:32 PM, SecularSteve said: Thank you for an immediate answer with no fuss. I'll check them out. You'd think "EDGE-Classic" would be on that list somewhere, but I'm not trying to offend the hard-working developers here. The best port personally in my opinion that can play multi-story is the Eternity Engine. But it, as mentioned above, does not do it through 3d floors, but through portals. GZDoom can implement multistory through 3D floors, but if there are a lot of them (especially per sector), it can hit performance very hard, so abusing them might not be a good idea. GZDoom also supports portals, but in Eternity Engine they are easier to implement and work without roughness (as far as I know the AI of mobs may not work correctly with portals in GZDoom). Also Eternity Engine is more optimized, especially since they implemented multi-threaded rendering there. The best practice for realizing full-fledged multistory is to use portals. 3D floors are a good thing for small elements, for which the use of portals would probably be unnecessary, such as some decorative element, like a bench or a protruding brick in the wall and all that. But the use of 3D floors to build a complex multi-layered architecture can have unpleasant consequences in the form of a significant complication of map development (because the grid will be literally a mess), and especially it will be critical for performance. Plus multi-storey architecture, implemented through 3D floors can be very painful if you will try to implement on the floors of the elaboration of lighting, especially color. UPD: A good example of a really impressive multi-story and not only is Heartland, I would call it a kind of tech-demo of Eternity Engine. I highly recommend to play it and see for yourself. Edited September 18, 2023 by DRON12261 2 Quote Share this post Link to post
Professor Hastig Posted September 18, 2023 6 minutes ago, DRON12261 said: The best port personally in my opinion that can play multi-story is the Eternity Engine. But it, as mentioned above, does not do it through 3d floors, but through portals. GZDoom can implement multistory through 3D floors, but if there are a lot of them (especially per sector), it can hit performance very hard, so abusing them might not be a good idea. I do not know why this misconception still sticks. At least in the hardware renderer 3D floors are very cheap - the added cost per 3D floor is approximately that of rendering one more sector per 3D floor. 11 minutes ago, DRON12261 said: UPD: A good example of a really impressive multi-story and not only is Heartland, I would call it a kind of tech-demo of Eternity Engine. I highly recommend to play it and see for yourself. Good looking maps for sure - but I absolutely hated the massive-monster-assault gameplay of it and ultimately never finished it. I don't think there was any map below 300 monsters and some had 1000+. 0 Quote Share this post Link to post
DRON12261 Posted September 18, 2023 2 minutes ago, Professor Hastig said: I do not know why this misconception still sticks. At least in the hardware renderer 3D floors are very cheap - the added cost per 3D floor is approximately that of rendering one more sector per 3D floor. These are not misconceptions, this is an factual result that can always be seen on the maps, where 3D floors are very much in use. I say this because I myself sat for a long time with a multistore implementation and watched it work in different ports. 4 minutes ago, Professor Hastig said: Good looking maps for sure - but I absolutely hated the massive-monster-assault gameplay of it and ultimately never finished it. I don't think there was any map below 300 monsters and some had 1000+. Well, it's more a question of tastes. In any case, as a technical example it is highly relevant. 0 Quote Share this post Link to post
Blzut3 Posted September 18, 2023 20 hours ago, Bauul said: I guess in theory you could write the information about 3D floors, ceilings, textures and properties to the extended UDMF fields of a given sector, and then if you slightly rewrote the engine to look in there rather than at a control sector, you could do away with the control sectors altogether. So it's not inherently a limitation of the map format as UDMF allows an unlimited amount of extra data to be appended to any sector. While you're technically correct here (the best kind of correct), extending UDMF in the specific way that would be required to have a complete inline 3D floor support would be honestly more convoluted than just using reference sectors. The UDMF standard doesn't support nested structures and you need pretty much a whole sector plus some other data. So you'd be doing some fake array thing (which is done for multiple sector tags for example), or literally just allowing sectors to reference otherwise unused sectors. That doesn't even account for other useful properties of reference sectors like not needing special support for them in the line specials. Like you said, solving problems no one has, but also creating new ones that we didn't have. I don't think calling it a map format limitation is unfair. 3 hours ago, Professor Hastig said: I do not know why this misconception still sticks. At least in the hardware renderer 3D floors are very cheap - the added cost per 3D floor is approximately that of rendering one more sector per 3D floor. I have no doubts that this is the case for the microbenchmark of adding a 3D floor, but are you accounting for the fact that doing interesting architecture with 3D floors typically involves creating more sectors that would be unnecessary with portals? Depending on the structure there may or may not be optimization loss from the lack of 1 sided walls that could otherwise be there. 1 Quote Share this post Link to post
andrewj Posted September 18, 2023 1 minute ago, Blzut3 said: While you're technically correct here (the best kind of correct), extending UDMF in the specific way that would be required to have a complete inline 3D floor support would be honestly more convoluted than just using reference sectors. The UDMF standard doesn't support nested structures and you need pretty much a whole sector plus some other data. So you'd be doing some fake array thing (which is done for multiple sector tags for example), or literally just allowing sectors to reference otherwise unused sectors It could be done in the map format easily enough: allow multiple sidedefs per each side of a linedef, and have the sidedefs specify which line (and which side of that line) they are on. 1 Quote Share this post Link to post
Professor Hastig Posted September 18, 2023 18 minutes ago, Blzut3 said: I have no doubts that this is the case for the microbenchmark of adding a 3D floor, but are you accounting for the fact that doing interesting architecture with 3D floors typically involves creating more sectors that would be unnecessary with portals? Depending on the structure there may or may not be optimization loss from the lack of 1 sided walls that could otherwise be there. Let's not forget that portals also produce overhead and from past experiences they were often far worse than using 3D floors. 10 minutes ago, andrewj said: It could be done in the map format easily enough: allow multiple sidedefs per each side of a linedef, and have the sidedefs specify which line (and which side of that line) they are on. I think here it is also important to consider how intrusive a feature is. The nice thing about control sectors is that they produce very little overhead overall - far less than any other alternative that has been suggested for managing 3D floors. They also provide moving abilities virtually for free. If you defined your 3D floors with new sector properties they'd be static unless you implemented an entire new set of movement functions. 0 Quote Share this post Link to post
DRON12261 Posted September 18, 2023 33 minutes ago, Professor Hastig said: Let's not forget that portals also produce overhead and from past experiences they were often far worse than using 3D floors. That may also be true. But the other thing to consider here is that it's more about using a couple or three portals instead of creating several dozen 3D floors. I don't know clearly what experience we had before, but speaking from my personal experience with Eternity Engine and GZDoom - portals are always a winning option in building complex multi-story architecture. Eternity Engine itself is fast enough, and in GZDoom the difference in performance and ease of mapping is visible to the naked eye. The actual prerogative of 3D floors, in which today they prove themselves successful, is to be a complementary element, not fundamental. 0 Quote Share this post Link to post
Bauul Posted September 18, 2023 6 hours ago, DRON12261 said: (as far as I know the AI of mobs may not work correctly with portals in GZDoom) Just FYI the AI works absolutely fine with GZDoom portals, both sector portals and static line portals. It's just the dynamic portals (which don't use the BSP) that have limitations. 1 Quote Share this post Link to post
tornado potato Posted September 18, 2023 (edited) 11 hours ago, Bauul said: I recall Dragonfly back in 2017 made a 9-story building for a simple community project using nothing but 3D floors (i.e. not a single portal). It's not especially complicated. ] This seems cool, do you have a link to this wad? I'm interested on seeing its inner workings (for example I see a lot of different textures for the walls, as far as I know 3d floors only let you texture the floor and ceiling but the enclosing space is otherwise a normal sector nevermind I remembered 3d floors are not only ceiling and floor, they also have a third texture for the "thickness") Edited September 18, 2023 by tornado potato 0 Quote Share this post Link to post
Bauul Posted September 18, 2023 (edited) 13 minutes ago, tornado potato said: This seems cool, do you have a link to this wad? Sure, it's Confinement 256, map 39. Use "map CONF39" to warp directly there from the console. 13 minutes ago, tornado potato said: I'm interested on seeing its inner workings (for example I see a lot of different textures for the walls, as far as I know 3d floors only let you texture the floor and ceiling but the enclosing space is otherwise a normal sector) I'm not sure where you got that impression from. 3D floors are (most commonly) solid blocks of geometry, with a top, bottom, and sides. They basically work like brushes in a Quake engine. Indeed UDB's Slope Handle tool even lets you manipulate them mostly like brushes as well. You can do stuff like this: https://streamable.com/vztmja Edited September 18, 2023 by Bauul 1 Quote Share this post Link to post
tornado potato Posted September 18, 2023 5 minutes ago, Bauul said: I'm not sure where you got that impression from. 3D floors are (most commonly) solid blocks of geometry, with a top, bottom, and sides yeah sorry I realized what I said was not true like a minute after posting 😅 0 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.