Level design/creation using the Physics Engine

I am not an artist and for years I have been subject to writing tech demos and mini games using my programmer art. Thankfully, there are now many quality resources available online at a reasonable cost but what can I do when I want to combine various resources into a richer world? In this case I want to place cars (about 5000 of them) around the abandoned, zombie infested city. There are multiple ways that I could place the objects each with its pros and cons.

1) Use Bullet Collision Engine to find out the height (Y coordinate) at a randomly generated location (X and Z coordinates) and place the object here.

  • This is very fast and could be achieved in real time.
  • Results may be inaccurate with objects possibly sitting incorrectly on the terrain or intersecting other objects.

2) Use a 3D modeling application to place the cars.

  • Requires knowledge of a 3D package such as Maya or Blender.
  • Ultimate control over design and can place objects exactly as required.
  • Very time consuming.

3) Use Bullet Physics and Collision Engine to drop objects into the world.

  • Perfect positioning of objects in world.
  • Not fast enough to do in real time for large amount of objects (I want about 5000)
  • Quick to do offline and provide multiple versions with game to be chosen at random (5000 model matrices saved to file in binary form takes about 324kb)
  • Without extra effort objects are placed at random which can look strange. Even in human chaos one would expect certain patters (majority of cars abandoned in their driving lanes or parked.

For now option 3 is the best choice for me. By supplying multiple layouts for the objects (which may be further broken down into grids) and with the player starting the game in a random position each time it should present the user with a similar feeling/challenge to having a unique world each time.