Age Of Wonders III

Age of Wonders 3 is the long anticipated sequel to the award-winning strategy series.

Delivering a unique mix of Empire Building, Role Playing and Warfare, offering the ultimate in turn-based fantasy strategy for veterans of the series and new players alike!
Developed for Desktop


Creator Engine (Internal engine at Triumph Studios)


I worked at Triumph Studios as an intern. After the internship, they hired me for another 2 months to work on bug fixing after the release. Here’s a summary of the tasks I worked on.

Launch support

I had the opportunity to witness the launch of the game during my internship. It was a very interesting experience. The game was very anticipated and a lot of people played the game as soon as it came out. For the company, it meant a very busy evening of customer support and hotfixes.

Automated Test System

I started this system from scratch, out of my own initiative. The game was a few months from release and we had some issues with the AI. After a few hours, the AI would just stop working and the stats weren’t very balanced yet. It was tedious to test!

The system I created allowed the game to

  • Run in headless mode.
  • Run an AI vs AI game.
  • Configure the AI with a parameter file
  • Run at a much accelerated pace

Using this tool, we found quite a lot of bugs and we were able to drastically improve the quality of the AI.

A fun part of writing the test system was dividing the CPU cores over the different available cores.

Example of output data:

TurnUnit Average CVUnit Max CVPlayer CVHostile CVNeutral CVPeace CVAllied CVPassive CVActive CVTotal CVTurn TimeAmount of CitiesTier 1 UnitsTier 2 UnitsTier 3 UnitsTier 4 UnitsHero UnitsIrregular UnitsInfantry UnitsArcher Units

Sound systems

When I arrived at Triumph Studios, the audio in Age Of Wonders was still very placeholder. I spent a lot of time with FMOD Studio: combining various sound effects, tweaking volumes and the likes.

Besides FMOD Studio, I also used the FMOD API to provide spatialized sounds in the game. When playing, You can zoom in to get a close up look at the map. When you do so, you get more fine-grained audio. When you zoom out, a lot of effects are not played to avoid getting a big cacophony

Example of debugging the audio listener position

Quest system

The quest system was already pretty complete when I joined the team. I debugged the system, made propositions for changing the UI and implemented the code side of those new propositions. The actual UI was written in Flash. I did not help writing the UI.

Trading system

Similar to the quest system, the trading system had to be polished.

Remembering window properties after restarting

An issue you see in a lot of games or programs: You play the game in windowed mode, quit the game, now it’s back in fullscreen, or not at the right position. And what happens when you spawn the game on a now disconnected monitor?

I made sure those things didn’t happen.

Save Prompt

Detect unsaved changes when quitting the game. Makes sure you didn’t lose hours of game time just because you forgot to press save…

Various other system tweaks

Some screenshots to give you an idea of the systems I polished


© 2020. All rights reserved.