Work History: Microsoft Turn 10 Studios - Software Engineer I

What I did as a Software Engineer I at Microsoft Turn 10 Studios from 2015-07 to 2017-10.

Table of Contents:

Forza Motorsport 6: Apex

I returned to Turn 10 Studios as a Software Engineer I after a successful internship the previous summer. My first project was Forza Motorsport 6: Apex, a free Windows 10 release and the franchise's first step onto PC and DirectX 12. We scoped Apex as a focused homage to Forza Motorsport 6, giving the team space to develop the new PC and DX12 technology before committing it to a full AAA title.

Driver Record

Skills: C++, SQL, and XAML

The first feature I worked on was Driver Record, a straightforward screen that displays player statistics. Most player data lived in SQLite tables, so this work centered on building XAML UI backed by database queries.

Initial Experience

Skills: C++

The Initial Experience is a critical part of every game. It shapes the player's first impressions, and in many titles up to 75% of new players churn within the first day. For Apex, I worked with the design team to define that experience and integrated it into a sequencing framework. I built the first version of the flow, and the team continued refining it throughout development to optimize player engagement.

Medals

Skills: C++, SQL, and XAML

Next, I worked on Medals, the core progression system in Apex. Players earned medals by completing races and challenges. Collecting enough medals unlocked new cars. I worked on the backend systems to track objectives and award medals and integrated the feature into the screens across the UI.

Spotlight Series

Skills: C++, SQL, and XAML

The last feature I built for Apex was the Spotlight Series, a weekly rotation of events to keep players engaged. I worked with the server team to define an API for fetching event data and built the client systems to track progress in save data and surface Spotlight Series events in the UI. To keep each Spotlight feeling fresh, I created a dynamic artwork system that layered reusable assets--cars, tracks, and effects--into unique visuals. This eliminated the need to ship new art for every event and simplified LiveOps support.

Forza Horizon 3

After Apex wrapped up, another title, Forza Horizon 3, needed engineering support. Launch was approaching quickly and they hadn't achieved the level of polish expected from a Forza title. The Horizon series was built by our second-party partner, Playground Games. Because of the work I'd done with them during my internship, Playground specifically requested my help. I was thrilled! As the newest engineer on the team, being asked by an external studio felt like a huge vote of confidence. Since Playground was based in the UK and our team was in Redmond, Microsoft and Playground coordinated an arrangement that allowed me to live in the UK for three months and work directly with the studio.

From my first day in Playground's offices, I felt like I was in the presence of one of the truly great studios in the industry. To this day, they remain the most talented team I've worked with. There's a feeling you get when you work on a great game with a great team. You can tell that you're building something special. Every moment I spent in that studio had that energy.

Forzavista

Skills: C++ and XAML

My first project with Playground was Forzavista, the in-game car showroom that lets players explore and interact with cars in a highly detailed environment. Another engineer integrated Forzavista from the Motorsport series into the Horizon codebase. I inherited the feature to make it production-ready. I made four major improvements:

  1. Adapted the Forzavista UI to Horizon's art style
  2. Built a Forzavista data upgrader so we didn't need to manually update 500 cars by hand
  3. Migrated all calculations from 32-bit to 64-bit for better precision
  4. Rewrote the player interaction controls to improve feel and responsiveness

Forzavista UI

Adapting the Forzavista UI to Horizon's art style was a fun part of the project. When players walk up to a car, sleek interaction icons slide in to show where they can engage with different features. I created temporary versions of these icons in Adobe Illustrator and integrated them into the game. They were supposed to be replaced by the art team, but after release I noticed they had shipped as-is! This was a small but satisfying sign that my placeholder work held up.

Forzavista Data Upgrader

The Forzavista Data Upgrader became a crucial piece of infrastructure. Each of the 500 cars needed multiple interaction icons placed by hand, and since neither Playground nor I had worked with Forzavista before, we didn't realize Turn 10 normally hired a contractor to handle this manually. With launch approaching, there wasn't time or budget for that, so I built a tool to automate the process.

Forzavista 32-bit to 64-bit Migration

The upgrader parsed each car's configuration data and used C# heuristics to position interaction icons in sensible default locations. An artist then did a quick pass to make small adjustments. This workflow replaced hundreds of hours of manual work and ensured we could ship on schedule.

Migrating the calculations from 32-bit to 64-bit was straightforward but error-prone. In the Motorsport series, Forzavista scenes were placed near the world origin, so 32-bit precision was enough. InHorizon, though, Forzavista could appear much further from the origin, so we needed the extra precision of doubles. Another engineer handled the initial pass of converting float math to double; the remaining gaps surfaced as subtle bugs throughout development, and I fixed them as they appeared.

Forzavista Player Interaction Controls

Rewriting the player interaction controls was the most impactful improvement I made to Forzavista. The original controls felt clunky inHorizon, so I started tuning everything, from the linear algebra that determined when interaction points appeared to the smoothing logic for navigating around the car. While digging into the system, I discovered that Forzavista's update loop was being called twice per frame, which threw off a lot of the underlying math. The bug predated my changes and had actually shipped in Motorsport as well. Fixing it immediately made the configuration far more predictable and the experience dramatically smoother. By launch, the interaction felt silky and responsive.

Diegetic UI

Skills: C++ and XAML

After Forzavista, I moved on to the diegetic UI: the in-world interface elements that highlight objectives and points of interest throughout the open world. I built a dynamic system that made these markers easy to configure across many use cases, and tweaked logic to smoothly transition them into screen-space UI as players approached. The 3D-to-2D transition was a beautiful bit of UI polish.

We also used this UI to highlight player objectives in-race.

Forza Motorsport 7

After wrapping up Horizon 3, I returned to Turn 10 Studios to begin work on Forza Motorsport 7. This was the first title I joined in preproduction. I was excited to help shape a game from near the beginning!

3D Car Select

Skills: C++

My first project on Forza Motorsport 7 was 3D Car Select, an update to the Car Selection UI that instantly loaded a car's 3D model when it was selected. This was a huge improvement over the previous system, which required players to wait through loading before seeing their car. I built the systems to show the car and play a rotation animation as players browsed the catalog, creating a much more immersive experience.

Acrylic UI & UI Rendering

Skills: C++, DirectX 12, and XAML

Next, I moved on to the Acrylic UI. Forza Horizon 3 used acrylic effects throughout its interface, and we wanted to bring that look and feel back to the Motorsport series. I was a natural fit for the project since I had experience working across both franchises.

This was a challenging assignment. I hadn't worked professionally in rendering before, and I vividly remember staring at a black screen with a broken renderer as the deadline crept closer. It was stressful, but I learned a tremendous amount about our UI rendering pipeline. In the end, we shipped a beautiful acrylic implementation with unique customizations to give Motorsport its own distinct identity.

The initial release of Motorsport featured realistic red acrylic with subtle texture. Some months after launch, we wanted to refresh the look, so I created a new vibrant blue style with a cleaner, more simulated aesthetic which looks less like traditional acrylic. Here's a video of the final style:

I continued working on Forza Motorsport 7 through launch, and my performance at Microsoft earned me a promotion to Software Engineer II. If you'd like to read about my next role and my continued contributions to Forza Motorsport 7, check out the link below.