Dream of Darkness

Lovecraft+Aztecs 3D Adventure.

Tasks performed: Programming/Game Design

An example of one of the major tasks I performed there:

Introductory scene:

I was the main designer in charge of the intro scene of the game. We needed a quick and immersive way to establish the setting and rules of the game.

The basic motivator behind this is to ensure that the player understands the context of the game and the stakes the characters find themselves in. In previous play-tests it was found that players couldn't figure out why events were occurring.

The first proposal from our design lead was to create a text-less intro with a basic establishing shot. While this might be good in other games I still felt this was insufficient to solve the problem of players not understanding the story.

I proposed and alternative to this, creating a different intro borrowing heavily from Fear and Hunger 2 Termina. In that scene the avatar of god explains to the character that you control their role in the events that are to follow.

Given the similar themes and contest that the main character in our game is forced to take part in, narratively it made a lot of sense for the main character to encounter a similar fate.

The result of this was a visually striking intro that resonated with the development team. The structure of this intro was made to place the player into the universe with as little dialogue as possible.

The events go as follows:

The player awakes on a tower surrounded by mist, they are told the controls but not given any directions or objectives. This places the player into the shoes of the protagonist, able to move but not understanding where or what they are currently doing.

Being surrounded by an unnatural fog and floating pieces of debris tells the player that wherever they are it is not a place in reality. They are allowed to explore and look around but can’t descend the tower.

The god then rises from the fog, showing themselves to the player and explaining to them why they are cursed to wander this dimension. Offering salvation if they pass their trials and opening a way out by bending the floating debris into a bridge for the player.

This allows the game to show 3 things at once: It showcases that the god comes from the fog demonstrating that it is as unknowable as the things the player can’t see within the depths of the fog.

The god’s speech contextualizes the main character’s journey as one of forced redemption a concept easy to understand by the players.

As the god bends the debris to their will it shows their control over the place they inhabit as well as show the goal for the player, the various mirrors found in the world.

Overall this was a hit with both players and the other members of the development team.

Some examples of minor tasks performed there:

Predictable heart attacks:

Within Dream Of Darkness one of the obstacles the player can encounter are floating hearts that once activated move around the scenario.

I had not interacted with them until our lead designer asked us to create a warning system for them. This was not that difficult, and since I had some extra time, I decided to look at other aspects of them that might need further work.

One of the issues with hearts was that the player was unable to predict where they would move to. This obstacle would kill the player if they touched it, but it was difficult to establish a pattern to the heart's movements.

To solve the issue, I learned how the plugin for their path worked and changed their code a bit to move their trails in front of the heart, acting as a marker for their direction.

My Lead’s reaction:

Bug hunting:

In this occasion, a programmer I worked with asked if I could look into a bug that eluded him. Apparently, if reloaded from a checkpoint (A system I made) the hearts would not kill a player.

I assumed that this would be my mistake and began by trying to find any possible errors within my code. After some testing, it seemed to work fine. The only option then was to do some digging in his code to try to find any possible hiccups in what he created. There was a conditional that fired incorrectly, this being inTutorial.

I then tried to find where that variable was changed, but the function had no references (It was not used within the code). It was used within a game event listener. This game event listener was not referenced within the script made to link the checkpoint system and his own.

I communicated this to him with some of the images you have seen and the bug was addressed in the next two days.