Diiwi Islands

Catch wild Diiwis, beat trainers in battle and earn your Diiwi Trainer Certificate!


Genre: Monster catching

Engine: Our own engine, Memory Leek

Development time: 9 weeks full-time

Team: Friendly Pyre, 16 second year students at The Game Assembly


  • Text rendering: I was tasked with adding text rendering to our engine and creating a text component for our Entity Component System that could handle different fonts and sizes.

  • Message boxes: After adding the text rendering I created the message boxes for dialogue and presenting game information. I "animated" the text so that one letter appears at a time and added animation to the background. I also had to create an algorithm to handle new lines or very long text, breaking it down correctly into shorter lines and making sure the text stayed within the bounds of the box.

  • Roster UI: I was responsible for the Diiwi roster UI, which keeps track of the Diiwis the player has and which is the active one. By clicking on the UI the player can switch their active Diiwi, in and out of battle, or choose which one they want to set free when they already have a full roster and want to catch a new Diiwi. I also added the Diiwi's name and level, plus health bars and experience bar. The trainers and wild Diiwis have their own UI sprites which are simply mirrored.

  • Diiwi catching and swapping: I worked on the catching of Diiwi and swapping when the roster is full. This required interaction between the roster UI and the battle system UI to work properly. The battle system was used to take care of creating message boxes and UI buttons and the roster UI was used to select which Diiwi would be removed when adding a new one.

  • Player, camera and battle start: I implemented the initial player and camera movements in the overworld and the random triggering of battles when walking around in the tall grass. I also added the level transitions at the end of each island.

  • Shader pipeline: Lastly, I was responsible for the shader pipeline for our technical artists, making sure the data they required was being sent to the graphics card correctly.