[WIP] Ultima Underworld level conversion

New maps, and other projects whose primary focus is new maps, belong here.

Note: This forum, and all forums below it, are not for questions or troubleshooting! Threads created here are for active projects only! If you have questions please feel free to use the Editing subforums or General forum.
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.
Gez
 
 
Posts: 17835
Joined: Fri Jul 06, 2007 3:22 pm

Re: [WIP] Ultima Underworld level conversion

Post by Gez »

Ozymandias81 wrote:I can imagine by using the Hires folder and define them via TEXTURES
No need, the various maps (brightmap, normal map, etc.) are automatically scaled to the size of the texture bitmap.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: [WIP] Ultima Underworld level conversion

Post by Sir Robin »

Ozymandias81 wrote:Oh yes I am very used to fix these kind of things, though it is very time consuming but it also allow me to fix minor details over each sprite if I notice some dots that shouldn't be there... As I said on my project thread, the process is painful (and it will be "creepy" for Ghouls and Goblins, so many frames). The only thing is that we must consider that our mods won't be cooperative friendly, since Pain/Attack/Death frames doesn't have rotations, but works good if you have in mind a Wolf3D environment in mind and remove infighting.
Yes, I'm aware of that. the UW critters have 8 rotation slots for idle and walking, but all other animations have only the primary slot, no rotations. So as you said they are similar to the wolf3d models. That's why I had mentioned LOW earlier, it's one of the remake attempts that has 3d models. Also the Japanese UW1 release had full 3d models for all the critters. In the future I might look at what it takes to import either of those model sets, but for now I'm sticking to the sprites.
And for infighting, I understand they can only ever face the camera, but the UW engine does have a system for infighting, and even a charm/ally system, but I never play with it in-game so I couldn't say how well it worked.
Sir Robin wrote: Awesome, I'll take a look. If your resolution / art-style are different than what I'm going far, I could probably still roto-scope them and use them as a guide for doing my own. Either way, thanks for that.
I used the old frankespriting school ahaha, simply via GIMP and copy-pasting details that might work, then lots of retouch and patience. Sword will be surely the hardest one, meawhile I have also finished axes.
Ozymandias81 wrote:wands and poles can be easy adapt from Raven games, though sling is the true problem if I plan to add HUD anims... or go just for a sling sound, the gem flashing and blinking until you throw stones).
Yeah I'm using the Heretic staff melee as a stand-in for my pole atm. UW didn'thave any HUD graphic for ranged weapons like slings, bows, crossbows. I'd like to find some for the bow and cross bow, but the sling since it's an overhead sling not a slingshot maybe just needs a whooshing sound while you're twirling it?
Ozymandias81 wrote:Who knows anyway, I might also attempt the "distinct" approach and will let you know it.
Whatever you end up doing, I'm sure it will look great and I'm looking forward to it. You've got a lot of good experience and I like seeing what you've done so far.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: [WIP] Ultima Underworld level conversion

Post by Sir Robin »

Gez wrote:No need, the various maps (brightmap, normal map, etc.) are automatically scaled to the size of the texture bitmap.
In my first testing in seemed that they only worked if they were the same size as the original texture, but now I see it is as you say. Well, that changes some things, gives me a lot more flexibility. Also gives me more work to do...
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Tutorial posted

Post by Sir Robin »



I'm posting a snapshot of the tutorial level - still WIP but you can take a look around and see what I've got going so far.

download it here

LOADING
It's a ZIP file with a bunch of PK3 files inside. The file LoadOrder.Tutorial.txt lists them in the order to be loaded.
If you're using ZDL, run the Make-ZDL.Tutorial.bat script and it will produce a file called tutorial.zdl that you can launch directly. Of course this only works on Windows or other systems that can execute .bat files.
I think it will work with any iWad, but I've been doing most of my testing with Doom2 1.9

