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

Terrain Generator (DD_Terrain) for GZDoom/K8Vavoom/RAD (Updated Jan 3, 2022)

Recommended Posts

19 hours ago, Redneckerz said:

Maybe its also something worth it for @RambOrc and the KoraxRPG engine (Though that relies on Vavoom and not K8Vavoom)? ;)

 

19 hours ago, ketmar said:

alas, there is no UDMF vertex slopes support in Vavoom.

 

Also, not sure about other engines, but walking on sloped surfaces is considered jumping by Vavoom, so you can only jump on a slope if you are not moving. This makes it tricky (quickly devolving into annoying/frustrating) to move from a sloped floor to any other floor nearby that lies more than 24 units higher at the point of traversal.

 

While I opted for allowing such situations to develop when it means that the player either first jumps and then moves forward to get over a fence in a city, or if he can't get the timing right, he will not be able to get inside the small fenced garden (zero gameplay impact), this technical limitation pretty much prohibits using anything beyond very simple sloped terrain in areas where fighting can occur.

Share this post


Link to post
7 minutes ago, RambOrc said:

 

Also, not sure about other engines, but walking on sloped surfaces is considered jumping by Vavoom, so you can only jump on a slope if you are not moving. This makes it tricky (quickly devolving into annoying/frustrating) to move from a sloped floor to any other floor nearby that lies more than 24 units higher at the point of traversal.

 

While I opted for allowing such situations to develop when it means that the player either first jumps and then moves forward to get over a fence in a city, or if he can't get the timing right, he will not be able to get inside the small fenced garden (zero gameplay impact), this technical limitation pretty much prohibits using anything beyond very simple sloped terrain in areas where fighting can occur.

 

By using the "Tools/Scale heightmap" menu item you can scale the elevation of the terrain. Also, a (very) steep slope could represent a bent wall or steep cliffs, so it would be normal not to  be able to cross it.

Share this post


Link to post
1 hour ago, RambOrc said:

 

Also, not sure about other engines, but walking on sloped surfaces is considered jumping by Vavoom, so you can only jump on a slope if you are not moving. This makes it tricky (quickly devolving into annoying/frustrating) to move from a sloped floor to any other floor nearby that lies more than 24 units higher at the point of traversal.

 

While I opted for allowing such situations to develop when it means that the player either first jumps and then moves forward to get over a fence in a city, or if he can't get the timing right, he will not be able to get inside the small fenced garden (zero gameplay impact), this technical limitation pretty much prohibits using anything beyond very simple sloped terrain in areas where fighting can occur.

How does K8Vavoom do the bolded, @ketmar?

 

Given your project Ramborc, DD_Terrain was one of the first things i had in mind. Since quite a few maps have wide, open areas, things like these would be useful here - Even if just as decoration rather than something walkable. The world of Korax seems perfect for such terrain, so i am surprised that there is some sort of limitation here in Vavoom on sloped surfaces. Hence why i tagged Ketmar as to how he works around this limitation in his port.

 

If anything, this to me seems a rather useful tool to have for Vavoom (and thus KoraxRPG), what's your point of view on it?

Share this post


Link to post
2 minutes ago, Redneckerz said:

How does K8Vavoom do the bolded, @ketmar?

 

Given your project Ramborc, DD_Terrain was one of the first things i had in mind. Since quite a few maps have wide, open areas, things like these would be useful here - Even if just as decoration rather than something walkable. The world of Korax seems perfect for such terrain, so i am surprised that there is some sort of limitation here in Vavoom on sloped surfaces. Hence why i tagged Ketmar as to how he works around this limitation in his port.

 

If anything, this to me seems a rather useful tool to have for Vavoom (and thus KoraxRPG), what's your point of view on it?

 

In fact, while testing with GZDoom & K8Vavoom, I noticed that with K8Vavoom you can walk in steeper slopes than GZDoom.

And RAD does not care about such issues, you are the pilot of a flying drone :)

Share this post


Link to post

IIRC the cutoff steepness in ZDoom is 45°. More than that and you can't climb the slope.

Share this post


Link to post

This looks super promising! As someone who has manually built a lot of vertex terrain this would have made the process so much faster! Great work so far.

 

From a practical standpoint, down the line it'd be great if this could support external textures from outside a wad. A great many GZDoom projects use the pk3 format, which in editing is basically just a folder with image files in.

 

I appreciate you made this for your own project, but if you ever fancied expanding the compatibility, being able to select image files for use straight from a folder would be fantastic. 

