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

1 Guest is here.
66493d52e7f3b
icemannQuote
Underworld 1 then System Shock 1, THEN worry about Underworld 2 :p.

How is AI going for npc's at this stage? Still basic? Or do you have some sort of loader (much like with the objects/doors/switches etc) that reads in the npc type with the intended AI routine to go by etc?
66493d52e8185
hank morganQuote
I just updated my testing environment today to load object, textures and the fullscreen bitmaps from the files. Just needs to be integrated with my main code. I've also come across a potential solution to my animations issue so fingers crossed on that one.

AI's are stored as objects just the same as other items. The just have a bit of extra info for status.
AI has improved a fair bit. I did a bit of work on AI lately so they now mostly follow the original game rules such as
  • multiple attack types (ranged, magic and melee)
  • wandering aimlessly around a central location
  • standing still (big whoop)
  • fleeing the player if they panic near death
  • a basic stealth mechanic if they are hostile but not currently set to target the player
  • following or attacking other NPCs
Some AI behaviours you would only really see if you hex edited the npc goals and targets.

Some pathing issues remain. Especially getting AI's to literally stay on their side of the river. My previous heavy handed solution to that problem was to split up my nav meshes into regions of connected ground only only allow AIs to use certain navmeshes. Flying AIs are not supported yet.
66493d52e8534
hank morganQuote
Very busy on the project lately. Being able to load data at runtime has given me a big shot in the arm in terms of motivation. So what I've mainly being doing lately is porting over code for loading data from my export tool into Unity's C#  and integrating it with the game code. Luckily the code is transferring with only syntax changes required in most cases. As I've being doing that I've being paring away imported game data that I no longer need to bundle.  As a result of all this my dev environment has shrunk from 1.4gb down to a more sensible 500mb -mainly cut-scene and critter sprite files. At the moment my goal before releasing is the only game data I will include is critter animation sequences, weapon animations, fonts, conversation code and a minimal amount of UI art that needed to be edited before usage.

I'm now capable of loading most of the graphics formats that Underworld uses at runtime. This include textures, sprites and UI art. As of this weekend I also have a working reader for pulling in critter animation sequences and frames.  The only art format I've yet to port over is the cut-scene art format. Mainly because I had wholesale lifted the code for this from another project so I just have to take some time to comprehend how all that works before I can update and port it.

I also have a persistence object list manager going.  The way it works at the moment is:
I read the object data in from the game files and store in a storage array. When the level is loaded I create game objects from the items that I know are in use in the level. Each object links to and from the list. When an object is picked up (into inventory) it leaves the list and when an object is placed in the world it is added back to the list as a new instance in the first free slot in the list. When I leave a level I update this list to ensure all all the objects are linked together properly and that changed properties are kept up to date. When I return later just recreate the game objects from the stored info. Seems to work okay so far...

So at this point I have 2 big open problems I want to solve before I can release something.
+How to integrate critter animation data in a clean way. I have one solution that is promising but I'm a bit concerned that it is a bit of a sledge hammer.
+How to pull in cut-scene art and animation sequences.

Oh and I can now load UW2 maps and objects -that is as far as I've taken UW2 support.


Edit:

As always you can follow my progress more closely at https://github.com/hankmorgan/UnderworldExporter

66493d52e862f
CarrotQuote
Very cool, hank!  No real comments other than that.  Just wanted to let you know I always enjoy your updates, and there are definitely people following and looking forward to this project.
66493d52e86e5
icemannQuote
Myself included in those followers.

Has SS1 been looked at, at all lately? Or is the current focus 100% on UW1?

Legal stuff

Privacy Policy & Terms of Service Contact