Skip to content

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

timing

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.

cooldowns

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.

game-designgameplay

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.

timing

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.

engineunity

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.

componentsengine

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.

componentsengine

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.

engine

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.

unitygameplaycomponents

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.

engineunreal-engine

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.

componentsengine

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.

engine

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.

gameplayengine

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.

engine

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.

gameplay

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.

gameplay

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.

inputgameplaycross-platform

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.

cross-platforminput

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.

gameplay

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