DIRT 5
Company: Codemasters
Platforms: PlayStation 4 & 5, Xbox One, Xbox Series S|X, Steam and Stadia
My Role: Core Tech Programmer
Engine: Evo Engine (custom in house engine)
Team Size: 90+
Shipped: October 2020
Game: Click Here
Description
Dirt 5 was my first shipped AAA game that I was fortunate enough to work on. It was the first time I had worked with such a big team with big requirements and visions. To this day it remains my favourite game development experience and has inspired me to continue in the industry to work on more AAA games.
Dirt 5 is a racing game focused on off-road racing. Disciplines within the game include rallycross, ice racing, Stadium Super Trucks and off-road buggies. Players can compete in events in a wide range of locations, namely Arizona, Brazil, China, Greece, Italy, Morocco, Nepal, New York City, Norway and South Africa. The game includes a dynamic weather system and seasons, which affect the racing; for example, the player can only compete in ice racing events in New York during winter months. A four-player splitscreen system is also introduced into the game.
Dirt 5 also features a narrative-focused career mode that pits the player character against a rival driver called Bruno Durand (voiced by Nolan North) in a series of championships. The player also has a mentor called Alex “AJ” Janiček (voiced by Troy Baker) who provides them with advice throughout their career. The game was also not to feature a cinematic replay. Instead, the game would follow in a series of podcasts by Donut Media that follows the storyline.
Features I worked on
- Input System for Pads and Wheels
- One of the big systems I owned and maintained was the input system for each platform and I was in charge of adding support for all wheel manufacturers including Logitech, Thrustmaster and Fanatec.
- Haptic and Force Feedback
- I created a full haptic and force feedback system for Dirt 5 from scratch that worked across all platforms, wheels and game pads (including ps5 haptics). The game was originally using a Wwise implementation but it was not sufficient for what we needed and I suggested we create one from scratch. It is my favourite code that I have worked on to this day.
- Crowd Rendering
- This task was the first time I dabbled in rendering code and at the time thoroughly enjoyed it. I was tasked with improving the current crowd rendering in the game to make them look better and perform better. My work involved working on many shaders and looking into the render code. Once I was moved to work on input and haptic feeback later I was told to remain monitoring this system and Isometric development
- HTML Request system
- Dirt 5 had a level maker within the game and to obtain all the data of levels that people made from our Azure servers, we needed a new and more robust HTML request system which I developed. This was my first time working with online code and has given me new skills and knowledge in this part of game development.