In this post I talk about my experience transitioning from frontend software engineering to get a job as a gameplay engineer.
- I just accepted an offer to join Bungie as a senior gameplay engineer working on AI in Destiny 2.
- I was initially very uncertain about my qualifications and how hard it would be for me to get hired.
- Eventually I realized my more-traditional software engineering experience left me pretty well-qualified and I could afford to be more selective for the right role.
My sabbatical is coming at end! I left my frontend (web) software engineering job at Google a year-and-a-half ago to commit myself to game-development fulltime. My main goal was to improve my game-development skills, to gain more familiarity with the ins and outs of making games, and to figure-out which aspects are most interesting to me. I was originally thinking I'd end-up going back to Google, so I was not choosing projects based on what would make me more appealing to prospective future employers! In particular, I was using the Godot game engine, which is not very popular for professional roles in the industry.
When I started this job search I wasn't sure how appealing I'd be to companies. In particular, I was very uncertain about what level I should be applying to. I was a senior-level engineer at Google. But I've never been employed as a "gameplay engineer" before. Does that mean I'm entry level? How many of my skills are transferrable?
The big question: Am I employable as a senior gameplay engineer?
What I am
- I've been a software engineer working professionally on user-interfaces and web frontends for 11 years.
- I've always been working on video-game-related side-projects in my free time.
- I was a senior-level engineer at Google.
- I left Google to spend the last year-and-a-half making games fulltime by myself.
What I am not
- I've never been employed as a gameplay engineer.
- I don't have much gameplay experience with teams.
- I have some 3D experience from college and from a WebGL physics engine I made, but most of my gameplay experience is in 2D.
- I don't have the "correct" game-engine experience.
- I have been using the Godot game engine a ton over the last 5 years.
- But most game companies expect experience with Unreal or Unity.
- I haven't really touched C++ in the last 10 years.
- Most game companies expect C++ expertise.
Starting to look for jobs
In April, I knew my sabbatical needed to end soon and that I needed to figure out where to apply next. It was at that point that I actually made the decision that I wanted to try a "real job" as a gameplay engineer, rather than just going back to frontend engineering at Google.
So I updated my job title on LinkedIn from "Frontend Engineer" to "Gameplay Engineer". Within a week I got an email from a Bungie recruiter! They apparently saw my title change, and liked the look of my Google experience.
During our initial call I got a ton of invaluable data around what to expect from the gameplay-engineer interview process.
- They gave me the strong impression that I should try applying to senior-level gameplay roles, since my general non-gameplay-specific software-engineering experience apparently still counts for a lot.
- They gave me a great overview of the kinds of information covered in gameplay-engineering interviews and what I'd need to prepare.
- Lots of 3D math and linear algebra.
- General computer science algorithms and data structures.
- They let me know that even though they use C++, every company uses C++ a little differently, so it's very unlikely that a company would expect me to really go into detail around any of the more esoteric details of C++.
- With a month refreshing my C++ knowledge, I should be fine!
- They asked the classic "how much money are you expecting to make" question.
- I said I have no idea, you tell me!
- Software engineers make a lot, and Google pays even more, so I had no idea what to expect from the average video game company.
- They gave me a great sense for the typical range I could expect.
- I essentially spent one full month applying and interviewing.
- I applied to 60 different positions.
- I only received 6 rejection responses without at least getting a call.
- I got positive responses and calls from 18 companies.
- Only 4 companies rejected me after they talked with me.
- Of the remaining 14 companies, I rejected 8 for not being the right fit.
- I got through the entire interview process with 5 companies.
- Of those 5 companies, I received 3 offers, one rejection (the company was not a good fit), and one company didn't respond in time.
- How I found positions to apply for:
- I applied to a bunch of places!
- I only heard back from a small ratio.
- But if a company ever responded to me at all, I then had a high success-rate of getting past a phone screen with them.
- Strategies for timing your applications:
- Don't apply to your favorite company first!
- The most important thing you can do to improve your interviewing performance is to have already done an interview recently.
- So try to apply to a less-interesting company first and expect to fail. If you pass their first interviews, then great! If not, you have done some very important interviewing warm-up!
- Synchronize your interview timelines!
- It can be really tough if you get an offer from one company, but then still need to wait a week before your final interview with another company that you'd really rather work for. And then that second company will probably want to take a few more days after that before they give you their decision!
- What do you do?
- You might not get an offer from the second company, so you don't want to reject the first company.
- But they probably don't want to give you two weeks to respond!
- It's hard for them to, because they need to fill the role as quickly as possible, and if you aren't going to do it, they need to be interviewing other folks.
- From what I can tell, asking for up to a week to respond is reasonable. But they still might not give you that much time.
- So it's very important to ask at the start how long a companies interview process will take and what each of the steps are.
- Then you can delay steps as needed in order to make sure you get any potential offers around the same time.
- Experience with C++ and Unreal or Unity.
- I still applied to roles even if they listed a requirement for lots of C++ and Unreal experience.
- This certainly was a deal-breaker for some companies, but others were satisfied with my other experience.
- I actually found one company using Godot!
- I almost ended up accepting their eventual offer, but in-the-end I chose the Bungie role, since it involved more moment-to-moment gameplay work.
- Senior vs lower-level roles:
- I only applied to senior-level gameplay roles.
- I think it was easier to apply as a senior-level engineer, since they are more in-demand.
- The market is more flooded with non-senior engineers.
- I think most folks wouldn't be able to get a senior-level role as their first professional role in the game industry. But, from a software-engineering perspective, I was more than qualified with my Google experience.
- I'm more qualified than I thought I was! Too much imposter syndrome, I guess.
- If you're a talented software engineer, with solid experience, you can probably make the switch to a gameplay engineer.
- But you definitely need to have some graphics, 3D math, linear algebra, and game/animations/physics experience.
- Taking a graphics course, most of a linear algebra course, and doing a couple game jams might be enough for this!
- In terms of math:
- In particular, make sure you are really comfortable conceptualizing how to use cross-product and dot-product.
- Also refreshing your basic algebra and quadratic formula knowledge is a good idea.
- Remembering trig basics is useful too.
- BUT, as a rule-of-thumb, if you find yourself using trig to solve a 3D-game-math problem, there was probably a better solution using dot and cross products.
- This site is a really great resource for reviewing exactly the math you'll need in a gameplay programming interview: https://gamemath.com/book/
- Role focus:
- I really wanted to focus on moment-to-moment gameplay interactions—things like character controls, movement mechanics, and AI behavior.
- So I tried to avoid roles that focused more on things like UI, tooling, networking, and engine infrastructure.
- I like all of those things too, they just aren't what I'm most interested in at the moment!
- In particular, I have a lot of UI experience, but I thought that would be kind of a step backward for me at this point.
- AAA vs indie vs start-ups:
- There are definitely pros and cons to being at either a big or a small company.
- At a big company, you get more reliability that the company will probably continue to succeed, at least in the immediate future.
- At a big company, you might not be required to wear as many hats. But also, you will be expected to fill a more specialized role, and you might not get as much variety in your day-to-day work.
- At a small company, you might be expected to work more overtime and do more crunch near deadlines.
- Oftentimes, the reason you might be excited to work at a big company is because you are passionate about a particular product of theirs that you're familiar with. The problem with this is that that product is already a solved problem, and it also already has a team of owners. So you might not get to work on the fun bits that excite you quite as much as you may want.
- Conversely, you probably won't have a good sense ahead-of-time for exactly what it is that a start-up is making and what you would be contributing. But it's much more likely that you'll be owning large portions of the product and defining the direction in more ways that excite you.
- My opinions:
- I applied to both big and small companies.
- I have more experience with big companies.
- But I think I lean more toward the start-up / small-company vibe!
- But I have a fair amount of imposter syndrome for evaluating whether small companies are good enough / reliable.
- But ultimately, I think whether the company's business prospects are likely to sustain actually doesn't matter too much to me at this point.
- I think change is good!
- I like having a breadth of experience, and I don't mind having to do another future job search.
- Mostly what matters to me is knowing that all the folks in my team are having a good experience and like their leadership.
- VC funded start-ups:
- I've been interviewing at a few small indie studios that are VC funded and it's also been really cool to see what they did to get a lot of money.
- Most of the time they seem to be throwing web3/crypto/NFTs into the mix.
- But some are trying to create platforms for user-generated content or strong social interaction stuff.
- Only one of the VC-funded companies I talked to was really all about just creating an amazing game, and they apparently spent a year with a team of 6 just creating a phenomenal trailer from a throw-away prototype!
Preparing for interviews
- At the start, I got lots of advice from game-industry friends.
- I spent a couple weeks refreshing my knowledge of things like 3D math, linear algebra, and C++.
- Here are some resources I found helpful:
- High-level overview of the scope of gameplay-engineering interviews
- Game-math refresher:
- C++ refresher:
- C# refresher:
- My interview prep notes:
- Other things I did to prepare:
- I updated my LinkedIn profile and targeted it toward gameplay experience (linkedin.com/in/levi-lindsey/).
- I have a lot of my code visible on GitHub (github.com/levilindsey).
- I have an extensive web portfolio (levi.dev).
- I created a showreel (levi.dev/showreel).
- I updated my resume and targeted it toward gameplay experience (levi.dev/resume).
- I made sure I have a lot of solo game-dev experience!
- In particular, I've done a lot of game jams over the last couple of years.
- Potential employers really like to see this experience across a breadth of games.
- Some questions I asked most companies:
- I found it useful to have a collection of questions on-hand to ask companies.
- What's work/life balance and crunch like? Do folks ever work evenings or weekends?
- What's the culture and team dynamic like?
- Tell me about the game.
- Tell me about my role.
- What are the biggest challenges/unknowns finished and remaining?
- How the company get formed? How'd you get there? Is it what you wanted it to be?
- If there's one thing you could change about the company or product?
- What's the timeline for your current game?
- How much of the team is remote?
- What are your remote tools / procedures?
- Is my particular experience going to be OK?
- In general, a "gameplay engineering" position usually pays less well than a "software engineering" position.
- The offer that I accepted from Bungie was very competitive for the games industry.
- My compensation will actually be somewhat close to what I was making at Google.
- In particular, the base salary, annual bonus, 401k matching, and miscellaneous benefits are all very similar.
- The main difference is in equity (stocks).
- About half of my compensation at Google was equity.
- Bungie is also offering me a decent chunk of something resembling equity.
- But a lot of this will depend on how Bungie handles periodic equity refreshes.
- Unfortunately the details for this are a bit in-the-air since their acquisition by Sony is still in-progress.
- In addition, I'm getting a hefty signing bonus!
- I think it helped that Bungie was a little slower than the other companies I was talking to.
- I already had a couple offers by the time I did my all-day virtual "onsite" with Bungie.
- I gave them a deadline to respond within the week.
- So I think they felt like they needed to give a strong offer up-front, since they wouldn't have time for any back-and-forth.
- Glassdoor's numbers seem somewhat accurate for base salary.