I figured the best place to start with the highpoly for this environment would be on the rocks as they serve the majority of the foundation in the scene. I began by creating a simple rectangle in Maya that was roughly the length, width, and height that I will want the final rock to be, subdivide it so its quads are even, and then export in to ZBrush.
Once in ZBrush I select the trim smooth border brush with a focal shift of about -83 and a very large size and begin to quickly and roughly chip away the blockiness of the imported rectangle. The trick is to stay at a very very low polycount during this stage, using dynamesh when needed but never going very high on the polycount. I will then spend some time appending the same shape to the model, using dynamesh, and sculpting, over and over until I have a rock formation that has an interesting silhouette from all sides. Because I will be using custom rocks for this scene instead of just tiling textures, it is extremely important that the rocks are interesting with viewed from all angles, this way I can duplicate, rotate, and scale the same rock many times and give the illusion that it is a lot of various rocks instead of just one.
Next I will dynamesh one last time to make sure I have a clean topology, and then I will subdivide up to 4-5 million polygons. While going over this might give you greater detail on a very zoomed in level, a lot of those details won't wind up coming over in your bake anyways, so I find 4-5 million gives you good control and performance while still offering enough polygons to get some great detail in the mesh.
I then work on detailing the mesh with various alphas, applying noise, using morphs, and then lastly adding in cracks and very small detail.