What is the workflow for hard surface low poly modeling?

Hi, I’m trying to develop proficiency creating assets for video games using Blender, and I feel good about the organic model workflow (create a low poly mesh, sculpt it, bake to get textures, etc). But for hard-surface models where sculpting is not suitable for adding fine detail, what is the best approach? Should I finish the low poly meshes first and then use a copy with subsurf to add the normal map and ambient occlusion content? Or do I begin with the high-poly model and retopologize to get the low poly model? Thanks!