Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
CornKing

Questions regarding GZDoom's possabilities

Recommended Posts

Hello,

 

Not long time ago I've successfully released my first .wad but now it's time for me to work on another project.

 

With it I have came up with a bunch of new ideas, however, there's a conundrum for me if it's even possabile to pull it off and how.

 

Without further ado, here are the questions for the experianced GZDoom mappers:

 

1. Is it possabile to make destructable walls/objects? For example, I'd like to make a ventilation grates that'd block player's movement until they're destroyied. Or just simple breakable glass.

 

2. Can GZDoom make round architecture? I've seen some maps that had it but am unsure if it was in GZDoom builder.

 

3. Is there any way to make a force, like a pusher, I don't know how to properly to put it, but that could imitate the flow of a river. I want to make something similar like a strongly flowing river, and whenever you're in a liquid you're being moved by the direction the river runs.

 

Answers would be really appreciated; with examples even more.

 

Thanks!

Share this post


Link to post
1 hour ago, CornKing said:

Without further ado, here are the questions for the experianced GZDoom mappers:

1. Easily doable with a line action set to be when projectile hits to execute a script, then in said script change the flags on the line to allow you to pass as well as change the texture to a broken version of the wall/grate OR change the wall with floor/ceiling actions to be instant speed.

 

2. It's possible but no matter what will never be true circles. There are tools for drawing ellipses and curved linedefs. Doing it by hand is also doable but takes longer.

 

3. In ACS you can use Scroll_Floor to do it, or even built in sector movement specials. Each one will affect things differently, for example the built in effects will only scroll the player. Scroll_Floor will scroll player and anything else including monsters if you set it to carry.

Share this post


Link to post

1. You could achieve that by making the sector instantly lower/rise upon shooting it. It would give the impression that the wall broke. Can be achieved in Boom and vanilla IIRC. Going Down has a map that starts like this.

 

2. Use slopes, if that's what you mean. If not, that means you're gonna have to make a lot of linedefs in order make "round" architecture. It's never going to be truly round though.

 

3. Boom format has this feature: scolling floors.

Share this post


Link to post
15 hours ago, CornKing said:

Answers would be really appreciated; with examples even more.

Example of breakable ventilation grate:

 

You'll need to use the Line_SetIdentification special (#121) on your grate, as follows:

 

Line_SetIdentification (2, 1 _, _, 0). The line ID is 2, and the flag is set to 1 (Defines a zone boundary for sound environments); you could set the flag to 0 if you're not using sound effects, like reverb, etc. Make sure you make the special activate when "Projectile Hits".

 

You'll also assign your intact grate texture to both the front & back sidedefs. Then you'll create the following scripts:

 

script 1 OPEN 


    SetLineSpecial(2,80,1,0,0,0,0);            //Breakable grate, triggers script 1

}

 

script 1 (void)
{
      thingsound(5, "bustgrate", 127);            //This will require the insertion of a suitable sound & its definition; it's optional
    setlinetexture (2, SIDE_FRONT, TEXTURE_MIDDLE, "XDUCT11A");    //This changes the duct texture (front sidedef) to a broken version
    setlinetexture (2, SIDE_BACK, TEXTURE_MIDDLE, "XDUCT11A");     //This changes the duct texture (back sidedef) to a broken version
    setlineblocking(2, OFF);                          //This allows players & enemies to pass through
}

Share this post


Link to post
30 minutes ago, ReX said:

Example of breakable ventilation grate:

 

You'll need to use the Line_SetIdentification special (#121) on your grate, as follows:

 

Line_SetIdentification (2, 1 _, _, 0). The line ID is 2, and the flag is set to 1 (Defines a zone boundary for sound environments); you could set the flag to 0 if you're not using sound effects, like reverb, etc. Make sure you make the special activate when "Projectile Hits".

 

You'll also assign your intact grate texture to both the front & back sidedefs. Then you'll create the following scripts:

 

script 1 OPEN 


    SetLineSpecial(2,80,1,0,0,0,0);            //Breakable grate, triggers script 1

}

 

 

