Tag Info

Hot answers tagged

35

The general approach to handling this in classic Win32 programming is to capture the mouse delta each frame, and then reset the mouse position to the center of the screen. You also want to make the mouse cursor invisible, obviously, as otherwise things look ugly. You can do the same thing in XNA, you just work with a slightly different interface. So you ...


21

"How to Program Independent Games" is a really good presentation from Jonathan Blow (creator of Braid) about how to take on the development of a game by yourself. My best advice would be to make the smallest FPS you can (with any language/engine) and then expand on that. Try Unity. That seems like the fastest way to make an FPS these days. Another way to ...


19

Gah! Don't change pitch. At all. Unless you want the player to feel like they're playing a drunk, and fighting the camera. Your focal point is set by the player's control, don't change it. I'm not even sure it warrants a 'formula' - I think you'd be better served with some predictably random motion. Look into low frequency Perlin noise to generation your ...


17

I went to a GDC session this year presented by the guys at sucker punch, discussing how they handled assisted aim and movement for inFamous. My understanding is that Halo uses a very similar system for assisted aiming, and here's the basics: When you hit a button to fire, the shot should always go directly where the reticle is pointing. Otherwise, players ...


17

It has been done before. :) Check out the specialists, a half life mod that has two different bullet time powerups. EDIT to include zzzzbov's info below The way bullet time worked in "The Specialists" from a gameplay perspective was that the player could get powerups that would give limited amounts of "bullet time". When used, a bubble around the player ...


15

Think you're lagging now? Just wait 'till you have to get real-time occlusion information from the server. Now you can walk around from behind a wall and bad guys will suddenly pop into view as the server catches up and sends you the updated occlusion data. So my snarky comment tells it all. Likely the primary reason not to do this is lag and server load. ...


15

Shoot a ray from the camera through the center/reticle into the world. Find out where in the world it hits. Fire the bullet from the gun's muzzle at that point instead of straight out of the gun. Bonus points for animating the hands and gun to point in that direction while aiming around so the bullet still looks like it's firing straight out of the muzzle ...


14

Simple answer: cheat or don't be that accurate! If you've played some shooter online, you'll most likely have experienced the so called "rubber banding" if your connection to the server is bad. This is caused by your client correcting your position from time to time. Basically, what happens on the two sides: The server will track your movement and send ...


14

Part of the reason has to do with the simple fact that games favoring real, or plausibly realistic, guns are currently popular right now (perhaps owing to the success of similar games). That reason is a bit anthropological in nature, so I won't comment on it further. Another large part is, as you said, these guns basically fulfil key mechanical roles: An ...


12

It could be that your scale is off. If you are looking at a brick and it seems to fall slower than it should, you may just have it scaled larger than a brick should be. I had this problem when I was working the physX engine. My entire scene was about 3x too big so I scaled it down and it worked. If 16 seems better than 9.8 but you want to use 9.8. Just ...


12

It's doable, and has been tried in research before; for a comparison of interest management schemes, see http://dl.acm.org/citation.cfm?id=1230069 As Byte56 said, it may require more CPU, but it may reduce your bandwidth, and reduce the likelihood of wall-hacks. And as Byte56 said, an interest area strictly limited to the player's occlusion-area may ...


12

Strategy games usually send input, while shooters usually send gamedata. However there are exceptions. For example Halo : Reach runs in lockstep in some online game modes, sending only input. There are multiple reasons for this: Shooters have a lot less game data than strategy games It's easier to keep the game in sync It reduces lag as long as the game ...


11

