I’m curious about a certain job title, that of “senior developer with a specialty in optimisation.” It’s not the actual title but that’s essentially what it would be. What would this mean in the gaming industry in terms of knowledge and skills? I would assume basic stuff like
- B-trees
- Path finding
- Algorithmic analysis
- Memory management
- Threading (and related topics like thread safety, atomicity, etc)
But this is only me conjecturing. What would be the real-life (and academic) basic knowledge required for such a job?
I interviewed for such a position a few years ago at one of the Big North American game studios.
The job required a lot of deep pipeline assembly programming, arithmetic optimization algorithms (think Duff’s Device, branchless ifs), compile-time computation (SWAR), meta-template programming, computation of many values at once in parallel in very large registers (I forget the name for that)… You’ll need to be solid on operating system fundementals, low level system operations, linear algebra, and C++ especially templates. You’ll also become very familiar with the peculiar architecture of the PlayStation3, and probably be involved in developing libraries for that environment that the company’s game teams will build on top of.