KozGit / DOOM-3-BFG-VR

Doom 3 BFG VR: Fully Possessed. Doom 3 BFG with native Oculus Rift/Touch or OpenVR support
GNU General Public License v3.0
372 stars 52 forks source link

Comfort request: option to completely disable wall pushback #264

Open Gkthepwner opened 6 years ago

Gkthepwner commented 6 years ago

Hi, this is my first issue posted since I joined in like 2013 so I'm not sure if I'm doing it right, I checked through the issues and didn't really find any other issues sharing my exact concerns, and I don't think there's a way to search through commits to see if they've already been remedied, either. That said, here goes:

I decided to give this a shot after realizing how much fun this'd be, and once I got to the part where you actually get your gear, it was obvious this is the best way to play Doom 3. Unfortunately, as it turns out, the pushback from walls is a serious comfort issue for me. Normally, I've got some pretty solid VR legs. In fact, the first thing I changed in the VR settings was disabling teleportation because I don't use it. But, on my way through the entire pre-disaster bit, the pushback kept ravaging my senses.

I walked into a restroom, used the toilet in VR, chuckled at it being a thing I could do, and went to wash my hands in the sink, only to instead have my whole body float backwards, sickeningly. I went to push a button (but it wasn't a real button, just a prop, but I didn't know because I've never really played much Doom 3) and again, I floated backwards. I reached over a table to tap a can to test how interaction worked with this mod, same story. I can't even lean over to see inside a vent that a guy's yelling to his coworker in, because then I collide with the NPC and it pushes me back. Have you ever handed someone your movement-controlling controller on direct movement mode in some VR game and had them make unsolicited movements? It's like that on a more minor scale, and happening constantly from me accidentally making motions that I'm used to being okay from other games and, y'know, real life in the case of me not sticking my hands through walls and such like I tried to do when I got the pistol.

I can understand making it this way to make sure the game functions as intended, but I'm gonna be frank, I'd rather be comfortable and forced to make sure I stay near the center of my play area at all times (Because I already do this, if I don't, I'll bash my TV, desk, or anything on the desk. Even in the middle of a heated fight in GORN I'll make sure I'm where I need to be, just for safety.) than have this pushback that's very unkind feeling. And, while yes, I could turn on kickback to probably help a little bit, it being smoother movement isn't really the problem, it's the movement that I didn't tell my brain to prepare for. I had a similar experience with the shotgun elevator trap area, but that's a one-off and designed to shock you in the first place. It's different from reaching across a table and suddenly being half a foot back.

If this is already an option in the eventual next release, then please, by all means, ignore everything I said because I'm an idiot who just didn't research enough and isn't capable of compiling their own binaries from Github sources. If it's not, please consider it. I'd like to be able to play without having essentially two sets of chaperones to worry about.

KozGit commented 6 years ago

So, wall pushback isn't really movemen't, it's actually when the character ( and view position ) in the game stops moving, but you are still moving in real life. And yep, it's no fun.

The issue here is the player clipmodel. This is the 'box' around the player character that determines where in the game the player is allowed to go. It prevents walking through walls or objects, determines when the player is hit by enemy projectiles, and also triggers events in the game. The model you actually see is pretty much not used for these tests. ( If a projectile hits the clipmodel, the rendermodel is scanned to see where it's hit, but the rendermodel is not used for movement ).

For roomscale to work, the clipmodel and rendermodel need to move together when you do. If only the rendermodel moves it creates problems, because where should the enemies shoot? How far should you be able to walk through walls? Disabling movement checks against the clipmodel means you could walk through walls and right off the level, and you also wouldn't trigger any in game events, so thats no good. Also because of the way the levels were designed, the clipmodel can't be shrunk, because there are a lot of places in the levels where you would fall through if it was smaller, and this totally breaks the game.

I did address this in the upcoming version. If the clipmodel collides with something, you can still 'lean' some. The player body is hidden while leaning, and if your eyes go into a solid the view is blacked out. When you move to a place where the player body will fit, the body is shown again. If you lean too far ( body is hung on something ), you can still get pushback, but it works better than before.

jdawgzim commented 6 years ago

Lots of ported games have this issue. I built up a habit of quickly closing my eyes when it happens to reduce sickness. In Skyrim VR, NPCs walk into you often and push you around. It's annoying

cercata commented 6 years ago

This is a problem in many VR games, they detect the colisión before it should really happen, and It's really disgusting.

I'm really eager to see your solution !!!!!