Jump to content

Project L33T

See the game notes for instructions on how to disable smoothing.
Read more...

Twilight Town: A Cyberpunk FPS

Just added.
Read more...

Contain

See the game notes for instructions on how to disable smoothing.
Read more...

Vomitoreum

Just added.
Read more...

Double Action: Boogaloo

Just added.
Read more...

Recommended Posts

2 hours ago, Drimzi said:

Thoughts on this?

When we graph the formulas, it is really using the diagonal. So the flat line is actually when using the diagonal fov. This shows that the diagonal fov is the correct way to match for linear speed. 0% is the same regardless. 1:1 vertical / horizontal fov monitor match has a curve that matches how it felt when testing with the fov script. 100% 4:3, or 75% 16:9, or 1.333 coefficient, is almost correct, which is why many games use it. The best coefficient is actually 1.414.

Putting the axes in terms of 1:1 diagonal FOV adds needless complication. Virtually everyone thinks of FOV in terms of horizontal or vertical. Desmos also has a degrees mode so you don't need to use mathematical conversions.

image.png.8db19cd97e19afb788d7312fd232b4bb.png is the exact same thing as image.png.7766e50af0292e992dc34a5dcfaf3e50.png 

 

image.png.3597cd01b11a43d1402c8a357d746960.png It's the same thing because zoom amount is completely independent of aspect ratio.

Here's the graph readjusted to be in terms of horizontal FOV, consolidated 0% match, and added viewspeed v2, and a few other things fixed:

https://www.desmos.com/calculator/2cb6fgyrbx

 

With all that out of the way:

2 hours ago, Drimzi said:

When we graph the formulas, it is really using the diagonal. So the flat line is actually when using the diagonal fov. This shows that the diagonal fov is the correct way to match for linear speed.

No, it's flat because you graphed it in terms of (1:1) diagonal FOV. Not because it's correct or incorrect.

 

Also graphing like this is somewhat misleading because all the methods appear to converge at 0 FOV. While their absolute difference does converge, the relative difference diverges significantly. Example graph showing % change going from 0% match to other methods:

image.thumb.png.a072638aecf528d12248607b752df3b2.png

 

At very low FOVs 100% match gives about 40% higher sensitivity and the difference gets smaller the further from 0. The original graph implies the largest difference is around halfway between hipfire and 0.

Here's the graph with every method relative to 0% / zoom ratio: https://www.desmos.com/calculator/t1wkmkkrao

Edited by Skwuruhl
Link to comment
5 hours ago, Skwuruhl said:

Virtually everyone thinks of FOV in terms of horizontal or vertical.

Horizontal FOV is of questionable use in formula because it means, for the same movement on the same image, in the centre of a 16:9 screen, and a 21:9 screen (or a 2:2000 screen for that matter) you wind up with a different sensitivity (EG 1cm movement from centre at 80VFOV... Should be the same mouse movement regardless of aspect ratio). People tend to think in terms of horizontal FOV because most of our aim movement is horizontal because maps reflect the world we live in where vertical movement is less prevalent and vertical FOV is lower (as in, between our cheeks and brows). However, this is contrary to good formula.

Edited by CaptaPraelium
Example because I suck at words
Link to comment
11 hours ago, CaptaPraelium said:

Horizontal FOV is of questionable use in formula because it means, for the same movement on the same image, in the centre of a 16:9 screen, and a 21:9 screen (or a 2:2000 screen for that matter) you wind up with a different sensitivity (EG 1cm movement from centre at 80VFOV... Should be the same mouse movement regardless of aspect ratio). People tend to think in terms of horizontal FOV because most of our aim movement is horizontal because maps reflect the world we live in where vertical movement is less prevalent and vertical FOV is lower (as in, between our cheeks and brows). However, this is contrary to good formula.

It's very easy to convert between 16:9 horizontal and 21:9 horizontal and doing this would avoid any sensitivity discrepancies. If you don't want to do that then either use vertical or a hor+ version of 16:9 or 4:3. I guess since it wasn't clear in my graph it's 16:9 hor+. From a mathematical standpoint it doesn't matter if your input is vertical because you can just convert it to 1:1 diagonal or whatever you want. The difference is that everyone knows what 106.26 or 103 horizontal FOV looks and feels like, but nobody knows what 80 1:1 diagonal FOV is without doing the math. It's just easier to take an input of what people know and then convert it.

Edited by Skwuruhl
Link to comment
4 hours ago, Drimzi said:

sdfsdfsdfsdfsdfds.thumb.jpg.13f34bae40ffee9574860e56af91a379.jpg