Share this post


Link to post
4 hours ago, RambOrc said:

walking on sloped surfaces is considered jumping by Vavoom, so you can only jump on a slope if you are not moving. This makes it tricky (quickly devolving into annoying/frustrating) to move from a sloped floor to any other floor nearby that lies more than 24 units higher at the point of traversal.

this is quite tricky thing, actually. the fact is that slope collision is point-to-plane, not AABB. so when you reached the end of the slope, you're still slightly lower than slope height. the higher slope is, the more is that difference. this, and some other bugs in slope physics made slopes very hard to use in Vavoom.

Edited by ketmar : typo

Share this post


Link to post
2 hours ago, Redneckerz said:

How does K8Vavoom do the bolded, @ketmar?

slopes are still quite broken. they are... tolerable now (that is, you should not hit an invisible wall when you walking out of a steep slope... well, not each time, at least ;-). but internally it is still more-or-less weird stairs, and side effects are really depend on slope angle and luck. one or two slighly sloped floors are ok. bizarre constructions with spikes and all kinds of other weird things... well, you're on your own there. ;-)

Share this post


Link to post
1 hour ago, ketmar said:

slopes are still quite broken. they are... tolerable now (that is, you should not hit an invisible wall when you walking out of a steep slope... well, not each time, at least ;-). but internally it is still more-or-less weird stairs, and side effects are really depend on slope angle and luck. one or two slighly sloped floors are ok. bizarre constructions with spikes and all kinds of other weird things... well, you're on your own there. ;-)

Would the advent of a tool like this make it possible to implement better support here or?

Share this post


Link to post
2 hours ago, Bauul said:

This looks super promising! As someone who has manually built a lot of vertex terrain this would have made the process so much faster! Great work so far.

 

From a practical standpoint, down the line it'd be great if this could support external textures from outside a wad. A great many GZDoom projects use the pk3 format, which in editing is basically just a folder with image files in.

 

I appreciate you made this for your own project, but if you ever fancied expanding the compatibility, being able to select image files for use straight from a folder would be fantastic. 


I like interesting ideas emerging from the community! Will it suffice to load an image from disk (png, jpg, other formats?) or directly from pk3? Loading from pk3 could be a bit slow...probably..

 

Share this post


Link to post
1 hour ago, jval said:


I like interesting ideas emerging from the community! Will it suffice to load an image from disk (png, jpg, other formats?) or directly from pk3? Loading from pk3 could be a bit slow...probably..

 

 

That would be fantastic, thank you! Directly from disk is actually preferred. Most big GZDoom projects use the pk3 'layout', but just in standard Windows folders. It doesn't get compressed into a pk3 until it's time to distribute.

 

The format of the files is exactly as you describe: a whole bunch of .pngs or .jpgs just sat in a bunch of subfolders inside a big folder named Textures.

Share this post


Link to post
1 hour ago, Redneckerz said:

Would the advent of a tool like this make it possible to implement better support here or?

slopes are not high in my priority list, tbh. they... kinda work most of the time, and i'm ok with it for now. Doom coldet is 2D in its core, slopes doesn't really fit there. it is too much work for too little gain. i workarounded most breaking bugs (like impaling on a sloped spike ;-), and that's prolly as far as i want to go with it. at least for the time being.

 

1 hour ago, jval said:

Loading from pk3 could be a bit slow...probably..

it shouldn't be. just unpack the whole file (not the whole archive, just the file you're currently reading) to memory, and then use memory stream. there is no reason to mess with chunked zip readers these days.

Share this post


Link to post

A new update (ver. 1.0.4.16) is available.

 

Downloads:

Executable (win32): https://sourceforge.net/projects/dd-terrain/files/DD_Terrain_1.0.4.16/DD_Terrain_1.0.4.16_win32.zip/download

Source code: https://sourceforge.net/projects/dd-terrain/files/DD_Terrain_1.0.4.16/DD_Terrain_1.0.4.16_src.zip/download

 

The most important new features are:

  • Reduce complexity of UDMF maps by merging sectors without slope.
  • Added a PK3 file reader. We can now load textures directly from PK3/ZIP files. (PNG & JPG format)
  • Select drawing textures from directory path.  (PNG, JPG, TGA & BMP format)
  • Draw terrain with plain color.
  • Scale slider to select the texture scaling.
     

Other new features:

  • Changed main form layout for better productivity.
  • Zlib library updated to ver. 1.28.
  • Added heightmap resample X2. (limited to the existing deformations)
  • Speed optimizations to texture loading.
  • Import terrain texture from an image file on disk.
  • Import heightmap texture from an image file on disk.
  • Added main form size constrains.
  • Hint messages for various tools.
  • Information labels in texture preview.
  • Added custom cursors.

 

layout1.png

 

Share this post


Link to post

This is a supremely rad idea, and I'm glad we have a committed dev pushing out updates. I'll probably have to play around with this at some point in the near future.

 

Now I'm curious if it's possible to make a version of this that works for layered sectors rather than polygons. Which would be friendlier for non-UDMF ports and also you wouldn't have to deal with Doomguy's wonky movement on slopes (But even still this is a godsend for out-of-bounds areas and skyboxes). But I would imagine that's a project for another day.

Share this post


Link to post

@jval, any chance this could export map data in the classic format as well, not just UDMF?

 

On 12/15/2020 at 3:25 AM, HQDefault said:

Now I'm curious if it's possible to make a version of this that works for layered sectors rather than polygons.

 

I might come off stupid, but what do you mean by layered sectors?

Share this post


Link to post
1 hour ago, RambOrc said:

@jval, any chance this could export map data in the classic format as well, not just UDMF?

 

Do you mean by using slope things? For what engine? Do you mean without slopes? If you mean with sloped line specials, unfortunately it's impossible.

 

On 12/15/2020 at 4:25 AM, HQDefault said:

Now I'm curious if it's possible to make a version of this that works for layered sectors rather than polygons.

 

What do you mean? I can not understand...

Share this post


Link to post
2 hours ago, jval said:

Do you mean by using slope things? For what engine? Do you mean without slopes? If you mean with sloped line specials, unfortunately it's impossible. 

 

Given all the triangle sectors, I assume you are using the vertex slope floor thing, which exists in the "classic" map format as well.

Share this post


Link to post
3 hours ago, jval said:

For what engine?

Likely Vavoom as that's what RambOrc uses. But i hope he does not mind adding this in :)
By the way Jim - Many thanks for a new release. Your commitment on your projects is, dare i say, quite unique in this field of Doom.

 

Share this post


Link to post

Fantastic work, thank you for churning out updates so quickly! I'll be giving this a thorough test when I'm back at my PC next week.

 

Incidentally, by "layered sectors", I presume he means the old fashioned way of making terrain out of flat sectors akin to contour lines, something like the mountain at the end of Mount Pain in TNT. Not too dissimilar to the earlier request to create terrain "Minecraft style". 

Share this post


Link to post
5 hours ago, RambOrc said:

Given all the triangle sectors, I assume you are using the vertex slope floor thing

no, in UDMF it is possible to set `zfloor` and `zceiling` coordinates for the vertex itself. that's why it doesn't work in Vavoom. i'm not even sure that it is possible to recreate with slope things -- they cannot align planes perfectly (afair, may be wrong here).

Share this post


Link to post
3 minutes ago, ketmar said:

no, in UDMF it is possible to set `zfloor` and `zceiling` coordinates for the vertex itself. that's why it doesn't work in Vavoom. i'm not even sure that it is possible to recreate with slope things -- they cannot align planes perfectly (afair, may be wrong here).

 

In Vavoom, https://www.vavoomengine.com/wiki/action-specials/#1504Vertex_slope_floor and https://www.vavoomengine.com/wiki/action-specials/#1505Vertex_slope_ceiling achieve the same, it's just with two things of type 1504 and 1505 placed on the vertex coordinates instead of these values being values stored in the vertex object itself. The logic itself is pretty much the same, that's why I was wondering about a non-UDMF export.

 

Using these in combination with three-sided sectors makes all planes align perfectly, the only drawbacks are that it's done with extra thing objects and that it doesn't work with 3D slopes.

Share this post


Link to post
3 hours ago, RambOrc said:

 

Given all the triangle sectors, I assume you are using the vertex slope floor thing, which exists in the "classic" map format as well.

 

Thing type 1504 (Vertex slope floor) in Hexen format?

 

7 minutes ago, Bauul said:

Fantastic work, thank you for churning out updates so quickly! I'll be giving this a thorough test when I'm back at my PC next week.

 

Incidentally, by "layered sectors", I presume he means the old fashioned way of making terrain out of flat sectors akin to contour lines, something like the mountain at the end of Mount Pain in TNT. Not too dissimilar to the earlier request to create terrain "Minecraft style". 

 

