Monday, 6 June 2016

The challenge and reward of third person shooting

So a decision I made early on was to allow that the player play in First person or third person perspective, with a free moving camera to look. It's basically lead to having to develop 2 different experiences. However I have now decided to remove the first person aspect entirely. So I'd like to share some of the many issues I encountered with third person, (in case it helps or is of interest to anyone) and how I came to prefer it over first person.

The initial reason behind the idea was that first person is easier for shooting, and third person easy for looking around the environment for clues, navigating platforms and other general puzzle solving activities. Well initially the shooting mechanic was entirely physics based so it made sense. In other words if you pressed fire then a bullet object would be generated that went in the direction the player is looking. It's clear with this method what the bullets are doing. The only problem with that was: It was absolutely terrible and aiming that way was a tedious chore.

As such this was revamped to have a more traditional shooter feel, which I talked about previously. Basically whatever the reticle was pointing at would become shot. Simple. This was a big improvement. It worked perfectly in first person but in third person it became a colossal pain.

So what were the issues?

1. Obstructions: In first person if you are behind a wall then it is clear that you cant see a target behind the wall, so if you press fire looking at a wall, the bullet will hit the wall. But as a player in third person, When you are looking at your reticle which is pointed an enemy, You press fire expecting the enemy to be peppered with bullets and die - but you might not have noticed that you are behind a wall.

At first I didn't worry about this, and just made it so that your shot would hit whatever was under the reticle regardless of if the player could see or not. It became clear however that this would make the game ridiculously easy, because you could just sit in some cover, impervious to enemy fire and gun them all down without taking a shot. The solution was to draw 2 lines, the first one from where the camera is looking to what is under the reticle (i.e. what the player wants to shoot), then drawing a line from that point to where the player object is in the scene to see if they can see it. If they cant then show the "disabled" red reticle. The player can still shoot but the bullets bounce off whatever is blocking the players view.

2. Visual feedback: Since the "gun" can be behind the player as they move around, and pretty small compared to the first person version, so you cant immediately tell what gun you have selected.

In Escape from BioStation you only get one gun with different abilities you can buy so it make life more simple, and was a case of adding clear Icons to the UI which inform the player what ability they have selected

3. More Obstructions The player being in the way of the gun and what you are looking at and want to shoot proved to be a giant pain for a few reasons: Detecting whether a shot actually hit anything required that you trace from the gun to the target, except if the player is facing the camera then the first thing in the way is the player... also you need to make sure that the shooting effect is set behind the gun and player.

I haven't applied the real solution here, which would be to have the player pointing their weapon over their shoulder. In Escape from BioStation I am going with the excuse of "It's a magic squirrel, of course it can shoot backwards" which is a bit of a cop out to be honest. Maybe if I ever do a sequel I'll sort that out. An interim solution I tried was to have the squirrel rotate in the players hand to look the right way but looked terrible in practice.

The shooting effect was fixed by having another point that adjusts itself in the scene relative to where the reticle appears to be for the player on the camera, and having the bullet effect go to that point.

Once the issues I list here were resolved I found that the combat situations had become lots of fun. Some of the benefits of third person over first person are that you have clear feedback on what is happening to the character in the scene. For example if you are being hit in melee from behind, you can see straight away without needing to turn around. Or if you get knocked down this is obvious because you see it happen, but that doesn't really work in first person, unless you add in some limbs that the player can see the character getting back up which I don't really fancy doing. The other, and greater advantage in terms of game-play is that you can view a scene safely from cover without needing to expose yourself. This is good for planning a strategy ahead of combat, or taking cover from a hail of bullets and checking for when its safe to return fire, or if you want to fire off an ability you can duck into cover and watch the ensuing carnage!

There were a lot of challenges to overcome to allow the player to fight both in third person and first person, but I think that the third person shooting works really well, and I prefer it to first person, which has lead me to the decision to actually remove the first person element altogether. I found that it detracted from the way the combat had come to flow, probably largely due to the fact that I had kept playtesting in third person and reluctantly went into first person as an afterthought to fix any bugs that had appeared.

No comments:

Post a Comment