TT Isle of Man – Ride on the Edge
The Tourist Trophy is a road race that takes place every year in early June on the Isle of Man since 1907. Hundreds of pilots face each others in several categories (Supersport, Superbike, Lightweight, Sidecar, etc.) on multiple laps (number depends on the category) of the 37.73 miles (60 km) track. Lap record is 16’42″778 by Peter Hickman with an average speed of 135.452 mph (217.989 km/h), pilots can go as fast as 206 mph (331 km/h).
After some support on WRC 6 and shortly helping on an other project I began working on TT The Isle Of Man in January of 2017 and stopped some time after the release date in 2018. I joined on a pretty early stage of the production, the physics of the vehicle was being worked on since a few months and there were a few tracks playable aswell.
I did several tasks on this game, including the integration of HUD elements and a lot of bug fix, but I will detail two aspects that took me the most time and that were the biggest challenge.
The start queue
The first task I did and on which I spent a lot of time throughout the production was the creation and maintenance of the start queue. On the real Tourist Trophy, pilots are placed in a queue and start every 10 seconds, in a race mode we had (that we called TT Style) in the game, we wanted to recreate this so I began the creation of this component.
One of the biggest issue with this was to adapt all the procedure of the starting of a race to this style, in GP style the countdown begin right after the player validates the pre-race menu (the menu displayed when the level finished loading, summing up the starting grid) and everyone is leaving at the same time. I had to delay the countdown and make sure it only affects one rider at a time. I also made sure that no matter the player position in the grid, he will always start second at worse, meaning that previous riders (before the one ahead of the player) had to be placed where they should be on the track.
We also had several issues with the AIs running their race when they shouldn’t so I had to override some HFSM states to make it work. This component is part of the ones that required to most attention and support during the development of the game.
It was a huge deal for me because, even if I had WRC 6 as a base, I had to create everything from scratch. One thing I had to keep in mind was to always use fixed range arrays and standard variables instead of pointers because of the way our save file worked and some TRCs (Technical Requirement Checklist, a set of “rules” to follow to be able to ship the game).
It took me pretty much all the time of the production to create and put everything in its place.
Among my tasks on the career mode, I had to create events (some random and some scripted ones) and check that multiple seasons could follow one another without any issue.
To generate random events, I had a config file specifying the necessary parameters. From there, all that was left to do was to figure out what events I had to create for each generation.
Managing the scripted events was a bit difficult as I had to handle when and how those would come back in the calendar, it was quite the challenge. They had multiple conditions to come back, like their frequency (every season, every odd season, one season out of X seasons.. etc) and a reappearance value to put a gap between each cycles. It was kind of complicated and I wish I had done something simpler.
There were several events generations throughout the season, the player could see two months ahead, so with each month passing, I was generating events for the N+2 month.
Creating and managing the events was a big part of the career mode and took a lot of time to get it to work.