Some Combat FPS Tips
Hey again, everyone! Today I was discussing general FPS creation tips with my co-workers at Insomniac (fellow designers and some programmers), and realized it might be handy to pass them along. So, here they are!
Note, these are more centered around a traditional combat-focused action FPS, but perhaps people will find some use in them even if you're not planning on doing something like that. (or maybe flip them on their heads to do something crazy)
1. The defensive capability of a player has way more influence on your level design than the offensive capabilities or even enemy types, so keep this in mind when you're getting started. Do you have health regen? A cover mechanic? Is your damage model high or low? When the player is about to die, what will they DO to survive based on how your game works? This informs how you approach environment construction considerably.
2) The visual bullet trajectory may start at the gun, but the trajectory used for collision must start at the eye. (Otherwise you end up hitting obstacles that don’t look like they’re in the way)
3) Camera FOV is an incredibly important decision that will effect everything from your art style to your control scheme to your overall mood, so give it serious and sustained thought early in the development process, make an educated decision, and then stick to it or the whole thing is bound to collapse on you.
4) Always look at everything from the player’s camera height (usually 1.75m depending on your metrics), and FOV. ALWAYS. Build the entire world to this view. It's easy to accidentally build something that looks great with the scene camera but falls apart when you get in game.
5) Avoid more than 30m of flat ground (in an actiony, combat sort of game where you're on foot mostly)
6) Make sure there’s enough room for maneuverability. Often rooms in FPS’s tend to be 2x scaled in X/Z and 1.5x scaled in Y. Props often tend to be 1.2-1.5x scaled to compensate. Watch for low collidable objects – push chairs into tables for instance. Work on your movement code so that the hero cleanly slides through environments with complex collision rather than sticks on everything. Obviously the scale thing is dependent upon the normal player movement speed – slow survival horror allows tighter scale (RE), cover-based shooters are in the middle (Gears), non-cover mechanic shooters need the most room (Halo).
7) Keep action on-camera. Be aware that it’s really tedious to turn around in FPS games and you have ZERO awareness of off-camera action (and it’s expensive to build things the player won’t see).
8) Asymmetrical spaces. Make player choices meaningful. Two pieces of cover at the same distance on the same plane facing the same front aren't meaningful. Note: in order for choices to be meaningful, the player has to be aware that they exist – they have to SEE the choices when they walk into the scenario.
9) Every space should be significantly distinct and strategically different. Surprise the player often. Killing should be incidental. Your mission should always be to do something interesting that’s not killing. Shit should go sideways every so often (missions should not play out the way that you told the player they’re going to play out)
10) It's surprisingly tricksy to figure out what the player is looking at just based on their viewport, so if you're doing anything like triggering an event when the player looks at something, keep in mind that you'll have to handle distinguishing *looking* versus a chance pan.
11) Getting meleed from a bot from behind suuuucks. In the heat of battle, people won't notice that you're conveniently having enemies try to get into camera view before attacking, and they'll appreciate knowing where the threat is.
Edit: Tips collected from me (Lisa Brown), Joel Goodsell, Ron Pieket, and Sonny Sidhu.