Prototype

Gamedesign- and Programming
OVERVIEW
The game is a 2D top-down shooter. Hereby, the player controls a silent character who wakes up in a laboratory at the beginning. There, an unknown person communicates with them via loudspeaker and the player has to pass several tests. In addition, they have access to e-mails and protocols of the lab’s employees, through which they can learn something about the background story. To make the game more interesting, the player was given a „time-freeze“ mechanic. Here, time only advances when the player moves or aims with the mouse. The aim of the game is to meet the head of the laboratory and defeat her in order to be able to break out of the laboratory.

TOOLS

  • Unity
  • GraphicsGale
CONTEXT
  • University projects
  • Teamsize of 2

Game mechanics

Time Freeze

The time freeze is our most fundamental game mechanic. When the player stops moving, everything else should also stop moving, because time freezes. We have realised this with a TimeFreezeManager. It is queried whether there is player input regarding our provided movement and if this is not the case, the time of the game is set to zero, otherwise to one.

Movement 

The game character can be moved horizontally, vertically and diagonally using WASD or the arrow keys.

Shooting


The position of the mouse indicates the direction of the shot and a shot is fired with the left mouse button. A bullet prefab is created from the player’s position, which moves to the position of the mouse at the time of firing. The bullets move at the same speed as the player, as this allows for interesting leveling and dodging mechanics.

Switches and teleporters

The teleporter is essential to get from one test room (level) to the next in our game. This must usually first be activated by a switch hidden in the level. For the teleporters, we have created corresponding prefabs with animations for the associated sprites. There are three types of teleporters: The one that the player uses to arrive in the level, an inactive teleporter and an active one that is activated by pressing the switch. As soon as the collider of the character comes into contact with that of the active switch, a UI element appears, which allows the player to advance to the next level.

Dialogues and object interaction 

In essence, there are two different types of dialogues: Those that are triggered by interaction with an object and those that appear to be triggered „automatically“. To be able to display a text, this must be assigned to the desired game object, whereupon a user-defined text can be entered, which is displayed in a UI element when the player interacts with the item using the E key.

Design

We decided on a pixel look and created the graphics with GraficsGale, using the „Dawnbringer“ palette. We added a few colours to this palette.

Since the story takes place in a laboratory building, four different floor tiles and two wall tiles were created in neutral blue and grey tones. In addition, we pixelated furniture such as shelves, cupboards and beds from different perspectives. To make the room a bit more realistic, we also designed smaller filler objects such as goggles, test tubes, etc.

The main character, who is controlled by the player, is a young woman with brown hair. She should initially be red-haired. However, shading red hair proved to be too difficult with the chosen palette. Since the player can move and shoot in 8 directions, we created two spritesheets for the two animations.

The opponents consist of staff in protective suits, with the moving opponents wearing yellow protective suits and the stationary ones wearing green protective suits. For the moving opponents we created a running and a shooting spritesheet, for the stationary ones only one for shooting. In addition, we designed enemies in a red protective suit in frontal perspective, which should represent enemies that are more difficult to defeat. However, these were not implemented.
 
For the penultimate level we designed clones with defects. However, due to the effort involved, these were not animated. Thus, there are only shooting sprites in frontal view for them.The antagonist has the same appearance as the clones and the player, but wears darker clothes. For the antagonist, shooting and running sprite sheets were created, but only the shooting sprite sheet was used. For the sake of simplicity, the shooting animation consists of only two frames.

Animation

We created the animations with the previously made sprite sheets and Unity’s animation tool. For this, you can select the character in the game and create the frames for the animation from the corresponding sprites. Finally, we created a blend tree for shooting and running with the previously created animations. For this, we ask for the direction vector along which we move or shoot and save the direction in a variable. 
 
According to the value of the direction vector, the respective assigned animation is played. The running animation should be played repeatedly, the shooting animation only once per shot. Then it must be determined in the animator when the blend tree should be called at all. A simple condition can be queried for this. In the case of running, whether the speed is greater than zero and in the case of shooting, whether the left mouse button was pressed.
 
For the animation of teleporting in and out of a level, a spritesheet was created. We created the animations and played them under the condition of entering and leaving the level. 

Level design 

We always built our levels on a grid that was organized via different tilemaps. To develop ideas for a level, we had the strategy of first thinking of a name or a theme around which the level should then be created around. The first four levels served as tutorial levels. In the first room, the player wakes up and learns not much more than that they are probably in a research facility that is constantly monitored. The player is also made aware that there are only teleporters that will take him to the next room. In the second level, the player is introduced to the admittedly simple mechanics of the switch mechanism. Finally, in the third level, the player is taught how to shoot and thus even legitimized to kill, as this all seems to be part of a test for the player. If the player has not yet noticed the game mechanics of the time freeze, this is mentioned by the antagonist in the following fourth level, so that the player is gradually introduced to the most important mechanics of the gameplay.

Story

One of the most important aspects for our game was an interesting story. Since the time freeze mechanic our main mechanic, we spun the following story construct around it: The character is a clone who wakes up in her breeding ground at the beginning. It turns out that she is in a huge research laboratory and under constant observation. Thereby, there is an invisible, large antagonist in the background who could text dialogue at virtually any point to the player, while the character herself was silent. A finished story would thus amount to a typical breakout/revenge arc, where the character learns over the course of the test rooms that there were hundreds of (failed) clones before her and that there will be hundreds more after her, should she fail. She would also find out that in the process, each clone (including her), is an attempt by the antagonist to duplicate herself and thus her ability to freeze time. Apart from the dialogue, all other parts of the backstory, which is told via computer entries (e.g. emails), are completely optional. Since this is just a small version if the designed game, there are some parts of the story that the player cannot experience at all in our implemented game-prototype, which we also reference with a wink in our end level dialogue with the antagonist.