Game Asset Workflow and Software Pipeline
There are many ways. Sometimes, I use this way:


model low poly first
UVunwrap it
texturing
In properties panel, go to "data" tab and then "UVmaps", add a second UV map 
by clicking on the plus button, highlight it by clicking on it, unwrap the 
low poly model for a second time for a good unwrapping because of the 
texturing
create a new texture and bake "textures" and normal maps
Remove all materials and the second UV map 
duplicate the low poly
add more details to the second low poly models
bake normal map of the the high poly mesh on the low poly one