I’m back with another look at our recently-announced game, Darkest Nightmare! At the time of writing this, the game has been in development for several months now, give or take a couple of project-related detours. The 80-20 rule is in full effect here though, as a lot of the gameplay came together in the first few days of development and it seems like we’ve just been refining and polishing the design ever since.

One thing that I’m particularly happy with is how we created the layered first-person effect in a 2D engine. I’m going to share a bit about how we put this “first-person 2D” effect together.

In the earlier days of Darkest Nightmare, all we knew for sure was that we wanted to preserve the monochromatic presentation of Darkest Light, although we wanted it to feel more claustrophobic and personal. We had discussed doing first-person in the past, but a static, movement-less first-person action game in 2017 seemed pretty boring. We also thought about just going full 3D with the game, but we ultimately decided against it given the schedule we had and the work that had already been done.

I was pretty convinced that I could get the faux-3D painted look to work, and I tried to replicate what I was going for in After Effects: a single layer repeated over and over, scaling up to simulate z-axis movement:


I limited myself 2D, scaling and playing around with the brightness and opacity of the layer to make it easy to replicate the effect in Corona. One thing was missing though. The layers had to scale up in a curve, with the transition getting faster as the layer got closer to the camera. I did a second test.

To this version, I added several things: scaling up on a curve, a head bob effect to simulate walking, and slightly skewed layers for variety:


This render really showed us that it was doable! We dove into doing some actual preliminary art for a test environment, and we played around with various things like a noise filter (pretty ugly in our sample render, as you’ll see) and animated hands.

Our next test render looked closer to the actual game, but still rather quaint:


I was very confident in the direction we were taking once we put this together, though. It had taken us probably two days to go from static first-person to a dynamic environment.

Our current build has a few more bells and whistles, but the underlying principle of scaling up a layer on a curve still holds true to preserve the first-person effect. Check out how our lead developer Vonn translated my 2D scaling experiments into an actual working thing:


We’re still working continuously to make Darkest Nightmare a thrilling experience, and we can’t wait to get it out there to hear what you guys think.

In the meantime, I hope this was interesting, at the very least! See you in the next devblog.