That only works in Hexen format, in UDMF Line_SetIdentification does not exist, it is possible to set the line ID directly and set the special in the map instead of the OPEN script.

 

Share this post


Link to post
15 hours ago, CornKing said:

possabile

I'm curious; what's your native language? It's the first time I see "possible" misspelled like this.

15 hours ago, CornKing said:

destructible walls/objects? For example, I'd like to make a ventilation grates that'd block player's movement until they're destroyed. Or just simple breakable glass.

Yes, usually you'll so that by instantly moving the floors and/or ceiling, changing textures, and maybe spawning some debris and/or explosion actors.

 

There are examples of breakable glass in at least two of the games supported by GZDoom (Hexen and Strife, namely) so of course breaking glass is possible in GZDoom!

 

 

15 hours ago, CornKing said:

round architecture?

No, but you can make architecture that looks round enough. You just want a polygon with enough sides that it'll seem to be round. How many sides are enough largely depend on the size, for something small 8 will be enough, for something large you might need a couple dozens.

 

15 hours ago, CornKing said:

the flow of a river

It's possible but if your river has turns and curves it's going to be tedious. Basically you'll have to divide your river into a series of carrying_sectors where each one has a straight direction. The biggest issue will be to make the seam between direction changes seem natural instead of abrupt, for that you'd need to make it gradual, which requires a lot of sector splitting -- it's basically the same issue as for how to make an element of architecture seem round when it is in fact made of straight lines.

 

Share this post


Link to post
1 hour ago, Graf Zahl said:

 

That only works in Hexen format, in UDMF Line_SetIdentification does not exist, it is possible to set the line ID directly and set the special in the map instead of the OPEN script.

 

Indeed, I ought to have specified that Line_SetID works in Hexen format, not in UDMF. Thanks for pointing it out.

Share this post


Link to post
2 hours ago, Gez said:

No, but you can make architecture that looks round enough.

Has any game engine ever supported actual curved geometric polygons?  I remember Quake 3 had a curve function, but the renderer still just produced a bunch of flat surfaces to give the impression of curves.  My knowledge of the developments of game engines kind of ran out about 15 years ago though!

 

 

Share this post


Link to post

Well there was Ecstatica which used ellipsoids instead of polygons, so it had kind of the opposite problem, that is to say, everything looked like a balloon animal.

 

RGhnmRa.png

Share this post


Link to post

Much appreciated. I kinda sorted out with the floor_scroll, however, is there any way to make it scroll faster? The given options are too slow for what I am trying to do. I don't really mind with the detailing of the flow direction. I don't really want get fancy with the looks. Just enough to make it look appealing.

 

I'll try to tinker with the script for the grates. And gonna try to make something round-lookish.

 

But I still have came up with a few questions if anyone's still here.

 

Never the less, thanks for the information!

Share this post


Link to post

Try using Scroll_Floor in an ACS script (or make a map in UDMF instead of Hexen format) to be able to put parameters in wider range than 0-255.

Share this post


Link to post

If you use a special such as Sector_SetCurrent, you can input any arbitrary value you want for current strength (= speed).

Share this post


Link to post
2 hours ago, CornKing said:

 

2. Can GZDoom make round architecture? I've seen some maps that had it but am unsure if it was in GZDoom builder.....

And gonna try to make something round-lookish.

Just to be clear, when you say you want "round architecture" you mean (for example) a circular room, correct? This is relatively easy to do in GZDB with the linedef curve tool.

 

You can also make hemispherical constructs using slopes, and spherical objects using slopes and 3D sectors.

Share this post


Link to post

