Ultima Underworld VR Remake

I have my own blog (see signature) but I thought I would replicate it here for those who are interested and those old enough to remember The Stygian Abyss.

avatar.png

In 1992 a game was released that set the bar for me in quality, gameplay and just pure immersion. It was a time when the PC was on the rise as a gaming platform and the other computers at the time were fading out. The Amiga which most of my friends owned and the Atari ST. My dad had just bought a 486 DX2 66mhz powered PC with, I think, a massive 4mb RAM and a 60mb hard drive. How times have changed. I remember spending a lot of time editing autoexec.bat and config.sys files to squeeze as much memory out of it as possible to run games.

The game in question, as you may have figured from the title of my blog, is the great Ultima Underworld - The Stygian Abyss. My actual copy pictured here.

avatar.png

Ultima Underworld is a first person RPG. You could do things in it that you couldn’t do in any other game. Things that today we take for granted but back then were new. You could jump, fly, swim and look up and down. It was released the same year as the classic wolfenstien game which had none of these features ( but was still fun of course). Most other first person RPG’s at the time, like eye of the beholder, limited the player to moving forward in a grid style like a chess piece and only let you turn 90 degrees at a time. Ultima Underworld allowed you complete 3D movement like today’s first person games. It was technically brilliant but what made it even more special was the story and the atmosphere it created. I really believed I was in the game. Even with the very basic (by today’s standards) graphics it drew me in and still, to day, is one of the best gaming experiences I’ve ever had

Because game is a very old DOS game you can only really play it today on a DOS emulator. But you are still limited to the same old graphics and same old sound and music. Over the years several people have started projects to remake Ultima Underworld but none of them were ever finished.

You can see a few of them listed on the link below.

http://underworld.ultimacodex.com

I have always been interested in games development but my skill set is more 3D modelling and texture artist. I’m not really a programmer but I can read code and figure out what it does. I always thought it would be great if someone remade Ultima underworld in a modern engine so, in 2011 I thought I would give it a try myself.

Ultima underworld is a rather big game for someone to attempt on their own so I decided to set myself a more realistic first target. Origin first released a demo of the game which included the entire first level of the Stygian Abyss which is pretty much what you can see on the map in the picture above. I set myself the goal of completing the first level of the Stygian Abyss and effectively remaking the free demo. If that went well then I could think about doing the rest of the game. I started looking for a game engine as the base for my project and found a few contenders in Unity3D, Torque 3D and shiVa 3D. I had settled on Unity3D when epic went and released the UDK. gave people like me access to the best game engine around without any up front costs which was great. So I began where my skill set was strongest and started building assets.

Here are some early screen shots of my work. These are old screen shots from UDK and are out of date. New stuff will be posted on the blog post page.

After a few weeks of building and texturing I wanted to start building the gameplay elements. is where everything started to go wrong for me. It involved programming and that was like a brick wall in the path of my project. I could use kismet for very simple things but without an understanding of unreal script it was hopeless and I’m just not suited to writing lines of code. Eventually I gave up and started to look at unity3d to see if would be easier to learn. As it turned out there was a plugin for unity 3d called uScript which was very similar to kismet but enabled me to script anything I wanted visually with nodes. was a way of coding I could understand. Unfortuantely I had just started my new job and It was taking up a lot of my time so my project was put on hold again.

Fast forward to 2013 and the Oculus Rift was in the wild. I immediately ordered one and in July it arrived. It was breath takingly good for a first VR experience and it rekindled the passion for my Ultima underworld project. What if you could really be in the Stygian Abyss? How cool would that be!
So I first decided to see what I could do with the Oculus and also purchased a Razor Hydra.

I was quite pleased with the results but unity3D, as good as it is, just doesn’t have the graphical quality I wanted but I didn’t have much choice. It was then that I saw a video of unreal engine 4 and blueprints. Oh wow. It was everything I needed but it wasn’t available and there was no way of knowing when or indeed if it would be released like the UDK. It did look perfect though. So with my job keeping me busy and Unity not really giving me the best results things slowed a bit.

Then Epic did something…well epic. They released Unreal engine 4 to the masses including the source code! (Source code doesn’t help me much but still…) was truly awesome and I signed up immediately. Blueprints is everything I had hoped it would be and I’m well on my way to learning it. Oculus Rift is supported out of the box and a wonderful guy named getnamo on the unreal Engine forums has written a plugin for the Razor Hydra. You can get it here. Plugin - C++ - Epic Developer Community Forums

