Devolution

In my final year studying Game Development, part of the curriculum was a group project. So, the summer before school started, a couple of friends asked me if I wanted to form a team with them. When we got together to brainstorm about the idea, we decided to continue working on a game jam that a couple of them did some time before that.

The game is about a chicken who is tired of being stuck in a farm. She wants to escape and, using her mental link to her ancestors, devolve back into a dinosaur. By solving puzzles, parkouring and dodging or fighting enemies, the player can escape the farm and win freedom for the chicken.

This project was the biggest project I had worked on up until then. Working in a team of 5 people, proper communication was required in order to bring this project to a success. The game was made in Unreal Engine 5 and using Hacknplan and Perforce for planning and version control.

I was one of two programmers one the team. At the start of the project, when discussing who would be responsible for certain areas of the game, it was decided that I would mainly focus on AI and UI.

For the AI side of my work, there were a couple of NPCs in the game. Each had its own behaviour, being either friendly or enemy, wandering or patrolling. For these behaviours, I made use of Unreal Engine’s build-in behaviour tree. This made defining behaviour for all different NPCs very easy. Using C++, I made custom nodes to be used in the behaviour tree. Most of these nodes were made as general nodes, so they could be used by multiple NPCs, even though their behaviour was different.

Working on the game’s UI was a lot more fun than I thought it would be. Having never made a UI for a bigger game, I didn’t really know what to expect. Finding out the best ways to link up all of the UI elements with actions that happened in-game was challenging at times, but super fun. The in-game UI consisted of a minimalistic static UI, showing only the bare minimum, wanting to maximise the immersion of the game. This was coupled by pop-ups which either taught the player how to interact with the world or showed dialogue boxes when talking to NPCs.

At the end of the level, we wanted a small boss fight. We decided that the guard dog of the farm would make for a good enemy. This dog would chase the player all the way to the end of the level. The player had to use everything they learned throughout the level to clear a path and escape. The dog had to rubber-band after the player, never getting too far from the player, but also not too fast that the player wouldn’t have time to react. There were gaps in the road that the dog had to jump over and a split of paths where the dog had to take another path than the player.

I spend a big part of the development process to get this boss fight to feel challenging but rewarding. After a bunch of playtesting, with a lot of different people, we eventually got the feedback that the chase was fun challenge.

Other than AI and UI, which were my main responsibilities, I worked on some of the puzzles that were spread around the level. These puzzles included loose planks, opening gates and falling boulders.

image
image image image
Stef Kluskens
Game Developer

Stef Kluskens

  • Projects
  • Contact
Logo