If these weren't stylized, but realistic 3D guns, we would probably go with CAD-soft (Fusion360) or ZBrush for the high-poly part of the pipeline. But as we needed to have clean and scalable weapon models in the end, we decided to go with a Blender-based pipeline and use subdivision surface modeling. Therefore, our steps were the following:
1. Creating the high-poly model,
2. Converting it to a low-poly model;
3. UV unwrapping;
4 Banking maps in Marmoset;
5. Creating the textures (4K) in Substance Painter – we used BaseColor, Metallic, Roughness, and Normal;
6. Rendering again – in Marmoset.