Graphics

Menu Screen Test

Just a quick update today: I’ve been messing around with various ideas for the game’s menu screen and finally settled on something that I feel suits the style pretty well.
In keeping with the late ‘80s/early ‘90s vibe, I’ve mocked up this handheld game console as the menu system. This is where the player will be able to load and save their progress as well as adjust the game’s settings.

Menu Screen Test


The Culvert

As the kids try to make their way into the haunted theme park they realize they can’t just bust in through the main entrance. Looking for alternate ways to get inside, they come across a culvert that seems to lead straight where they’re heading.

Outside the culvert
 
Inside the culvert
And just like any self-respecting teenage horror movie victims participants, they (of course!) decide to enter the darkness…



2.5D Depth Compositing

Psst… wanna hear a secret? In an earlier incarnation of Fatal Attractions the game had a different name: It was known as Libera Me.
Libera Me never really got past the tech demo stage. But a key element of the game’s tech was its 2.5D compositing. The idea here is to have pre-rendered background images which contain information about each pixel’s depth. Through some clever shader tricks this allows us to perform several graphical feats that usually require full 3D scenes:

  • Depth compositing
  • 3D lighting
  • 3D shadows

This concept was used heavily in the earlier Resident Evil games.

I’ve decided to revive this technology for Fatal Attractions. The cool thing is that the entire background scene as well as the character are just billboard sprites; that makes for a whopping 4 (!) polygons being rendered in the clips below!
The 2.5D depth compositing is implemented via custom shaders and provides correct depth occlusion, as seen in this short clip when the character walks towards the background and ends up behind the tomb stones:

Traditionally this kind of depth compositing would require a fairly elaborate setup of masks and/or occluder geometry. Not so with 2.5D compositing where we get the occlusion for free without any extra effort.

But wait, there’s more! Here we can see a real-time directional light casting shadows from a 2D sprite onto a 2D background… and thanks to 2.5D depth compositing we get correct 3D shadows just like in a proper 3D scene:

Of course we’re not limited to static light sources – we can even move a light around. Here we have a dynamic point light moving around and lighting up just the appropriate region of the scene. Also note how the character sprite casts proper shadows onto the background geometry.

I plan to use the dynamic 2.5D lighting to allow the player to investigate using a flash light as well as other sources of light. Of course dynamic shadows will also have their place.

Unfortunately the video compression made a bit of a mess with the image quality, so here’s how the background render is meant to look:

The spooky cemetery



The Haunted Mansion

Working on the engine at the moment. That and the VHS Look post-processing shaders have been keeping me busy lately. It’s hard to find a good compromise there: On the one hand I want the game to have the authentic look of an old VHS tape that’s been watched too many times. But then again I’ve put so much work into the background art and this gets all but ruined by the VHS artifacts.

Today though inspiration struck and so I revisited an older scene that’d been sitting idly on my hard drive for a while. No creepy theme park is complete without a Haunted Mansion, so here’s a first look at what to expect:

The Haunted Mansion Entrance

Here I’m trying to recreate that somewhat over the top spookiness of Disney’s Haunted Mansion. Of course our heroes will have ample opportunity to explore the mansion and mingle with its inhabitants – whether they want to or not…



Introductory Post

For the past couple years I’ve been working on and off on this point n’ click adventure game called Fatal Attractions. This is the first time I’m publicly showing my work on this project, but I feel it’s been incubating for long enough now and should start to finally see the light of day, for better or worse.

The game takes inspiration from ‘80s horror movies as well as classic 2D adventure games, two of my favourite things.

Fatal Attractions' Logo

Story

Fatal Attractions is set in the good old days of the early ‘90s in a small town in the US. We follow a couple teenage boys as they come across a curious looking girl lurking around their treehouse in the woods. She leads them to a seemingly abandoned theme park just outside of town. Once night falls, the boys quickly realise that the park is not as abandoned as they were led to believe…

Gameplay

The game plays very much like the classic adventure games from LucasArts and Sierra Online: You point the cursor at objects on the screen, choose an interaction method and see what happens. Throughout the game you get to explore mystic places, meet strange folk and solve puzzles along the way.

Graphics

Originally I’d planned to make Fatal Attractions look a lot more like the games that inspired it: Clean pixel art with a limited VGA palette. Alas, it turned out I’m absolutely rubbish at this art style. Also, it wasn’t really jibing with the mood I had in mind for the game.

Thanks to my background in feature film animation I happen to know a thing or two about rendering in 3D. And so, after a lot of trial and error, I eventually settled on the style you see here. The pre-rendered 3D art gives me lots of artistic options to capture a nostalgic look reminiscent of ‘80s teen movies such as The Goonies or Fright Night. Moreover, the low resolution keeps the amount of time and work it takes to create and render the assets fairly reasonable.

Technical Info

Fatal Attractions is built on the lovely LÖVE game engine and written entirely in MoonScript. At one point I’d ported the whole thing to Unity, but eventually came to the conclusion that it’s just overkill for what I’m doing here.

The 3D rendering is all done in Cinema 4D with tons of 2D post work applied in Affinity Photo.

Current Status

At this point I have a working prototype of the game running:

  • Rooms can be defined and loaded
  • Actor’s actions can be scripted using a custom DSL
  • The player can click and thereby interact with stuff on the screen
  • Path finding works for the most part
  • A couple rooms have been rendered

Screenshots

These early screenshots are running in the game’s engine. Animations aren’t quite there yet, so just still images for now:

Kid's Room
Brother's Room
Dad's Office