RUNNING
You can watch the titlemap intro (nothing more happens after the main title comes up) then open the main menu, Initiate an Adventure and choose Tutorial.
You can go through the tutorial rooms, and look at the F1 help screen for a cheat sheet of what the icons do.
I'm hoping for some feedback on the interface - does it seem intuitive or cumbersome?

NOTES
Combat math is not implemented. The combat areas mention that different attacks from different weapons have different effectiveness on different armor. None of that is currently implemented.
Crafting is not currently implemented. One of the tutorial rooms says to craft a torch, but you cannot. Go to the back of the room and pick up a pre-made torch.
Lights burn out pretty quick. I set the duration short for my testing. For the final game they'll have more realistic durations. For now you can summon uw_oilflask items to keep them topped off. Just remember to extinguish any open flames before pouring the oil, or bad things can happen.
Lights in the world can be extinguished with USE but cannot be re-lit unless you have something with an open flame in your hands - candle, torch, taper. A lantern does not have an open flame and cannot be used to light other lights.
I'm using the UW2 light model, where lights that spawn in the world are immortal (don't burn out) but once picked up they become mortal. Dropping them back into the world does not change that. Once picked up they are forever cursed with a mortal lifespan.
Inventory is not currently implemented. You can carry one item in your hands and that is it. You must drop it to pick up something else.
There is a bug when you cannot equip any mace weapon (such as the cudgel). It was working once, I don't know why it stopped and haven't looked into it yet.
Unequipping a weapon currently isn't implemented, the only way to drop a weapon is to switch back to the fists or touch another weapon.
Currently the weapon drop code uses the gzdoom drop code which sends it flying in a random direction. When I implement my own drop code it will drop down like any other item.
Containers are half-implemented - they can be opened and "emptied" but they don't contain anything and there is no way to put things in them yet.

You can play the regular levels (choose The Stygian Abyss in the menu or warp to UW1MAP01) but will not start with any lights. You can find one in level, or summon one of UW_Candle, UW_Torch, UW_Taper, or UW_Lantern. I'd suggest UW_Taper since it never burns out. You can't bring an item from one level to another, and so need to drop the light at the exit and spawn a new one in the next level. Walking into an exit with an item in hand will make the item stuck at the exit.

For fun: Summon UW_Lantern_RGB, build yourself a nice discotheque 8-)
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: [WIP] Ultima Underworld level conversion

Post by Ozymandias81 »

Hey man, I have been quite absent from Doom Community for more than a week, since I got involved on the Duke Nukem Forever 2001 Leak and uploaded a repository for it in my Github profile. I think in a less than a week or so I will fully return to Doom modding, since I must finish the widescreen fixes for the blade weapon HUD sprites and then will give a whirl to your Tutorial, which I have long awaited in drooling hype.
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: [WIP] Ultima Underworld level conversion

Post by Ozymandias81 »

Sorry for the long delay, but I am ripping tons of resources fom various games asyou might have noticed on Resources group of threads, but finally had some time to test the tutorial... and it is like WOW! Those books are a clever idea, and I see why dummies are so cool now, funny how they "regenerate" too :wub:
Overall the pick/use system is pretty advanced and fits well for an enhanced experience in UW, I guess that once even then paperdoll will be fully functional, objects will be added automatically to the first free ideal slot. What I mean is do you will keep the "hanging" object too or will you remove it from screen?
Meanwhile I also checked the coding and damn, it is so advanced have to say again, I might inspect better gem/health functions in the future so to understand how to implement them in my mod, which works quite differently but it might help me to know how to handle the whole thing.
The concept behind rooms for tutorial reminds to me, in a different form obviously, how Serious Sam introduced players to the game. I bet the last tutorial will be a full-fledged arena battle with weapons, runes, a couple of enemies and a way to choose weapons before the fight by talking to someone which can lend you your favorite armors and weapons plus some clues (so you are able to test everything you have learn at that point - fight, magic, talk, use, see and so on).
I do also like the concept of mimicking the bland immortal dark blue light which follows you to make it look similar to UW games, as you already said once somewhere. This project requires a big huge lot of thinkering, specially for me which I am just an intuitive modder and don't have the presumption to calling myself "a programmer", even if in some aspects of Doom modding I might considered too (specially with old Decorate), with zscript I must reinvent the wheel so it will be a slow learning if life will allow me too.
As to the end this little feedback from me, maybe you might have noticed but there are a couple of misspels here and there inside the Tutorial map ("minimim" on Fist Tutorial; "equiped" and "diferent" on Weapons; "congratulaions" and "finsihed" at end of Tutorial) plus that the "W" character seems to be shorter compared to others (on books). Congratulations, this Tutorial is even better than what I have expected :D
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: [WIP] Ultima Underworld level conversion

