There are currently no tutorial of how to do this, but if you look at the files for vanilla guns and ships the numbers everywhere is pretty logical.
So, if I remember correctly, the basic setup is:
1. The .wpn file, this one describes the type of weapon you use; what the weapon will be named in internal references (use a unique logical name such as mymod_gatlinggun), what type of weapon, which sprites to use and any details regarding basal animation, which sounds the projectile firing will use and which file describes the projectile itself and where it can be found.
2. The .proj projectile file: this one describes properties of the projectile in much the same way as the .wpn works, you need to have a unique name, and you need to set the sprite to be used and where it can be found, the parameters for the sprite and finally the various parameters for the shot itself (if it is a missile you set how well it will track, how the engines will be placed etc.).
(for both of the files above I recommend you look through all the parameters carefully and learn what they do by trial and error)
3. The weapons_data.csv file, this file gives the details regarding what stats your gun will have, ie. flux drain per shot, damage per shot, projectile speed etc.
Contrary to the other two file types the weapons_data.csv file says exactly what each parameter does in the top. So when it say
"name,id,tier,base value,range,damage/second...." the "name" part is what is displayed in game, the "id" is your weapon name ID in the .wpn file, the tier is what tier you want it to be, the base value is what it will cost, the range is the range of the weapon, the damage/second is naturally damage per second (only applicable for beam weapons). Each comma separate a value so be sure to not remove or write any extra commas, and use punctuation for making decimal numbers. So if you make a super beam laser that you could fill it in like "Superbeam,mymod_supebeam,2,10000,750,500....". I suggest that you do not use excel to modify the .csv file, as excel is prone to *** it up, atleast in my opinion.