🔒 Tool for converting Ultima Underworld and Shock 1 Levels into Unity.

2 Guests are here.
6647d7b38a7de
hank morganQuote
No need for the GOG.com version. Underworld 1 has a free demo that my exporter supports. I'm going to whip up a demo based solely on the files from that.

https://archive.org/details/UltimaUnderworldTheStygianAbyssDemo
6647d7b38ab02
hank morganQuote
Hope this works...

Demo version of the Demo Level of Ultima Underworld 1. Download here.

I took a copy of my project folder and replaced all the assets in it with ones from the the freely available UW1 demo. Ironically the demo has most of the games assets already included). That said I'm reasonable happy to say there is no commercially available assets in this version.

This was a bit of a rushed job and the process of both moving to a fresh project folder and actually compiling a build broke a couple of things that worked okay in my working copy. I've only tested a few small number of features so you are using this at your own risk. Best of luck. I'll try and release the project folder later in the week.

Controls
E toggles mouse look on and off.  WASD movement, space to jump.
Press the buttons on the left to enter the various interaction modes. I've tried to match underworld's original behaviour as much as possible.

Magic
To cast magic missile (ORT JUX) collect the two runes around the corner to the left from where you start. Put them in the run bag found in the backpack near the locked door. Open the rune bag and click on the two runes in the correct order. Then click on the rune display "shelf" to begin casting. Click again to release the spell

Combat.
Enter attack mode (sword) Hold down the right mouse button. This builds a charge. Release the mouse to launch an attack. Both you and the AI will inflict 5 points of damage per hit. You won't die though.

Known bugs and issues
TMAP objects are half size. (this was because of a freeze bug that I had no time to fix so instead I disabled the animation script on them)
AIs are a bit janky. Friendly AIs may occasionally walk through walls or doors and may seem a bit jerky. Not sure what is going on there.
Mouse cursors are only displaying crosshair's. Eg if you pick up an item the cursor won't change as expected This is due to an art setting in unity at runtime.
Some text UI elements are not flowing correctly.
Palette cycling effects on objects are over zealous.
Texture animations is turned off.
No weapon animations.  Not implemented yet.
Movement speed and jumping is superhuman.
Mouse cursors are not aligned to the centre of the view. This is most noticeable when casting magic missile and in combat.
Hit detection is just a bit off.  There is no feedback for combat apart from your health meter. Use your imagination.
Magic rune display is displaying the wrong runes.
Combat is a bit "hit and miss".
Lockpicking is possible but no doors are flagged as pickable.
6647d7b38abf3
CarrotQuote
I just had a chance to play with it a little, but pretty cool Hank!  Is there an easy way to exit out, or do you just kill the program the hard way?
Acknowledged by: hank morgan
6647d7b38aed4
Al_BQuote
A lot of good stuff there - well done.  It's fun seeing the creatures wandering around and chasing you even when they do walk through doors!  A few comments / thoughts:
  • I realise you've gone with the original UW buttons for changing action but the UW context-sensitive "default action" (e.g. pickup / use / talk) would make it a lot less fiddly
  • A "full screen" option would be very welcome.  The main game screen doesn't need to be so small now that processors / graphics cards are a little more powerful than they were 20+ years ago!  Again, I realise you've gone for the authentic look but the game surround looks pixelated scaled up.
  • It might be worth experimenting to see if billboard style object and creature sprites work better.  With the current implementation they almost disappear when viewed at a sharp angle.
  • A few more feedback messages (e.g. "this door is locked") would be very helpful when things don't work.
  • I couldn't get the magic to work - I'm probably just doing something wrong!

Of course, I appreciate that this is an early stage and it's impressive to see the number of elements that you've managed to get working.  Looking forward to seeing how this develops further :)
Acknowledged by 2 members: Join usss!, hank morgan
6647d7b38b1fe
hank morganQuote
Thanks for the feedback. I agree with most of the suggestions. I'm deliberately going for the pixellated look at the moment in my asset settings but it's easy enough to change within Unity.

http://www.mediafire.com/download/9pz6y5j3sf9l59c/uwdemo_dev.zip

I've just upload the full development folder for the demo which includes an updated build if you want to experiment or look at the nuts and bolts (and duct-tape and chewing gum) behind the scenes. If you have Unity 5 installed on your pc it should just work out of the box. The code isn't as well documented as I would like but I will work on that in the future.

Alt F4 should work for closing it. I've been developing so long in a vacuum that I've forgotten about the user experience.

I'm aware of the billboard issue. I was experimenting with adjusting the angles for NPCs since it calculates from the base of the object/npc and I forgot to remove the offending code before I compiled. The attached version should work better for small objects but getting close to NPCs will be a bit weird.

I've also fixed that bug with the mouse cursors not displaying properly but also forgot to turn off the windows mouse cursor!

I just retested the magic and it's working for me. It should just be a case of picking up the right runes and putting them in the rune bag. Once you click on them inside the rune bag they appear on the shelf. Then just click the shelf to ready the spell then click on the window to cast.  The output_log.txt file should indicate what is happening when you click there. The spell will probably fly off at the wrong pitch though.

Full or bigger screen area is in the long term to do list along with interface improvements. I just want to get things working as vanilla as possible first and I'm still only learning.

If I get the time in the next  couple of weeks I'll try and do a similar exercise with the demo version of SS1. With the caveat that I'm nowhere near as advanced on that side of things.

Legal stuff

Privacy Policy & Terms of Service Contact