With the faster formula, these red zones are 'wasted', not taking into account the whole entire 1:1 desktop environment.

You do realize how distance match works right? It's not "wasted" in any way. The red area doesn't suddenly become inaccurate just because it's outside the circle. And everything inside the circle isn't automatically accurate.

As a general example with 50% vertical match (~28% 16:9 horizontal match):

wVmNUBi.jpg

Accuracy from the circle just falls off with distance. Anything outside it isn't "wasted."

If anything having a match distance circle that goes out of the bounds of your screen is wasteful.

(note: I didn't make the gradient to scale of actual accuracy fall off, it's just an example)

Edited by Skwuruhl
Link to comment
28 minutes ago, Drimzi said:

That's why I put it in quotes, I just meant the whole environment isn't inside the circle. I know that the discrepancy decreases as you approach the circle, in either direction.

And what exactly is the benefit of the entire space being inside the circle?

Link to comment
On 1/1/2018 at 8:51 AM, potato psoas said:

Well scaling using cos(FOV/2) made the most sense to me. MM would scale along the unit circle, with radius 1 (representing 100% MM) and through trig I end up with MM(FOV)=radius cos(FOV/2).

5a4a4fbd7c4b4_monitormatchscaling.png.6318b063a63083a926dd8d5935da5ee0.png

But even though it makes sense it's not aspect ratio independent.

The other idea I had was to use a linear method: (180-FOV)/180

Even though it makes less sense, the 360 distances are tighter than using cos(FOV/2).

 

Ultimately, to make it aspect ratio independent we need the monitor match formula for both horizontal and vertical to give the same 360 distance. I.e.:

HCL((π HMM)/(ATAN(HMM TAN((π HFOV)/360)))) = VCL((π VMM)/(ATAN(VMM TAN((π VFOV)/360)))) (CL = chord length, MM = monitor match percentage)

but I don't know how to get HMM/VMM on its own.

I actually disagree that it's best to match only at the crosshair. Yes you do a lot of aiming there but it's not the only place on the screen you need muscle memory for. Snapping to targets closer to the edge happens all the time, especially in games like osu!. Scaling the monitor match minimizes the flaws of both 0% and 100% monitor match.

Scaling distance match will lead to inconsistent sensitivity at best. Using cosine to scale is one of the examples of at worst. It will invariably give sensitivities dramatically higher than even 100% match.

qu3WDhU.png

At low FOV you'll be more than 35% above 100% match if your hipfire is 103 (and 90% above matching by zoom amount). The difference is even larger at high FOVs. By scaling match distance with cosine you're exacerbating the problem with using adsFOV/hipFOV to scale sensitivity.

y=arctan(x*tan(...))/arctan(x*tan(...)) (or any variation thereof) isn't solvable for x to a general equation. Wolfram (and this website) have to brute force solve it with all other variables provided as constants whenever you want to find x.

Flicks across your entire screen for a Hail Mary headshot shouldn't be a strong consideration when you're deciding on your sensitivity. You (or at least I) want a sensitivity that you can consistently and precisely land shots with after acquiring a target or while holding an angle.

On 1/1/2018 at 12:20 PM, potato psoas said:

Elaborating on this, if you do want to have the best muscle memory at the crosshair then you shouldn't use 0% you should use 20% or something. When it comes to tracking, you are reacting to how the enemy moves. By the time you have reacted they are already off your crosshair. 20% is actually pretty good because the center hardly feels any different between FOV but it makes a world of difference with regards to the rest of the screen.

1. It makes sense from a mathematical standpoint to scale sensitivity based on the zoom amount. 2x zoom means 1/2 sensitivity. 2.63x zoom means 38% sensitivity.

    And yes, this does account for the distortion, otherwise I wouldn't be able to do this (http://i.imgur.com/HN5GcL3.jpg) using the same exact equation that I scale sensitivity based on. ads/hip doesn't account for distortion. tan(ads/2)/tan(hip/2) does.

2. It's a difference of 2%

Edited by Skwuruhl
Link to comment
11 hours ago, Skwuruhl said:

Scaling distance match will lead to inconsistent sensitivity at best. Using cosine to scale is one of the examples of at worst. It will invariably give sensitivities dramatically higher than even 100% match.

qu3WDhU.png

At low FOV you'll be more than 35% above 100% match if your hipfire is 103 (and 90% above matching by zoom amount). The difference is even larger at high FOVs. By scaling match distance with cosine you're exacerbating the problem with using adsFOV/hipFOV to scale sensitivity.

y=arctan(x*tan(...))/arctan(x*tan(...)) (or any variation thereof) isn't solvable for x to a general equation. Wolfram (and this website) have to brute force solve it with all other variables provided as constants whenever you want to find x.

