Viewports are especially something a good gun game needs, as well as any game that’s in first-person. Viewports are mostly for cosmetic reasons, and they can make the guns have a better perspective for the player holding them, such as aiming right where their camera is facing.
A great example is a Rocket Launcher, which in the viewport looks really big, big enough to cover a good chunk to the right of your screen, and both of your character’s hands are carrying it. This example weapon looks fierce and has a sort of tank-classed presence.
Another example is a Pistol, which in this viewport looks rather small, and your character is holding it with one hand, maybe doing some cool tricks with it as a type of inspect event, or reload event. This example weapon looks less threatening, and has a self-defense presence from it’s small size and lack of firepower.
I actually made a hitscan weapon that is a rocket launcher, but instead of shooting projectiles, it shoots a beam which explodes at the end of the beam shortly after. It doesn’t have any viewports or anything fancy since this is for anyone to insert into their games for themselves, but I can definitely tell you that Raycasting is critical for shooting games, otherwise cheaters can shoot at anyone from any area from any distance, all without looking at anybody.
I think inaccuracy in the guns is also necessary, as you don’t want someone sniping with a revolver from far away. Inaccuracy also makes weapons like the Shotgun possible, which is infamous for being a random bullet spread weapon in many games.
Critical hits on headshot is a good kind of feature to implement, as it rewards accuracy. This is usually hard to do with most guns, which is why the Sniper rifle would be a decent gun to include for such mechanics.
A endless roaming based gun game is fine, but also including other objectives like a capture point will make it more fun for players. Something I haven’t seen in games before is having no defined end in gameplay, but instead a few objectives you can complete which don’t end the game, but instead provide passive buffs like extra cash for kills.