City of Thieves

DISCLAIMER: This page is still a work in progress as the project was finished very recently and I have not had the time yet to finish it.

For the final project at The Game Assembly we were free to choose whatever kind of game we wanted to make as well as deciding if we wanted to make it in our own engine or Unreal.

My group decided to make a third-person stealth/platformer semi-open world game heavily inspired by the Sly Cooper series and we built it using Unreal Engine 5.

This was definitely one of my favourite projects to work on, partly because I had a lot of fun learning about how Unreal works and the very different way of working that it requires (though I would be lying if I didn't say it was also a bit frustrating at times when something didn't work as I expected it to).

 

Now in hindsight knowing more about Unreal there are quite a few things that I would have liked to do differently, for example, I wish I had utilised a combination of C++ code and blueprints a bit more. But I think it has been a really good learning experience and I am very happy with the final product.

I worked on a couple of different gameplay related things, most importantly the mission system for the game.

  • Engine: Unreal Engine 5

  • Genre: Third-person stealth/platformer semi-open world game

  • Time: 9 weeks full time

Mission System

In this project my main responsibility was regarding the mission system which the structure of the entire game was built around.

The missions consisted of different types of segments that could be woven together into a tree structure through blueprints.

The segments were all actor components and here are some examples :

  • A segment that added a dialogue box to the UI

  • A segment that activated a trigger in the level which the player had to reach to progress

  • A segment where the player had to aquire specific key items

  • A segment that played a level sequence, used for cutscenes and overviews of upcoming areas

All in all I'm pretty happy with the system and we managed to create some pretty interesting missions using it.

I also ended up collabarating with the level designers a bit to design the actual missions themselves which was fun.

Player powerups

In the game, the player could purchase new powerups that gave new abilities. I built the general system keeping track of and equipping these powerups as well the basic gameplay functions of them.

The powerups were handled through a custom data asset that held information about a powerups cost, its icon in the shop, as well as the specific powerup-subclass that would be equipped.

The different powerups were as follows:

  • A Paraglider that let the player fly to previously unaccesible areas.

  • A Smokebomb that made nearby enemies lose sight of you temporarily (I did not however create that functionality)

  • A powerup that removed all sound the player made, making it easier to sneak up on enemies