Post by Sir Robin »

Hey, so I've been vacationing off-grid and not working on this. I did a little before I left, added a few more F1 screens and fixed a few things like the cudgel not working but haven't uploaded it.

I heard about the DNF leak, haven't looked into it yet. I'll have to check that out when I get a chance, I remember being in awe of the trailers when I first saw them, but it's probably super-old tech by now. And I just saw a post that there is going to be a DNF movie?

About the books: My idea was to make actual readable books in-game. I wrote a script that takes a PDF file and makes each page into a texture on a poly object "page" and I started writing a book-handler object that will group those poly objects together and let you flip through the pages. It's not working yet but the giant books in the tutorial are an idea of how I expect them to look. The library in the north end of the tutorial will have shelves with books on them, you can take them to the reading area and open them up and read them in-game. The test file I've been using is a PDF scan of the original Doom II manual.

About the dummies: I've played a few different games that have some kind of weapons testing areas that told you the damage you were doing. So every time you get a new weapon or stat bonus equipment or whatever you can go test it out and see what your actual damage output is. I like that idea, I wish every game had that.
Also did you notice that the weapons icon lights up when you're in range? In so many first person melee games (Hexen, Action Doom, the Castlevania mod, etc) it's so hard to tell the range of your melee weapons and if they'll hit or not. I thought that was pretty useful.

I haven't decided exactly how I want the inventory system to work. My initial idea was to have the active inventory item drawn in 2d, similar to how Heretic and Hexen do it. Then I wrote that code to drag things around in 3d and really liked the effect of seeing what you're holding in front of you. I might add a sprite of an open empty hand and draw the item on top of that so it looks like it's being held. For the actual inventory, I'm thinking of leaving weapon slot #1 as the fists and making #2-9 as quick slots. You can drop any inventory item (weapon, tool, wand, potion, food, etc) into those slots and it will let you pull those items up quickly. That way you just put the 8 things you use most in those slots and don't even have to mess the the inventory manager until you need something else. I think that would let the player focus on the action and not have to dig thru nested bags to find every thing.
Your question about leaving the item hanging - it will be out there if you either have it in your hands (slot #1) or have it in a quick slot and have that slot selected. Basically you'll only see if the item if you're ready to use it. For equipped lights, I think I'll still have the light source projected out there, but not the actual sprite. It's kind of a cool effect to see your light source, but the novelty wears off and then it's just an annoying thing blocking your view.

The code is kind of messy and over complicated. Just the code to light a torch is needlessly twisted. Most of it is because I'm not sure exactly what I want to do or how I want to do it, so it's a lot of experimenting and learning and getting ideas and trying other things. Once I finalize my ideas of what I want it to do I'll go back and clean up all the code, but for now it's kind of messy and experimental. But if there's anything you're wondering about how it works or why I did it that way, go ahead and ask and I'll explain it the best I can. And if you need any help understanding zscript, I'm getting better and better at it the more I try it.
Oh yeah I completely forgot to mention that the power gem and the health flasks work. The power gem is pretty straight-forward, just lights up based on amount of weapon charge. The flasks have over 500 frames of animation - you can do give/take health commands and watch them go. Was it worth all that work for such a subtle effect? Maybe? I'm also going to add a third flask to represent your hunger level. And I wrote a script to recolor the liquid in the flasks to just about any color, but not sure what I'm going to do with that yet.

The tutorial was originally just a linear string of rooms, then I got the idea to make them off a hall so you could do redo ones or skip ones or whatever. Then I got the idea to make them like classrooms in a school and that idea stuck. I've got another idea for the tutorial, that will fit well with the Ultima universe, but it's gonna be a lot of work so I'll have to wait until I have the skills (and free time) to make it happen. Basically the tutorial would be you at home doing a bunch of tasks to learn the interface, and then go to sleep at night and that transitions into the UW1 dream intro sequence. But yeah that may or may not actually happen, just an idea at this point. And I'll have to go check out Serious Sam, I think I played it a little bit way back when but don't remember much about it.

Anyway thanks for the feedback, and I'll look into the misspells and font issues.

I'm going to take a break from this for a bit. So much still to learn and try, this project is months away from completion. I'm going to take the skills I've gained so far and throw together a smaller easier game so at least I can say I've released something 8-) Actually I started it a few days ago so it's about half done already.
Hope your project is going well, I see you haven't posted any update yet.

