THE FIRST FRIEND

Project Type: Personal / Free Time

Project Duration: 5 Months

Software Used: Unity 2019.4.3f1

Languages Used: C#

Status: In Development

Platforms: Planned to be released on Steam gog.com & itch.io

Website: Coming Soon

The First Friend is a personal project that is inspired by the indie game “The First Tree” by David Wehle, created in Unity.

About The First Friend

This project started when I watched a video by David Wehle about how he created a successful indie game on his own with little knowledge of coding, modeling and other elements that are required to make a game. It was inspiring how how no matter how small the idea or scope is, it’s still possible to create a successful game, even if it’s not successful, just making a game and sharing it with the world is enough to show your passion and inspire others to do the same. This is why I created The First Friend.

Trailer Coming Soon

Screenshots

Most assets were taken and modified from the Unity assets store and free 3D model websites like CGTrader and Sketchfab and I modified them to suit my vision.

Some samples of assets I used for The First Friend
Websites of Free/Paid 3D model content I used for The First Friend

Time, budget and knowledge was an issue so scope had to be reduced, ideas were scrapped and compromises had to be made for the making of The First Friend.

Created by a one-man team, from the design, programming, narrative, script, voicing and testing.

Gameplay Mechanics

Movement

The player can move up, down, left, and right with the WASD keys.

The player movement can easily be adjusted by changing the values in the “Speed” field.

Camera Movement

The player can use the mouse to rotate the camera in any direction and player movement will adjust accordingly.

The camera sensitivity can be easily adjusted by changing the values in the “Mouse sensitivity” field.

Sprint

Holding the shift key will allow the player to sprint. It increases the player speed by the value in the “Sprint Boost” field

The sprinting speed can easily be adjusted by changing the value in the Speed Boost” field.

Jumping

Pressing the space bar allows the player to jump. The height of the jump can be adjusted by changing the value int he “Jump Height Field”.

The player can only jump on terrain or objects that are assigned with the “Ground” layer assigned.

Other Mechanics

Pause Menu

The player can bring up the pause menu by pressing the Esc key. Pausing stops all audio and subtitles from playing and resuming starts the sound and subtitles right back where it was paused. In the pause menu, the player can resume game, quit application, quit to the main menu and turn the subtitles on or off.

Dialogue

Dialogue is activated when the player collides with certain triggers placed around all the levels.

Subtitles

Subtitles are activated when the player has collided with a dialogue trigger. The player is able to turn subtitles on or off from the pause menu. The game is heavy on dialogue so it’s important to add a subtitle option for the Deaf and Hard of Hearing.

Animation

Most triggers play an animation to give feedback to the player so they know they have found a memory. In this video, it shows glowing particles being blown when the player has triggered the dialogue.

Next Level Transition

When the player reaches the end of a level, the game fades to black then the next level loads. This is done by colliding with an object which fades the screen black then the next level loads and opens with with a fade in to make it look like a smooth transition.

2nd level Puzzle

In the 2nd level I added a puzzle where the player must find certain memories to progress. In this video, the player collides with 3 triggers to spawn a 4th trigger containing elements such lights and particles as well as a 4th trigger indicated by the spot light focused where the invisible trigger is. Once the player collides with this 4th trigger the doors open allowing the player to progress.

We can see in the console when the player collides with the same trigger twice, the console will show that the player has collided with it already so it doesn’t lead to a double collision. Also when colliding with another trigger, it doesn’t count as one of the 3 collisions, only 3 assigned triggers will allow the 4th trigger to spawn.

I did this because these memories are important to the plot so it’s forcing the player to find these memories so they don’t miss important plot details.

AutoSave & load System

When the player starts the game for the first time, it checks to see if theirs a save file, if their isn’t then the continue button will not display.

When the player reaches the next level, the game will trigger an auto save and create a save file. When going back to the main menu or restarting the game, the continue button will now be displayed on the main menu. When the continue button has been clicked the player will start at the last triggered auto save.

Script

This is the full script for The First Friend created in Celtx and ported over to Microsoft Word so their are going to be some caps issues.