Entities typically represented by a capsule (cylinder with spheres on the ends) against world geometry (or a simplified collision mesh) for world-ent collision. Stairs are usually either no-collide with an invisible ramp, or below a certain height you usually get a lift up as a side effect of collision resolution. (you'll get interpenetration with movement ...


11

Realism isn't always the primary goal in game design. Often it's providing the maximum fun possible. Having said that, it does seem a little odd that shooters like S.T.A.L.K.E.R. CoP do this, and then make the ballistic system very realistic in all other regards.


11

I can't think of any game that has bullet time in single player that transitioned it successfully to multiplayer in any meaningful way. There might be a few of them that solved it by speeding up the player using it, but that kind of defeats the point. Bullet time exists because you want to make the player feel like a badass. You're giving the player a ...


11

It's "persistent world". Also note that there is phasing, the world is usually divided into many zones all ran on different servers. Also, this isn't really gamedev related at all.


10

Fundamentally creating a game with a one man team isn't really any different than creating a game with a huge team other than the fact that you don't have as many (or any, really) specialized people or parallelization of tasks. The decisions you would make here are the same decisions you would make if you were running a team who's goal was to get to ship as ...


10

Although I think this is a very subjective question, the ways I can think of creating them are: As you said, billboarding a plasma sprite and using a bloom shader Creating a particle system and using a bloom shader (will look better than above, but takes more power) Both, which by looking at the picture, I'm inclined to believe is the method used in that ...


9

They do exactly what you've just said - either one of those two approaches, or some compromise between them. (eg. accept a small delay and interpolate where possible, and extrapolate when the ping exceeds that delay.) Instead of jumping (also known as 'snapping') back to a corrected position, you typically do some sort of interpolation between the wrong ...


9

Mouselook is now supported in Chrome and Firefox via the W3C Pointer Lock specification. Essentially: document.onmousemove = function (e) { document.body.innerHTML = "<div>dx: " + (e.movementX || e.mozMovementX || e.webkitMovementX || 0); } document.body.onclick = document.body.requestPointerLock || ...


9

I created a basic FPS a while ago and got to the point of creating weapon models too. What you will want to do is to create a 'world model' which is the model actually seen on the character in the game, and a 'view model' which is a high detail model that only the player sees. These Viewmodels should be aligned to the camera during creation, so you know ...


8

There are good answers here. I had to figure it out for myself on the project I'm on, but came to the same conclusions as the Sucker Punch guys (and I had thought I came up with something novel. Baww :( ). I find it useful to consider your entire first person 360x180 degree "panorama" as an "acceleration field". All valid targets create gravity wells which ...


8

I'll state the obvious - FPS games are doing the best they can within the limitations of a single 2D display device. The interesting part - this might change soon thanks to the Oculus Rift project - a VR headset for games. I've seen info that DOOM 3 is fully supported (due to Carmack's involvement) and that Hawken has promised support. There is also work on ...


7

Yes. The typical model for multiplayer FPS in AAA titles these days is peer-to-peer multiplayer (where one player is chosen to be the server, and all others are peers relying on that player for synchronized updates). You can use this model in an XNA game for the XBOX 360. You can get started at the networking architecture for XBOX XNA samples. There are ...


7

There is a similar concept in many games; that you don't have to explicitly do every little thing. Some things can be assumed, ie. unless you are literally under fire all the time, you will have time to consolidate those 15 rounds into a single magazine. The fact the game doesn't show this is for the exact reason you've already highlighted: sitting down and ...


7

I'll take a stab. First, it looks like there is a very low-poly mesh used for the actual bullet. It's textured with a partially transparent texture. It's rendered far more brightly than other things in the scene. The texture may even be animated. The 'tracer' may be a simple texture that is not normal billboarding. I think if you rotated this tracer about ...


7

There are many causes of nausea. Here are the environmental factors to consider: The larger the screen, the more likely to cause nausea. The closer the user is sitting to the screen, the more likely to cause nausea. The darker the room, the more likely to cause nausea. Third-party viewers -- non-interactive passengers -- are more likely to experience ...


6

Code quality first and foremost That's a lot of duplicated code you've got going on there. If you've got duplicated code, you need to do it differently - duplicated code is dangerous (you'll change one side but forget to change the other and get logic errors). If you've got duplicated code down both ends of a conditional, take it out of the conditional. ...


6

Isn't it as simple as rendering your gun geometry (or 2d HUD style gun) near the camera and narrow the field of view.


6

To implement this technique you'd just want to adjust the view slightly every frame by some smooth factor, typically along axes that lie within the plane of the viewport. In other words, you want to adjust your camera position upwards and rightwards by some small periodic factor whenever the player is moving. The sine and/or cosine functions can work well ...



Only top voted, non community-wiki answers of a minimum length are eligible