Oh and about a week ago I took the time to play through UW1 and UW2, just as a refresher. Wow, they seemed so much more epic back then. Games these days can be so huge, these look kinda small and clunky by comparison. Still, good memories, and makes me interested to see your take on following the plot of UW3. I started reading through the design document for that. :geek:
Nihlith
Posts: 10
Joined: Thu Jan 12, 2023 3:32 pm

Re: [WIP] Ultima Underworld level conversion

Post by Nihlith »

@Sir Robin
Your wad is gorgeous. It's so strange to run around it at those speeds. Do you remember the sound the original game makes when you try to cast a spell but you have insufficient mana? I've been looking through your tutorial and my own copy of Ultima Underworld and I can't find it anywhere. It's kinda baffling. Do you know where it can be found? Thanks.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: [WIP] Ultima Underworld level conversion

Post by Sir Robin »

Nihlith wrote: Thu Aug 31, 2023 10:34 pm @Sir Robin
Your wad is gorgeous. It's so strange to run around it at those speeds. Do you remember the sound the original game makes when you try to cast a spell but you have insufficient mana? I've been looking through your tutorial and my own copy of Ultima Underworld and I can't find it anywhere. It's kinda baffling. Do you know where it can be found? Thanks.
I've only ripped the digitized sounds, they should all be in the UW_Sounds.pk3 package file. If you're talking about the "ïnstrument" sounds from UW1, I haven't ripped those.
Nihlith
Posts: 10
Joined: Thu Jan 12, 2023 3:32 pm

Re: [WIP] Ultima Underworld level conversion

Post by Nihlith »

Sir Robin wrote: Fri Sep 01, 2023 4:32 pm I've only ripped the digitized sounds, they should all be in the UW_Sounds.pk3 package file. If you're talking about the "ïnstrument" sounds from UW1, I haven't ripped those.
No, it's not a n instrumental sound. If you start Ultima Underworld in dos box and click on your runes to cast a spell, there is a noise it will make if you don't have enough mana to cast the spell. I've listened to all the XMI and VOC files in both the original game file and your wad and I haven't found it. It sounds like a low pitched falling buzz.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: [WIP] Ultima Underworld level conversion

Post by Sir Robin »

Nihlith wrote: Fri Sep 01, 2023 7:53 pm No, it's not a n instrumental sound. If you start Ultima Underworld in dos box and click on your runes to cast a spell, there is a noise it will make if you don't have enough mana to cast the spell. I've listened to all the XMI and VOC files in both the original game file and your wad and I haven't found it. It sounds like a low pitched falling buzz.
Yeah, I know the sounds. There's a "wow" sound when you cast a spell and groaning sound when you fail.

