I started at Electronic Arts Vancouver in October 2018. I was hired to support the Motion Capture Lab, which at the time was called CRAFT. This group operated mostly outside of the standard EA game teams, so they didn’t rely on the usual infrastructure like Cadet or Frostbite. It was a fairly independent department with a long history of internal tools that had grown organically over time.
My role was essentially split into two major responsibilities. The first was to rein in a large collection of scattered tools and turn them into something cohesive. Most of the tools existed as loose scripts, so I refactored them into an object-oriented Python codebase and built a unified Python API for CRAFT. This included refactoring Maya Render Viewport tools, building tools around the !Qube render farm, creating a facial picker, writing various in-house helper utilities, and integrating commercial animation tools like Animation Studio Animbot and Tweener. I also added Slack integrations and general pipeline glue to make everything work smoothly together. That work ended up being very successful. The tools spread far beyond the original group, and I regularly had animators and technical artists from around the world reaching out to use them. The next major step was packaging everything properly using Cadet. I already had experience with Cadet from previous contract work on the NHL and UFC franchises. Cadet is EA’s internal dependency management and packaging system, and moving CRAFT’s tools into that ecosystem was critical for long-term stability. Around this time, the CRAFT group was officially rebranded as CREATE.
When CREATE launched, my first task was straightforward: rebrand the existing CRAFT Facerig.Animation.Utilities package into CREATE. The second task, however, was anything but simple. I was asked to take the CREATE facial rig and bring it into Frostbite. On paper, the vision was clear, but the implementation was massive. I had no prior experience with ANT, AntiFreeze or Frostbite, and C# was not my primary language at the time. I dug in anyway, and after about a month I had a rough prototype following my supervisor’s direction Over the next several months, we continued iterating and adding features. This included light rigs, skin and eye shaders, and rendering workflows that produced Tryptic or four-up sequence images from multiple angles of facial animation. We integrated everything with the Qube render farm as well. Around this time, COVID19 hit, and we transitioned to fully remote work. A situation that, in many ways, never really ended.
Alongside development, I was responsible for ongoing support of the CREATE Python Facerig.Animation.Utilities package and the Frostbite facial pipeline. These tools were used across multiple projects: PGA Tour Golf, Madden (via Tiburon in Florida), and Need for Speed in the (UK). FIFA eventually adopted parts of the system as well, largely because the codebase was object-oriented and cleanly integrated with their transaction system, at least on the ANT side. As development continued, my focus shifted again. I was pivoted toward creating ReactJS applications, and then a C#/COM application to help connect the many different applications used across the studio. One major initiative during this period was the push toward Houdini and procedural workflows. We leaned heavily into Houdini for a wide range of tasks as proceduralism became a bigger part of the pipeline.
As COVID19 restrictions became more authoritarian in Canada, I started to feel unwelcome living there. I began looking for opportunities to move back to where it all started for me... Alaska. When I a position was presented with Unbroken Studios, I asked my supervisor and upper management if EA would allow me to remain employed while relocating to Alaska. They politely, but firmly, said no, and as a result, they lost a couple of great employees.
Overall, my experience at EA was very positive. I was treated well, even though I didn’t advance much in terms of promotions, largely due to my supervisor dropping the ball and partially my own fault as I didn't take the initiative. I worked with talented people, enjoyed strong benefits, and appreciated the stable career path and stock options. The working environment was great and the Vancouver BC campus itself was beautiful. Surrounded by forest and hiking trails, with a relatively easy commute.