game dev

THE GAMEPLAY PROGRAMMER ROLE EXPLAINED

The first time I shipped a feature as a gameplay programmer, it was a double jump. Took me three days. Not because the math was hard, but because the designer kept saying things like "it should feel weightier on the way down" and "the second jump should feel earned." I had to translate that into actual numbers. Apex velocity. Gravity scale on descent. Coyote time. Input buffer windows. By the time we shipped, I had rewritten that double jump fourteen times. Nobody who played the game ever thought about it. That was the point.

That, more than anything, is what being a gameplay programmer actually is. You write the code that makes the game feel like a game, and then you make sure no one notices the code at all. If players are thinking about your work, you've usually failed.

What gameplay programmers actually do

The textbook definition is simple. A gameplay programmer implements the systems players directly interact with. Combat, movement, abilities, weapons, inventory, dialogue, AI behavior, mission logic, UI logic, anything where a player presses a button and something happens on screen. If you can see it, hear it, or feel it, a gameplay programmer probably wrote the code that makes it work.

In practice the work is messier than that. On a given week I might write a new ability for a character, fix a bug where enemies get stuck on door frames, build a new mission objective system because the design team wants more variety, hook up animations to a state machine, add a tutorial popup, tune the recoil curve on a shotgun, and spend four hours figuring out why one specific enemy is invincible only on Tuesdays. The variety is part of why I love the job and part of why some people burn out on it.

The other huge part of the job is communication. Gameplay programmers sit between designers and the rest of the engineering team. Designers come to you with ideas that are sometimes brilliant, sometimes vague, sometimes physically impossible inside the constraints of the engine. Engine programmers come to you when they need to refactor something low-level and want to know how it'll affect the gameplay layer. You're the translator. You're the person who tells the designer "we can do that but it'll cost us 3ms per frame and the AI guy is going to murder you." You're also the person who has to find a clever way to do it anyway.

The bridge role

I don't think most job listings describe this part well. Gameplay programmers are bridge people. You need to understand design well enough to push back when a designer asks for something that won't work, but also flexible enough to find a path forward when they're right and you don't see it yet. You need to understand engine architecture well enough to know which systems are safe to touch and which ones will explode if you breathe on them.

A lot of the value I bring on a given day isn't writing code. It's sitting in a meeting and saying "if we change the cooldown system to be data-driven, designers can iterate without programmer time, but it'll take me a sprint to refactor." Or "we can't do that camera shake without breaking the cinematic system, but here's an alternative that gets 80 percent of the feel." That kind of judgment comes from knowing both sides of the wall.

Junior gameplay programmers usually don't get to do much of this. You start by implementing things that have already been designed and architected. Senior gameplay programmers spend more and more time in design conversations, in code review, in technical design documents. By the time you're a lead, you might barely write code at all on some days. That's a love-it-or-hate-it situation, and it's one of the reasons people end up moving into design rather than staying on the engineering ladder.

Languages you'll actually use

If you're working in Unity, you're writing C#. That's the whole story. Some studios have tooling in Python or Lua sitting around the edges, and you might touch shader code in HLSL occasionally, but the gameplay layer is C# top to bottom. C# is a productive, modern language. Garbage collection is the main thing you have to watch out for, because allocations during gameplay can cause frame hitches that players notice. You learn to pool objects, avoid LINQ in hot paths, cache references, and reuse collections.

If you're working in Unreal, life is more complicated. Unreal gameplay code is split between C++ and Blueprints, and the right balance is one of the more contentious topics in the industry. Some studios push everything into C++ for performance and version control reasons. Others lean hard on Blueprints for iteration speed. Most do a mix. You'll write base classes and performance-sensitive logic in C++, expose them to Blueprints, and let designers (and sometimes you) wire things together visually. If you want to dig into the C++ side of things, I wrote a whole piece on whether C++ game development is worth learning that covers the trade-offs.

Custom engines exist. If you work at a big studio with proprietary tech, you might be writing C++ all day. Some studios use Lua for gameplay scripting on top of a C++ core. Some are experimenting with Rust. The vast majority of the industry, though, is Unity C# or Unreal C++/Blueprints. Learn one of those well and you can get hired almost anywhere.

How it differs from other engineering roles

People lump all programmers together when they talk about game studios. They shouldn't. The roles are genuinely different and the day-to-day work is very different.

Engine programmers work on the foundation. Memory management, threading, asset pipelines, scripting bindings, networking layers, input systems, the platform abstraction layer. The stuff that has to work flawlessly so everyone else can build on top of it. Engine programmers tend to be the most senior and the most specialized. They care about cache lines and SIMD instructions. They almost never touch gameplay code, and when they do they're usually fixing something that's been broken for months.

Graphics programmers work on rendering. Shaders, lighting, post-processing, materials, particle systems, the render pipeline itself. This is its own deep discipline with its own math. Linear algebra, color theory, optics. Graphics programmers often have backgrounds in math or physics and can read papers from SIGGRAPH for fun. They work closely with the art team. They almost never touch gameplay logic.

