I'm getting feedback on my game which has Action RPG elements (think Diablo, Torchlight, etc.) but you control a team of heroes. When you kill enemies sometimes new weapons will drop. In my game the DPS of the weapon will be randomized but stronger the further you get. Each weapon type has a hard coded range and rate of attack, but it differs between types. As an example, every Pistol will attack once per second and every Machine Gun will attack 5 times per second.
Here you can change the range and the rate of attack, but the DPS is still going to be based on the level of the enemies. In the end, it's still not going to matter which weapon you choose because they'll all have about the same DPS.
If I make it so they don't have the same DPS, then yeah, there will be reasons to change weapons, but it'll be because some weapons suck and some weapons are good. I don't think this puts me in a better place.
Damage and attack speed are one way to provide a pro/con relationship -- high damage/slow rate of fire versus low damage/high rate of fire -- for example. But that relationship can be a mathematical no-op if the resulting DPS is the same. If you put weapons out of alignment, such that the DPS is not always the same, then as you said you have an obviously better weapon.
So, consider adding further attributes or effects to weapon types, or to the combat system in general. For example, if your game supports the idea of "% chance to do X on hit" effects, that can allow you to drop the overall DPS of "fast" weapons, since "fast" weapons would make up for that by affording more opportunities for the "% chance" roll to trigger. Thus, the player has a choice between a weapon that offers a higher pure DPS or one that has a lower DPS but a higher overall chance of triggering on-hit effects.
You can also apply certain kinds of effects exclusively to certain kinds of attacks. For example, in Skyrim, each flavor of magic (fire, ice, lightning) has a unique side-effect. Fire magic causes additional damage over time via burning, whereas cold magic slows the target and lightning magic reduces the target's own mana pool. This provides a choice for players, even though the overall DPS (ignoring resistances) may be the same: they get to choose a style that complements how they want to play, either a brute force approach via fire damage or a more subtle one via cold spells.
Consider allowing certain kinds of skills only with certain kinds of weapons; relate those skills to the nature of the weapon in real-life. Daggers, for example, could feasibly be thrown and might have a few range-related skills (but you're not likely to be hurling your giant two-handed sword around; perhaps it would have instead skills for rendering foes immobile by damaging or destroying their limbs).
And then there's damage type you could model: piercing versus slashing versus bludgeoning damage. In D&D, certain creatures could only be hurt with certain kinds of damage. While that might be too draconian for modern games, you could incorporate some amount of that flavor.
In general, a game can be broken down into two dimensions. Depth, and required knowledge. There is generally a positive relationship between depth and engagement with the players, however depth is usually accompanied by additional required knowledge. There is a mostly negative relationship between burden of knowledge and player engagement and retention.
Requiring that the player learn some things in order to play your game is fine, however things can get out of hand quite fast. Just look at the genre of fighting games. One must learn a large number of button combos just to be considered competent at the game. It can get quite overwhelming for a new player.
Depth is often provided by adding things to the game. Adding mechanics, adding equipment, and adding hazards to the environment are all examples of methods for adding depth to a game. In any scenario where two options are not identical (such as a non-symmetrical battleground, or different weapons), a lot of care must be put into the balance of the game. More options means a more dire need for balance.
Not only is balance necessary to make PvP a fair and fun experience for all players involved, but it's also necessary to make a single player game a fun and engaging experience for the player. If you can progress in a game by simply mashing a single key, or if you can use any equipment without regard for its stats, then that aspect of the game is not engaging at all.
Your players have submitted complaints about bland and unvaried weapons in your game, which is a symptom of the lack of depth. I gave the prior exposition so that you might have a better idea of how to fix this issue.
The best way to figure out why your game is lacking depth, and how to fix it, is to look at other games in the genre. See what that game has that engages their players as well as it does. Try to extract the essence of it so that when you apply the same concepts to your own game, it doesn't seem like a rip-off.
I'm aware that your game uses guns as weapons, but let's take a look at From Soft's Dark Souls series as the concepts applied there are valid for almost any game to some extent. Each weapon falls into a general category that more or less dictates the style of weapon. There are swords, greatswords, katanas, clubs, giant clubs, bows, crossbows, and more. Each major category dictates how the user wields and uses the weapon by changing the animations for each weapon. This makes each weapon category feel significantly different.
However, it gets more deep than that. Individual weapons within the same category might use a varied version of the category's standard move set. In Dark Souls 1, the Uchigatana and Iaito have almost identical stats, but they have different movesets. Even though the Iaito has two or three less damage than the Uchigatana, some prefer the different moveset.
The other answers touched on this, but further distinction is made between weapons by factors beyond raw DPS and attack speed. In Dark Souls, weapons can apply status effects such as bleed or poison. While most katanas have very low DPS when compared to other weapons, the Uchigatana builds up your opponents bleed meter. When the meter fills (which happens in 4-6 hits), the opponent loses a large chunk of health. Bleed still builds up even if your opponent blocks the hit too. This makes the Uchigatana very useful against shield turtles. The main reason why I use this example is that you can make weapons that require specific counter-play. For example, you could make low damage bullets or projectiles that ignore or remove armor from their targets. Even though they have objectively low DPS, if your opponent builds armor then these penetrating bullets will have higher DPS than normal bullets. To make matters even more extreme, you could make bullets that not only ignore armor, but deal more damage based on how much armor your opponent has. Just food for thought.
Additionally, there are multiple methods of striking your opponent in Dark Souls. You can hit people with basic attacks like you would expect, however there are also things like backstabs and ripostes. These are considered to be "critical" attacks, in which the damage you deal is multiplied by your weapon's critical modifier. A dagger has very low base damage, but the critical multiplier is so high that you can oftentimes kill people in a single critical with a dagger.
Now obviously, your game employs the use of firearms. You can find very similar qualities in the weapons found in the Unreal Tournament series. Outside of the basic machine gun, all of the weapons are perfectly viable for use in a fight. Each weapon fills a specific niche, which may make you better off with a given weapon depending on the situation.
There's a large number of dimensions that you can manipulate to change the feeling of different firearms. You can change the firing speed and mode of course, but you can also change things like how the weapon affects your player when fired, such as recoil and knock back. You can also modify the projectiles too. Not only can you change the damage they do, but you can also make the projectiles do special things. You can make slow projectiles, projectiles that are affected by the environment (wind, gravity), projectiles that you can charge (like the Unreal Tournament bio-rifle), projectiles that explode on contact (like a rocket launcher), or projectiles that erupt into many smaller projectiles upon landing (the Unreal Tournament flak cannon and bio-rifle again). There are plenty more that you can play with, but these are the first ones to come to mind.
A very difficult problem with building depth of choice into your gameplay is that you risk creating first order optimal strategies (FOOS). Put simply, a FOOS is an easy to execute, highly effective, and difficult to counter technique or style of play. Dark Souls is a prime example of what issues arise when severe imbalances in the equipment system lead to FOOSs. Since Dark Souls is predominantly single player, it's not a severe issue. However in a multiplayer setting, FOOSs can kill a game. The only real solution to the problem of FOOS in a deep gameplay architecture is extensive play testing. Simple number crunching can't match the ingenuity of players.
The answer to the complaint of "these choices aren't unique enough" is usually to make the choices you offer more unique. Look at other games that are similar to the one you're working on and see how they provide depth to their gameplay. If your current toolset is insufficient, you might want to consider improving the capabilities of your toolset.
If you can balance your gameplay by merely running your different weapons through DPS calculators and making sure they are close to equal, then you are likely doing something wrong. You aren't providing room for more skilled players to flourish by providing more difficult or risky weapons that have higher damage potential.
7fc3f7cf58