Skip to main content
null 💻 notes

Waystation Echo Devlog 2: Environment cleanup

It's been a long while since I've posted anything about Waystation Echo, the third-person survival puzzle game I have been designing for about two years now.

I started integrating ootii's Interactable Core with my custom door and charge handling scripts to see if I could save some time designing these puzzle doors. Ootii is incredibly talented and made basically the same thing that I did, except out of the box my materials looked a little weird. Turns out, this had to do with the scaling of the object that the Interactable Core was a component of.

Eventually I removed it, not realizing that I had put a rigid body on it:

Fixing this was easy, but it got me thinking: why was I using a statically cast light on this panel, when I should have one attached to the suit?

So I spent some time affixing a spotlight to the helmet of the player:

That wasn't so bad to get going, but while I was doing it I noticed that the environment I had created was, well, awful.

I knew something had to be done, since I had been spending so much time working on the puzzle components (which are for a future Devlog) that I had ignored the initial environment completely. Well, I told myself that I would spend some time getting it at least somewhat presentable.

Here's where I started:

You can already see at the top that I was starting to put in a bunch of PBR rocks. I had this idea for a really detailed crater that you would start the game in.

My philosophy for terrain shaping is to have the terrain "climb up" the environment props. It shouldn't look like something is just sitting there; you want the terrain and the props to "talk" with one another.

Here's the player facing toward the waystation entrance:

I grabbed some snow textures that I used to fake a rocky surface and created some normal maps based on gaussian noise profiles. Nothing crazy, since I only had about an hour to work on this.

After shaping the terrain a bit, I sprinkled some scaled down versions of the giant crater rocks to give it a more cozy feel.

Here's a shot before:

And here's the same shot after:

I used a simple gradient brush and three separate textures: the snowy texture from before, a gravel texture, and a soapstone texture. Mixed together and brushed on with 25-35% opacity, I think the three of them created a unique blend that reminds me of a hard stone but shaped like snow.

Here's a shot looking at the waystation:

You'll notice the depressions in front of the player. These are placeholder spots for some environment props that I haven't finished yet. Some crates, a comms array, and parts of a ship.

Here's another look at some of the rock and ground work as they meet:

Satisfied with the environment, I tackled the headlamp. I wanted a light attached to the player's helmet, which was easy enough--until I realized that the light was always going to be slightly off center of the camera since our camera is behind and to the right of the player.

To illustrate this, I put a red circle where the player was supposed to be looking at. Notice how the headlamp light is way far to the right, when in reality it should be center screen where the camera is facing:

To fix this, I pushed the player look-at location off-center, and rewrote the script that handles the player's head movement.

Notice how the headlamp is now facing camera-forward:

Here's another example. Notice how the rock in front of the camera is lit, instead of off to the right like it was before:

With the headlamp and terrain in place, I got super excited and added some stormy effects to really carve out the emotion of this environment. Cold. Dark. Alone. Hinting at something stranger.

Here's the last screenshot I took for the day:

I'm really glad I started work on Waystation Echo again. I've been just writing stuff down in my notebook for so long--script notes, puzzles, dialogue, etc--that getting back to Unity and Visual Studio feels great.

I hope I can work on this game some more, and I hope you enjoyed this Devlog update!