Henry Bullingham, Network Programmer at Ubisoft Toronto, talked about participating in the Ubisoft Toronto NEXT Challenge, discussed landing a programming job, and shared what makes the studio's culture special.
I’m Henry, a Network Programmer for the Central Backend Team at Ubisoft Toronto, which develops, maintains, and runs backend services for various video games. Before joining Ubisoft, I studied Computer Engineering at the University of Waterloo from 2015 to 2020 and did several internships as part of the co-op program. Some of those internships were at Ubisoft Toronto working on multiplayer frameworks for Watch Dogs Legion, but I’ve also worked at Nvidia.
The Challenge of Ubisoft Toronto NEXT
It was quite the combination of factors that led me to participate in Ubisoft Toronto NEXT, mainly because it had long been a goal of mine to join the video games industry as a programmer. I’ve also been a fan of Ubisoft games for a long time, having played almost all the Assassin’s Creed mainline titles, so I’d been keeping my ear to the ground for internship opportunities. When the NEXT programming challenge happened in Spring 2018, I was working as part of an internship and didn’t have much going on, so I was able to put aside a whole weekend to do the challenge.
NEXT 2018 Submission
NXT Programming Submission – Powerup Activated
The brief that year was to create a pinball game using the provided API. What we were given consisted of a very simple line-based 2D engine that could read inputs, play sounds, and draw lines, but not much else. The world model, component systems, physics engine, and gameplay all had to be built from scratch. For my project, I decided to focus on making a pinball game that wouldn’t be physically possible in the real world but was made possible digitally. This included features like changing the physics properties of the ball (stickiness, bounciness) as well as having obstacles and targets pop in and out of existence. I also had a bit of fun playing around with sound effects.
Unfortunately, I didn’t win the competition. However, I did place as a finalist and the day after the competition I was riding the GO bus from Toronto back to Waterloo as the new semester was starting, when I got a surprise phone call. One of the recruiters from the studio wanted to know if I was interested in an internship for the fall term, and of course, I said “Yes!”.
Watch Dogs Legion sandbox online gameplay
One of Ubisoft’s goals as a company is to make world-class games and to do that you need world-class talent. I think they also know that most people don’t start off that way, they need a lot of experience and education to get to the top of their fields. So, because of this, there’s some good support and programs at the studio for pursuing educational opportunities and career growth.
One of the main ways we keep up with industry trends is by going to conferences in our subject areas. The main ones in my field are CppCon and GDC (Game Developer’s Conference), which Ubisoft sends a handful of people to every year, sometimes even to give talks, and I’ve been lucky enough to attend both. Of course, there are other conferences for different domains that people go to, for example, SIGGRAPH. There are also quite a few internal learning opportunities as well – we have an internal education site called ULearn with a bunch of courses from leveling up your technical skills to working on your soft skills, and of course, there’s the option to pick up an entirely new skill! Ubisoft also conducts a yearly conference called UDC (Ubisoft Developers Conference) to keep up with technical advances inside the company. There’s also an education support budget for all employees to pursue learning materials that meet their personal needs, like online courses, in-person courses, books, etc.
My team is also a bit unique in that we have some time allocated weekly for personal learning and investigations. It’s designed to look into new tools and technologies that would benefit the team in some way and help us stay in the loop on new industry trends.
Game HTTP Request Analysis Dashboards
The Central Backend Team
As mentioned before, I work on the central backend team which is responsible for the creation and operation of online services for upcoming and past releases. My role on the team is to develop client-side integrations for the online services, which are basically bundling different types of data from within the game and sending them to the backends for analysis. I also develop different sorts of tools related to these systems which include things like automatic configuration of services and visualization dashboards.
One of the main things that makes my team stand out is that it’s a cross-project team – so we get to work on different games. We’re currently developing new services and systems for an upcoming project but at the same time, we’re also operating and maintaining the online services for past releases, mainly Watch Dogs Legion and Far Cry 6. Our goal is to be able to develop our systems to work across different projects for the studio’s needs, which helps keep the online services knowledge centralized, decrease the work repeated across games, and lower the effort needed to get new projects up and running with online services.
Game FPS Analysis Dashboards
In terms of my personal learning journey, there are two broad areas that I tend to focus on: what I don’t know, and what I can improve upon. Even though I’ve been in the industry for a good amount of time, I still find some knowledge gaps every now and then. When confronted with these subjects, I usually look around for good online resources or books on the subject. Some things that I’ve studied recently have been the mathematics of machine learning, how to write animation systems, gameplay programming for combat and& traversal, and so on. After learning through a book, video series, or online course though the next thing you must do is play around on your own – write your own systems from scratch or fiddle around with the concepts in a 3D engine.
Meanwhile, improving the skills I already have is an ongoing process. The best resource for that is actually my coworkers because when I’m stuck on a design problem, I can leverage their experience and ask for ideas on solutions, or feedback on what I’ve come up with. It’s also good to ask them about what tools and technologies they use, and some of the answers I’ve gotten have saved me a bunch of time when working!
I’ve found that resources on advanced topics in game development are kind of hard to come by, as the topics are kind of for a niche audience. So the books on improving my day–to–day skills are usually written for the generic programmer, like for example a book on the mathematical design of the C++ standard library. They’re interesting and useful sources of information, but it’s then up to you to apply these concepts to game development software.
The other thing to mention is that a lot of game development and software development conferences put their talks online, or are available for a fee. GDC has a YouTube channel, and so do CppCon, CppNow, CppNorth, StrangeLoop, GOTO, and the list goes on. There are a lot of these talks that cover complex topics from different industry areas and the game-specific ones usually have presentations from tons of different roles. They’re a good starting point for further study, as the half-hour or hour-long format doesn’t leave much room for depth.
Watch Dogs Legion Co-op Drone Gameplay
Initiatives at Ubisoft Toronto
The main initiative that I’ve been a part of at Ubisoft Toronto is the ambassador program which has let me participate in a range of meaningful programs. For example, I’ve been a mentor for Hack the ROM, a program that fuses video game education with Indigenous culture aimed at elementary school students, and Youth Fusion, which is a year-long program for teaching students about the game development process. I’ve also been a judge at Hack the North and given a guest lecture on game programming for a McMaster University Course.
There are lots of other ways to get involved at Ubisoft, mainly through our Employee Resource Groups (ERGs). While I don’t identify as a member, I think it would be important to highlight Rainbow 6ix, (our 2SLGBTQ+ ERG), Black Employees at Ubisoft, Salaam (Middle Eastern & North African) ERG, the Asian & Pacific Islanders ERG, and more!
Watch Dogs Legion Raid Boss Gameplay
Developing Early Career Talent
Ubisoft Toronto does quite a few things to set itself apart in terms of finding and developing early career talent in the games industry. One obvious answer would be a program that kickstarted my career at Ubisoft — the NEXT competition. The annual competition has numerous categories in a whole swathe of disciplines, of which programming is only one. There are challenges for concept art, UX, animation, level design, and more! On top of that, we also have Develop at Ubisoft, which is a mentorship opportunity intended specifically for women, transgender, non-binary, and Two-Spirit folks who want to enter the industry. Outside of the competitions, Ubisoft also hires for several internship roles.
The last thing to mention is Ubisoft also has a graduate program for people fresh out of university that lets you work at two Ubisoft studios around the world. The Toronto studio is included in the list so you could potentially do a year in Paris or Spain and then come back.