August 10, 2018

Myrne 6313 - Guns accuracy, recoil...


Hey everyone!

Since I worked on very boring, UI related stuff those last few days but I promised to talk about the game in a regular basis, I guess I'll have to find something to talk about :D

No worries, since the last couple of videos I showed, I drastically improved the gun play of the game. So let's talk about that!

The bad

Accuracy

Since Myrne 6313 is an RPG, the gun play is tied to the player's stats. This, of course, mean the damages dealt by weapons will vary with your stats and skills, but also that your accuracy will be based on your dexterity.

The UI is now cleaner and I reworked the equipment window

What I previously did to reflect that was to add an "imprecision" angle to each weapon, and decrease that angle the higher the player's dexterity was.

Movement

In the meantime, I was having issues with player movements in fights. Most fights consisted on shooting at enemies while walking backward to avoid being hit. So, I added some kind of recoil to most of the guns. When you fired a shot, your character stopped moving for a very short delay.

Items management

And I had a third issue, which was tied to how I manage the data of my items in the game (I'll probably talk about that some day, ScriptableObjects in Unity are awesome!), which means, at that time, same weapons couldn't have different... things. Like, if you shot your "kinetic pistol" and left 3 bullets in the magazine, every "kinetic pistol" in the whole game would have 3 bullets left. For that reason, weapons didn't use magazines and just used ammo from your inventory.

All of that was... not good!

Every weapon felt inaccurate and improving accuracy of a weapon rendered the dexterity stat pretty much useless and getting stopped each time you took a shot was annoying.

So, what did I do?

The good

I reworked the whole damn thing. I took a look at how other games handled those issues (mainly Enter the Gungeon and... Fortnite, yup, a third-person shooter) and I ended up adding a crosshair, which somehow fixed mostly all my issues ;)

Accuracy


I kept that idea of an "imprecision angle" but binding it to a crosshair changed everything. The imprecision is now visible, which means I can take some liberties with it and actually show it to the player.

The imprecision angle is represented by how wide the crosshair is. It gets wider when you're moving, after you take a shot and I might add the ability to hold the right mouse button to slow down and aim more precisely, I'm not sure yet.

On the left side, I'm standing still and the shot is guaranteed to touch that monster.
On the right, that's what happen when you move and just take a shot with the pistol, next shot will not be accurate (and you can see the bullet shot isn't heading to the middle of my crosshair) ;)

It progressively narrows down if you're not doing any of those things, with a minimum defined by the weapon itself (and probably some passive skill(s) that will let you improve your aim).

That way, improving dexterity for a better and quicker aim is a thing you'll want to do, but at the same time, it's possible to take a perfect shot if you want to (and have a precise weapon).

Movement


Shooting some weapons will slow you down and decrease your aim, adding more depth to fights since you have to find the best moment to shoot, take the risk to stand still to take better shots and now when to... reload your weapon...

Items management


I will not get into the technical details today but I better understand ScriptableObjects now and have gained more freedom with the game items. So, the guns now holds ammo and have to be reloaded after x shots.

Reloading a weapon slows you down.

Last words

I'll try to make a video that show all that and in a less boring way than my endless babbling :D

Edit: done ;)


See you next time!