My favourite trap question for conferences is how to TDD GUI and game development, every single aspect of it.
Don't write any kind of code, none of it, without a failing test first is the motto.
Don't write any kind of code, none of it, without a failing test first is the motto.
Not only does it test your game under sort of realistic conditions; it also gives you constant feedback on whether the game is fun, interesting, engaging — something that's infeasible to test by code.
Development of a game engine is a different matter, and affords itself to classical TDD, to my mind. You can write formal tests ahead of time, because you can feasibly understand what you want to be implement before you implement that.
No code before a red unit test.