Gauntlet mode: Level generation tweaks (and stuff about zooming with off-centre reticles)

Gauntlet tasks to do before initial release

Get local games fully working
Object for holding game state in Gauntlet mode
Auto-repair system + vehicle swap ability
Gauntlet game flow from menu to end
Score system
Level generation tweaks
– Update scrap drop system
– Item unlock system
– Update How To Play screens
– Test and balance gameplay
– Music?

Level generation tweaks

Honestly not much to say about this one as I’ve already talked a fair bit about the level gen in Gauntlet mode in a few older posts. The work I’ve been doing on level gen recently is mostly code modifications that aren’t very interesting to blog about – Just trying to generate nice levels and balance the game mode.

Zoomed in view

So I’m going to talk about something that’s a bit more suited to a blog post.

Ever since Operation Flashpoint or even MDK to some extent, first-person shooters have tended to have an “aim down sights” mode where your view often zooms in a bit, it brings up your gun as if you’re aiming down the sights, and you generally get some increased accuracy.

I’m not doing that, because the last thing I want is for close-combat vehicle fights to be full of confusing zoomed views of the action just to get slightly less bullet spread. And it’d make no sense to aim a gun first-person style in a third person game. But in Gauntlet mode there are some large areas and I noticed that I sometimes had trouble lining up the shot I wanted, so I’m putting in a minor zoom function, currently by default on the middle mouse button (not released, this is in my dev version only). It has no effect on accuracy and it can be safely ignored, but IMO it’s kind of nice.

The simplest way to do a “scope” in an FPS type game is to simply decrease the camera’s Field Of View. That method works perfectly if your aiming reticle is in the exact centre of the screen. But Scraps has an off-centre reticle – in fact it can be moved by the player as well.

This is what happens when you zoom with a non-centered reticle:

At the start of that for instance, I’m aiming at the bottom of the wall. When zoomed, my mouse hasn’t moved but now I’m aiming at the ground. Not good.

Surprisingly few people seem to have this problem to solve; I think most games must have the reticle in the exact centre. However I found some genius had already solved it here. Like the best answers, he’s answered his own question.

With that formula implemented, things look way better:

Although notably not quite perfect. As far as I can tell I think any remaining error comes from the changes in the perspective of the scene, since the camera has to rotate to keep the reticle pointing at the same place, and that means things that are close shift visually a different amount to things that are far away.

Probably the only way to completely solve it would be to do something like raycast to the thing the reticle is currently pointing at, then tell the zoomed camera to look at that particular point. Or of course just put the reticle in the dead centre like a normal game! But honestly, the current solution is close enough, especially for a feature that doesn’t really affect the game.

Bookmark the permalink. Trackbacks are closed, but you can post a comment.


  1. Curaced
    Posted November 25, 2017 at 6:19 am | Permalink

    The sniping thing will be nice for gauntlet mode, I have a terrible time lining up long range shots while moving even against stationary targets, to say nothing of other vehicles. Are you planning to make the scope thing an optional modifier in multiplayer like with the radar?

    • bill
      Posted November 25, 2017 at 1:42 pm | Permalink

      I’m planning to make it enabled everywhere, unless that doesn’t work out well. Since it doesn’t impart an actual accuracy boost, there shouldn’t be much of a downside to anyone choosing not to use it.

Post a Comment

Your email is never published nor shared. Required fields are marked *

You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>