Flicks across your entire screen for a Hail Mary headshot shouldn't be a strong consideration when you're deciding on your sensitivity. You (or at least I) want a sensitivity that you can consistently and precisely land shots with after acquiring a target or while holding an angle.

1. It makes sense from a mathematical standpoint to scale sensitivity based on the zoom amount. 2x zoom means 1/2 sensitivity. 2.63x zoom means 38% sensitivity.

    And yes, this does account for the distortion, otherwise I wouldn't be able to do this (http://i.imgur.com/HN5GcL3.jpg) using the same exact equation that I scale sensitivity based on. ads/hip doesn't account for distortion. tan(ads/2)/tan(hip/2) does.

2. It's a difference of 2%

So basically TLDR, 0% match isn't perfect but is the closest to accounting for the distortion different FOVS make. You can get "used" to any match % and become very consistent with it as long as you use the same match for everything. 0% is good  for things around your crosshair while 50% and 75% would be more of your "flick" matches, but with enough practice could be just as good. 

 

It's about remaining consistent in your match distance more than what you match it, but objectively 0% is the best all around solution.

Link to comment
23 hours ago, Drimzi said:

The sensitivity scaling between FOVs. A sqrt(2) coefficient is used for determining the monitor match between FOVs, but the same coefficient wasn't used for the desktop. Matching the coefficients will match the distances rather than remapping the shorter desktop distance to the longer 3d distance. I originally just left it as the height/width of the desktop, because it didn't make sense to match outside of that box if you can't even move your cursor outside of it vertically on widescreens.

But what makes 1:1 diagonal any more "correct" than the others?

23 hours ago, Drimzi said:

The way I see it, physically pivoting a camera at a speed unaffected by the camera's field of view, is akin to the diagonal monitor match. Having the speed determined by the field of view is akin to 0%.

That'd be 360° distance match and 100% match respectively. 0% is having speed determined by the zoom amount.

23 hours ago, Drimzi said:

If I use 0% monitor match, I can feel it slow down and speed up according to the FOV, which does not feel right. That's why Battlefield made USA. That has a 4/3 coefficient, 1.333, and Diagonal is a sqrt(2) coefficient, 1.414. With the diagonal monitor match, the speed feels the same to me as it zooms in and out and I can flick to any target at any FOV with ease. No matter how zoomed in, or zoomed out the image in the center of the screen is, flicking to the corners of that 1:1 portion will always be the same distance and my brain seems to be able to adapt the flicking distances inside and outside the 1:1 portion perfectly just from the FOV/image I am looking at. Sensitivity scaling across FOVs using this coefficient feels hands down the best for me. If 0% feels natural to you, and you can keep your muscle memory for any FOV when scaling with 0%, then use 0%.

This is where it's personal preference which is fine. Although it's worth pointing out that part of the reason why 0% may feel slow is since you're used to higher ADS sensitivity. 0% compared to 133% takes up to ~20% more mouse movement in ADS for the same turn.  

What I don't like is when people use pseudoscience in their methods. Like Viewspeed v2 is just sin(vAdsFov/2)/sin(vHipFov/2). I can't think of any mathematical basis for doing this. Also in general scaling match distance to "account for distortion" as if match distance doesn't already. I mean it's based off the equations by which the distortion happens. And as I pointed out in my last post it usually results in making the effects of distortion worse.

Edited by Skwuruhl
Link to comment
On 1/17/2018 at 6:17 PM, Drimzi said:

The sensitivity scaling between FOVs. A sqrt(2) coefficient is used for determining the monitor match between FOVs, but the same coefficient wasn't used for the desktop. Matching the coefficients will match the distances rather than remapping the shorter desktop distance to the longer 3d distance. I originally just left it as the height/width of the desktop, because it didn't make sense to match outside of that box if you can't even move your cursor outside of it vertically on widescreens.

 

Yes, consistency is key. Always use the same method for everything IMO.

 

The way I see it, physically pivoting a camera at a speed unaffected by the camera's field of view, is akin to the diagonal monitor match. Having the speed determined by the field of view is akin to 0%. If I use 0% monitor match, I can feel it slow down and speed up according to the FOV, which does not feel right. That's why Battlefield made USA. That has a 4/3 coefficient, 1.333, and Diagonal is a sqrt(2) coefficient, 1.414. With the diagonal monitor match, the speed feels the same to me as it zooms in and out and I can flick to any target at any FOV with ease. No matter how zoomed in, or zoomed out the image in the center of the screen is, flicking to the corners of that 1:1 portion will always be the same distance and my brain seems to be able to adapt the flicking distances inside and outside the 1:1 portion perfectly just from the FOV/image I am looking at. Sensitivity scaling across FOVs using this coefficient feels hands down the best for me. If 0% feels natural to you, and you can keep your muscle memory for any FOV when scaling with 0%, then use 0%.

 