It will be an option to the next version.

Share this post


Link to post
11 hours ago, RambOrc said:

 

Given all the triangle sectors, I assume you are using the vertex slope floor thing, which exists in the "classic" map format as well.

 

In case you weren't aware, UDMF supports sloped triangular sectors natively, without the use of any slope floor things. You just define a vertical offset on a per-vertex basis, and the sector is sloped accordingly. UDB even let's you set a slope by just selecting a vertex and rolling the mouse wheel. 

Share this post


Link to post
5 hours ago, RambOrc said:

it's just with two things of type 1504 and 1505 placed on the vertex coordinates instead of these values being values stored in the vertex object itself.

ah, i see. i only ever worked with already created planes, so i missed that feature in the source code.

 

5 hours ago, jval said:

Thing type 1504 (Vertex slope floor) in Hexen format?

yep. thing's height sets vertex Z coordinate, so it should work the same as UDMF, only you have to create things instead of writing z coords directly. i'm pretty sure that k8vavoom supports it (because i never removed that code), so you prolly can test it with k8vavoom, and it should work with Vavoom too.

Share this post


Link to post
2 hours ago, InDOOMnesia said:

So I downloaded the latest version and tried loading Dragonfly's Wireframe Texture Pack and Kuro's Texture Pack, but nothing seems to load. All other WADs seem to be okay.

 

Currently only flats inside F_START/F_END  & FF_START /FF_END namespaces can be loaded from WADs. More options are in to-do list :)

 

3 hours ago, ketmar said:

i'm pretty sure that k8vavoom supports it (because i never removed that code), so you prolly can test it with k8vavoom, and it should work with Vavoom too.

 

It does work (at least with k8vavoom)

 

Share this post


Link to post

 

19 hours ago, RambOrc said:

@jval, any chance this could export map data in the classic format as well, not just UDMF?

 

@RambOrc Thanks to more nice ideas that are emerging from the community, the next release will support vavoom slopes in Hexen format  (and ZDoom Hexen format)

 

Instead of blowing you with new (and unfinished) releases of DD_TERRAIN every couple of days, I've made a command line tool (TER2WAD) that will do the job. This tool could also accommodate batch conversions, without the need to open each terrain with the DD_TERRAIN tool  (make a batch file with all the terrains you want to convert and do all the jobs at once).

 

Donwload: https://sourceforge.net/projects/dd-terrain/files/TER2WAD/TER2WAD_1.0_win32.zip/download

 

Usage:

Spoiler

Usage:
  TER2WAD -i [..] -o [..] -e [..] -p [..] [options]

Required Parameters:
  -i [input filename]      Specifies the input filename (*.terrain)
  -o [output filename]     Specifies the output filename (*.wad)
  -e [engine name]         Engine name (RAD/HEXEN/UDMF)
Optional Parameters:
  -g [game]                Game (RADIX/DOOM/HERETIC/HEXEN/STRIFE)
  -l [levelname]           Level name of output WAD
  -stexture [texture]      Default sidedef texture
  -ctexture [texture]      Default ceiling texture
Options:
  -noslope                 Does not create sloped surfaces
  -nodeformation           Ignores deformation data of the terrain
  -notexture               Does not import the terrain texture
  -noplayer                Does not add a player start
Additional Switches:
  -h                       Displays this help screen
  -wait                    Waits for key press when done

Examples
--------
1) To create a wad file for RAD (https://sourceforge.net/p/rad-x/):

   TER2WAD -i test.terrain -o test_rad.wad -e RAD -g RADIX

2) To create a wad file in UDMF format for advanced engines:

   TER2WAD -i test.terrain -o test_udmf.wad -e UDMF -g DOOM

3) To create a wad file in HEXEN format (vavoom slopes):

   TER2WAD -i test.terrain -o test_hexen.wad -e UDMF -g HEXEN

Notes
-----
Please select the appropriate engine with the -e parameter to control the 
output WAD format.
-e RAD     (RAD)
-e HEXEN   (For source ports that support vavoom slopes)
-e UDMF    (For advanced ports with UDMF support)

 

 

Help Screen:

ter2wad.png

 

Share this post


Link to post
8 hours ago, jval said:

Thanks to more nice ideas that are emerging from the community, the next release will support vavoom slopes in Hexen format  (and ZDoom Hexen format)

 

Thanks for actually implementing it. :)

 

The Scattered Evil config file is based upon ZDOOM(Hexen) so that should work perfectly.

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
×