top of page
Unreal Engine

May 12, 2025

4 weeks

The Creatures project was my final project for my second year at Game Sup. The main intention behind this project was to create a relaxing game that players could enjoy unwinding with.
You play as a researcher who moves to a region inhabited by unusual creatures. A disease is spreading throughout the region. The aim of the game is to save and preserve the different species of creatures so that they can be studied.

Within this project, I was responsible for all the programming and implementation of the exploration gameplay. I therefore mainly worked on the 3Cs, level elements, and artificial intelligence. In particular, I integrated almost the entire user interface for the project.

Artificial Intelligence

The goal for artificial intelligence was to have animals that looked alive. So I created a system where creatures roam around their environment and react to the player. Due to time constraints, I only created two reactions: if the player is holding food in their hand, the creature approaches them. If the player decides to give the creature the food, it may either like or dislike it. If it likes it, the player can take it with them to their sanctuary, where they can then take care of it.

The second reaction is when they are infected with the disease. In this state, they attack the player when they see them. The player can therefore fight back in order to defend themselves and neutralize the creature, which will cure it of its disease.

Normal creature

Infected creature attacking the player

User Interface

Player Menu

In an unpublished version of the project, I completely redesigned the user interface. Now, the player's main menus are organised as submenus within a single interface.

 

To make it easier to add a new submenu, I created a Data Table which, for each entry, contains the information for a submenu, such as the Widget class, the icon in the selection bar, or the inputs that can be used in the submenu.

Part of the inventory system code in C++.

 

This function allows you to remove an item from the inventory by specifying its ID. The system then checks whether it can find an item matching the ID specified as a parameter. If so, it removes the requested quantity.

As for the inputs displayed in the UI, I also created a Data Table containing the name of the action, as well as the relevant inputs for the different controllers.

 

This makes it easy to display the inputs for the player in any interface, or even in the world.

Power Wheel

Also, the plan was to use the creatures to help us solve environmental puzzles.

 

So we had a power wheel that could be opened, as well as shortcuts (in the bottom left corner of the screenshot) where we could assign powers.

CP_OrdersWheel

Dialogue System

Finally, we added NPCs with whom the player could talk and interact.

 

With the idea of having a protagonist who was somewhat present in the narrative, it was possible for the player to respond at the end of certain dialogues, which could trigger a whole range of actions, such as starting a new dialogue, opening a menu, etc.

So I created a system using Primary Data Assets, which makes it easy to create new dialogues.

 

It contains a list of sentences, each of which first contains information about the character who is speaking, and then the sentence they are saying.

For this system, we decided to animate the text to simulate a sentence being recited.

 

To do this, I do not add the characters one by one to the text box. By default, the entire sentence is already written, but all characters have 0% opacity. Then, one by one, I increase their opacity to the maximum.
This system prevents the text from wrapping to the next line as it is written, because this way, all the text is in the text box from the start.

What's next?

In a longer development, creatures would have several reactions when the player approaches (run away, ignore, be curious, etc.). They would also have more complex behavior based on their needs, as well as a more complex friendship system based on how the player cares for the creature.

Additional Work

Interaction System

Interaction System

Inventory System

Inventory System

Team Members

bottom of page