What would be a good algorithm for calculating the recoil of a shooting guns cross-hairs?
What I've got now, is something like this:
- Define min/max recoil based on weapon size
- Generate random number of "delta" movement
- Apply random value to X, Y, or both of cross-hairs (only "up" on the Y axis)
- Multiply new delta based on time from the previous shot (more recoil for full-auto)
What I'm worried about is that this feels rather predicable, what other factors should one take into account when building recoil? While I'd like it to be somewhat predictable, I'd also like to keep players on their toes. I'm thinking about increasing the min/max recoil values by a large amount (relatively) and adding a weighting, so large recoils will be more rare -- it seems like a lot of effort to go into something I felt would be simple.
Maybe this is just something that needs to be fine-tuned with additional playtesting, and more playtesters? I think that it's important to note, that the recoil will be a large part of the game, and is a key factor in the game being fun/challenging or not.