^ Neither of those are true curves, though, the linedef curve tool just approximates a curve by generating multiple regular straight linedefs (so that you don't have to draw all of them manually), and the hemispheres are made of multiple regular straight sloped floors. Something like a "curved linedef" or "spherically sloped floor" is impossible.

Share this post


Link to post
17 minutes ago, scifista42 said:

^ Neither of those are true curves, though, the linedef curve tool just approximates a curve by generating multiple regular straight linedefs (so that you don't have to draw all of them manually), and the hemispheres are made of multiple regular straight sloped floors. Something like a "curved linedef" or "spherically sloped floor" is impossible.

Even if you set the grid to 1 px, like in GZDB for example, it's still a straight line with the given illusion of a round line

Share this post


Link to post

In geometric terms, a circle is just a regular polygon with an infinite amount of sides. Since you can't do infinite sides in any Doom editor, you're going to have to make do with a close approximiation. Thankfully, there is a texture align function in Doom/GZDoom Builder. Aligning textures on circular columns one at a time is never fun.

Share this post


Link to post
1 hour ago, scifista42 said:

^ Neither of those are true curves, though, the linedef curve tool just approximates a curve by generating multiple regular straight linedefs (so that you don't have to draw all of them manually), and the hemispheres are made of multiple regular straight sloped floors. Something like a "curved linedef" or "spherically sloped floor" is impossible.

Agreed. With DooM's geometry limitations, one can only hope to approximate circles and hemi/spheres (as Ichor & leodoom85 pointed out). However, in most applications (short of extremely large circles) the illusion of curved surfaces is reasonably believable.

Share this post


Link to post
8 hours ago, ReX said:

Just to be clear, when you say you want "round architecture" you mean (for example) a circular room, correct? This is relatively easy to do in GZDB with the linedef curve tool.

 

You can also make hemispherical constructs using slopes, and spherical objects using slopes and 3D sectors.

I only want to make round columns, for now.

Share this post


Link to post
45 minutes ago, CornKing said:

I only want to make round columns, for now.

A way to do it by hand is to draw a rectangle, change the form to a diamond, then drag out vertices along each side to eventually form a circle. A good looking circle can be done even with a grid size of 8, but gets more and more fine tuned with lower grid sizes.

Share this post


Link to post

SLADE has a draw shape feature. Shift+space, select "ellipse" shape, choose how many sides you want, then click and drag.

 

With GZDB, draw a diamond, select all four sides, and use "curve linedefs".

Share this post


Link to post

Alright I think I've found it out. Much appreciated.

 

I have a few other questions:

 

Can I make doors open from sides? Like in Duke Nukem.

 

Is it possabile to make a script to loop? For example, I'd like to make something like a turret/trap that constantly shoots fireballs/rockets etc.

 

Edited by CornKing

Share this post


Link to post

That's an example with screenshots.

 

As for SLADE, as I said, just press shift+space:

gz25jRo.png

Share this post


Link to post

Okay since you changed your post.

 

2 hours ago, CornKing said:

Alright I think I've found it out. Much appreciated.

 

I have a few other questions:

 

Can I make doors open from sides? Like in Duke Nukem.

 

Is it possabile to make a script to loop? For example, I'd like to make something like a turret/trap that constantly shoots fireballs/rockets etc.

 

Sliding doors are possible with some clever tricks; in GZDoom the best method is to use PolyObjects.

 

For looping a script, look at Flow_control.

Share this post


Link to post
5 hours ago, Gez said:

Okay since you changed your post.

 

Sliding doors are possible with some clever tricks; in GZDoom the best method is to use PolyObjects.

 

For looping a script, look at Flow_control.

So could it be possabile to make side crushers? Or the architecture, that consistantly rotates?

Share this post


Link to post

Polyobjects can be set to crush or to rotate. Polyobjects have their limits, though. Notably, they're just re-located linedefs, not sectors, so you can't make floors or ceilings out of them.

 

Also, again on "possabile":

On 3. května 2017 at 5:34 PM, Gez said:

I'm curious; what's your native language? It's the first time I see "possible" misspelled like this.

 

Share this post


Link to post

Eh. That misspell has nothing to do with the language. It's just it stuck up from the alternative of it 'possabilities'.

Share this post


Link to post

It's possibilities, too. :p

 

I was just curious because it reminded me of Italian possibile. Except with an 'a'.

Share this post


Link to post

If anyone's still alive here, I came up with another dilemma. Is it possabile to teleport/spawn monsters already hostile? By that I mean whenever they're moved/spawned to a map spot without the sight of player are already searching for him.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×