So brings me to today. The stars seemed to have aligned with access to one of the best game engines around coupled with the arrival of true virtual reality including all the accessories that go with it ( I have an Oculus DK2, Virtuix Omni, 5 sensor STEM controller and now the new Control VR body suit all on Order) and a bit more free time than before, I am currently in the process of porting everything over to UE4. I’m still learning my way around but it shouldn’t take too long and once I’m fluent in using Blueprints things should progress. I can’t promise regular updates and I certainly can’t give you a release date but my aim, as I said before, is to compete the first level as a demo and see where it goes from there. is a personal project and a labor of love so I will certainly do my best. Thanks for reading. and keep up to date on my blog page ( link at top of page)

See you in the abyss.

avatar.png

Over the last few days I have been trying to get the Avatar features I had working in Unity, working in Unreal Engine 4. Here is a video of my first test with Avatar hands and arms being controlled with the .

Sorry about the dark video and the low frame rate. First time using Microsoft Expression screen capture.

Playing with DX11 distance based tessellation for environment objects

avatar.png

Hi guys

I’ve been looking at how to make realistic looking environment materials and it seems that tessellation is a very powerful way of representing detail in geometry. Especially when you factor in the stereo effect of the Oculus Rift which makes the effect really realistic. So to figure out how to do I focused on one of my wall materials as a test. I found 3 of very useful tutorials online, that when combined gave me the results I wanted. The first tutorial I found was by a guy called RealDaveTheFreak. you can find his Youtube channel here and its worth checking as he has some great tutorials.

He has 2 tutorials on tessellation. One for basic tessellation and one for distance based tessellation. However his solution for distance based tessellation while great for small static meshes doesn’t work quit as well for larger objects. his tutorial uses the distance from the object with the material on it, to the camera. As I said works fine for smaller static meshes but not for larger meshes as it will tessellate the entire mesh when it may not be necessary as parts of the object could be far away.

The second tutorial is by Epic’s Wilard (Hope I spelt that right) and is about location based opacity. You can find it here and the second part is here. uses a cool feature called a sphere mask to make parts of meshes transparent.

The third tutorial is on vertex painting and it by MetalGameStudios. You can find some great tutorials by them in their Youtube channel here.

So using the Sphere mask with a center based on the camera location and using a falloff and radius to adjust I got the following effect.

The frame rate is quite low on the video capture but in editor and in game it runs silky smooth.

I have tessellation on the ceiling, floor and walls.

A problem I encountered was separation in some of the meshes in certain places where the floor meets the walls.

capture1.png

So using the info I got from the vertex painting tutorial I used vertex colors to mask out the height map for the problem areas.

capture2.png

here is the tessellation part of the material for you guys to try out.

The texture sample is the height map.

Hope helps anyone and thanks to the guys who made the tutorials that got me far.

Lighting test– Hand held torch

avatar.png

I have been playing with lighting for the first person character and wanted to start with a hand held torch. The flames need to be much more dynamic when the torch is moved but it is a good start. Also the hand and arm IK is still a bit dodgy (may also have been too close to my hydra base station when recording this).

Managed to figure out a better way of capturing video using the nvidia shadowplay feature on my nvidia 780ti so videos should be much better from now on.

Really really looking forward to the DK2 shipping soon. It’s gonna be awesome. Also congrats to control VR for reaching their kickstarter goal. Can’t wait to get my hands on (in) that hardware.

@Mrob76u, looks really nice man.

I’m making a VR dungeon crawler game myself, though focused on survival aspects rather than RPG.

Our games are very different, but I imagine we’ll end up with a lot of similar code by the end. Would you be interested in working together (just helping eachother out on common problems, basically)?

Anyway, awesome work!

is looking really good. Can’t wait to see how progress’. Subscribed!

Stygian Abyss is one of my all-time favorite games, so I’m really excited about this. Please keep us posted :slight_smile:

is really cool! I can’t wait to see project take shape.

is just too awesome ! Got my Rift and Razor waiting for a demo :slight_smile:

Thanks guys I really appreciate the encouragement. I will try and make as regular updates as I can as I progress and implement new features and content. I’m glad there are other Stygian abyss fans in the community. I hope I can do it justice.

