[...] And if they do make it in blender or something else, how do they create things that you can interact with such as a moving elevator or a button that opens a door?
This question bothers me too.
Let's say there are two ways of creating a 'level':
First one, you create all game objects, like characters, cars, buildings etc. within blender. Then you could load each 3d model seperately into your code and create the actual level! (Obviously you must create specific methods)
Second one: you create the whole level within blender, including all the game objects I mentioned before. This way would be rather easy, because you have one big .obj file, so blender is in this case your 'level editor'. you dont need to develope your own. But how do I interact now with certain 'parts' of the level?