6634372f42cb7

6634372f43374
1 Guest is here.
 

6634372f43c54icemann

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f43cbe
Feel free to continue on the SS1 side things as well :). We could always use 2 SS1 projects running side by side. I hope you don't stop work on that side. Especially after all the work you've already put into it.

And as yours was also covering Underworld, it has the added strength of covering both games + enhancing both simultaneously.
Acknowledged by: JosiahJack
Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f43e23
Cool, thanks for the update hank, it's not easy finding free time to work on something like this. Hope you're having fun with it.

6634372f43ef6hank morgan

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f43f4a
It's fun to work on. I still get a giddy thrill when something works as it should so as long as that keeps happening I'll keep at it.

6634372f4431eJosiahJack

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f4437f
It's fun to work on. I still get a giddy thrill when something works as it should
Lol diddos!  8)

6634372f44497hank morgan

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f444eb
On the face of it my tool still is compatible with the enhanced edition of SS1. Unfortunately recent changes I made on the Underworld side of things are currently breaking the program for Shock until I update my object config files. If anyone here is actually playing with the tool themselves then any revision from before this month is working.

I'll try and put an update together in the next week. Things have been going well (on the Underworld side).

6634372f4494ehank morgan

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f449a5
So here is where it all is at the moment. I was hoping to make a video to show a few things off but I didn't quite get the chance to get one ready so instead I'm attaching a few pictures in this album

A few weeks ago I had the misfortune to suffer a sports injury that kept me out of work for a couple of weeks. I've taken advantage of that time to implement and advance progress on a bunch of cool features. Including two or three that I was not expecting to pull off at this point in development. All of this progress is in Underworld 1 but some of the basic principles will carry forward to SS1 and UW2 in improved forms. All in all it's been a good few weeks of progress where a lot of things came together nicely.

The highlights
Conversations: The sadly defunct Underworld Adventures project had a c style conversation decompiler. I've been lucky enough to be able to use that tool to generate a sample conversation with an NPC. There is a small amount of editing required to get the scripts to work in C# but the basic principle is sound enough until I know enough to generate my own scripts or manually adapt them.

AI: I came across a free off the shelf solution (Rain AI) that seems more than suitable for my needs and I know have some basic AI behaviour working fairly okay. Namely they will wander an area randomly or stand idle. When I execute an attack on them they will chase after me and carry out attacks of their own. I've had a number of simple battles with AIs which is cool and is probably the first time in almost two years that I've experience some game-play from the project.

More complete HUD, better aligned controls and info displays: I've almost fully implemented the UW1 hud. For example I now have a full female paperdoll showing equipped armour. Health and mana indicators. Stats display. Minor elements like the compass, attack charge indicators and a number of onscreen animated elements.

Animated textures (think water effects in UW1) and similarly animated objects using a palette cycler.

Light sources such as torches and candles that the player can carry around.  Visually I'm aiming to replicate the vanilla ambience where the darkness surrounds the player. I want having a source of light be a key part of the game.

Lock picks, edible food etc.

A bunch of bug fixes. More features to my back-end extraction tool and more properties and script components being generated for the various systems in the game.

Unity 5: I'm currently moving my project files over to Unity 5 and it appears to be working okay so far.

The lowlights.
I've probably broken SS1 and UW2 compatibility while I focused on UW1.
I'm less hopeful of generating and loading everything needed to play the game at runtime. In some areas I should be able to load at runtime but some important things like maps, nav-meshs are currently manually prepared or generated by editor script in the Unity IDE.
The upgrade to Unity5 means my previous solution for multilevel persistence no longer works. Fortunately I was not too invested in the problem so it's not a major setback at this point.


Feel free to ask any questions, make suggestions and most importantly give constructive criticism.

I'd really like to produce a demo. Is there interest in my taking some time to work on and release an extremely cut down version of a level with just 2 or 3 rooms? Possibly with some place-holder art that showed off basic functionality. It would probably have a small amount of ripped assets which makes me a bit reticent about doing it.

6634372f44a7bicemann

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f44acf
Looks great.

I'd be happy to have a quick play, if you released a demo. Especially with basic AI now in :).
Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f44bdb
I wouldn't mind trying the demo.  And also own the GOG version if you needed to make the demo require some file to run and play.

6634372f44ce2hank morgan

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f44d35
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

6634372f450b6hank morgan

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f45119
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.
Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f45259
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
Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f455a3
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

6634372f458eahank morgan

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f4593b
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.

6634372f45b66hank morgan

Re: Tool for converting Ultima Underworld and Shock 1 Levels into D3/DarkMod.
6634372f45bb7
Latest status for interested denizens of the Underworld
Still more UW1 work.  A list of key features/fixes/improvements from the demo as follows

Every conversation on Level 1 is now implemented including associated intrinsic functions and global quest tracking.
Item trading in conversation.
Music system that plays appropriate tracks depending on player status, combat state etc.
Texture animation for water/lava is now controlled from a colour replacement shader that uses cycled palettes. This replaces the old kludgey system I had used. However it doesn't react to light at the moment or work on sprites. :(
Weapon animations added to combat along with hit impacts (eg blood)
More magic spells implemented along with status icons.  Including Lightning bolts, poison enemy, magic light variants, magic heal variants, open door and Armageddon for destroying everything in the game world.
Simple animation overlays for some objects (eg fountains)
NPC animation frames are now pinned to the correct position to give smoother
Item quantities and stacking and scrollable inventory lists.
A lot of under the hood fixes to the code including better object orientated design for objects. Split up the main character code into smaller discrete components for stats, magic, combat and general status.  The basics of a status effect system for persistent effects, enchantments, potions etc that can apply to both player and npc etc etc
A simple portcullis prefab that I can interact through the bars of.
Improved  aiming of spells and object throwing.
Bug-fixes including improved mouse-look and free-mouse code (the old version had the real cursor in the wrong position for detecting clicks!).

