Texturing for small objects (pickups and enimies) can easily be done UV-unwrapping the model, and use a texture of reasonable size to make the model look good. But how can texturing be done for the world? Covering a large building with one texture would require a huge texture (otherwise it will look blurry), and a lot of it will be repeated (brickwall textures, wallpapers ...), so that approach seems inefficient. Assigning different textures to different faces may be slow, since there cannot be a texture switch within the draw call.
I am targeting OpenGL 4 or later. I prefer good looking stuff rather than extremely high framerate: I aim for 30 fps, but perhaps with motion blur (which I guess requires four times that).
Tiling would work, but then there are some parts of the mesh which requires some other texture. And then I need to switch texture.