Tools programmers build the editors and pipelines that everyone else uses. The level editor, the dialogue tool, the asset import pipeline, the build system, the localization tooling. This is the most invisible role on the team because their users are other developers, not players. Good tools programmers can multiply the productivity of the entire studio. Bad tooling can grind a project to a halt. They write a lot of C# (for Unity tools), Python (for asset pipelines), and increasingly TypeScript (for web-based tools).

AI programmers, network programmers, audio programmers, animation programmers, physics programmers. Each of these is a specialty in its own right at bigger studios. At smaller studios one or two gameplay programmers cover all of it.

Gameplay sits in the middle of all of this. We use the engine that the engine programmers built. We hook into the rendering features the graphics programmers exposed. We write content with the tools the tools programmers made. We wire up AI behaviors that the AI programmer designed the framework for. Our job is integration. Our job is making it all feel like a game instead of a collection of systems.

The career path

Junior gameplay programmer is your entry point. Usually one to three years of experience, often hired straight out of school or after a couple of indie projects. You'll be assigned bug tickets and small features, you'll work closely with a senior or lead, and you'll spend a lot of your first year just learning the codebase. Most studios expect juniors to be productive within six months. Don't expect to ship a major system on your first project.

Mid-level gameplay programmer comes after three to five years. You own features end to end. You participate in technical design discussions. You write code reviews. You mentor juniors. You start to develop opinions about architecture, and you start fighting for them in meetings. This is where most gameplay programmers spend the bulk of their careers, and it's a perfectly fine place to land.

Senior gameplay programmer is somewhere around five to ten years in, depending on how fast you grow and what kind of projects you work on. Seniors lead small teams, own major systems, and increasingly do technical design rather than implementation. You're expected to make decisions that affect months of work for other people. The risk goes up. The pay goes up.

Lead gameplay programmer is the next step, and it's where the path forks. Some leads go deeper into management, eventually becoming engineering managers or directors. Some pivot into design and become design directors, because at that point they understand both sides well enough to be dangerous. Some refuse to leave the code and become principal engineers, individual contributors who solve the hardest technical problems on the team. All three are valid paths and all three pay well at studios that recognize the difference. I covered more of this kind of progression in my game developer career path piece if you want a broader view.

What you actually make

Salary numbers vary wildly by region, studio size, and your specialty. In the US, a junior gameplay programmer at a mid-size studio is looking at something like 65k to 85k. Mid-level lands around 90k to 130k. Senior is 130k to 180k, more at top studios with stock or bonuses. Leads and principals can clear 200k, especially in the Bay Area or Seattle, and especially at studios owned by large publishers that pay closer to general tech rates.

Indie and small studios pay less. Sometimes a lot less. AAA studios pay more, especially if they're owned by Microsoft, Sony, EA, or one of the other big platforms. Mobile studios at the top end (the gacha and free-to-play giants) pay surprisingly well, sometimes better than AAA. Remote work has compressed some of the geographic spread but not all of it.

Game industry pay is generally lower than equivalent roles in tech. A senior gameplay programmer with eight years of experience could probably make 50 to 100 percent more at a non-game tech company doing backend work. People stay in games because they want to make games. That's the whole equation. If money is your top priority, this is not your industry.

The boring truth about most days

Here's what nobody tells you about being a gameplay programmer. Most of your days are not glamorous. You're not designing the next big mechanic. You're not having brilliant insights at the whiteboard. You're fixing bugs. You're tuning numbers. You're reading other people's code trying to figure out why a flag is being set somewhere it shouldn't be.

A typical day for me looks like this. Stand-up meeting. Pick up the highest-priority bug from QA. Spend two hours reproducing it, because half the time the repro steps don't actually work. Spend another hour finding the actual cause, which is almost never where you initially think it is. Write a fix. Write a test if the system supports tests. Code review. Lunch. Pair with a designer on tuning some weapon stats. Implement a small feature that was specced last sprint. Update the team in Slack. Code review someone else's PR. Go home.

The big satisfying moments come, but they're rare. The day you finally fix the bug that's been haunting the project for two months. The first time the gameplay loop you've been building actually feels fun to play. The playtest where you watch someone laugh at the thing you wrote. Those moments are why you do it. The other 95 percent is bug tickets and meetings.

If you're trying to figure out whether this is the career for you, the question isn't whether you love games. Almost everyone in the industry loves games. The question is whether you'll still love the job when you've spent six months on a feature that gets cut, when the designer changes the requirements for the third time, when your beautifully architected system has to be ripped out because the engine team is refactoring something underneath you. The people who thrive here are the ones who find satisfaction in the craft itself, not just the finished product.

If you're earlier in the process and trying to figure out how to even get into the industry, my guide on how to become a game developer covers the entry-level stuff in more depth. And if you're trying to figure out what to learn first, the programming languages for game development breakdown should help you pick a starting point.

Gameplay programming is a great job if you like building things, working with people, and shipping software that real humans interact with. It's not a great job if you want to write beautiful, perfect code in isolation. The whole craft is about compromise, iteration, and making the messy reality of game production produce something that feels effortless to the player. The day you stop caring about how the player feels is the day you should probably switch to engine work.

← Back to the Sketchbook