As the title says: I am working on a small Myst-related project Myst Island in VR. Nothing exceedingly original, but something I dearly want to experience.. I’ve had an Oculus Rift (DK2) for a while, enjoying other people’s projects but lacking a project of mine. As I’m waiting for Korman’s documentation to grow a bit (*hint*hint*) to make progress on my current Age, I’m working on that these days.
Intent of the thing
I totally love Myst island (duh). I love the original game, and as much as I love RealMyst, I have always wanted to explore Myst island in real time the way it originally looked when I first played it.. So I’m going for something that looks as close to the original as possible. ’Warts and all’ as they say. I’ve had to funky things to do this since I took the time to count the actual number of polygons on some models (not as difficult as it sound) and I had to count and map out all the trees in the forest.. (by my estimation there are 363 of them :O many of them are super tiny). Doing all this is actually easier than it sounds since the island isn’t too big and we have an accurate map (from MystMME).
Quick technical background
This started as a UDK project a bit over a year ago (I’ve had Myst island’s outdoors modeled years ago, so I finally decided to do something with it). I had all assets integrated, and shaders done, but then the Epic guys dropped Oculus Rift support for UDK — in favor of the new Unreal Engine. Unfortunately the newer engine actually dropped a couple features I totally needed for that project (mostly the way it used to handle reflections). And one year later they are still not back in, with no plans to do so. So I am moving the whole thing to Unity.
Moving it Unity is problematic for me on two specific areas: programing, and shaders. Both have great visual scripting interfaces in UDK/UE4 which Unity lacks. Sure you can get part of that through external plugins, but those can be expensive. Not the kind of stuff you buy just for fun. When it comes to shaders I had all of those running in UDK, including a fairly complex one for the sea. But changes within UE4 shaders system are part of the reason I had to drop the thing, so no choice here for me but to move to the next best thing, Unity. I’m currently looking at getting a Unity shader plugin (Shader Forge), which is basically a clone of UDK’s system and works great.
Regarding coding: I do dable in Javascript and (occasionally) C#, so I might have a go at integrating the whole thing by myself, but for now I’m working on completing the visuals..
Current status
- All of the island’s outdoors are modeled, textured, and animated. Safe for the terrain that still needs some work.
- Shaders are done too, but I will probably have to tweak them to bump up the frame rate. (the sea in particular)
- I haven’t done the indoor areas yet, and at this point I’m not sure I will have any (safe for the library). This is a small project, that’d go beyond the scope.
- I’m doing the library for two reasons: 1- Can’t have Myst without its iconic library, and 2- Unlike the other buildings there is no door for the library that I can close to mark the area off-limits. (you can actually close it from the inside, but we don’t know what it looks like from the outside, and I’m not going to take any liberties here)
- There is no interactivity at all right now. And again at this point I’m not sure I will have any. This is a small project that’s all about exploring. I might add the clock tower ‘gear path’ puzzle so we can walk to the clock tower, that wouldn’t be too much work.
- I would love to be able to raise and lower the big Channelwood Tree, because it gives such a great point of view. But the ‘real’ puzzle would require doing the cabin; too much work.. Maybe I’ll code in some cheat system. I’ll look into that at the end.
- Finally: I haven’t contacted Cyan yet to get their legal green light to publish this. I’ll do that once I have something that looks good enough. For instance I’m currently using the actual Myst sound effects; that might have to change.
VR aspect
Doing VR games is not easy, many people (among which I was) assume that we can take a regular game, add a VR controller script and be done with it. If only. Myst has several issues regarding this. It was not designed for real time 3D in the first place, many things were not built to scale etc.. RealMyst circumvents this in various ways that are problematic for VR: it changes camera FOV on the fly, it moves the player around, collisions tricks are used to make the player feel taller/smaller etc. All of those are big no-no for virtual reality.. The only ‘correct’ way I could think of to correct those would be to redesign some of those areas. Which is obviously something I am not going to do. Thankfully all of those problems arise inside the buildings, and I have no intention to do those. I will make the library though, but this particular area doesn’t look problematic, so I should be fine.
Navigation system
Another ‘problematic’ aspect of VR is navigation. Simple first person FPS-style navigation can make some people’s stomach uneasy. I’m a big fan of the ‘hotspots’ navigation system in Myst5 (has RealMyst MME anything similar?) so I will go with that; along with an option for regular FPS control. I have already mapped out the existing navigation points on the island (all 38 of them; minus the sunken ship).
And here are a couple shots of what it looks like in Unity right now: