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.
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:
|Turn||Unit Average CV||Unit Max CV||Player CV||Hostile CV||Neutral CV||Peace CV||Allied CV||Passive CV||Active CV||Total CV||Turn Time||Amount of Cities||Tier 1 Units||Tier 2 Units||Tier 3 Units||Tier 4 Units||Hero Units||Irregular Units||Infantry Units||Archer Units||…|
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
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.
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.
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