Game Development Engines & Systems - Portal Island

Game Development Engines & Systems

Portal Island



This project was part of the module Game Development Engines & Systems and was developed by only one person. The goal was to develop a 3rd person game prototype, using Unreal Engine landscaping features.  

The player starts at a small beach in front of a cave. After finding a magic compass inside of the cave, the player must follow the signs in the forest maze to get to a portal where a cutscene will be played.


The game has a pirate-futuristic theme.

Exterior Area

The prototype presents to the player two exterior areas with three different biomes in the following order: beach, forest, and snow.


For the exterior area, a material has been used with 5 different layers: sand, wet sand, ground, moss, and snow.

In the forest maze, different forks have been created to purposely confuse the player. At the entrance of each of these forks, the player will find a stepping stone where they could read the signs that will lead them to the final portal.



Interior Area

The cave area has different openings that allow the light to come in, making god rays to show up when in combination with volumetric fog.



Once the player passes the cave area, they will enter a small temple made of stone and reflective crystals. The magic compass will be floating in the middle of the room.














Since this area uses baked lighting, some torches have been placed inside the temple to light and give a more dramatic look to the scene.

Decals have been used to show cracks on the golden parts of the cave's ground,  breaking the texture tiling and making it look affected by the pass of time.


Character & Animations

For this project, we have used one character and animations from Mixamo.com

5 animations in total have been used: Idle, Walk and Run have been included in the blendspace Idle_Run. JumpUp and JumpDown, used to start and finish the jump, are directly used in the state machine animation's blueprint.


Interaction System

To be able to interact with the magic compass. A base interactable blueprint has been created.

When the player overlaps with one of these objects it becomes the focused item, becoming the one the player will interact with if presses the right button.

When an object becomes focused, the available action is shown on the screen.



Once the interaction button is pressed, we dispatch the event OnInteract that can be captured by other blueprints.

In our case, the level blueprint, listens to the player's interaction with the compass in order to activate the signs and show the next goal. Meanwhile, the compass will autodestruct after capturing the event itself.

Signs

In order to show the signs that lead to the portal, decals have been used. This decal has been converted into a blueprint in order to be able to find all the signs using the node GetAllActorsOfClass once the compass is acquired.


3D Models

With the goal of improving the game theme and aesthetics, a wide range of 3d models have been designed using Blender.

Cave and temple


Trees and branches



Rocks

Portal


Torch



Compass



Materials & Shaders

Here is a list of some of the most interesting shaders developed for this project:

Portal
A heightmap texture has been used to generate the crystal normals, which rotate over time, making it look like it is distorting light. We could have used a normal map directly to improve the shader performance.




Snowy rock

In order to show snow over the rocks used in the snowy area, we have used the dot product of the normals with the vector up to mask the areas pointing up of our meshes. This value is then used to interpolate between the rock and snow texture.

UI

Apart from the interaction indication, we have also added a bit of UI that will indicate to the player what the next goal is.

To define this goal, and also to differentiate interaction types, DataAssets have been used. These DataAssets work as handles and can be used for different purposes.

In our case, both data types contain only a text field (goal description or interaction text) but they could contain more data, such as a texture to show as an icon along with the interaction text.

Cutscene

Unreal's Sequence system has also been used for the final cutscene, which will get automatically played once the player overlaps with the portal trigger.


Audio

Additionally, 3 different ambient looping sounds have been added to the different biomes of the project, along with other sound effects for player footsteps and interaction.