Extrafloors in ZDoom
Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. This forum is archived - please use this set of forums to ask new questions.
-
Anonymous
Extrafloors in ZDoom
I began to edit maps for ZDoom since two weeks but I can´t find any tutorial for to do an extrafloor. Can ZDoom do extrafloors like Legacy or Edge? How can I do it? Is there a ZDoom TODO list?
-
HotWax
- Posts: 10002
- Joined: Fri Jul 18, 2003 6:18 pm
- Location: Idaho Falls, ID
ZDoom does not have a built-in room-over-room effect, no. However, there are a few ways to create something similar, thanks to ZDoom's invisible bridge thing.
The invisible bridge has a Z-height and Z-position, as well as X and Y dimensions. Using them, you can make a solid (albiet invisible) surface that can be run under and over. If you use multiple bridge things, you can have as many of these stacked as you like. To use them, however, you'll need to draw a visible floor manually. There are two ways I know of to do so:
1) The classic method. Use lines and well-placed textures to make a "grating" or other floor. The disadvantage to this method is that it's tedious and it might not look all that great. The advantage is that you can have as many floors stacked in this way as you want.
2) The transfer specials trick. Use the Boom-style fake room-over-room effect to create the different levels. Each will be drawn with a realistic-looking floor and ceiling. The disadvantage to this method is that you are limited to 3 floors. (Fake floor, real floor, fake ceiling) The advantage is that it appears as real as any other floor.
In either case, there is one additional problem you'll run into. Anything that drops onto an invisible bridge (corpses or dropped items) will fall right through it until it hits the real floor.
As for when ZDoom will get room-over-room, Randy has expressed a dislike for the kinds of hacks that Edge and Legacy use to accomplish this. Most likely, if ZDoom ever has stacked rooms it'll be because Randy has replaced the renderer with something that is truly 3D and can easily handle such constructs.
The invisible bridge has a Z-height and Z-position, as well as X and Y dimensions. Using them, you can make a solid (albiet invisible) surface that can be run under and over. If you use multiple bridge things, you can have as many of these stacked as you like. To use them, however, you'll need to draw a visible floor manually. There are two ways I know of to do so:
1) The classic method. Use lines and well-placed textures to make a "grating" or other floor. The disadvantage to this method is that it's tedious and it might not look all that great. The advantage is that you can have as many floors stacked in this way as you want.
2) The transfer specials trick. Use the Boom-style fake room-over-room effect to create the different levels. Each will be drawn with a realistic-looking floor and ceiling. The disadvantage to this method is that you are limited to 3 floors. (Fake floor, real floor, fake ceiling) The advantage is that it appears as real as any other floor.
In either case, there is one additional problem you'll run into. Anything that drops onto an invisible bridge (corpses or dropped items) will fall right through it until it hits the real floor.
As for when ZDoom will get room-over-room, Randy has expressed a dislike for the kinds of hacks that Edge and Legacy use to accomplish this. Most likely, if ZDoom ever has stacked rooms it'll be because Randy has replaced the renderer with something that is truly 3D and can easily handle such constructs.
-
Zell
- Posts: 791
- Joined: Thu Jul 24, 2003 7:47 am
- Location: IN A GODDAMN BOX[In Erie.]
-
HotWax
- Posts: 10002
- Joined: Fri Jul 18, 2003 6:18 pm
- Location: Idaho Falls, ID
Last I heard, Edge's code is a mess, plain and simple. If Legacy used it as a base, it's probably not surprising they had to rewrite all of it to get it to work.Zell wrote:i read somewhere that legacy had to use edges code as a base, but, they had to preety much re-write it. is it true? or is that still a hack?
Whether it's a hack or not I guess is a matter of opinion. I do know that neither Edge nor Legacy are actually capable of using a real 3D structure. They just use some kind of workaround (a.k.a. hack) to let you use room-over-room effects in certain situations. It would be much better if ZDoom used a true-3D renderer, but of course that would require a complete rewrite of the engine.
I guess it's all a matter of opinion. Some people might see the method ZDoom uses to render slopes as a hack, and some might not. At the end of the day, however, it's Randy's opinion that matters, and he's already expressed a dislike for Edge's method of ROR.
-
Hirogen2
- Posts: 2033
- Joined: Sat Jul 19, 2003 6:15 am
- Operating System Version (Optional): Tumbleweed x64
- Graphics Processor: Intel with Vulkan/Metal Support
- Location: Central Germany
-
Zell
- Posts: 791
- Joined: Thu Jul 24, 2003 7:47 am
- Location: IN A GODDAMN BOX[In Erie.]
-
Hirogen2
- Posts: 2033
- Joined: Sat Jul 19, 2003 6:15 am
- Operating System Version (Optional): Tumbleweed x64
- Graphics Processor: Intel with Vulkan/Metal Support
- Location: Central Germany
-
The Ultimate DooMer
- Posts: 2109
- Joined: Tue Jul 15, 2003 5:29 pm
- Location: Industrial Zone
Re: Extrafloors in ZDoom
Yes - the methods in HotWax's post are the ways to do it, but with limits:Cyberkiller wrote:I began to edit maps for ZDoom since two weeks but I can´t find any tutorial for to do an extrafloor. Can ZDoom do extrafloors like Legacy or Edge?
1. The classic method is limited by texture sizes - ie. the number of crossbeams in a texture. If you use a default texture (like the STEP ones) you only get 2 floors. If you want 3 or more floors, you'll have to make a tall texture with more than one crossbeam in, and the bridges will then have a fixed gap between beams. And if you create a crossbeam that doesn't repeat every 32 units (which is the standard grid size for bridge floors of the classic method), you've got a lot of aligning to do....
2. The Transfer_Heights method is limited to only 2 floors due to HOM effects when looking into the room from outside the sector. If you try and build 3 floors, you will get HOM's when you look at the top floor from the outside (even if the top floor has no windows and only has doors to enter it). If you can view both floors at once, or the bottom floor of one sector and the top floor of another sector at the same time, HOM's appear again. (which rules out the use of lifts to go between floors, stairs must be outside the building and visible holes in the fake floor/ceiling are not allowed - there must be a flat visible there to prevent you seeing both floors at once)
/me sits back and waits to be corrected on one or both of these.
-
Zell
- Posts: 791
- Joined: Thu Jul 24, 2003 7:47 am
- Location: IN A GODDAMN BOX[In Erie.]
-
Hirogen2
- Posts: 2033
- Joined: Sat Jul 19, 2003 6:15 am
- Operating System Version (Optional): Tumbleweed x64
- Graphics Processor: Intel with Vulkan/Metal Support
- Location: Central Germany
-
The Ultimate DooMer
- Posts: 2109
- Joined: Tue Jul 15, 2003 5:29 pm
- Location: Industrial Zone
Create 2 sectors, one of which is inside a column (making a building) and the other must be in the void. Give sector 1 a height of (0, 256) and sector 2 (in the void) a height of (128, 256). Give sector 1 a tag, and give one of sector 2's linedefs the Transfer_Heights special, with the same tag.Zell wrote:..lol how would you use transfer heights do this? i have always just suspended step4 or etc to make my bridges...
Then choose your sector properties (flats, lighting etc.), remembering that sector 1's properties will appear on the top floor, and sector 2's properties will appear on the bottom floor.
Next, place invisible bridge things in sector 1, with a radius of 32 (so place them 64 units apart), a thickness of 16 and a z-height of 112. You now have a basic 2-storey building.
To complete it, add doors to each floor at the relevant heights - (0, 72) and (128, 200) for small doors. You can also add windows if you want, but you must not be able to see both floors at once or HOM's appear. The means of going from one floor to the other (eg. stairs, lift) must be on the outside of the building.
-
HotWax
- Posts: 10002
- Joined: Fri Jul 18, 2003 6:18 pm
- Location: Idaho Falls, ID
I said *true* 3D structures. When you can literally create any conceivable construct within the engine (regardless of rendering speed, which is not an engine limitation), it will be able to create true 3D structures. Typically this requires polygon handling and a 3D map structure as found in such games as Unreal, Quake, etc.Zell wrote:...lol 3d structures arent possible? i always made neato things in legacy...=p oh well, anyway, i dont really get how to use transfer heights has a "3d" floor...i have tried it but it never did work...
-
Zell
- Posts: 791
- Joined: Thu Jul 24, 2003 7:47 am
- Location: IN A GODDAMN BOX[In Erie.]
im guessing since doom doesnt have a 3dmap structure, it doesnt lag like some maps on quake or unreal? (just my guess ^_^ )
hmmm...(thinks veeeerrryy deeply on game structures)
is it becuase that some 3d engines are (i dunno if they are) poorly built that they lag? or is it something else? becuase i heard HL2 is gonna run great on a crappy computer...unlike it did before(my comp can barely handle it, thats why i decided to get CS =p )
hmmm...(thinks veeeerrryy deeply on game structures)
is it becuase that some 3d engines are (i dunno if they are) poorly built that they lag? or is it something else? becuase i heard HL2 is gonna run great on a crappy computer...unlike it did before(my comp can barely handle it, thats why i decided to get CS =p )
-
HotWax
- Posts: 10002
- Joined: Fri Jul 18, 2003 6:18 pm
- Location: Idaho Falls, ID
It is a combination of mapper effeciency, engine effeciency, and CPU (and/or GPU) speed that determines rendering speed. Doom may not slowdown as much on today's lightning fast systems, but it also makes absolutely no use of the 3D accelerator in your machine, either. Because newer engines make use of the GPU, they can render much more complex scenes and maintain the same high speed as Doom in most cases. And yes, the "fake 3D" map structure of Doom certainly helps it go much faster than it would trying to render a true polygonal world using only the CPU.Zell wrote:im guessing since doom doesnt have a 3dmap structure, it doesnt lag like some maps on quake or unreal? (just my guess ^_^ )
hmmm...(thinks veeeerrryy deeply on game structures)
is it becuase that some 3d engines are (i dunno if they are) poorly built that they lag? or is it something else? becuase i heard HL2 is gonna run great on a crappy computer...unlike it did before(my comp can barely handle it, thats why i decided to get CS =p )
I haven't really looked into HL2 (Frankly I'm far more interested in Doom 3), but there are a few options programmers can choose when it comes to improving speed on lower-end systems. The most common is to scale the graphics down as the framerate drops to keep the game running smoothly at the cost of graphical purdiness. Or they may use card-speicific code based on what GPU you have in your machine. Or, maybe, they've actually gone to the trouble of making a highly effecient engine that simply runs lightning fast even on older machines. That would certainly be a refreshing change from the norm these days.
-
Hirogen2
- Posts: 2033
- Joined: Sat Jul 19, 2003 6:15 am
- Operating System Version (Optional): Tumbleweed x64
- Graphics Processor: Intel with Vulkan/Metal Support
- Location: Central Germany
>It is a combination of mapper effeciency,
So not Frederik
(Vrack2)
>engine effeciency
Improved (see the 273 FPS)
>and CPU (and/or GPU)
Or? Cool! Show me a game that needs few CPU but awesome GPU.
So not Frederik
>engine effeciency
Improved (see the 273 FPS)
>and CPU (and/or GPU)
Or? Cool! Show me a game that needs few CPU but awesome GPU.
LOD technique, eh?I haven't really looked into HL2 (Frankly I'm far more interested in Doom 3), but there are a few options programmers can choose when it comes to improving speed on lower-end systems. The most common is to scale the graphics down as the framerate drops to keep the game running smoothly at the cost of graphical purdiness. Or they may use card-speicific code based on what GPU you have in your machine. Or, maybe, they've actually gone to the trouble of making a highly effecient engine that simply runs lightning fast even on older machines. That would certainly be a refreshing change from the norm these days.