Waystation Echo was always going to be prototyped in Unity, but when it comes to actually building the game, I wanted to use Unreal. Now that the prototype is finished, I’ve grabbed a new copy of Unreal Engine and have been working this weekend on getting what I had in Unity up and running in Unreal Engine.
The goals for the prototype were:
- Can I invoke a mysterious, dark, horror-esque feel to a remote space outpost on an asteroid?
- Can I get a third-person character up and running with movement quickly?
- Can I create a mental model of the game’s requirements in the engine of choice?
These things were all things that I knew I could do in either Unity or Unreal, but both of them are good engines to have experience with since my dream is to one day have a whole team of people making great, interactive experiences.
Anyway, here are some annotated screenshots of what I’ve been doing these past two days.
Even with a heading and everything!
So here we have an example of where I left off in Unity. You can see parts of the waystation, and obviously a ton of rocks representing the crater.
So to get this up and running in Unreal it’s basically back to square one. I had to build the whole thing from scratch since nothing I used in Unity would work with Unreal.
I started with the Third-Person C++ template, which didn’t really give me anything that I’m using except the character controller base.
You can also see that I am using and plan to continue to rely heavily on the free assets Epic provided from their Paragon game. These are great assets and fit nicely with the theme of Waystation Echo. On top of that, I don’t have to worry about environment models just yet. For prototyping, I couldn’t ask for more.
Eventually I just got rid of all the starter stuff and started sculpting out the ground that the waystation was carved into. I have to say, despite my original hesitation with Unreal’s landscape tools, once you get up and going it’s really fun to work with.
One of the things I over-relied on in Unity was the assets from the asset store. The skybox one in particular (one of the free ones) was used during my prototype to help hone in on the feel of the game’s prologue: I wanted it to feel “away” in space, somewhere far away. The Unity skybox was of a high Earth orbit and it conveyed the feel appropriately, but I knew I always wanted the moon right there next to the level to really give the player a sense of “far-away”ness.
Here you can see some quick mockups:
I used some geometry brushes to start carving out the first part of the Waystation, where the door falls and traps the player inside. This also triggers the first prologue interaction with your crew after the explosion, where they will print you a multi-purpose tool (which acts as a weapon, a tool, a charger, a splicer, a cutter, etc) to use inside the Waystation as you try to get the power back online to figure out a way to save you and your crew.
This allowed me to start prototyping the rest of the level, which has a “drawing” room with some acoustic trigger events that give the player a sense of the scale of the waystation once they look out the first set of windows down into the huge belly of the asteroid:
One thing I wanted to work on this weekend was the multi-purpose tool. Yes, it’s a rifle, but it’s also a mesh creator, a charge tool, a welder… The idea was that there was this multi-tool you could use to solve puzzles and defend yourself. My initial sketches were pretty complicated, and I threw most of the ideas away. I settled on a single rifle that was re-materialized and that had a emissive material on top to indicate when the tool was ready to be used and when it was cooling down.
Here’s a shot of me trying to get the socket on the right hand placed correctly:
I moved the camera back behind the mannequin to see if it would work in-game. I think so:
I did a bunch of work created blend spaces for hip-rifle movement and eventually aiming movement, which you can see here:
And here (below). The headlamp will need to be adjusted because that glow is insane and I can already tell the shadows cast by the tool will be insanely distracting:
One thing I didn’t anticipate for the blend space was that when I tried to blend a hip-rifle movement blend space with the iron sights blend space, I would get odd model behavior. Like this:
In case you need to see that again, here’s an up-close shot in the animation editor:
It took me a long time to figure out what was going on. Eventually I realized that the blend spaces were just being mushed together weirdly.
To fix this, I used something called a FABRIK function. FABRIK stands for Forward And Backward Reaching Inverse Kinematics, and is an IK solver that works on a chain of bones of arbitrary length (a minimum of 2 links). In my case, I wanted to use the right hand to force the left hand into order. This basically tells the left hand that it needs to do whatever the right hand it doing.
Despite trying to fix that problem for like an hour, the fix (adding FABRIK) only took about three minutes.
Next, I did some work on the moon lighting. I used area lights at 16000K (so a soft blue), with a medium-ish intensity and full soft source radius. I placed about a dozen of these throughout the level, in a clever way (I think) of showing the player where they should be going.
In the shot above, (1) shows where the player spawns, all the little red x’s are where I strung up those moon lights I was talking about, and (2) shows where the primary pre-prologue action happens.
And last night, I added some normal mapping and emissive computations to really make the moon stand out:
It looks so much better with motion, but I don’t want to create a video until I have at least the whole prologue complete. It’s not that intensive–there aren’t that many parts–it’s just going to take this one-man dev shop a long time to get it done. The trick is to stay on task, to keep the list of must-have shorter than the list of want-to-haves, and to keep a checklist each day of what you did, what you’d like to do, and what you think you could do in the future.
That’s it for now. I’ll be working more today and then am going to be away from a computer all next weekend, so the next Devlog might not be for a couple more weeks.