Obviously , I don't know anything about the math behind USA, but I read the entire post by its creator. It is based on CSGO and therefore 75% match. From everything I have heard and read the default USA is functionally identical to CSGO's default of 1 zoom_sensitivity_ratio. This site is not the first to surmise that 0% match may be superior to 75% from a practicality standpoint due to 0% inherent advantages with close to the center crosshair matches.

 

Link to comment

I've not checked in for a while, still on viewspeed 2!! should be up to V5 by now? 
But seriously, I just want to point something out that I feel is important. It's worth taking the time to understand exactly what all these formulas are trying to accomplish, to keep on track. 

Lets be frank, we're playing games, a 'perceived' virtual world whereby we connect using a mouse, and a keyboard. We push the mouse forward to look up, backwards to look down and push buttons to move left and right. Nothing alike, in input or physical movement compared to the 'real world' and our daily interactions. However, it does not mean in-game interactions cant be just as fluid and natural.

Take for example someone who gets a new prescription for glasses. "Because we see with our brains, it takes a while for the eyes and the brain to coordinate getting used to a new prescription."

This is because our eyes are simply a sensor, a sensory input that is translated in to sight, in the brain. Take for example the new technology allowing people to 'see' with their tongue... 

By playing games long enough the movements become as natural as walking. You don't think to press a key, to move forward, you just move forward. Alike how we interact with our mouse, to hit our target. The longer we spend within a new 'interface' the more  accurate - efficient - 'natural' our reactions become when using it.

The importance of a 'viewspeed' formula is to provide a familiarity between games, making the 'interface' between games feel as similar as possible, minimising our learning process between them.

You have to understand that different FOV's can never feel the same, they are not supposed to, they are different... Take a look down some binoculars and spin around, feel normal? No.

 

Not that this matters, what matters is that FOV's and any other input controls feel unified between games.

 

 

PS: regarding the video, the tongue is second to the eye in sensory receptors (10k vs 100million), I guess it would be like a super crappy low res version compared to the eye. Perhaps even comparable to using a mouse to look around, rather than simply turning our head... onwards with next gen virtual reality gaming please :D

Edited by DNAMTE
Link to comment
11 hours ago, DNAMTE said:

The importance of a 'viewspeed' formula is to provide a familiarity between games, making the 'interface' between games feel as similar as possible, minimising our learning process between them.

I think the relationships drimzi's formed/come upon between FOVs with diagonal 1:1 MM is worth looking into.

I tried matching sensitivities with viewspeeds V1 and V2 quite a bit before coming to this thread and seeing new ideas. Between those two, the other trial solutions drimzi posed, and diagonal 1:1 match, the latter's transitions between different FOVs felt more "right" to me with than with any previous, did so basically immediately, and still did after going back and trying other solutions again. I think it got generally good reception from others too, so I'm interested in what you think about it, if you're planning on trying it out.

 

On 1/18/2018 at 6:03 PM, Skwuruhl said:

But what makes 1:1 diagonal any more "correct" than the others?

I don't keep up with the math going into this beyond basic concepts and goals, so I can't attest to how sound anything is, or explain why 1:1 diagonal match feels so good to me. However, a lot of this has basically been trying out different ideas to see how the relationships they produce feel. Considering that, I wouldn't be surprised if diagonal match wasn't the "right" solution, however even an incorrect solution that grants insight is a step forward that can be important in finding better ones.

To me, a mathematically-based solution is preferable, but only if it produces preferable results. If it's beat out by something that isn't as nice and transparent of a solution, figuring out why that happened and using that new understanding to craft more grounded solutions is the next step, right? That's my take on this, anyway.

Of course, this only applies if other people are as into the way diagonal 1:1 monitor match feels between fovs as i am. If not, then it's not worth worrying about.

Link to comment
On 1/19/2018 at 12:11 PM, Bryjoe said:

Obviously , I don't know anything about the math behind USA, but I read the entire post by its creator. It is based on CSGO and therefore 75% match. From everything I have heard and read the default USA is functionally identical to CSGO's default of 1 zoom_sensitivity_ratio. This site is not the first to surmise that 0% match may be superior to 75% from a practicality standpoint due to 0% inherent advantages with close to the center crosshair matches.

