When working on environments in general, you want to take advantage of tileable materials. This means you have for example, a general wood material that tiles in all directions, which you can place on any mesh that requires a wood material. You need to build yourself a set of tileable materials for what you need (i.e. wood, metal, concrete, etc.)
These tileable materials should have both macro normals and detail maps; the detail maps will make the material look good at close proximity to the camera as you require (very important for first person games).
For very large objects that require more texel resolution, you will simply tile the material more or less as needed. A technique that is popular these days at studios, is the use of wear/grime masks. these are used to break up the repetition usually found when using a lot of tileable materials. You can create masks like this easily with something like Substance Painter or Substance Designer (a tool that has become popular like wildfire within the AAA games industry). Also, since you’re creating an urban environment, I recommend using decals to break up the repetition of your tiling materials even further.
Good luck with your project, hope those tips help!