https://github.com/hankmorgan/UnderworldExporter

PS can a mod change the thread title to something more indicative of what the tool currently does? Maybe remove the D3/Darkmod and replace with Unity. Thanks.
Acknowledged by 3 members: voodoo47, icemann, Gawain

6634372f45da7hank morgan

Acknowledged by: Join usss!

6634372f45ee5icemann

6634372f45f31
Looks like it's nearly functional. Just missing combat text. Noticed some flickering of one of the wall writing textures in one bit, and the AI on one of the dwarf npc's at the start didn't look right. Does the map show your current position? If not be very good to have that in.

Great to see the enemies actually seeking you out. Did they have collision detection in the proper game? Can't remember.

Be best in a more full screen-y kinda view also.
Acknowledged by: hank morgan
6634372f46058
Wow, looks very good.  I hadn't had a chance to play your updated demo yet.  I did notice something from the video that I remember noticing in the first demo.  Sometimes I had to click twice on the action icons on the left.  Was I just hitting outside where the button was defined?
Acknowledged by: hank morgan

6634372f46284hank morgan

6634372f462f2
The process of generating and implementing levels has gotten fairly quick. I only moved on to that level mid-week and the most time consuming part was converting the decompiled code (from the UW Adventures project) for the conversations. Everything else is generated by the tools. I try to avoid manual work as much as possible.

The AI's are still dumb as ditch-water. I've basically only enabled two modes for them so far. Wander around randomly (they occasionally float in the air) and charge straight at you if they are hostile regardless of where you are in relation to each other. I generally only set the AI to become active when the player is very close because otherwise I get absolutely dog-piled by hostiles. 
AI's do have collision in the original. They are supposed to get bumped backwards when you collide with them but I've yet to implement that. I only just changed my AI movement controllers the other day to make their movement behaviour more sensible but the new collision boxes that they have are a bit small and out of place. If you watch closely in the video you can see that the only hits I make are on the lower half of the bodies.
AI is very much  on my  hack together now  and polish later list.

I've since redone a lot of the collision detection on the various buttons so it's a lot more responsive. I had originally made a mistake in calculating where the cursor is drawn around the mouse that I only fixed after the demo.

Still hoping to do a full screen view at some point but I need to have a good think about how the various UI elements will fit in. I like to keep close to the original aesthetics as much as possible so finding a middle ground will be a challenge.

Thanks for the compliments.
Acknowledged by: Simon

6634372f46616hank morgan

6634372f4666d
Just dropping in for a quick end of year update.

I've been very busy working my way through various Underworld 1 levels one by one checking them out. With each level I try to get to a point where I can complete most quests within those levels and ensure any unique events on that level are working. I check that I can traverse the maps fully and all conversations on that level are working to an acceptable standard.  At the moment I'm down as as the 7th level (Tybals lair) so I am left with two levels to complete as part of that process.

Among the highlights since my last update
- I have all but one conversation implemented (about 90 in total). This was a tedious task but worthwhile for understanding the internals of the game.
- An encumbrance system.
- I've improved my map export to only generate visible tile faces rather than just generate full blocks. Map file size has dropped considerably.
- Full-screen toggle. (still needs a proper UI layout)
- Better fonts and menu appearance.
- Player gender affects the paper-doll.
- Improvements and further implementations of the various triggers and traps. Level environment events are just happening naturally now without much research on my part on how they work.
- Improved magic systems and more spells.   All spell effects regardless of source (player, equipment, object) are funnelled into the same code so hopefully implementing the full range of spells will be possible without too much frustration.
- Fishing, a talking door, a worried spectre named Warren and pacman.

My full commit log is here. https://github.com/hankmorgan/UnderworldExporter/commits/master

Once I've finished working my way through the levels I still need to do a few big (massive) tasks as part of the next phase of the project.
-Level persistence and multiple level game-play.
-The RPG systems. How stats affect the player, combat calculations etc
-The concept of a in game time.
-The AI. Work on the conversations has shown a lot more complexity to the AI system then I thought there was. I need to align my own demo AI system with the original system.
-Missile weapons.
-Magic spells. Fill out the spells that I have not implemented.
-Fix up the palette cycling shader to react to light. Get a working palette shader for animated sprites.
-Complete my work on the automap. Support multiple levels and map notes.
-Fix up the fullscreen UI.

Acknowledged by 4 members: Marvin, icemann, Al_B, Join usss!

6634372f4672ficemann

6634372f467ae
Keep up the great work.

I look forward to playing the finished product someday.

6634372f468a0icemann

6634372f468fd
No updates in several months. Any new progress?

6634372f469fcchickenhead

6634372f46a5d
Holy crap, this looks amazing.  well done, man.  Is it possible to use the modified models in other games, like Garry's Mod?

Because playing Trouble in Terrorist Town in Citadel Station would be awesome.
Either way, I approve.

6634372f46b0cicemann

6634372f46b6b
That sounds kinda awesome in theory.
Acknowledged by: chickenhead
1 Guest is here.
Science is magic that works.
Contact SMF 2.0.19 | SMF © 2016, Simple Machines | Terms and Policies
FEEP
6634372f4a4a4