Game Developer interview questions
100 real questions with model answers and explanations for Junior Game Developer candidates.
See a Game Developer resume example →Practice with flashcards
Spaced repetition · Hunter Pass
Questions
Delta time keeps movement speed stable across frame rates.
- Multiply speed by elapsed seconds before adding displacement.
- Compare travel over one second at 30 and 144 FPS.
- Do not rescale forces already integrated by a fixed physics step.
Why interviewers ask this: The interviewer is evaluating practical reasoning about frame-rate independence.
The cooldown must count seconds rather than rendered frames.
- Start from a duration such as 0.8 seconds.
- Subtract the appropriate clock delta and clamp at zero.
- Verify equal completion time under several frame caps.
Why interviewers ask this: The interviewer is evaluating practical reasoning about cooldown timing.
A simple loop reads intent, advances simulation, and presents the result.
- Process current input before gameplay decisions.
- Advance physics with its controlled time step.
- Render feedback from the completed world state.
Why interviewers ask this: The interviewer is evaluating practical reasoning about game-loop ordering.
A fixed step suits simulation that needs stable integration.
- Run physics at a constant interval independent of rendering.
- Interpolate visual poses when render frames fall between steps.
- Cap catch-up work so a slow frame cannot cause a spiral.
Why interviewers ask this: The interviewer is evaluating practical reasoning about fixed-step simulation.
MonoBehaviour provides component behavior and Unity lifecycle callbacks on a GameObject.
- Keep one focused responsibility such as health or movement.
- Expose scene references through validated serialized fields.
- Use lifecycle methods only for work belonging to that phase.
Why interviewers ask this: The interviewer is evaluating practical reasoning about Unity component basics.
A required component should be explicit, validated, and cached once.
- Wire a serialized reference when another object may be chosen.
- Use GetComponent during initialization for a same-object dependency.
- Fail clearly when the prefab is assembled without the dependency.
Why interviewers ask this: The interviewer is evaluating practical reasoning about component dependencies.
Implicit order can expose a component before its state is ready.
- Use Awake for self-contained setup.
- Use Start or explicit initialization for peer dependencies.
- Retest after scene loads and runtime prefab creation.
Why interviewers ask this: The interviewer is evaluating practical reasoning about Unity initialization order.
Each Unity callback should advance the state matching its timing phase.
- Read ordinary input and non-physics logic in Update.
- Apply Rigidbody changes in FixedUpdate.
- Move a follow camera in LateUpdate after its target.
Why interviewers ask this: The interviewer is evaluating practical reasoning about Unity update phases.
Focused components make player features reusable and easier to test.
- Reuse Health on players, enemies, and breakable props.
- Test Movement without inventory and audio side effects.
- Connect features through narrow methods or events.
Why interviewers ask this: The interviewer is evaluating practical reasoning about component composition.
Stable foundations belong in C++, while safe tuning and assembly fit Blueprints.
- Implement shared rules and components in reviewable C++.
- Let designers choose assets and tune exposed defaults in Blueprints.
- Move duplicated complex graphs behind a shared parent or C++ function.
Why interviewers ask this: The interviewer is evaluating practical reasoning about C++ and Blueprint boundaries.
An Actor exists in the world, while a component adds reusable behavior to it.
- Represent a placed pickup as an Actor with a transform.
- Share health through an Actor Component.
- Choose a Scene Component only when the component needs a transform.
Why interviewers ask this: The interviewer is evaluating practical reasoning about Unreal object modeling.
I would extract named behavior and remove duplicated execution paths first.
- Replace copied node groups with functions or components.
- Prefer events and timers over constant polling on Tick.
- Move code to C++ only after measurement justifies it.
Why interviewers ask this: The interviewer is evaluating practical reasoning about Blueprint maintainability.
Unconditional Tick spends CPU even while a feature is idle.
- Use input, overlap, delegate, or timer events for discrete changes.
- Enable Tick only during temporary per-frame behavior.
- Measure necessary Tick code in Unreal Insights.
Why interviewers ask this: The interviewer is evaluating practical reasoning about event-driven Unreal code.
Expose a constrained tuning property while retaining movement rules in C++.
- Give it a clear category and units-per-second default.
- Clamp invalid values through metadata or validation.
- Offer methods for state changes instead of public internal fields.
Why interviewers ask this: The interviewer is evaluating practical reasoning about safe Blueprint exposure.
Convert device input into normalized intent relative to the chosen control frame.
- Read one semantic two-axis movement action.
- Build forward and right from camera or character yaw.
- Let the movement component own acceleration and collisions.
Why interviewers ask this: The interviewer is evaluating practical reasoning about movement input flow.
Trigger jump on the press edge and gate it with character state.
- Do not treat a held callback as repeated presses.
- Consume grounded permission when takeoff begins.
- Handle release separately for variable jump height.
Why interviewers ask this: The interviewer is evaluating practical reasoning about jump input edges.
Trace dash bindings and state entry before changing its timing.
- Log the input with frame and receiving instance.
- Check duplicate subscriptions after enable or respawn.
- Reject dash entry unless state and cooldown both allow it.
Why interviewers ask this: The interviewer is evaluating practical reasoning about duplicate input debugging.
Remember the last grounded time and accept a jump for a short grace window.
- Record a timestamp on every valid ground contact.
- Accept takeoff within about 0.1 seconds of that timestamp.
- Consume the grace permission when the jump starts.
Why interviewers ask this: The interviewer is evaluating practical reasoning about coyote-time state.
Input buffering retains a recent action until a near-future state permits it.
- Store a jump pressed just before landing.
- Attach an expiry such as 0.1 seconds.
- Consume it on execution and discard it on expiry.
Why interviewers ask this: The interviewer is evaluating practical reasoning about input buffering.
Map both devices to semantic actions outside gameplay logic.
- Bind Space and the gamepad south button to Jump.
- Feed one movement vector to the controller.
- Change prompts by last device without changing handlers.
Why interviewers ask this: The interviewer is evaluating practical reasoning about device-independent input.
Locked questions
- 21
Why normalize diagonal movement input?
normalization - 22
How do you find the direction from an enemy to the player?
gameplay - 23
How is a dot product useful for enemy vision?
mathgameplay - 24
How can a cross product guide left or right steering?
math - 25
Why do engines use quaternions for rotation?
math - 26
How would a turret rotate smoothly toward a target?
gameplay - 27
What is the difference between local and world space?
transforms - 28
Why can reparenting move a child unexpectedly?
- 29
How should a projectile spawn at a weapon muzzle?
weaponsgameplay - 30
What is the difference between a collider and a trigger?
physics - 31
A pickup trigger never fires; what do you inspect?
physics - 32
Why not move a dynamic rigid body through its transform every frame?
physicstiming - 33
When should movement use force, impulse, or velocity?
physics - 34
How can a grounded check be more reliable than one ray?
physics - 35
A fast projectile crosses thin walls; how can you fix it?
gameplay - 36
What does a physics layer mask accomplish?
physics - 37
How would you apply temporary knockback without losing control forever?
physics - 38
Why can runtime collider scaling be troublesome?
scalingphysics - 39
How do you prevent walking up an overly steep slope?
- 40
One attack deals damage repeatedly through two colliders; what is the fix?
physicsgameplay - 41
How would you implement a basic hitscan weapon?
weaponsnetworking - 42
Why is collision logic based on object names fragile?
physics - 43
How do you pause gameplay while keeping the menu responsive?
responsivegameplay - 44
Why should different timers choose scaled or unscaled time?
- 45
How would you structure health and damage in a prototype?
prototypes - 46
A character keeps moving after release; what do you inspect?
gameplay - 47
How would you implement one interact button for doors and pickups?
- 48
Why disable ordinary gameplay input during death?
gameplay - 49
How do you debug a null reference appearing only after respawn?
respawnfundamentals - 50
Where should a designer-editable jump height live?
designgameplay - 51
How would you connect movement states to character animation?
animationgameplay - 52
An idle animation flickers with run; what do you inspect?
animation - 53
When is an animation event appropriate?
animation - 54
How would you implement a basic finite-state enemy?
gameplay - 55
An enemy rapidly switches between chase and attack; how do you fix it?
gameplay - 56
What is a basic behavior tree good for?
ai - 57
How would you make an enemy patrol waypoints?
gameplay - 58
A navigation agent refuses to move; what do you check?
- 59
How should a chasing enemy handle loss of sight?
gameplay - 60
How would you set up a simple third-person follow camera?
- 61
Why does camera smoothing use exponential or damped motion?
- 62
How would you display player health in UI?
gameplay - 63
A UI button works with mouse but not gamepad; what do you inspect?
- 64
How would you play footstep sounds without one sound every frame?
timing - 65
What is the difference between 2D and 3D game audio?
game-design - 66
Why use object pooling for projectiles?
memorygameplay - 67
What state must a pooled enemy reset?
gameplay - 68
How can event subscriptions create lifetime bugs?
- 69
What causes garbage-collection spikes in a Unity gameplay loop?
gameplaygcengine - 70
What is a prefab useful for in Unity?
engine - 71
What is an Unreal Blueprint class asset?
engineassets - 72
How would you move persistent player data between scenes?
gameplayscene-management - 73
Why use data assets or ScriptableObjects for shared tuning?
data-assetsassets - 74
What should Git ignore in a Unity project?
gitengine - 75
Why must Unity meta files be committed?
engine - 76
How do you resolve a scene or prefab merge conflict safely?
gitscene-management - 77
What is a basic Perforce checkout workflow?
- 78
What should you check before handing a build to QA?
build - 79
A feature works in editor but not in build; where do you look?
build - 80
How do you approach a scene dropping from 60 to 30 FPS?
scene-management - 81
Why is frame time more useful than FPS when profiling?
profilingtiming - 82
A hundred enemies run an empty update; why can that matter?
- 83
What do draw calls mean at a junior level?
rendering - 84
What is overdraw and how can you spot it?
- 85
What is a vertex shader versus a fragment shader?
rendering - 86
Why can a transparent shader cost more than an opaque one?
rendering - 87
What does a render pipeline do?
ci-cd - 88
How would you make a simple damage-flash shader effect?
rendering - 89
What does server authority mean in a simple multiplayer game?
game-designnetworking - 90
What is replication?
replication - 91
Why interpolate remote characters?
gameplay - 92
What is client-side prediction in simple terms?
- 93
Why should a multiplayer pickup be granted by the server?
networking - 94
How do reliable and unreliable messages differ?
- 95
How would you test a simple multiplayer feature locally?
networking - 96
How should a junior present a portfolio gameplay feature?
gameplay - 97
A teammate changes an asset your script depends on; how do you handle it?
soft-skillsassets - 98
How would you reduce loading caused by an oversized scene?
scene-management - 99
Why should asynchronous scene loading have a visible transition?
state-machineasyncscene-management - 100
How do you find a memory leak caused by spawned objects?
memory