Skip to content
RED SAGSkills
hardGame Developer interview question

How do you use multiple CPU cores in a game without race conditions and with real speed-ups?

What the interviewer wants to hear

  • Use a job system with a worker pool rather than many raw threads
  • Split work into data-parallel jobs over arrays of plain data
  • Express dependencies between jobs instead of locks
  • Main thread owns engine objects; jobs read input and write separate outputs
  • Watch for false sharing, too-small jobs and sync points that stall
  • Profile with a timeline to see core usage

Model answer

I avoid creating threads per feature and use a job system: a pool of worker threads, usually one per core, that runs small jobs. Good candidates are data-parallel tasks like updating thousands of particles, animation, culling, pathfinding or AI sensing, where the same code runs over arrays of plain data. Each job reads input data and writes to its own output, and ordering is expressed with job dependencies rather than locks, which keeps it free of races and deadlocks. Engine objects stay owned by the main thread, and results are applied there at a sync point. In Unity I would use the Job System with Burst and NativeArrays, whose safety checks catch races; Unreal has its task graph. I watch for jobs that are too small, false sharing on the same cache lines, and early Complete calls that stall the main thread, and confirm gains in a timeline profiler.

Can you answer it under time pressure?

Take a timed hard round and get scored on every answer.

Start mock interview

More hard Game Developer questions