cmbruns / gz3doom

Classic Doom/Heretic/Hexen games in stereo 3D and VR; modified version of gzdoom.
http://rotatingpenguin.com/gz3doom/
88 stars 16 forks source link

Motion Acceleration/Deceleration Induced VR Sickness #184

Open KDLGates opened 5 years ago

KDLGates commented 5 years ago

GZDoomOpenVR is one of the very few games that causes me VR sickness (not nausea, but fatigue and distress). Despite having the fortitude to play other intense, fast-moving FPS games in VR for long sessions, I can only play this in smaller doses.

I'm stubborn about minmaxing my game performance (yes, it's single player, but this is subjective stuff), so reducing the maximum player speed or turning on comfort options such as a FOV shroud probably isn't an option for me.

I haven't done a thorough exploration, but I haven't found a way to adjust the acceleration in GZDoomOpenVR, either via a menu option or a clever parameter. My instinct says that if I could increase the rate of acceleration/deceleration (almost like "increasing the drag") on the player movement, I'd be able to enjoy the game for longer periods without worrying about physical distress.

Some way to adjust this would be greatly appreciated in case there does exist some personal sweet spot for players to have the greatest comfort.

KDLGates commented 5 years ago

As an update, I crossposted this issue to the the rather amazing Fishbiter's fork with motion controller support (https://github.com/Fishbiter/gz3doom/issues/1), and there a parameter was added which instantly kills player momentum on releasing the movement input.

My first impression is that this is a very positive change in improving my own VR comfort in Doom, and perhaps this same or a similar comfort option could be considered for GZ3Doom?

jdawgzim commented 4 years ago

I did a few things to help reduce VR Sickness: 1) Increase friction nashmove.pk3

2) Snap turn: [Doom.ConsoleAliases]
Name=turn45left
Command=alias turn45_step "wait 5;-left;turnspeeds 640 1280 320 320;alias turn45_step";turn45_step;wait;turnspeeds 2048 2048 2048 2048;+left Name=turn45right
Command=alias turn45_step "wait 5;-right;turnspeeds 640 1280 320 320;alias turn45_step";turn45_step;wait;turnspeeds 2048 2048 2048 2048;+right

[Doom.Bindings]
rstickright=turn45right
rstickleft=turn45left

3) Reduce movement speed but also map a speed+ mapping for certain situations: rstickdown=+speed

[Joy:OpenVR]
Axis0deadzone=0.15
Axis0scale=0.8
Axis2deadzone=0.15
Axis2scale=0.8