Quick project I needed to get 3D energy out of my system after a long camping trip! I used Blender's BoxCutter to get all of the main shapes and then sent it through Zbrush for slight wear and tear and to boolean and remesh stuff since I was moving quickly.
If you wanted to use it for a game, the only things you'd want to/need to do would be retopo'ing the frame of the gun and rigging it.
Blender (w/ BoxCutter) -> Zbrush -> Marmoset -> Painter -> Blender