Iris

12 Weeks | 13 People | 2025
TGE Unity C# C++ 2D AI Pipeline Scripted Event

Trailer

Introduction

Iris is a 2D platformer developed as the third game project at The Game Assembly. The game is based on Sheepy: A Short Adventure and was made over the course of 12 weeks. The engine used is The Game Assembly’s in-house engine (TGE) and levels were exported from the Unity engine. You play as a spirit who has been summoned with the sole goal of restoring color to a monochrome world.

Key Contributions

  • Scene Import/Export
  • Enemies
  • Tiles Color Swap Effect

Highlights

Scene Import/Export

Export and import of scenes from Unity is what I chose to spend most of the project working on due to a lot of previous experience with the engine. We were provided a Unity exporter by the school but I modified it to fit our purposes and to be able to export things such as colliders, sprites or custom scripts with variables to speed up iteration. I also used the custom scripts with variables to draw gizmos in the editor to visualize things like which levers connected to which elevators as an example. An issue with all these values being exported to the JSON was it made parsing take quite a lot longer but it was fine due to the scenes being small enough.

Enemies

The two enemies in the game were a patrolling slug-like enemy and a chasing skeleton snake enemy. The patrolling enemy simply moves forward until it either hits a wall or the edge of the platform it’s on, while the chasing enemy is a little more complex. It’s comprised of multiple segments and “swims” through the ground moving towards the player and then jumps up in the air to attack. The chasing enemy was also used for the chase sequence of the game where loads of them chase the player at once which uses a behaviour different from the normal enemy to create a more engaging sequence. It was a very fun enemy to develop due to how fluid it ended up looking even with rather simplistic behaviour!

Patrolling Enemy
Chase Sequence

Tiles Color Swap Effect

A major part of the game’s narrative is restoring color to the world so we had one scripted event for each level where the player would interact with a shrine to return one color to the world. I originally thought of creating this effect with a shader that would filter out certain color channels but it was scrapped in favor of having different tilesets for each color to give the artists more control over the look. The effect is achieved by duplicating all tiles on screen then swapping the original tiles’ sprites into the new color and then fading out all the clones and deleting them.

Color swap on the first level