@n00854180t
Sounds like you are working on a good project too. Will be good too see some of the stuff you have done. Have you got a forum thread anywhere or a blog? If you have any questions about stuff I have done I will do my best to answer.

I don’t have anywhere to collect my progress yet or really any screens set up.

Since I started working on it I have put in:

  • Gathering assets I can use to prototype, mostly free with some packs like the Beggar and the fantasy props thrown in, and some dungeon piece packs.
  • Basic inventory (networked), customized to drop the item from your hand, including system for showing the item in your hand when it’s picked up (update: is now fully working, item is picked up and dropped from/to hand, ). Using the items, especially food, to recover the ever-ticking down hunger, also done!
  • Basic hunger system, with framework for WIP thirst system. Hunger has a meter, then goes into starvation. After starvation hits 0 it starts ticking damage on the player. (Lots of plans for additional gameplay for this, still WIP).
  • True first person
  • Beggar character model with animations (I exported the animations, clipped some to create new ones, and learned the animation system in the process) to replace the default guy
  • Torch with fire effects and light source (with life-size-ish flame)
  • My own animation (I’m not an artist) that makes it so the character holds the torch out, which blends with the walk/jump/idle etc, and ensures the fire effect doesn’t block the player view.
  • Preliminary IK setup (needs to have a PHaT asset created for the character to work well), brushed up on PHaT a little bit.
  • Imported about 100 of the props from a pack I have into the engine and hooked up materials for them
  • Early physics door (bump into it to make it swing open) with a neat little door asset.
  • Been working on hooking up the dungeon rooms and hallways I’m going to use, hooked up materials and collision for many of these.

Right now I’m laying down the base animation layer that will function if there are no motion controls, mostly because I don’t have budget for a Hydra (just got a wacom tablet, the DK2 is on order, and picked up Substance Painter yesterday on sale).

For the motion control I’m working on making a Playstation Move plugin for the engine so I can use that to prototype for the Hydra etc (will use almost the exact same interface as the Hydra since it’s based on Getnamo’s plugin). PS Move stuff is really cheap (got 2x of the ball controllers, camera, and navigation controller for $40 shipped). The API supports 5 ball controllers and can do multiple cameras, so I think that might be useful even for people that already have a Hydra for additional tracking. Plus it’s a cheap option for those that want Hydra-like gameplay and can’t get a hold of one.

Here’s a screenshot of the character in a test area with some decals.

A pic of some of the props (just a level I set up for importing stuff and getting the mats set up):

First person shot, with some of the decals (material is messed up a bit):

The props and character and such are just for prototyping.

Edit: Update - inventory system is working for food related stuff now - you can pick up various foods, with different hunger restore values, and they will properly restore food. Now to hook up death and respawn, and I have a basic game loop (I like to make gameplay work as early as possible).

Awesome Work and totally inspirational! I hit Writer’s Block drafting up the Design Doc for my FP Fantasy Blast & Slash Dungeon Crawler - Treasure Hunter VR: Dragon’s Gold. thread has given me a boost of creative juice!

I’ll have to take a closer gander at the . Prior to reading thread, I was considering Control VR for real-time and prerecorded motion captured animation. Coupled with Voice Recognition, I think I can comfortably remove the GUI and Keyboard from game play.

Keep up the great work.

is such awesome news.

http://www.othersideentertainment.com/

Hope they are using unreal engine for this.

I never had a to play the Ultima games when they were new. Looking forward to trying the remakes/spiritual successors :slight_smile:

Hello Mrob76u,
I am trying to get in touch with you about Hydra implementation, please check you inbox.
You may not get inbox notifications, but only thread notifications. (?)
Thank you !

is great, I’ve never had a to try them out back in the day but I did play the hell out of Arx Fatalis (which I remembered when browsing thread). Subscribed! Hope to see more!

I just managed to pick myself up a Hydra, so I’m interested in as well.

Mrob76u, would you be willing to share how you did your Hydra setup?

sorry guys was on vacation for a bit.
back now

I will try and put something together to show how I did it when I get some time. Just upgrading everything to 4.3 and making sure it works.

Awesome thanks man!

Let me know if you see anything in my project you’d like to see, I’d be happy to share.

Got my Hydra in today, got it almost set up, but I can’t quite get it so it converts from Hydra positions to world space. Also can’t get my arms to bend at all at the elbow with the IK. Weird.

Would be a lot easier to do if blueprints had a transform inverse.