Eleanor Gregory's Portfolio

View My GitHub Profile

Stage 3 Computer Games Development

Final Result

The completed game is playable online here (works best on Mozilla Firefox due to bugs within Unity’s WebGL export). The below videos showcase different aspects of the game:

Beginning of the game and tutorial:

One run of the game:

Item Showcase:

“The game plays very well… there are some very nice touches that really do make it feel polished. Technically the game presents a complete enviroment that satisfies the gaming requirements. - Dr Graham Morgan

View on Github

Introduction

For this coursework I developed my own video game over the course of 4 months. I chose to produce ‘Head Home’: a 2D infinite runner where the player controls a lost cat and aims to traverse as many ‘rooms’ as possible before time runs out or all health is lost. The rooms are populated with obstacles and enemies to avoid, and the player can find items along the way to help clear a larger number of rooms.

What Was Learnt

This project was my first completed video game and as a result I learnt a lot about game development from both the use of a game engine and a player’s perspective. I learnt new skills within Unity such as adding animation, applying different levels of collision detection and combining numerous elements into forming a connected game, as well as practicing use of external packages by working with their Cinemachine components. From a player perspective I also learnt to consider game design principles such as ensuring rooms were completable and the increasing challenge.

Implementation

The game was developed in the Unity game engine in the C# programming language. Features of the game are:

Improvements

WIth more time my algorithm for the natural spread of enemies and obstacles across the grid could be refined. The algorithm went through numerous versions during development and some edge cases remain where these entities will still be placed next to each other from this combination of implementations. A restructure would allow for a more optimised way of spreading entities, whether that came from cleaning the original code or even basing my implementation on another grid based method such as Conway’s Game of Life.

A number of polishing touches could also be added to provide extra immersion effects such as screenshake. The increasing difficulty could be adjusted to only allow the harder enemy variants to appear at higher numbered rooms.