Basically CS:GO does its FOV in 4:3 HOR+ and then their ADS scaling is ads/hip. How USA works is it converts the field of view to another arbitrary aspect ratio defined by the coefficient, where the horizontal axis is coefficient times longer than vertical. So the default of 1.3333 is the same as 4:3.

On 1/22/2018 at 1:00 AM, DNAMTE said:

I've not checked in for a while, still on viewspeed 2!! should be up to V5 by now? 
But seriously, I just want to point something out that I feel is important. It's worth taking the time to understand exactly what all these formulas are trying to accomplish, to keep on track. 

Lets be frank, we're playing games, a 'perceived' virtual world whereby we connect using a mouse, and a keyboard. We push the mouse forward to look up, backwards to look down and push buttons to move left and right. Nothing alike, in input or physical movement compared to the 'real world' and our daily interactions. However, it does not mean in-game interactions cant be just as fluid and natural.

Take for example someone who gets a new prescription for glasses. "Because we see with our brains, it takes a while for the eyes and the brain to coordinate getting used to a new prescription."

This is because our eyes are simply a sensor, a sensory input that is translated in to sight, in the brain. Take for example the new technology allowing people to 'see' with their tongue... 

By playing games long enough the movements become as natural as walking. You don't think to press a key, to move forward, you just move forward. Alike how we interact with our mouse, to hit our target. The longer we spend within a new 'interface' the more  accurate - efficient - 'natural' our reactions become when using it.

The importance of a 'viewspeed' formula is to provide a familiarity between games, making the 'interface' between games feel as similar as possible, minimising our learning process between them.

You have to understand that different FOV's can never feel the same, they are not supposed to, they are different... Take a look down some binoculars and spin around, feel normal? No.

 

Not that this matters, what matters is that FOV's and any other input controls feel unified between games.

 

 

PS: regarding the video, the tongue is second to the eye in sensory receptors (10k vs 100million), I guess it would be like a super crappy low res version compared to the eye. Perhaps even comparable to using a mouse to look around, rather than simply turning our head... onwards with next gen virtual reality gaming please :D

Trying to find the generally best scaling method is all well and good but again "viewspeed" is just sin(vADS/2)/sin(vHIP/2). There's no solid basis to do this, calling it "viewspeed" is even misleading.

Generally what's "natural" to most people is going to be what they've been using for years, which in most cases will be 75%. "viewspeed" and diagonal match are within 2% difference compared to 75% match distance: https://www.desmos.com/calculator/elvuehnnw3. You're probably just sticking with methods close to 75% because that's what you're used to.

On 1/22/2018 at 1:10 PM, seventhfrost said:

I think the relationships drimzi's formed/come upon between FOVs with diagonal 1:1 MM is worth looking into.

I tried matching sensitivities with viewspeeds V1 and V2 quite a bit before coming to this thread and seeing new ideas. Between those two, the other trial solutions drimzi posed, and diagonal 1:1 match, the latter's transitions between different FOVs felt more "right" to me with than with any previous, did so basically immediately, and still did after going back and trying other solutions again. I think it got generally good reception from others too, so I'm interested in what you think about it, if you're planning on trying it out.

 

I don't keep up with the math going into this beyond basic concepts and goals, so I can't attest to how sound anything is, or explain why 1:1 diagonal match feels so good to me. However, a lot of this has basically been trying out different ideas to see how the relationships they produce feel. Considering that, I wouldn't be surprised if diagonal match wasn't the "right" solution, however even an incorrect solution that grants insight is a step forward that can be important in finding better ones.

To me, a mathematically-based solution is preferable, but only if it produces preferable results. If it's beat out by something that isn't as nice and transparent of a solution, figuring out why that happened and using that new understanding to craft more grounded solutions is the next step, right? That's my take on this, anyway.

Of course, this only applies if other people are as into the way diagonal 1:1 monitor match feels between fovs as i am. If not, then it's not worth worrying about.

See above. Frankly any difference you feel between Viewspeed, diagonal match, and 75% is placebo. It's the difference of a single centimeter in a mouse movement half a meter long.

Link to comment
On 1/29/2018 at 11:43 PM, KandiVan said:

Whats the formula for CS GO's zoom 1 AWP scaling at zoom_sensitivity_ratio_mouse "1"?  I was just playing around with it and it actually feels really good.  

 

Edit: Figured it out, it feels awful, disregard post

But if you used CSGO's zoom sensitivity 1 and used 75% monitor distance for your scope scaling in every game over the last 4 years it would feel great to you. Aim is all about consistency, use the same scaling method in every game, the same hipfire and same FOV and suddenly every game does feel the same. The argument of which is "better" objectively is up for debate.

Link to comment
  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...