Game Developer interview questions
100 real questions with model answers and explanations for Game Developer candidates.
See a Game Developer resume example →Practice with flashcards
Spaced repetition · Hunter Pass
Questions
Keep authoritative rules in C++ and expose only safe tuning in Blueprints.
- Put validation, cooldown math, and replication in a reviewed C++ path.
- Expose damage, range, and VFX hooks as editable defaults for designers.
- Move repeated graph logic into a parent class or function library.
Why interviewers ask this: The interviewer is checking whether you separate engine-owned logic from designer-owned tuning without making Blueprints unmaintainable.
I keep the execution path small and push the rules into tags and effects.
- Use ability tags to gate activation and block conflicting skills.
- Apply cost and cooldown through GameplayEffects so prediction and replication stay aligned.
- Keep animation and target selection separate so the ability can change without rewiring logic.
Why interviewers ask this: The interviewer is checking whether you can keep GAS data-driven while preserving clean runtime flow.
I replicate only the values other clients must see and derive the rest locally.
- Use OnRep handlers for health, shield, and other visible stats.
- Batch frequent changes into one effect instead of many tiny updates.
- Keep hidden math like crit rolls and server caps off the wire.
Why interviewers ask this: The interviewer is checking whether you understand selective replication and server-owned combat math.
I use tags when the state must grow across content teams and enums when the set is closed.
- Tags let designers add new combinations without a code rebuild.
- Enums are better for small switch-heavy logic with few states.
- I usually reserve tags for abilities, inventory traits, and status effects.
Why interviewers ask this: The interviewer is checking whether you match the data model to how content actually evolves.
I would make the inventory data-driven and keep the hotbar as a view over it.
- Store item definition, stack count, and durability separately.
- Validate merge and split rules on the server before the UI updates.
- Replicate slot deltas so a 30-slot bag does not resend the full state.
Why interviewers ask this: The interviewer is checking whether you can separate authority, UI, and item state cleanly.
I keep saves backward-compatible with explicit version stamps and small migration steps.
- Write a version number into every save and branch loaders by range.
- Migrate old fields forward in small steps instead of one big rewrite.
- Keep one fixture save from each shipped release for regression tests.
Why interviewers ask this: The interviewer is checking whether you can evolve persistence without breaking existing players.
I keep the weapon contract in C++ and let Blueprint handle presentation.
- C++ owns ammo math, fire rate, recoil, and authority checks.
- Blueprint owns muzzle flash, audio, and designer-tuned defaults.
- Data assets define variants so balance changes stay centralized.
Why interviewers ask this: The interviewer is checking whether you preserve code ownership while still giving designers room to tune.
I would keep entities as IDs and move real state into typed components.
- Store transform, health, and inventory in separate contiguous arrays.
- Let systems read only the components they need for that update.
- Use stable IDs and generation counters so stale references fail fast.
Why interviewers ask this: The interviewer is checking whether you can build an engine model that stays cache-friendly and safe.
I would split behavior into data, systems, and presentation instead of translating scripts one by one.
- Convert per-object state into component data that Burst can process in batches.
- Move hot loops into IJobEntity or Entities systems with explicit dependencies.
- Keep UI, VFX, and scene setup on the classic side until DOTS brings clear value.
Why interviewers ask this: The interviewer is checking whether you understand DOTS as an architecture shift, not a class rename.
They push me toward flat data, fewer branches, and explicit ownership.
- I avoid object graphs in hot code because Burst wants contiguous data.
- I batch work so one job update covers hundreds of entities.
- I measure data access first, because a clean algorithm can still be cache-poor.
Why interviewers ask this: The interviewer is checking whether you can write code for the compiler and the cache, not just for readability.
I use Entities when a system has many similar objects and the frame cost is data-heavy.
- Use GameObjects for authoring-heavy or highly unique hero content.
- Use Entities for crowds, projectiles, particles, or large simulations.
- Switch only when profiling shows the classic model is the real bottleneck.
Why interviewers ask this: The interviewer is checking whether you can pick the right abstraction instead of defaulting to DOTS.
I make dependencies explicit and keep reads and writes narrow.
- Chain jobs through the returned handles so write-after-read conflicts stay visible.
- Split systems by access pattern instead of hiding synchronization in one big update.
- Check the profiler when a job waits more than it runs.
Why interviewers ask this: The interviewer is checking whether you can control scheduling instead of hoping the runtime guesses correctly.
I would drive it from fixed inputs and a fixed simulation step.
- Quantize acceleration, friction, and jump impulses the same way on every machine.
- Avoid frame-time-scaled branches inside the authority path.
- Record inputs and state hashes so desyncs show up on the first bad tick.
Why interviewers ask this: The interviewer is checking whether you understand determinism as a simulation contract, not a math slogan.
I use root motion when the animation owns the pose and code-driven movement when gameplay must stay authoritative.
- Let code own collision and networked position.
- Let root motion add polish for attacks, vaults, and heavy turns.
- Clamp corrections so animation never drifts far from gameplay truth.
Why interviewers ask this: The interviewer is checking whether you can keep animation polish without losing movement authority.
I bind gameplay windows to named markers instead of hardcoded frame indices.
- Read a marker from the asset, not from a clip name.
- Keep cancellation and timeout logic outside the event itself.
- Reuse the same marker names across alternate attack clips.
Why interviewers ask this: The interviewer is checking whether you can keep animation timing flexible across multiple assets.
I keep one authoritative state machine and make every transition explicit.
- Let stun interrupt attack and roll through a clear priority rule.
- Clear buffered actions when the state changes.
- Keep exit logic in the leaving state so cleanup stays predictable.
Why interviewers ask this: The interviewer is checking whether your combat flow stays readable when multiple states can interrupt each other.
I would combine simple perception with a navmesh-backed search routine.
- Use sight and hearing checks to set a last-known position.
- Patrol through waypoints when nothing is seen.
- Switch to a short investigation route before falling back to patrol.
Why interviewers ask this: The interviewer is checking whether you can combine AI senses, memory, and navigation without overengineering.
I use a finite-state machine for tight combat logic and a behavior tree when the AI needs many reusable branches.
- FSMs are easier for attack, retreat, and stun loops.
- Behavior trees help when perception, patrol, and chase share nodes.
- I avoid trees when the design only needs four or five states.
Why interviewers ask this: The interviewer is checking whether you match the AI tool to the actual complexity of the enemy.
I would try the straight move first and then fall back to a bounded search.
- Query a path to the target and cache the failure reason.
- If the path is blocked, sample nearby reachable points around the obstacle.
- Replan only when the agent actually makes progress, not every frame.
Why interviewers ask this: The interviewer is checking whether you can recover from path failure without adding constant path churn.
I would make interaction a shared contract with type-specific outcomes.
- Let the player detect nearby interactables through one ray or overlap query.
- Expose one entry point like Interact and let targets decide the result.
- Show one prompt pipeline so UI, audio, and gameplay stay aligned.
Why interviewers ask this: The interviewer is checking whether you can keep three different interactables on one clean contract.
Locked questions
- 21
How would you build an equipment system with item stats, buffs, and set bonuses?
system-designbuild - 22
How do you handle crafting recipes and server-side validation?
soft-skillsvalidation - 23
How do you make checkpoint and respawn preserve quest state?
checkpointrespawn - 24
How do you keep UI decoupled from gameplay state?
gameplay - 25
How would you model input rebinding across keyboard, pad, and touch?
input - 26
How do you build an ability target selector for cone, line, and self targets?
gameplaybuildabilities - 27
How would you integrate audio cues into gameplay events without hardcoding sounds?
gameplay - 28
How do you structure a save/load pipeline in a custom engine?
ci-cd - 29
How would you handle scene or level streaming in gameplay code?
streaminggameplayscene-management - 30
How would you design a mission objective system that designers can extend?
system-designdesign - 31
How do you expose tuning data through ScriptableObjects or data assets?
data-assetsassets - 32
How would you keep combat numbers consistent between Unreal and Unity prototypes?
engineprototypes - 33
How do you decide whether a feature belongs in engine code or game code?
game-design - 34
How do you model projectile life cycle, pooling, and ownership?
ownershipgameplaymemory - 35
How would you build a weapon recoil and spread system?
system-designweaponsspread - 36
How do you make a cross-platform control scheme feel consistent?
cross-platform - 37
How would you represent a save slot list and metadata?
save-system - 38
How do you design a boss phase system?
system-designdesign - 39
How would you handle animation blending when the character is on a moving platform?
animationgameplaycross-platform - 40
How do you keep AI and gameplay code from fighting over the same transform?
gameplay - 41
How do you implement a simple combat combo chain?
gameplay - 42
How would you add a minimap or radar that follows gameplay events?
gameplay - 43
How do you split single-player and multiplayer code paths cleanly?
networkinggameplay - 44
How would you validate player-owned content like loadouts or perks?
validationgameplay - 45
How do you keep a custom engine’s memory ownership clear for gameplay objects?
ownershipmemorygameplay - 46
How would you make a cutscene system trigger gameplay state changes?
system-designgameplayphysics - 47
How do you build a dialogue or quest flag system that survives saves?
system-designbuild - 48
How would you prevent floating-point drift in a 100 km open world?
iac - 49
How do you make editor tooling for designers without breaking runtime code?
design - 50
How do you add platform-specific input or UI prompts cleanly?
cross-platform - 51
How do you profile a dropped frame in Unreal Engine 5?
engineunreal-enginetiming - 52
How do you decide whether a hitch comes from CPU, GPU, or streaming?
streamingrendering - 53
What do you look at first when a scene spends 6 ms on draw submission?
scene-management - 54
How would you reduce GC spikes in Unity 6?
gcengine - 55
How do you find a native memory leak in a custom engine?
memory - 56
How would you reduce allocs in a hot gameplay loop?
gameplay - 57
How do you debug a shader that hitches on first use?
rendering - 58
How would you warm PSOs or shader permutations for a level?
rendering - 59
How do you tune asset streaming so 4K textures do not pop in late?
renderingstreamingassets - 60
What do you do when an animation system costs 2 ms per character?
animationsystem-designgameplay - 61
How do you optimize a navmesh or pathfinding spike when 150 NPCs spawn?
aioptimization - 62
How do you debug a race condition in a multithreaded gameplay system?
system-designgameplayconcurrency - 63
What do you check when Unreal Insights shows a 20 ms game thread spike?
engineprofilingconcurrency - 64
How would you use PIX, RenderDoc, and Tracy together on one bug?
profiling - 65
How do you keep frame pacing smooth at 60 or 120 fps?
frame-pacingtiming - 66
What is your approach to authoritative networking for player movement?
networkinggameplay - 67
How do you implement client prediction and reconciliation for movement?
reactnetworking - 68
How do you handle lag compensation for hitscan combat?
networkingsoft-skills - 69
How do you decide which state to replicate and which to derive locally?
replication - 70
What do you do when a client sees a pickup twice over latency?
latency - 71
How would you debug a rollback mismatch between client and server?
networkingrollback - 72
How do you smooth remote players with interpolation and extrapolation?
networkinggameplay - 73
How do you keep packet loss from breaking combat feel?
networking - 74
How do you build a server tick budget for 64 players?
gameplaybuildnetworking - 75
What is your approach to cross-platform builds for PC, console, and mobile?
cross-platformbuild - 76
How do you debug a build that passes in editor but fails on console?
build - 77
What do you look for when audio stutters under load?
debugging - 78
How do you keep voice counts and audio memory under control?
memory - 79
How would you reproduce a crash that only happens after two hours?
- 80
How do you use symbols and minidumps to debug a shipped crash?
debugging - 81
What logging strategy helps without tanking performance?
logging - 82
How do you set performance budgets per platform and enforce them?
cross-platformperformance - 83
What do you automate in CI for game builds?
game-designbuild - 84
How do you catch a bad asset import before it reaches QA?
assets - 85
What do you do when a hot reload breaks state in a plugin?
tooling - 86
How do you debug input latency complaints from playtesters?
latency - 87
How would you measure the cost of a new rendering feature?
rendering - 88
How do you profile memory fragmentation on consoles?
memory - 89
How do you keep build sizes from blowing past platform limits?
cross-platformbuild - 90
How do you test a network feature with 120 ms latency and 2 percent loss?
latency - 91
What is the best way to inspect a navmesh or collision issue in engine tools?
physicsai - 92
How do you diagnose shader variant explosion in a large project?
rendering - 93
How do you stop a streaming open world from thrashing disk IO?
streaming - 94
How do you keep a replay or deterministic test useful for debugging?
simulation - 95
What do you do when profiler results differ wildly between dev and release?
profiling - 96
How do you decide whether to pool an object or just allocate it?
- 97
How do you debug a build that only crashes on one GPU vendor?
procurementrenderingbuild - 98
How do you instrument gameplay events without spamming logs?
gameplay - 99
How would you compare two optimization candidates fairly?
optimization - 100
How do you keep certification or platform compliance bugs from sneaking into release?
cross-platform