Hexed Underworld - Hexen meets Ultima Underworld

For Total Conversions and projects that don't otherwise fall under the other categories.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Sir Robin »

Gez wrote:I remember there was a very old feature suggestion thread for skewing textures, so there was demand for that specifically. And it definitely can look better than rotated. Allow me to illustrate:

[imgur]https://i.imgur.com/aGGa9Ib[/imgur]
Yeah, like that. And the top and bottom of the wall can have different slopes, so it's not just a parallelogram but can be different trapezoids. I think (and I say think because I haven't looked at the code, just going from observations) that each pixel column in the texture is individually pegged at top and bottom instead of the whole texture being pegged.
User avatar
Ozymandias81
Posts: 2063
Joined: Thu Jul 04, 2013 8:01 am
Graphics Processor: nVidia with Vulkan support
Location: Mount Olympus, Mars
Contact:

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Ozymandias81 »

Sir Robin wrote: That's why I said that even if our projects are going in different directions, there are definitely resources we could share between them so we're not each doing duplicate work.
If you want to double the map scale, that's easy, my script can do it, I already wrote that feature. Only thing is that steps in UW are 16 high, double that to 32 and DoomGuy can't auto-climb them (he only goes up 24 I think) and I don't know about Hexen characters but they also might have to jump up each step. Maybe scale it 1.5x instead of? Anyway, here's both, see which you like better:
scale 96 = 1.5x
scale 128 = 2x
I had the idea to do something like BlooM where you go from UW levels and through to Doom levels and back to UW again. Way too ambitious for me, I've got too many other things to tackle first though, but I'd be interested to see what direction you take. One of my ideas was to not only recreate parts of original doom levels, but build them in a way so that they look like they were built in the UW engine - all orthogonal and diagonal walls, all snapped to a 64x64 block grid, locked ceilings, all floors snapped to nearest 16, etc.
Oh, and when you get to animating fire and water, I can tell you how that works. Everything I've found online turned out to be wrong but I've figured out how it works.
This is fantastic! Thank you very very much, I'll do some tests with both scaled versions and once I'll find what's better for me, will reshape them and apply my textures on those maps :wub:
This is awesome really, for this reason I am gonna share here a little link that shows you the actual lame state of my project, still didn't had much time in my hands but soon ideas will pop up and will go deep with fiddling things. Keep in mind that displacement textures are just bland monochromatic conversions nothing else, they should be done differently so do not care of how they will strangely look in game, once their depth will be adjusted the feeling will be cool.
I do see why we should share together our resources, hope mine will be of help once you'll check my .pk3, you can also reuse the TITLEMAP if you want (keep in mind that I will soon improve amount and quality of shots per frame, that was a rapid thing I did and code in 3 hours mostly), sounds come from UGCK tool and I am searching the WWW for much more things (do you have the Ultima Underworld 3 detailed plot? my unfathomable desire would be to transfer that into Hexen, and it could be maybe the direction I will go for)
Sir Robin wrote: There are several black colors in the UW1 palette, only #0 is transparent. I don't know what DragonUnpacker does, but if it assumes all blacks are transparent, then yeah it wouldn't find anything in those sprites.
And speaking of palettes, UW doesn't have alpha channels but there are 4 palette colors reserved for 4 levels of translucency. You can see them on the ghosts - those aren't the colors they are supposed to be, those are the 4 translucent place-holder colors. Also used on the shadow beasts, wisps, fog, smoke, etc. I haven't determined what the true RGBA values are yet. I've got a set of before and after colors, I just need to write a function to extract the translucent colors as the differences. It's on my (very long) to-do list.
I do remember the shitty XwE was able to interprete somehow UW1-2 palettes, but I might be wrong, though I did extracted them long time ago for Slade... But usually I work with truecolor art and GIMP, and Slade mainly for crushing them to save space (whenever it doesn't break the image). I was sure that UW games doesn't have alpha channeled graphics, I think it was also not possible at the time (and we have all learn that Wolf3d and Doom still didn't had AC but colors transposed as transparent... if this is the right wording to describe it XD)
Sir Robin wrote: The player frames are I guess just in there as placeholders. They are always a right-handed male fighter, regardless of what character you create. But it doesn't really matter because you never see them ingame.
I'm not sure what you're asking me about that link.
With the link I refer about characters appearing on UW1 and their names, are all of them there? Since I still have to finish it...
Sir Robin wrote: Same, I grew up playing that game so the controls don't bother me. But some modern gamers can't seem to get over them, and it's nice to know they have that option.
True, also these "hacks" or improvements give more life to these retro softwares (see Daggerfall for example, Descent, Quake... ah Doom too ahaha)
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Sir Robin »

Ozymandias81 wrote:Keep in mind that displacement textures are just bland monochromatic conversions nothing else, they should be done differently so do not care of how they will strangely look in game, once their depth will be adjusted the feeling will be cool.
Thanks for the link. I haven't started playing with displacement maps yet. I've done some experimenting with normal maps, I want to do all my lighting with dynamic lights and this seems a perfect environment for that. I'll take a look at your displacement maps for ideas on that.
Ozymandias81 wrote:you can also reuse the TITLEMAP if you want (keep in mind that I will soon improve amount and quality of shots per frame, that was a rapid thing I did and code in 3 hours mostly)

Awesome, thanks. I wanted to do a titlemap but haven't yet begun to research how those work. I'll take a look at yours to see how it's made. I've already got all the screens and sounds and fonts ripped and converted into gzdoom formats.
For the game intro I was thinking of doing a proper 3d-scripted intro instead of the 2d slideshow, but that's going to take a lot of work. You can see in that map I have with the doors done, in the start room you start facing the doors as they are closing with the guards yelling from the other side. That's a little test of how I wanted my intro to be - goes through the whole intro in 3d: You wake up in the room, see Tyball, go to the window, see the troll, turn around and see the guards, get dragged to the baron, get taken to the abyss and tossed in, see the doors close behind you. But that's gonna take some work and it's low on my priority list right now.

Ozymandias81 wrote:I am searching the WWW for much more things (do you have the Ultima Underworld 3 detailed plot? my unfathomable desire would be to transfer that into Hexen, and it could be maybe the direction I will go for)
I haven't really looked into it. It's outside the scope of my current project goals.
Ozymandias81 wrote:I do remember the shitty XwE was able to interprete somehow UW1-2 palettes, but I might be wrong, though I did extracted them long time ago for Slade... But usually I work with truecolor art and GIMP, and Slade mainly for crushing them to save space (whenever it doesn't break the image). I was sure that UW games doesn't have alpha channeled graphics, I think it was also not possible at the time (and we have all learn that Wolf3d and Doom still didn't had AC but colors transposed as transparent... if this is the right wording to describe it XD)
Here is the UW1 palettes I am working with:
Spoiler:
That first block is the standard 8-bit palettes used through out the game. The first one is probably the one you're most interested it, that's used for the 3d parts of the game. The rest are for other screens like the title and credits and map and whatnot.
The fifth one (Palette #4) is actually interesting - it's a joke palette that is never actually used ingame. The backstory is that one of the UW devs was complaining about his last project, it was on Apple IIe, which only has 6 colors in it's palette - black, white, green, purple, orange, and blue. So one of the devs made this palette with only those colors and then purposely put a "bug" in the game that would randomly switch to that palette, but with a flag in the code so it only happened on that one complaining developer's computer. So if he told anyone about the bug, everyone else would just say, "Sorry, no, I can't reproduce that issue on my computer."
Anyway, if you want to know what UW1 might have looked like on an Apple IIe palette, try it out on palette #4.
The next block of palettes is used for fading the main palette on depth, not useful for you since GZDoom does this automatically
The next block of palettes is used for fading the main palette in grayscale, for time when the game is in grayscale, for example when using a nightvision spell. Again not useful since GZDoom has other ways to do this.
The next block of palettes is for animating water and fire. There is a UW specs document that has been floating around forever that says water animations get 4 frames and fire gets 8, so a lot of people have ripped the graphics based on that. But it's wrong. The water has 16 colors, rotated in 4 groups of 4, so that's correct (although the document only mentions the first group) and most rippers do the water right. The fire does have 8 colors, but they are not all rotated together. The first 5 are rotated as a group and then the last 3 are rotated as another group. So your fire animations will always have 3, 5, or 15 frames, depending on which colors were used, but never 8. If a graphic has both water and fire pixels in it, it could need a full 60 animation frames to sync properly, but luckily none of the stock UW graphics are like that, so 15 is the most you'll ever need. Anyway if you see someone's UW rip and the fire burns for a few frames then weirdly flares up bright yellow for a few flames and then back to burning, they've ripped the fire animations wrong.
The next little palette block on the left is the items palette, they only use 4-bit indices.
The little block on the right (just 2 lines) is the palettes for the weapon HUD sprites, also 4-bit indices. They're basically the same, just different skin tones depending if you're playing a light skin or dark skin character.
The 6 blocks below that are the translucency maps I was talking about before. I said they were 4, I spoke wrong, there are 6. I laid each one out against the original palette so I can see the differences. The colors look like black, white, pink/tan, green, blue, and red, but like I said I haven't analyzed them enough to come up with exact RGBA values for them yet.
The critter definitions each have their own palettes too, but I didn't include those in this rip (my global palette script and critter script are completely different scripts and no easy way to combine them just for ripping palettes). The critter palettes have 5-bit indices.
Ozymandias81 wrote:With the link I refer about characters appearing on UW1 and their names, are all of them there? Since I still have to finish it...
Ah, I see. Yes that's a list of the NPC characters in the game, but not all of them have critters defined ingame. For example Garamon and the baron only exist in cutscenes. For a list of unique critter names, look at UW String Block 7 in my language file, ignoring the first 16.
Ozymandias81 wrote:True, also these "hacks" or improvements give more life to these retro softwares (see Daggerfall for example, Descent, Quake... ah Doom too ahaha)
Yeah I played and finished games like Doom and System Shock and Descent on the keyboard, long before mouselook was a thing. Can't go back to that now, just doesn't feel right. I guess I can do it in UW because it's not so much an action game. SS1 though, I don't know how I ever finished that on the keyboard, definitely can't do that now.
User avatar
Ozymandias81
Posts: 2063
Joined: Thu Jul 04, 2013 8:01 am
Graphics Processor: nVidia with Vulkan support
Location: Mount Olympus, Mars
Contact:

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Ozymandias81 »

Sir Robin wrote: That first block is the standard 8-bit palettes used through out the game. The first one is probably the one you're most interested it, that's used for the 3d parts of the game. The rest are for other screens like the title and credits and map and whatnot.
The fifth one (Palette #4) is actually interesting - it's a joke palette that is never actually used ingame. The backstory is that one of the UW devs was complaining about his last project, it was on Apple IIe, which only has 6 colors in it's palette - black, white, green, purple, orange, and blue. So one of the devs made this palette with only those colors and then purposely put a "bug" in the game that would randomly switch to that palette, but with a flag in the code so it only happened on that one complaining developer's computer. So if he told anyone about the bug, everyone else would just say, "Sorry, no, I can't reproduce that issue on my computer."
Anyway, if you want to know what UW1 might have looked like on an Apple IIe palette, try it out on palette #4.
The next block of palettes is used for fading the main palette on depth, not useful for you since GZDoom does this automatically
The next block of palettes is used for fading the main palette in grayscale, for time when the game is in grayscale, for example when using a nightvision spell. Again not useful since GZDoom has other ways to do this.
The next block of palettes is for animating water and fire. There is a UW specs document that has been floating around forever that says water animations get 4 frames and fire gets 8, so a lot of people have ripped the graphics based on that. But it's wrong. The water has 16 colors, rotated in 4 groups of 4, so that's correct (although the document only mentions the first group) and most rippers do the water right. The fire does have 8 colors, but they are not all rotated together. The first 5 are rotated as a group and then the last 3 are rotated as another group. So your fire animations will always have 3, 5, or 15 frames, depending on which colors were used, but never 8. If a graphic has both water and fire pixels in it, it could need a full 60 animation frames to sync properly, but luckily none of the stock UW graphics are like that, so 15 is the most you'll ever need. Anyway if you see someone's UW rip and the fire burns for a few frames then weirdly flares up bright yellow for a few flames and then back to burning, they've ripped the fire animations wrong.
The next little palette block on the left is the items palette, they only use 4-bit indices.
The little block on the right (just 2 lines) is the palettes for the weapon HUD sprites, also 4-bit indices. They're basically the same, just different skin tones depending if you're playing a light skin or dark skin character.
The 6 blocks below that are the translucency maps I was talking about before. I said they were 4, I spoke wrong, there are 6. I laid each one out against the original palette so I can see the differences. The colors look like black, white, pink/tan, green, blue, and red, but like I said I haven't analyzed them enough to come up with exact RGBA values for them yet.
The critter definitions each have their own palettes too, but I didn't include those in this rip (my global palette script and critter script are completely different scripts and no easy way to combine them just for ripping palettes). The critter palettes have 5-bit indices.
WOW so many informations coming out from just a palette, which indeed is probably the most important thing when ones try to export art from an old game, and I do understand that you probably already managed to rip out UW2 (noticed a empty folder on your updated Titlemap ehehe, that's epic clue), thanks to let me know but maybe I won't use original UW flats for liquids on HexedUW, something different and more modern (and easy to approach), so atm they will be placeholders.

Meanwhile I have just release another little video showing up what I am up to guys, in case you want to spoil yourself a bit:

User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Sir Robin »

Ozymandias81 wrote:I do understand that you probably already managed to rip out UW2
Yup, UW2 has some small differences in file formats and compression methods, but it's more or less the same. I haven't ripped nearly as much from there since it's not my focus but I've got the textures and objects. The textures because UW2 uses 64x64 for all textures, even floors, so I'm hoping to swap out some UW1 floors for higher-resolution UW2 versions. Many of the object sprites are the same but UW2 has several that UW1 doesn't have (and vise-versa) There are some things from UW2 that I want to bring into UW1 - mostly the more extensive potions system, key rings for organizing keys, and maybe a few other things.
And I ripped all the sprites, thinking maybe use some of those in place of the UW1 ones, or maybe use them for new monsters, or whatever.
UW2 does use an entirely different palette, but since I'm ripping everything to true color PNGs, that doesn't really matter in the end.
Ozymandias81 wrote:thanks to let me know but maybe I won't use original UW flats for liquids on HexedUW, something different and more modern (and easy to approach), so atm they will be placeholders.
UW1 has 6 waters, one for still water, one for swirling water, and 4 for water flowing in each of the 4 directions. UW1 only ever uses the still water so you only need 1 water tile/animation. There are a few dirt tiles with water on their edges, used for dirt floors next to water floors, so if you change the main water texture be sure the also change those to match. And there are a couple of floor tiles with puddles on them, you can change those to match your next water palette also.
Ozymandias81 wrote:Meanwhile I have just release another little video showing up what I am up to guys, in case you want to spoil yourself a bit:
Nice work. I see you have the objects disabled for some reason?
Looks like you've been playing with the conversation system. I haven't touched that yet either. As you noticed I've got all the game strings ripped including the conversations, so I'm hoping that I can convert most of them over with a script.
I notice your doors are in the wrong places and use the wrong textures. Look at my map with the doors for a reference on where they're supposed to go and which textures they use and which direction they swing. Other than being scaled up, all those doors are accurate to the original level. In general, on the first level, a wooden plank door is unlocked, a wooden panel door is locked with a red key, and a grey panel door is locked with a stone key.
I also notice your bridges are using the wrong textures. Those should pull from tmobj or floor textures. See my map with the doors, IIRC it has the bridges and pillars in their correct locations with the correct textures. The pillars also pull from tmobj, first 4 indices.
Look like you're working on your splashes and falling damage. And looks like you've got at least a place holder for the death animation. Thanks for posting videos, it's good to see the progress.
Last edited by Sir Robin on Sat Apr 02, 2022 2:59 am, edited 1 time in total.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Sir Robin »

Sir Robin wrote:UW1 has 6 waters, one for still water, one for swirling water, and 4 for water flowing in each of the 4 directions. UW1 only ever uses the still water so you only need 1 water tile/animation. There are a few dirt tiles with water on their edges, used for dirt floors next to water floors, so if you change the main water texture be sure the also change those to match. And there are a couple of floor tiles with puddles on them, you can change those to match your next water palette also.
I forgot to mention that UW1 has several wall textures that have water in them - gratings, drains, waterfalls, etc. You'll need to adjust those to match your water also.
User avatar
Ozymandias81
Posts: 2063
Joined: Thu Jul 04, 2013 8:01 am
Graphics Processor: nVidia with Vulkan support
Location: Mount Olympus, Mars
Contact:

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Ozymandias81 »

Sir Robin wrote: Yup, UW2 has some small differences in file formats and compression methods, but it's more or less the same. I haven't ripped nearly as much from there since it's not my focus but I've got the textures and objects. The textures because UW2 uses 64x64 for all textures, even floors, so I'm hoping to swap out some UW1 floors for higher-resolution UW2 versions. Many of the object sprites are the same but UW2 has several that UW1 doesn't have (and vise-versa) There are some things from UW2 that I want to bring into UW1 - mostly the more extensive potions system, key rings for organizing keys, and maybe a few other things.
And I ripped all the sprites, thinking maybe use some of those in place of the UW1 ones, or maybe use them for new monsters, or whatever.
UW2 does use an entirely different palette, but since I'm ripping everything to true color PNGs, that doesn't really matter in the end.
I must admit that I took a look to Underworld Adventures by Vividos, while searching for some technical infos regarding UW program structure and such (fortunately I used to be somehow familiar with hexadecimal editors, and old DOS rippers to extract images and such from games - something that my brother made me learn on Amiga 600 and then 486, but only the fun side nothing related to programming or how it exact used to work, though I always ended up with some results) and I noticed how complicate is the whole engine and format structure on both games, such an impressive work behind those 2 little gems, which also generate System Shock... but that's another story. UW2 had pretty cool monsters and places, specially Yeti, Liche and Brain Creatures, surely inspired to one of The Twilight Zone episodes I bet (one could also say D&D mindflayers, but mmh no they are something else). It is also true that UW2 had more potions and the keyring, oh that always used to save space in my inventory, though I always had terror to get a bug from it with keys stored in
Sir Robin wrote: UW1 has 6 waters, one for still water, one for swirling water, and 4 for water flowing in each of the 4 directions. UW1 only ever uses the still water so you only need 1 water tile/animation. There are a few dirt tiles with water on their edges, used for dirt floors next to water floors, so if you change the main water texture be sure the also change those to match. And there are a couple of floor tiles with puddles on them, you can change those to match your next water palette also.
Sir Robin wrote: I forgot to mention that UW1 has several wall textures that have water in them - gratings, drains, waterfalls, etc. You'll need to adjust those to match your water also.
I will use just the still water tx and apply warp shaders to it, there ways to use the same tx and have it non-warp and warp at the same time on GZDoom, just a matter of longnamed/shortnamed definition and which once to pick to apply the warp shader. Regarding floors with puddles, I might just close water puddles details in them through sectors and there apply my flat, you did also a net observation with walls but now that you said it I will use in place the "still" water flat and it should blend fine with walls, even if they have a "retrò" animation (something I am gonna try soon)
Sir Robin wrote: Nice work. I see you have the objects disabled for some reason?
Well unless I use your TC as pure base for my project, in this case I am using my resources and keeping atm all missing actors that comes from your project to have a reference, since I plan to code actors myself, at least the base for them, and then will investigate in future if I should apply some RPG elements and stuff like these... I am still trying to figure out in my mind a proper approach and I always do this via trial and error, though I have only replaced textures names in those maps you posted on your thread with my set of tx, which aren't organized like yours, you may have noticed it on the googledrive link posted some days ago here.
Sir Robin wrote:Looks like you've been playing with the conversation system. I haven't touched that yet either. As you noticed I've got all the game strings ripped including the conversations, so I'm hoping that I can convert most of them over with a script.
The dialogue system fortunately is just a text file embedded in a map, indeed with its kind of language but which is pretty simple, though the hardest part to build up a convo is how many recursivities are present for each reply/question, I did this on several occasion in Blade of Agony (the Armory dialogue structure mostly comes from me), and this Avatar thing was an old attempt I did when building up Gore: Horde of Titans... On that period I had in my mind also to create something dedicated to UW or U8, or even extract U9 textures and stuff but beside being able to rip out something minor from all (only sound from U9), or have tons of patience to get everything from U8 through Pentagram and create the very first isometric mod for GZDoom, well... I went to something more easy, like Batman Doom: Reborn and after a while I joined BoA Team and what comes after is history :)
Sir Robin wrote:I notice your doors are in the wrong places and use the wrong textures. Look at my map with the doors for a reference on where they're supposed to go and which textures they use and which direction they swing. Other than being scaled up, all those doors are accurate to the original level. In general, on the first level, a wooden plank door is unlocked, a wooden panel door is locked with a red key, and a grey panel door is locked with a stone key.
I also notice your bridges are using the wrong textures. Those should pull from tmobj or floor textures. See my map with the doors, IIRC it has the bridges and pillars in their correct locations with the correct textures. The pillars also pull from tmobj, first 4 indices.
The fact about doors is that I was trying to remind them by myself which one where placed, using your 20320-1 thing defined as reference and there put a door that should fit aesthetically speaking, while testing displacement maps too... but I do need to investigate further your maps for good placement of them, remember that Hexed won't be a 1:1 TC unlike yours, this also comes with bridges and probably pillars, I will make look the whole map more "ruined" and "hexen-ish" looking in order to make everything blend properly map per map, like if you enter in a UW place and end to a Hexen environment, something maybe similar to BlooM. If you check the MAPINFO you might notice that I called the "episode" The Stygian Darkmere, just flying with my fantasies and it could evolve into something better in the future.
Sir Robin wrote:Look like you're working on your splashes and falling damage. And looks like you've got at least a place holder for the death animation. Thanks for posting videos, it's good to see the progress.
Thanks and yes, since I have included already most of these on Realm667 remasters and BoA so to port them was pretty obvious in my side, though the death animation atm relies to a fake SetFont call and I can't animate it, but if I put a camera and a sector with a "Death" animation in each map and run a script each time player dies, then I can handle this better (I know that here could be better solutions through zscript and ScriptCall features when building these kind of maps scripts, but it is something I am still not able to handle so I'll use my methods and see if I can improve my solutions/workarounds day by day)
User avatar
Ozymandias81
Posts: 2063
Joined: Thu Jul 04, 2013 8:01 am
Graphics Processor: nVidia with Vulkan support
Location: Mount Olympus, Mars
Contact:

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Ozymandias81 »

Btw everyone, Hexed Underworld is now public on github, so feel free to have a look at it.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Sir Robin »

Ozymandias81 wrote:I must admit that I took a look to Underworld Adventures by Vividos, while searching for some technical infos regarding UW program structure and such (fortunately I used to be somehow familiar with hexadecimal editors, and old DOS rippers to extract images and such from games - something that my brother made me learn on Amiga 600 and then 486, but only the fun side nothing related to programming or how it exact used to work, though I always ended up with some results) and I noticed how complicate is the whole engine and format structure on both games, such an impressive work behind those 2 little gems, which also generate System Shock... but that's another story. UW2 had pretty cool monsters and places, specially Yeti, Liche and Brain Creatures, surely inspired to one of The Twilight Zone episodes I bet (one could also say D&D mindflayers, but mmh no they are something else). It is also true that UW2 had more potions and the keyring, oh that always used to save space in my inventory, though I always had terror to get a bug from it with keys stored in
I started following some of the UW remake projects back in 200/2001-ish. At the time Windows NT/2000 was notoriously bad for gaming, especially for old DOS games, and we didn't have DosBox yet. A number of UW engine remake projects have come and gone over the years, I think one of the first was TSSHP, then I remember one called LOW that was putting in support for 3d models. I've kept a bookmarks folder full of links to UW projects as I've found them, and a few months ago I decided to go through and see how many were still alive. Most of them are dead links now but Underworld Adventures led me to a site saying they had left sourceForge and moved to GitHub. UA is the current holder of a document called uw-formats.txt which is a big help for reading UW data files. There used to be one called uw-specs.txt but it fell out of maintenance and is pretty outdated now, and there's a few others out there also, but not as complete as uw-formats. That's what I used to rip all my maps and sprites and data tables and whatnot. I also submitted corrections for inaccuracies I found while ripping things out, like that fire animation stuff.
UW1 was a pretty amazing game for it's time, UW2 packed even more in to that engine. IIRC every sprite has 4 palette variations, so they could have multiple creatures off one sprite set. The Yeti were the trolls recolored, and the liche was Lord British recolored. The void creatures again have several sprite sets for only 2 critters, and again they had the black-out sprite set, but again I don't remember if those were actually used ingame.
Ozymandias81 wrote:I will use just the still water tx and apply warp shaders to it, there ways to use the same tx and have it non-warp and warp at the same time on GZDoom, just a matter of longnamed/shortnamed definition and which once to pick to apply the warp shader. Regarding floors with puddles, I might just close water puddles details in them through sectors and there apply my flat, you did also a net observation with walls but now that you said it I will use in place the "still" water flat and it should blend fine with walls, even if they have a "retrò" animation (something I am gonna try soon)
UW used drains as textures on the wall with the water drawn on, but I just had an idea - you could just make the drains have an actual cut-out with a real water flat behind it. You commented before about my 3d portal stairs, I can't remember if I responded to that but the answer is that I was experimenting with what things I wanted to leave as the authentic 2d textures and what I wanted to update with more modern 3d techniques. I hadn't thought about the drains until just now. Also, I think that in the doors sample map I linked you I have an experimental design for the Infinity Door made out of 3d floor and compared to the 2d flat textures of UW1.
Ozymandias81 wrote:Well unless I use your TC as pure base for my project, in this case I am using my resources and keeping atm all missing actors that comes from your project to have a reference, since I plan to code actors myself, at least the base for them, and then will investigate in future if I should apply some RPG elements and stuff like these... I am still trying to figure out in my mind a proper approach and I always do this via trial and error, though I have only replaced textures names in those maps you posted on your thread with my set of tx, which aren't organized like yours, you may have noticed it on the googledrive link posted some days ago here.
Here's how I'm doing it - My script generated all those UW_ObjectXXX classes and put them as doomEdNums 20XXX. Those are just generics to remind me what what's supposed to be in the level, then I replace them with the real objects as I code them. For example, DoomEdNum 20298=UW_Object298, it just holds the campfire graphic. But I created UW_CampFire with the fire animation and a dynamic light and ambient fire sound and made it interactive so you can light your torch on it or cook your food on it, etc. So now DoomEdNum 20298=UW_CampFire. Once I have all the objects coded I can remove all the generic UW_ObjectXXX classes from my code. And UW_CritterXX are the same - they're just the placehodlers until I write my actual code. I don't know if that helps you or not.
Here's some tips on my DoomEdNums:
#366 and 367 are text map objects, commonly used as decals. Some walls have a feature on them like a drain or a grating or whatever, and it is right there in the wall texture, but others are applied as decals. I mentioned this earlier when talking about scaling the diagonal walls. Well these two objects control those decals. The difference is that one of them is movement blocking and the other is not. I don't remember which is which right now. But where ever you see those two in my maps, go look at the actual game to see what they're doing so you can be sure you're replicating them correctly. In my map with the doors and bridges, I think I replaced them all there, you can use that as a guide. Some drains, banners, and even most stairs are decals.
#384-447 are trap and trigger items, used for UW scripting. Since (I'm assuming) you're going to do your scripting in ACS, you can ignore these, remove them from the map entirely. But might note them as indicators that something nearby is scripted.
UW does not have a way to animate a standard sprite (other than the fire/water palette animations) so anytime there is an animated object it has a base object with an animation object attached. The only one I can think of in UW1 was the fountain - it has a base and then an attached water animation (#302 and #457). I'm sure you could create just a single sprite that has both the fountain and the animation overlaid in it to replace both those objects with. But also create a non-water fountain, I think there are some dried up fountains in the game.
Ozymandias81 wrote:and this Avatar thing was an old attempt I did when building up Gore: Horde of Titans
Ok, took a look. Didn't watch the whole 30+ minutes but in the first 5 I noticed you have a compass, and quake-style difficulty selection, and dynamic lights (the flashlight). I've also ripped the UW compass for my HUD, and plan to do 3d difficulty and even character class selection (if that's even possible). But I'm pretty excited about dynamic lights. I thought that dynamic lights would be perfect for a dungeon crawler where you can watch your torch light flicker between the cracks of bricks down the halls. I've been working on it, still not exactly where I'd like it to be, but here's a sample:
Spoiler:
Ozymandias81 wrote:The fact about doors is that I was trying to remind them by myself which one where placed, using your 20320-1 thing defined as reference and there put a door that should fit aesthetically speaking, while testing displacement maps too... but I do need to investigate further your maps for good placement of them, remember that Hexed won't be a 1:1 TC unlike yours, this also comes with bridges and probably pillars, I will make look the whole map more "ruined" and "hexen-ish" looking in order to make everything blend properly map per map, like if you enter in a UW place and end to a Hexen environment, something maybe similar to BlooM. If you check the MAPINFO you might notice that I called the "episode" The Stygian Darkmere, just flying with my fantasies and it could evolve into something better in the future.
In addendum to my DommEdNums comment above, normal swinging doors are #320-325 - that's door types. Each level has a door palette telling which of the 13 doors textures are used by each of these 6 objects. #326 is for portcullis. IIRC in UW1 a portcullis is never openable by hand, always a switch or other trigger, but in UW2 some can be opened by hand. #327 is a swinging secret door. Similar to #320-325 except that it doesn't have an assigned texture, It pulls it's texture from the nearest wall. Also, all door frames pull their textures from the nearest wall.
I noticed in your video that your doors don't have frames, not sure if that's your design or just a quick hack for testing. That displacement maps sure makes them look more 3d. I wonder if that can be combined with a normal map?
Ozymandias81 wrote:Thanks and yes, since I have included already most of these on Realm667 remasters and BoA so to port them was pretty obvious in my side, though the death animation atm relies to a fake SetFont call and I can't animate it, but if I put a camera and a sector with a "Death" animation in each map and run a script each time player dies, then I can handle this better (I know that here could be better solutions through zscript and ScriptCall features when building these kind of maps scripts, but it is something I am still not able to handle so I'll use my methods and see if I can improve my solutions/workarounds day by day)
When researching my TitleMap I found out about doing fullscren animations with the setfont, but as you say that would require me to put a separate death handler in every map. That's one way to do it but I'm looking for a better way if possible.
User avatar
Ozymandias81
Posts: 2063
Joined: Thu Jul 04, 2013 8:01 am
Graphics Processor: nVidia with Vulkan support
Location: Mount Olympus, Mars
Contact:

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Ozymandias81 »

Sir Robin wrote: I started following some of the UW remake projects back in 200/2001-ish. At the time Windows NT/2000 was notoriously bad for gaming, especially for old DOS games, and we didn't have DosBox yet. A number of UW engine remake projects have come and gone over the years, I think one of the first was TSSHP, then I remember one called LOW that was putting in support for 3d models.
Some weeks ago I checked again the same site which had UGCK and TSSHP originally, and there was also LoW obviously, and finally managed to let it run even on my Win7 sp1 64bit simply downloading a proper sdl.dll and it works somehow, with tons of limits but it is funny to see these old ports.
Sir Robin wrote:I've kept a bookmarks folder full of links to UW projects as I've found them, and a few months ago I decided to go through and see how many were still alive. Most of them are dead links now but Underworld Adventures led me to a site saying they had left sourceForge and moved to GitHub. UA is the current holder of a document called uw-formats.txt which is a big help for reading UW data files. There used to be one called uw-specs.txt but it fell out of maintenance and is pretty outdated now, and there's a few others out there also, but not as complete as uw-formats. That's what I used to rip all my maps and sprites and data tables and whatnot. I also submitted corrections for inaccuracies I found while ripping things out, like that fire animation stuff.
UW1 was a pretty amazing game for it's time, UW2 packed even more in to that engine. IIRC every sprite has 4 palette variations, so they could have multiple creatures off one sprite set. The Yeti were the trolls recolored, and the liche was Lord British recolored. The void creatures again have several sprite sets for only 2 critters, and again they had the black-out sprite set, but again I don't remember if those were actually used ingame.
I have never seen black void critters tbh, I wonder if they got used like sort of "background shadows" for the colored ones in game or some sort, but you really know it better than me. And I exactly took a read to mentioned files by you on Underworld Adventures, I am even following the project cause who knows, maybe I might be of help in future... Sounds great how they used palettes to obtain Yeti but also Lord British lol :shock: a recolored Liche, never imagined that...
Sir Robin wrote: UW used drains as textures on the wall with the water drawn on, but I just had an idea - you could just make the drains have an actual cut-out with a real water flat behind it. You commented before about my 3d portal stairs, I can't remember if I responded to that but the answer is that I was experimenting with what things I wanted to leave as the authentic 2d textures and what I wanted to update with more modern 3d techniques. I hadn't thought about the drains until just now. Also, I think that in the doors sample map I linked you I have an experimental design for the Infinity Door made out of 3d floor and compared to the 2d flat textures of UW1.
Even I was thinking something cut-out for drains, so could be indeed a good idea... I will take a proper look to the Infinity Door, the one present on Critters hall right?
Sir Robin wrote: Here's how I'm doing it - My script generated all those UW_ObjectXXX classes and put them as doomEdNums 20XXX. Those are just generics to remind me what what's supposed to be in the level, then I replace them with the real objects as I code them. For example, DoomEdNum 20298=UW_Object298, it just holds the campfire graphic. But I created UW_CampFire with the fire animation and a dynamic light and ambient fire sound and made it interactive so you can light your torch on it or cook your food on it, etc. So now DoomEdNum 20298=UW_CampFire. Once I have all the objects coded I can remove all the generic UW_ObjectXXX classes from my code. And UW_CritterXX are the same - they're just the placehodlers until I write my actual code. I don't know if that helps you or not.
I do see now and it might be of help probably yes, surely to fast things on this side
Sir Robin wrote:Here's some tips on my DoomEdNums:
#366 and 367 are text map objects, commonly used as decals. Some walls have a feature on them like a drain or a grating or whatever, and it is right there in the wall texture, but others are applied as decals. I mentioned this earlier when talking about scaling the diagonal walls. Well these two objects control those decals. The difference is that one of them is movement blocking and the other is not. I don't remember which is which right now. But where ever you see those two in my maps, go look at the actual game to see what they're doing so you can be sure you're replicating them correctly. In my map with the doors and bridges, I think I replaced them all there, you can use that as a guide. Some drains, banners, and even most stairs are decals.
#384-447 are trap and trigger items, used for UW scripting. Since (I'm assuming) you're going to do your scripting in ACS, you can ignore these, remove them from the map entirely. But might note them as indicators that something nearby is scripted.
UW does not have a way to animate a standard sprite (other than the fire/water palette animations) so anytime there is an animated object it has a base object with an animation object attached. The only one I can think of in UW1 was the fountain - it has a base and then an attached water animation (#302 and #457). I'm sure you could create just a single sprite that has both the fountain and the animation overlaid in it to replace both those objects with. But also create a non-water fountain, I think there are some dried up fountains in the game.
Yes I will mostly combine frames in a Doomish way, and include the base sprite as dried variant too, also I will probably script things in ACS but also with zscript, I just need to familiarize from time to time with it and following your project will help me a lot to reconsider ideas and things to work on (Hexed will have more an "arcade" approach)
Sir Robin wrote: Ok, took a look. Didn't watch the whole 30+ minutes but in the first 5 I noticed you have a compass, and quake-style difficulty selection, and dynamic lights (the flashlight). I've also ripped the UW compass for my HUD, and plan to do 3d difficulty and even character class selection (if that's even possible). But I'm pretty excited about dynamic lights. I thought that dynamic lights would be perfect for a dungeon crawler where you can watch your torch light flicker between the cracks of bricks down the halls. I've been working on it, still not exactly where I'd like it to be, but here's a sample:
Spoiler:
Shots looks beautiful as I expected, and today I have just implemented the Lantern code (yeah shamefully imported from BoA but with changes), check it out if you like, for torches it might need just a minor radius variant of flickering lights and a different durability.
Sir Robin wrote: In addendum to my DommEdNums comment above, normal swinging doors are #320-325 - that's door types. Each level has a door palette telling which of the 13 doors textures are used by each of these 6 objects. #326 is for portcullis. IIRC in UW1 a portcullis is never openable by hand, always a switch or other trigger, but in UW2 some can be opened by hand. #327 is a swinging secret door. Similar to #320-325 except that it doesn't have an assigned texture, It pulls it's texture from the nearest wall. Also, all door frames pull their textures from the nearest wall.
I noticed in your video that your doors don't have frames, not sure if that's your design or just a quick hack for testing. That displacement maps sure makes them look more 3d. I wonder if that can be combined with a normal map?
Do you mean upper door frames? My polydoors are made of midtex and not solid sector, so there is no top "ceiling" on them... you might have noticed it in my polydoors example. Regarding materials and shaders, sadly normal+specularmaps doesn't work with displacement, I will use normal/specular only for liquids mostly and maybe some special things I have in mind (normals+specular would fit greatly on UW2 Gem Teleporter, WOW SHINYYY eheh)
Sir Robin wrote: When researching my TitleMap I found out about doing fullscren animations with the setfont, but as you say that would require me to put a separate death handler in every map. That's one way to do it but I'm looking for a better way if possible.
This is what makes modding so fun, there are always different ways to approach a problem and how to solve it :3:
User avatar
Ozymandias81
Posts: 2063
Joined: Thu Jul 04, 2013 8:01 am
Graphics Processor: nVidia with Vulkan support
Location: Mount Olympus, Mars
Contact:

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Ozymandias81 »

First rough work with weapons, lights and also bats can be seen on the video below. Bats have a new frame, Roost, and red one has yellow eyes so it can be noticed better in game.

User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Sir Robin »

Ozymandias81 wrote:I have never seen black void critters tbh, I wonder if they got used like sort of "background shadows" for the colored ones in game or some sort
Yeah, That's all I could think of. Don't remember them either, and won't know for sure without another playtrhough. Whatever it is, obviously void monsters are handled differently than any other creatures.
Ozymandias81 wrote:I will take a proper look to the Infinity Door, the one present on Critters hall right?
Yeah, that one. That was literally my first time working with 3d floors, before I wrote that script. Probably looks pretty primitive now, but it's a test of concept.
Ozymandias81 wrote:I have just implemented the Lantern code (yeah shamefully imported from BoA but with changes), check it out if you like, for torches it might need just a minor radius variant of flickering lights and a different durability.
I'm doing my lights, probably similar to yours. Flicker2 lights for open flames (campfire, torch, candle, taper) and steady light for lantern and the rest. Here's all the light sources I'm considering:
No light - how far can the player see with no lights equipped
candle, torch, taper, lantern, light sphere (UW2 only)
light spell, daylight spell, night vision spell
campfire, fireplace (UW2 only)
The UW engine didn't have dynamic lights for the campfire and fireplace (UW2 has a very crude sector light system for fireplace) so I just made up values for those.
For the rest, I just went into the game, equipped or cast each light in front of a wall, and then backed up until I can't see the wall anymore. Then I try to replicate those distances.
And of course UW didn't have colored lighting, so I'm playing with the RGB values to find lights I like.
Another thing I'm finding out is that with dynamic lights it is much harder to hide your geometry. All of a sudden I can plainly see all the edges and corners and everything looks so planar and angled. I'm working on ways to soften that out a bit.
Ozymandias81 wrote:Do you mean upper door frames? My polydoors are made of midtex and not solid sector, so there is no top "ceiling" on them... you might have noticed it in my polydoors example.
When I say door frame I mean the jambs. Like if a door is 32x52 and it sits in a 64x64+ passage way, there is a thin wall filling in that space between, that's what I'm calling the frames.
In UW only the front and back of the door have textures, the top and sides are a solid color, same with the jambs. UW engine can texture-map a surface or paint it a solid color, so some objects only have their "important" surfaces textured and rest are just plain colored.
Ozymandias81 wrote:Regarding materials and shaders, sadly normal+specularmaps doesn't work with displacement, I will use normal/specular only for liquids mostly and maybe some special things I have in mind (normals+specular would fit greatly on UW2 Gem Teleporter, WOW SHINYYY eheh)
Bummer. Well I'm pretty sure I'll stick to the normals instead of the displacement. I've been playing with those for a few days now and really liking how they're coming out. I'm not using much specular, most of the dungeon is stone brick walls and dirt floors, but I'm giving some shine to things like the marble surfaces, gold veins, moss, etc. I'm trying to find settings I like for water but haven't quite got it yet.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Sir Robin »

Ozymandias81 wrote:First rough work with weapons, lights and also bats can be seen on the video below. Bats have a new frame, Roost, and red one has yellow eyes so it can be noticed better in game.

Looks like you got your weapons in. I did mine like UW = hold to charge and release to attack, with a charging gem indicator on the status bar. I put all three attacks in for each weapon, and it just chooses one randomly each swing. Yours are definitely more action-centric.
Nice work on the bats - I love the roosting thing! I haven't even started on my monster AI yet.
FYI the brown bat was one of the not-in-game sprite sets.
For the eyes you could also use a bright map to light up their eyes in the dark. Or use a specular so they only shine when you shine a light on them.
What was I supposed to see in the heat effect? I didn't notice anything.
UW has only 2 "bulletpuff" type animations - a red blood splat and the yellow damage one. Red blood was for all bleeding monsters, yellow was for everything else: non-bleeding monsters, objects like doors and chests, and level geometry like walls.
Also when ever you get a critical hit, it puts up two blood splats as an indicator.

What do you use to record your videos?
User avatar
Ozymandias81
Posts: 2063
Joined: Thu Jul 04, 2013 8:01 am
Graphics Processor: nVidia with Vulkan support
Location: Mount Olympus, Mars
Contact:

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Ozymandias81 »

Sir Robin wrote: Looks like you got your weapons in. I did mine like UW = hold to charge and release to attack, with a charging gem indicator on the status bar. I put all three attacks in for each weapon, and it just chooses one randomly each swing. Yours are definitely more action-centric.
But well even I plan to have hold/charge and if possible with something which checks mouse direction... or just use 3 attacks randomly for each hold-release attack, but indeed my mod will be more "arcade" compared to original UW, more Hexen-ish if you like.
Sir Robin wrote:Nice work on the bats - I love the roosting thing! I haven't even started on my monster AI yet.
FYI the brown bat was one of the not-in-game sprite sets.
For the eyes you could also use a bright map to light up their eyes in the dark. Or use a specular so they only shine when you shine a light on them.
Ah good to know with brown ones, indeed I can't remember them and didn't see anywhere when using UGCK tool as well. And no worries regarding bmaps, they are my speciality eheh, but thanks for the suggestion (I did ALL brightmaps on Blade of Agony and BlooM, something around 9000+ images XD )
Sir Robin wrote:What was I supposed to see in the heat effect? I didn't notice anything.
Try set the video with the best quality possible and check how details "vibe" like if you are in a torrid desert... Best seen in game, my pc can't handle 1080p or higher quality videos without stuttering (only when streaming/recoding)
Sir Robin wrote:UW has only 2 "bulletpuff" type animations - a red blood splat and the yellow damage one. Red blood was for all bleeding monsters, yellow was for everything else: non-bleeding monsters, objects like doors and chests, and level geometry like walls.
Also when ever you get a critical hit, it puts up two blood splats as an indicator.
Aaaah good to know thanks, I totally forgot the critical hit thing, I will remember it!
Sir Robin wrote:What do you use to record your videos?
Ages ago I used BandiCam but that tool felt very stupid and not good for my needs... Until I found OBS, it is awesome, freeware and can be even downloaded from Steam recently.

BTW look what happened here eheh...
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: Hexed Underworld - Hexen meets Ultima Underworld

Post by Sir Robin »

Ozymandias81 wrote:But well even I plan to have hold/charge and if possible with something which checks mouse direction... or just use 3 attacks randomly for each hold-release attack
Maybe just check the player actor pitch? Set certain ranges to determine each attack type.
Ozymandias81 wrote:Ages ago I used BandiCam but that tool felt very stupid and not good for my needs... Until I found OBS, it is awesome, freeware and can be even downloaded from Steam recently.
OK, got OBS now. Let's see if I can get some videos up
Ozymandias81 wrote:BTW look what happened here eheh...
Very nice! Thanks! When I first say your avatar rip I went looking for U8 rips and for some reason couldn't find much. Sadly I don't know how much will be of use since that game was drawn from a downward angle (even the avatar sprites look a little awkward for a first person view) but I'll see what I can find/adapt. Thanks for posting that.
Post Reply

Return to “TCs, Full Games, and Other Projects”