After almost a year of working on this mistitled game, the next build of Counter Sniper will finally include the sniper enemy variant. I did an article a week or so ago about what I had done to make the normal enemies more visible to the player, but the sniper took a special touch compared to the others.
Since the sniper is spawned into the levels particularly far out, they need more visual cues than the rest.
Originally, I had a very obvious laser sight attached to the snipers rifle so the player could very quickly trace the beam from the vulnerable client back to the assassin. It was an easy solution, but it doesn't work quite as well in the survival mode when the sniper is pointing at you and shining the laser directly into your eyes.
So, I had to go a different route that was less subtle than a brick through a window. In the survival mode, I switched out the laser for a “laser glint” to give the player a hint about the snipers location even on dark maps where the eyes don't easily give them away. Snipers, being the most accurate enemy, needed an ever-present cue, and couldn't I couldn't rely on their “yell” to give their position away, because they have a good chance to kill the player on their first shot if the player isn't paying attention.
Aside from the visuals, the sniper variant has a tweaked script. All of the enemies work on a fairly similar script, point at target, shoot if line of sight is clear, die when shot, etc, and they're all tweaked slightly differently. First, the sniper has a longer delay in between taking shots. The pistol-wielding grunt will take shot after poorly placed shot over and over every half second or so until they are taken out, but since the sniper shots aren't so easily avoided. So, the player needs more time to collect themselves after a near miss, or ideally before a non-miss.
Next, the sniper has considerably lower kickback than any of the other variants. The kickback function adds a few degrees of randomness to the angle the enemy is aiming when they take a shot. The sniper has virtually no randomness added to their shot, mostly just to give them a real chance at hitting the player since they are spawned in so far from the player, but primarily to make them a real threat as compared to something like the grunt.
The sniper also has the biggest muzzle flash and hitbox of all the enemies. The muzzle flash has always acted as a literal flashing “HERE” sign to give away positions. It's another flashing neon kill me sign along with the “yell” and the “glint”.
Anyway, I think that's about it, or about all I remember. If you want more over-explaining tiny details, please give me a follow on IndieDB for updates, join our Discord to tell me that I spelled “Designing” wrong in the header of the last article, or follow me on Twitter in the vague hope of some extra content.
Also, you know, play the demo.