I haven't delved into the sound system at all. I have the VOC files and I have some MP3 versions of the music files which I found online, but that's it.
Nihlith
Posts: 10
Joined: Thu Jan 12, 2023 3:32 pm

Re: [WIP] Ultima Underworld level conversion

Post by Nihlith »

Sir Robin wrote: Mon Sep 04, 2023 6:49 amYeah, I know the sounds. There's a "wow" sound when you cast a spell and groaning sound when you fail.

I haven't delved into the sound system at all. I have the VOC files and I have some MP3 versions of the music files which I found online, but that's it.
I don't know how to do that. All I've found is that UWSOUND controls what OC video card the game thinks you're using. I wanted to use the sound in a TC I'm making. Obviously I still haven't found it but I found something that sounds close here: https://freesound.org/people/kantouth/sounds/106727/

If you're going to put spells in there it's probably better than nothing.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: [WIP] Ultima Underworld level conversion

Post by Sir Robin »

Yeah, I really haven't delved into the UW sound sytstem at all. The code I've written so far is using the UW2 sound effects, since they're just VOC files they're easy to find.
User avatar
Sir Robin
Posts: 537
Joined: Wed Dec 22, 2021 7:02 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Medellin, Colombia

Re: [WIP] Ultima Underworld level conversion

Post by Sir Robin »

Well it's been a while since I updated this. Over a year ago I had a HD crash with all my source on it. It was discouraging and I didn't feel like recreating it all again. Recently, maybe 2 months ago, I felt like picking it up again. Still haven't coded any monsters yet, still just getting the environment built. I scrapped most of the code I was working on before, didn't like the direction it was going. I'm working on a more streamlined way of interacting with objects, where everything can be done with more standard/familiar controls, and many things can be done from the inventory bar.

I figured out how to do 3d models, that wasn't nearly as bad as I thought it would be. I did all the easy stuff - doors and gravestones and square things. Still need to do tables and chairs and boulders and whatnot.
I'm trying to keep it authentic, but I've created 3d models for the passages, to replace the UW sprite passages:

That's a texture with normalmap on the left, plain texture in the middle, and 3d model on the right

In the UW games there were some collapsed passages. The game had rockhammers (AKA pickaxes) but didn't let you clear the passages, they were permanently collapsed. I'm allowing the passages to be cleared with a rockhammer so a player can create shortcuts between levels. Rockhammers are 1-use item, so decided where you want to use them or you'll have to go find more.

I've got my doors build and coded, they're woking pretty good. They do everything a UW door does - open, close, lock, unlock, remote trigger, monsters are able to use. The one thing I didn't code was spiking a door - I never used that in-game, I don't know how useful it is. I've got secret doors, and super-secret doors - the ones you can only find if your search skillis high enough or if you cast a reveal spell.
I added some of my own features to the doors:
Destruction - in UW if you break a door it still exists and functions as a door, it just can't be locked anymore. In my code if you break a door it explodes into wood debris. Of course like in UW the wood debris can be used to craft torches, so if you're low on lights you can farm doors for wood to make more.
Noisiness - My doors make a creaking sound when opened. It alerts nearby hostile monsters, and alerts peaceful monsters if they are flagged as guarding the door. For example the goblin treasury doors are each flagged as guarded by the nearby goblins. Using an oilflask on a door prevents it from making any noises, so you can sneak up on/past hostiles and rob friendlies.
Peeking - using a door while crouched lets you peek through the keyhole to see what's on the otherside before opening the door. If you see a monster with it's back to the door, you can oil the door then sneak up to get backstab on the monster.


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

Re: [WIP] Ultima Underworld level conversion

Post by Sir Robin »

I just dropped a new video demo of some of the new features. It's linked in the first post, and also here:
Post Reply

Return to “Levels”