Senior Software Engineer – Physics
Avalanche Studios in New York
Sector: Arts, Audio/Video Technology, and Communications, Information Technology
Location: Outside Canada
Type: Career Profile
Computer Science, Physics
The greatest thing about making games is that is it the perfect intersection of art and engineering. As someone who also has a music background, I love working on things that are both a technical challenge and a creative outlet.
One of the best realizations of this is due to how fast the technology changes. Every few years there is a jump in technology that allows us to do more. Often this is referred to as ‘better graphics’, but it’s not just graphics. We can perform a more accurate physics simulation, create smarter AI, generate more realistic animation blending and have bigger, more immersive worlds. But none of those great new features just happen; we have to create them, which is the process I enjoy most. I get to ask questions like ‘How are we going to utilize this extra CPU core to make the cars more fun to drive?’. And then the creativity starts, and as I said this is the perfect blend of pure creativity and computer science.
My journey into this career is a bit windy as I didn’t start out intending to make games. Actually, I didn’t even intend to go into computer science.
I started university in the fall of 1997 intending to pursue a degree in mechanical engineering. But, by the end of that first year, I realized that I didn't really like mechanical engineering so I intended to take a year off from university to think about what I wanted to do.
Over the summer I realized that not going back immediately could result in never returning, so I decided to just enrol in some general science courses (and mostly physics which was the part of mechanical engineering I actually liked!). I also enrolled in some computer programming courses that were required pre-requisites for some upper level physics courses I was interested in. I knew basically nothing about programming or computer science before that year at school, but by the end, I was hooked. So for the following year I switched over to computer science and graduated a few years later with a BSc with Computer Science Major.
Starting out I worked as a programmer for a small web development company. I then worked for several software engineering companies. As is the case with most software engineers, I started off writing small sections of fairly simple computer code that was part of some larger system that someone else designed. As I got more experience, I did less, but more complex, programing and more design.
Now, I’m a Senior Physics Engineer with Avalanche Studios in New York City.
Making games is both hard and very rewarding. Having a computer science degree makes is much easier to get into to field as it’s all directly applicable to making games. Learning as much as possible outside the classroom is essential for success and specializing in an area such as networking, graphics or real time physics is also a good idea.
I’m also a fairly accomplished musician, which is where most of my free time goes. I’m either practising or performing with one of the multiple bands I usually find myself in.
My typical day is an endless stream of problem solving. Often, these problems are technical, such as modeling the physical collision response of how a spinning helicopter blade collides with something solid. Other times, the problem is less technical, like how to interpret a set of requirements presented to me from one of our game designers. This is what I love about working in teams like this; I get to directly apply my education towards the mathematics of a particular physics model at one moment, and at the next I need to figure out how best to extract the exact meaning behind a set of abstract requirements.
On the technical side, most of my time is spent in front of a computer using various modeling and simulation packages, or writing code. I directly apply my computer science education most hours of most days. My computer science knowledge is essential to every technical decision I make. However, there’s also a great creative side to solving these problems. This is because in games, the response we’re looking for might not always be physically correct. For example, spinning helicopter blades hitting a building would destroy a real helicopter, but we want something more fun than that. So I get to use my creativity in combination with math and computer science to design the system.
I was born/grew up in: Vancouver, BC, Canada
I now live in: New York. NY, USA
I completed my training/education at: I completed a BSc. in Computer Science at Thompson Rivers University
When I was
- Computer Science
- Industrial Arts/Shop Programs
- Enjoyed doing things on my own
- Enjoyed working with my hands
- Liked being given free range to explore my ideas
- Played video games
- Didn’t really care about grades
- Wasn’t sure what I wanted to do
- Learned best “by doing”
- Liked to take things apart to see how they worked
- Liked to design or build things