Advertisement

Third Person Shooter Problems

Started by July 16, 2005 10:57 PM
9 comments, last by Iron Chef Carnage 19 years, 7 months ago
I just hit a real snag in my design of a Third Person Shooter (sort of) game. I want it to be top-down style, similar to Infantry Online if anyone has ever heard about that. A slanted camera angle would be fine, but the goal is to avoid first person and the troubles that come from that. Dodging is meant to be an important aspect, and that can only be done from all angles top-down. The problem now is shooting people. I was planning on using a full 3d environment, but the problem comes with minor bumps in the ground. Bullets would collide into them and the player might not have any feedback whatsoever that they are there. Assaulting something uphill would be literally impossible, as would stopping anything from coming up - your bullets would just whiz over heads. Infantry got around this by having bullets ignore the actual height. Terrain was marked as either passable or impassable to projectiles. You could shoot up ramps, and down them, just fine and still hit the other people. It was able to pull this off because it was done in straight 2d. Somehow they managed to disguise the obvious fact that bullets were defying the laws of gravity, and it worked quite well. It won't work at all in 3d. I could pull it off by leaving everything flat except for distinct rises, but there is still the matter of ramps and ways to get up. It would require locking the camera, something that is an absolute no-no in gamers' eyes. I then thought about changing the control mechanism. The old way would be done with the keyboard only, 2d style. I could make it so the camera is placed behind the player and they aim with the mouse. However, now there's no reason to disallow a first person view. In fact, it would probably be expected. It also completely removes the aspect of dodging things, which I wanted the game to center heavily around. Seeing things behind you would be impossible. With the other things I have planned it will be quite overwhelming at first with the controls, but I believe I have it down so it will be very fluid once the player is used to it. This is why I want to avoid at all costs some kind of angle the player can set to shoot. There would be no way to fit it into my control scheme and still have the game play fluidly. Is there anything I can do I haven't thought of?
____________________________________________________________AAAAA: American Association Against Adobe AcrobatYou know you hate PDFs...
I'm not sure I understand the problem. Does the player character auto-aim at enemies (GTA), or just point in directions (Contra), or aim the cursor (Diablo rouges)?

In all of these situations, it's possible to make the player aim at the enemy, and it wouldn't make much difference if they were up-hill, as the character just aims up automatically when an enemy is in that exact direction.

By the way, I don't agree with your FPS = troubles theory :)
I think third person design is much more work. If not just for the endless amount of animations that must be made to interact with things. You can run and spin and jump all simultaeously in a FPS without ever needing to worry about what the player looks like when he does it. For a good laugh, watch yourself in a mirror while maneuvering in Doom 3.
Advertisement
It's just turn around and shoot, Contra style. Aiming up the hill when an enemy is in front might not work so well, since you will still have to shoot at moving targets. The AI isn't going to be the greatest, but it should at least try to dodge bullets.

As for first person, I guess problem wasn't really the right word. It's just that the game will completely lose the feel I want.
____________________________________________________________AAAAA: American Association Against Adobe AcrobatYou know you hate PDFs...
It seems so simple to me that I must be misreading your problem. Instead of trying to figure it out, though, I'll post my solution and you can tell me why it won't work.

In Doom II, enemies would shoot at you from high platforms. There weren't any elevation controls for the game (mouse/keyboard hadn't been invented yet) and so you'd just line up with a spot on the wall right below them and your shots would connect. Why not translate this into your game? Assume that your character can aim at the right height to hit enemies.

When you issue a "fire" command, the game find the nearest target that intersect the X and Y trajectory of the shot (disregarding the vertical Z axis). Once that target is chosen, then the game actually plots a path between your gun and their body. If it intersects anything else en route (a hillock, a sandbag, a car, or a ninjutsu-based energy shield), then that becomes the new point of contact, and you're rewarded with a puff of dirt or a clang of metal, instead of the smacking sound of hitting a human being.

Is this not an acceptable solution to your problem? The only serious drawback I can see is the inability to choose between two targets at the same heading. If there's a guy on some scaffolding and another guy immediately below him, then the system will have to choose arbitrarily.
Aiming and dodging are central parts of my game. I don't want an auto-targeting system, which is why this idea doesn't work as well. I could just have the bullets float over terrain, but it might look a little funny from some camera angles.
____________________________________________________________AAAAA: American Association Against Adobe AcrobatYou know you hate PDFs...
I don't get it. Whether you flatten the landscape, have the bullets float, or make the guns auto-aim to heights, the results are identical.
Advertisement
Quote:
Original post by Anonymous Poster
you could do walking like in infantry but aiming with the mouse. intersect a ray from the camera to the mouse cursor with the terrain (elevated by a meter or so) for obtaining your target point.

We may have a winner! I was going to let people use the mouse anyway, so it's not that much of a difference.

I will still have to be very careful with level design so that little bumps don't become a major annoyance.
____________________________________________________________AAAAA: American Association Against Adobe AcrobatYou know you hate PDFs...
I agree with Jiia. Any solution to the "bumps in the ground" problem will yield similar results.

You say that aiming and dodging are central to your game. Are you talking about dodging bullets? Can you see the bullets coming at you?

Your camera system basically makes this a 2D game, with a little 3D in the form of ramps, ladders, and maybe some jumping or ducking. Here's the way I see it: There are two major possibilities for bullets flying, and two major possibilities for dodging. Some combinations work, others don't. I'll lay it out as best I can:

Bullets: Either they fly slowly through the air (Contra) or they impact instantly (Goldeneye).

Dodging: Either you arrange not to be where the bullet is (Unreal Tournament) or you do a "dodge move" that makes you momentarily invincible (Star Fox).

These options have the following impact on aiming and dodging:

Slow bullets: This will be a big problem for your aiming system. You'll have to design a system that either automatically or manually adjusts the elevation of the shot. You can't hide it under math and have the machine imagine where the bullet goes.

Within the realm of slow bullets, though, dodging is a breeze. You can either move away or do a ninjutsu flip or deflect them with your amazonian bracelets or whatever you want.

Fast Bullets: Fast bullets can be implemented using an auto-elevation system. It doesn't have to anticipate where an enemy will be or guess what you're shooting at. It can just test for an intersection and give a point of impact based on that. It will lead to good arcade-style aiming controls, leaving the nuance for dodging and using cover etc.

Dodging instant-impact rounds, though, is a little trickier. You can't see them coming and "bullet-time" around them. You can either run like hell and hope to get behind something before they clip you, or you can anticipate an enemy's shot and perform a dodge move such that you're in the middle of a cartwheel when he fires, which will give you a null signal on the "to hit" algorithm.
Use the mouse to aim. When the target is line of sight the cursor is red. When the target is partial line of sight cursor is yellow. Cursor is blue for no target or no line of sight.
When cursor is yellow an arrow is shown to indicate where the target is in relation to the player. For instance, target in on a lower ledge in front of the player. The cursor is yellow with a down arrow. If the player moves foward the target will turn red (into line of sight), if the player move backward the target will turn blue (out of sight).

Easy really
Just another random thought.
I don't like the idea of taget acquisition. It feels too deliberate. For a game like this, with all the dodging, I'd think that "spray 'n' pray" and suppressive fire would have a place. He's dodging bullets, so you fire six bullets at him. With a color-coded "lock-on" system, that would be rendered improbable.

Just have the character target at chest level at the X and Y of the mouse cursor. It would be like a top-down version of Abuse.

This topic is closed to new replies.

Advertisement