cover photo of a pirate island

THE LIGHTHOUSE

Forgotten Treasure Island

program icon
Unity
program icon
Blender
program icon
Substance 3d Painter
program icon
Zbrush
a treasure chest

What is the Lighthouse

Link to the repository is here: Github

The Lighthouse is an interactive puzzle game made in Unity as a part of a University Project. In The Lighthouse, players embark on a thrilling quest to uncover the legendary treasure of the infamous pirate, Captain Armand Blackthorne.

Arriving on a mysterious island, players explore a haunted lighthouse filled with cryptic letters and notes from Blackthorne. As the story unfolds, they discover the pirate's tragic obsession with a beautiful voice in the mist, which ultimately reveals itself to be a deadly siren luring him to his doom.
Blackthorne's use of the lighthouse to lead ships to their demise and amass wealth adds a chilling twist to the narrative. Players must piece together clues, solve puzzles, and navigate the island's perils to claim the treasure and escape the siren's curse.

This project was made as a collaborative project. My role in the project was as a technical lead where I implemented all code and interactions for the game as well as creating and texturing several assets.

a cave door
the inside of a pirate lighthouse
the top of a lighthouse

Water Shader

As this game plays out on an island, the water was a large part of the scene. As I was tech lead I created my first ever shader. To make it fit with the rest of the game, I made it stylized and put emphasis on colour variation when it comes to the depth. So where the water would have a lower level it got a darker colour and the opposite where the higher the level it would have a lighter colour. I also made it semi reflective such as water is but as we wanted it more stylized, this was later scrapped

Puzzle System

The link to the code can be found here: Github

I created a puzzle system that the player had to go through in order to advance through the game. The narrative was linear and therefor I didn't have to make one collective system that managed everything, instead I created one manager per puzzle. These managers were different types of puzzles and enabled me to have infinite amount of these types setup throughout the world if I wanted to.

The one on the image represents a puzzle where you had to find certain symbols in the world and then pull the corresponding book in the correct order for the door to open up.

Interactive viewer

The link to the code can be found here: Github

In order for the narrative to be more than just text within a UI, we wanted to include a purpose to it as well. To do this I created an inspector, this inspector created a duplicate of the interacted object in a specific spot and rendered it on top of the players camera view. Here the player could rotate the object around, seeing all perspectives to it and also toggle the narrative text. This enabled us to place mechanically important information, such as pieces to a puzzle, on different parts of the object for the player to discover.

Interactable Objects

The code for this can be found here: Github

You cant have a game without an interactable world. To do this I created a base for everything that is supposed to be interacted with, this was an interface that gathered all the base necessities to having an interactable item.

This way it didn't matter if the object was an item that the player could pick up, a door that needed opening or something that the player could inspect. Everything inherited from the same interface.

In addition to this I created more refined scripts that handled specific types of interactions such as if the door collided with something that prevented it to open fully or to play the corresponding interaction sound.

logo
Oskar Järviniemi 3D Character and creature artist and Developer

Contact:

oskar.jarviniemi@hotmail.com(+46)767761647