top of page
Skärmbild (36).png

City of Thieves

In the last game project at The Game Assembly, we could choose what to do much more than previously, so we decided to learn Unreal Engine 5, and use it to make a game inspired by the Sly Cooper series. I mainly focused on creating gameplay elements like collectables, checkpoints and breakables, but I also contributed to the project's management and to the story that the game revolved around.

Unreal 5

Unreal 5 was new for all of us in the team, but especially for us programmers who had no previous experience working with the engine. That gave us a pretty slow start with the project, but we felt that learning Unreal as part of our education at TGA would be both interesting and valuable for our futures.

 

While we programmers watched tutorials, read the documentation and started implementing some basic movement in Unreal, the design and art teams created a first block out of the game world and nailed down the project’s aesthetics. Pretty soon we all knew in which direction this project was going, and the decision to work in a design- and art-friendly engine paid off.

Pickups

For this project, I choose to work on gameplay-related tasks, since I had worked a lot with tools in the previous project, Blob-Lobber, and thought that it would be fun to do something else. It also fitted well together with working in an engine, and with what the other programmers wanted to do.

 

My main task was creating the logic behind the various objects that we wanted the player to be able to pick up in the game, everything from coins and keys to health pickups and collectables.

 

I used Unreal's built-in subsystem functionality as a base together with data assets for the different items, and dispatchers to connect that system to the other parts of the game. I also implemented that the items would be able to be auto-collected by moving towards the player if they came close, but this didn't get used a lot since most of the objects weren't placed in the game world in the way that we first had planned.

Project management

As often has been the case, I took part in planning our road forward and keeping the team on track, so that we were all working towards the same goal and would finish the game in the expected time frame.

 

This time, however, I shared that task with another person on the team. Being two people to plan and keep track of the development of the game meant that we could take turns on the management depending on whoever had the most to do with their own tasks. We could also broaden our ways of approaching the management, and learn from each other about how to guide a team to success.

From this project, as well as the other ones where I have been coordinating the team, I have learned that I like to participate in how the team takes on their tasks and plans to move forward. I don't have to be the person in charge of this to feel that I participate, but I appreciate it when I get to have insight into this process.

Checkpoints and Smoke bombs

As I mentioned earlier, I worked on a lot of the items in this game. One of the items that I worked on was the smoke bombs. The smoke bombs could be bought in-game and used by the player to distract the guards. This meant working with Unreal's built-in sense system, to turn off the guards' ability to see for a limited period of time.

For this task, I collaborated a lot with the other programmers on the team, to get it to work together with Unreal's behaviour trees and the guard logic that was implemented beforehand using said trees. 

Some other tasks that I did on this project were some story work and the checkpoint mechanic which saved the game when the player entered invisible checkpoint-boxes that the level designers could place wherever they wanted.

Breakables

Unreal 5 came with a lot of new and fun stuff that we as a team wanted to take advantage of. Unfortunately, it was also very new and therefore somewhat unstable in a few of the newer additions to the engine. This was a risk we knew of beforehand and decided to accept.

One of those things was Chaos breakables, where you could use any given mesh to create a breakable directly in the engine, without the artists having to do any extra work. I used this system for the barrels in City of Thieves and triggered their destruction on any damage caused by the player.

 

Sadly, the system wasn't consistently attaching a texture to the inside of the barrel mesh, a problem that we just had to live with in the end. 

bottom of page