Jump to content
The Dark Mod Forums
cabalistic

The Dark Mod VR 2.09 alpha is now available :)

Recommended Posts

Hello cabalistic,

What an effort, congratulations!

Jack

Ist halt Qualitäts-Arbeit aus Oberbayern. Wo soll so was auch sonst gemacht werden? :)

 

 

Share this post


Link to post
Share on other sites

As a minor note, tdm_installer will soon allow publishing user-made versions --- that's what "Custom Manifest URL" is for.
It is not implemented yet, but soon will be.
I'm not sure if it would be easier than simple posting exe + shaders directory though.

 

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites

Massive!


Task is not so much to see what no one has yet seen but to think what nobody has yet thought about that which everybody see. - E.S.

Share this post


Link to post
Share on other sites

This is very exciting. I’ll be jumping in later today. Congratulations, I expect a lot of work went into this. Cheers!

  • Like 1

Share this post


Link to post
Share on other sites

Awesome! I will definitely give this alpha a swing!


My Fan Missions:

   Series:                                                                           Standalone:

Chronicles of Skulduggery 1: Pearls and Swine                     The Night of Reluctant Benefaction

Chronicles of Skulduggery 2: A Precarious Position              Langhorne Lodge

Chronicles of Skulduggery 3: Sacricide

 

 

 

Share this post


Link to post
Share on other sites

I've spent a little time with the VR mod. I appreciate that feedback is welcome. I want to help if I can. First, it's a major improvement over the previous implementation. Well done! The game is simply beautiful on the Index. I need to experiment with more maps, but performance appears to be improved. Having the HUD, menus, readables, etc... working well is a massive QOL improvement. This is going to be fantastic. I can't wait to get into the most recent stuff I've missed out on like the William Steele series.

I see what you mean about the lack of a visual indicator for the mouse position or a virtual cross-hair. Especially now that vertical mouse movement is removed. Its very tough to frob and potentially nausea inducing because turning is so tightly coupled with frobbing. For example when I wanted to pick up a candle, I was unintentionally turning left and right and just sort of guessing, hoping for it to light up. I concur with this priority.

Suggestion 1: If possible, I suggest implementing a "cone of frobbing" wherein for some specified degree of mouse movement, the player's "body" is not turned, but only controls the right hand (for example, the blackjack or when you implement a cross-hair). Then, only once a defined threshold is crossed, the player is turned. This way, for example, one could stand directly in front of a chest and freely use the mouse to select the various items while also having the freedom to look around with your head, but the player's "body" would remain facing the chest. Does that makes sense? The folks at Valve who got HL2 working in VR a few years ago included this option and I think you could cycle through various degrees that corresponded to larger mouse movements (wider angles) necessary to instigate a turn. Sadly, that mod no longer works, so it's hard to show you. This stuff can be hard to put into words. 

Suggestion 2:  The HUD feels a little high up, but that could be a matter of taste. Personally, I wouldn't mind needing to physically have to look down for it, but I expect some folks might like it more present/in view.

Suggestion 3:  You might want to consider eliminating head bob altogether. The artificial movement has potential to be nausea inducing, speaking only for myself. I brought this up in the previous thread. My solution involves an autocommands.cfg that I execute with F11 anytime I reload. I'm content to do that if needed. Just something to think about. 

Apologies for the wall of text, I didn't intend to be too wordy. All in all, I'm thoroughly impressed. I'll keep playing with it and report back here if I have any other thoughts.

Cheers

  • Like 1

Share this post


Link to post
Share on other sites
17 hours ago, nbohr1more said:

Would it be alright if I upload this to our Moddb page?

Or do you plan on creating your own Moddb page for this fork?

I have no objections, but keep in mind this is still a very early version that still has quite a few issues to work out :)

15 hours ago, stgatilov said:

As a minor note, tdm_installer will soon allow publishing user-made versions --- that's what "Custom Manifest URL" is for.
It is not implemented yet, but soon will be.
I'm not sure if it would be easier than simple posting exe + shaders directory though.

If you point me to instructions on what I need to do, I'll consider it. Perhaps I can even automate it with AppVeyor :)

3 hours ago, BuckleBean said:

Suggestion 1: If possible, I suggest implementing a "cone of frobbing" wherein for some specified degree of mouse movement, the player's "body" is not turned, but only controls the right hand (for example, the blackjack or when you implement a cross-hair). Then, only once a defined threshold is crossed, the player is turned. This way, for example, one could stand directly in front of a chest and freely use the mouse to select the various items while also having the freedom to look around with your head, but the player's "body" would remain facing the chest. Does that makes sense? The folks at Valve who got HL2 working in VR a few years ago included this option and I think you could cycle through various degrees that corresponded to larger mouse movements (wider angles) necessary to instigate a turn. Sadly, that mod no longer works, so it's hard to show you. This stuff can be hard to put into words. 

Yeah, sounds like an idea worth pursuing. I'll have to investigate, though, how this can best be done. I've spent so much time on the renderer, now I'm slowly getting into other parts of the engine (input, in this case) which I'm less familiar with :D

Quote

Suggestion 2:  The HUD feels a little high up, but that could be a matter of taste. Personally, I wouldn't mind needing to physically have to look down for it, but I expect some folks might like it more present/in view.

It should be easy enough to add some cvars to adjust the UI overlay's size and position. Then you could just place it wherever you like. I can probably sneak that into the next version :)

Quote

Suggestion 3:  You might want to consider eliminating head bob altogether. The artificial movement has potential to be nausea inducing, speaking only for myself. I brought this up in the previous thread. My solution involves an autocommands.cfg that I execute with F11 anytime I reload. I'm content to do that if needed. Just something to think about. 

I've already disabled bob per default for movement and swimming, since these are controlled by cvars that were easy to adjust. Other than those, I think it's primarily mantling and getting hit that can cause involuntary movement? Unfortunately, those may need engine modifications, so I'll have to look into that.

  • Like 1

Share this post


Link to post
Share on other sites
55 minutes ago, cabalistic said:

Yeah, sounds like an idea worth pursuing. I'll have to investigate, though, how this can best be done. I've spent so much time on the renderer, now I'm slowly getting into other parts of the engine (input, in this case) which I'm less familiar with :D

It should be easy enough to add some cvars to adjust the UI overlay's size and position. Then you could just place it wherever you like. I can probably sneak that into the next version :)

I've already disabled bob per default for movement and swimming, since these are controlled by cvars that were easy to adjust. Other than those, I think it's primarily mantling and getting hit that can cause involuntary movement? Unfortunately, those may need engine modifications, so I'll have to look into that.

Thanks for the replies. I spent a little more time playing and, man, it really feels like coming home. It's been a while. I just adore this game.  

I have found that having the blackjack out at all times really helps with frobbing, as you pointed out. But yes, getting this right will likely be a challenge. Thank you for looking into the UI positioning. As it related to head bob, it's definitely still there, unless there's something funky going on on my end. I remember when I was looking into disabling it a few years ago, it would not work if I edited those values in the darkmod.cfg. It only works for me by creating an autocommands.cfg and executing that each time I reload. Here are the values:

seta pm_bobroll "0"
seta pm_bobpitch "0"
seta pm_bobup "0"

If that's just me, then don't worry about it. I just updated from 2.05 and ran into some weird issues with the updater. A clean install might be fruitful on my end, if needed. 

Cheers

Share this post


Link to post
Share on other sites
5 minutes ago, BuckleBean said:

Thanks for the replies. I spent a little more time playing and, man, it really feels like coming home. It's been a while. I just adore this game.  

I have found that having the blackjack out at all times really helps with frobbing, as you pointed out. But yes, getting this right will likely be a challenge. Thank you for looking into the UI positioning. As it related to head bob, it's definitely still there, unless there's something funky going on on my end. I remember when I was looking into disabling it a few years ago, it would not work if I edited those values in the darkmod.cfg. It only works for me by creating an autocommands.cfg and executing that each time I reload. Here are the values:

seta pm_bobroll "0"
seta pm_bobpitch "0"
seta pm_bobup "0"

If that's just me, then don't worry about it. I just updated from 2.05 and ran into some weird issues with the updater. A clean install might be fruitful on my end, if needed. 

Cheers

No, I can confirm that. I'm also experiencing head bob from walking around, which feels a bit unnatural in VR and potentially nausea-inducing. I will try your method of autocommands as a stopgap measure, thanks for mentioning it.

Since I'm posting now I may as well mention a few other things I've noticed so far. Apologies if these are already known bugs.

1. At the start of the mission where you get the prompt "press attack to start the mission" you see a world-spawn only view of the map, where in standard TDM the screen is black all around. I assume this would be the case in standard TDM if it weren't for the black background added on, maybe that can be done here as well?

1. The spyglass only creates a flat overlay which doesn't actually zoom.

2. The compass shows up as a big black square when you bring it up in the inventory. I know the compass is notoriously buggy, as even the flatscreen version has had problems with it not showing correctly.

3. In-world text is unreadable (fuzzy and "double vision syndrome"). By in-world text I mean the GUI that is on open notes, books etc.

4. The text in readables is transparent to the background. It looks pretty dark but when you read something and have light source behind it it's obviously shining through the text and makes it hard to read.

5. I had a bug that suddenly started happening where visportals weren't drawing correctly. It's really hard to explain and it didn't show up in my screenshots unfortunately, but essentially it was cutting out large swaths of things that were mainly around the rim of the portal and just showing skybox there instead. Saving and reloading didn't help but restarting the client did. Not sure if it's reproducible, but if it happens again I'll try to figure out how to explain it more succinctly.

And, echoing BuckleBean's sentiment, this is a huge improvement and quality of life things have really helped a lot. Huge kudos for the work you are putting into this! The only thing I can't confirm is the performance increase, but I will have to try different missions in order to confirm or deny. So far it seems to be 120+ fps in low complexity scenes, but hitting low 30's in medium scenes that the flatscreen mode runs just fine. But like I said, I will definitely need more data points (missions played) and will look a bit deeper into the graphical settings (though they looked good at first glance).


My Fan Missions:

   Series:                                                                           Standalone:

Chronicles of Skulduggery 1: Pearls and Swine                     The Night of Reluctant Benefaction

Chronicles of Skulduggery 2: A Precarious Position              Langhorne Lodge

Chronicles of Skulduggery 3: Sacricide

 

 

 

Share this post


Link to post
Share on other sites

Weird, I definitely set the default values for the bob to 0, but something is overwriting and resetting these values, and I have no idea where or why...

It's not in the engine, I think it must be a script.

22 minutes ago, Bienie said:

1. At the start of the mission where you get the prompt "press attack to start the mission" you see a world-spawn only view of the map, where in standard TDM the screen is black all around. I assume this would be the case in standard TDM if it weren't for the black background added on, maybe that can be done here as well?

This is because the blurring out uses a GUI effect, and unfortunately I can't easily distinguish between a GUI "effect" that should be applied to the eye views and actual UI that needs to be redirected to the overlay. So everything GUI-related lands on the overlay right now. This is also why underwater view effect or the bleeding effect appear on the overlay. I need some clever way to redirect those, but it's not high priority right now.

Quote

1. The spyglass only creates a flat overlay which doesn't actually zoom.

I'm not surprised. Not even sure how it should work in VR; I don't know if zooming the eye views would actually be pleasant, but other solutions might be too complicated to implement. I'll put it on my list, but I can't promise this will ever get fixed :)

Quote

2. The compass shows up as a big black square when you bring it up in the inventory. I know the compass is notoriously buggy, as even the flatscreen version has had problems with it not showing correctly.

Right, I'll have to check the state of the 2D version right now, and then if it's working there, see if we can get it to work in VR.

Quote

3. In-world text is unreadable (fuzzy and "double vision syndrome"). By in-world text I mean the GUI that is on open notes, books etc.

Yeah, this is what I'm looking at right now, but I'm stumped. Haven't found a reason why it behaves the way it does...

Quote

4. The text in readables is transparent to the background. It looks pretty dark but when you read something and have light source behind it it's obviously shining through the text and makes it hard to read.

This might not be fixable on my end, as it's likely a material issue - those readables are actually drawing transparent, or at least some of them (some appear fine). But while the main game can basically discard that transparency, I unfortunately can't - or the UI overlay would always appear as a black rectangle blocking your view.

Quote

5. I had a bug that suddenly started happening where visportals weren't drawing correctly. It's really hard to explain and it didn't show up in my screenshots unfortunately, but essentially it was cutting out large swaths of things that were mainly around the rim of the portal and just showing skybox there instead. Saving and reloading didn't help but restarting the client did. Not sure if it's reproducible, but if it happens again I'll try to figure out how to explain it more succinctly.

It is theoretically possible that with fast movement you can trigger some things to be culled incorrectly - I might need to increase the frustum size to prevent that from happening. Though if you see it in a still, it might be something else. If you have a reproducible case, let me know.

Quote

The only thing I can't confirm is the performance increase, but I will have to try different missions in order to confirm or deny. So far it seems to be 120+ fps in low complexity scenes, but hitting low 30's in medium scenes that the flatscreen mode runs just fine. But like I said, I will definitely need more data points (missions played) and will look a bit deeper into the graphical settings (though they looked good at first glance).

Yeah, unfortunately some scenes trigger a massive cost in stencil shadow drawing, and I have no idea why. It's much higher than the doubling compared to the flat version that you'd expect, but it's not consistently this bad. I can't make heads or tails of it, yet, but it's definitely on my list.

  • Like 2

Share this post


Link to post
Share on other sites

Hm, after looking into it a bit more, I'm afraid I can't fix the stencil-related performance issues :( I underestimated how costly stencil operations actually are, and coupled with two views at high resolutions, it's just too much if there are large shadow volumes to be drawn.

The flat game avoids some of these problems by clipping large shadow volumes with their visibility through portals, which can help a lot in notorious scenes. Unfortunately, the way that clipping is done is not valid for the VR views, and I cannot replicate this in any sensible way.

At this point, I will have to look into getting shadow mapping to work in VR and optimizing that.

  • Like 1

Share this post


Link to post
Share on other sites
12 hours ago, cabalistic said:

Hm, after looking into it a bit more, I'm afraid I can't fix the stencil-related performance issues :( I underestimated how costly stencil operations actually are, and coupled with two views at high resolutions, it's just too much if there are large shadow volumes to be drawn.

The flat game avoids some of these problems by clipping large shadow volumes with their visibility through portals, which can help a lot in notorious scenes. Unfortunately, the way that clipping is done is not valid for the VR views, and I cannot replicate this in any sensible way.

At this point, I will have to look into getting shadow mapping to work in VR and optimizing that.

Can't you `union' the clip rects from the two eyes?

Share this post


Link to post
Share on other sites

No - both eye have different view matrices and projection matrices, and so their screen spaces have no relation to each other. Worse, the projection isn't even symmetrical, which the engine code computing the scissors assumes it to be. And finally, the backend modifies the view matrices just before rendering, so any scissors the frontend calculated would be invalid at that point, anyway. I have code to recreate valid light scissors, but I cannot recreate portal-clipped scissors at that point - even if the code were correct for the asymmetrical projections, it would touch frontend structures that I cannot access in the backend, and even if I could, it would probably be too expensive.

Share this post


Link to post
Share on other sites
27 minutes ago, cabalistic said:

No - both eye have different view matrices and projection matrices, and so their screen spaces have no relation to each other. Worse, the projection isn't even symmetrical, which the engine code computing the scissors assumes it to be. And finally, the backend modifies the view matrices just before rendering, so any scissors the frontend calculated would be invalid at that point, anyway. I have code to recreate valid light scissors, but I cannot recreate portal-clipped scissors at that point - even if the code were correct for the asymmetrical projections, it would touch frontend structures that I cannot access in the backend, and even if I could, it would probably be too expensive.

What about a pseudo-view frustum starting from a little back of viewer and including the both eye frustums? Still won't work with portals?

Share this post


Link to post
Share on other sites

For culling purposes that's fine and already happens sort of like this - but to calculate actual screen space scissors it's simply incorrect, because that involves non-linear projection, and so you cannot correlate scissors of that pseudo-frustum with the actual final frustums.

Share this post


Link to post
Share on other sites

Small progress update:

  • I found some dormant Doom3 BFG code to calculate light scissors which give a tighter and also more correct bound. That means there should be fewer lighting/shadow glitches, if any.
  • Together with the tighter light scissors, I made a few other improvements that should hopefully provide a minor performance improvement. Nothing game changing, but everything counts :)

My plans over the weekend are to get a working indicator for the mouse aim and perhaps fix underwater and similar views. I'm also still looking into the mismatched text rendering, but so far haven't found the cause. EIther way, with any luck I'll publish a new alpha over the weekend that should hopefully come a few steps closer to a good seated gaming experience.

  • Like 2

Share this post


Link to post
Share on other sites

Still working on the mouse cursor, which I think will make an excellent feature to release a new alpha :)

In the meantime, if you'd like to play with the fixes and improvements I've already completed, you can find a current dev build here: https://ci.appveyor.com/api/buildjobs/fwf5dhl36dkm2nve/artifacts/TheDarkModVR.7z
This includes fixed text rendering and also a somewhat workable underwater view. Please delete your darkmod_vr.cfg, as I may have changed some defaults that are relevant for performance or correctness!

I also started the outlines of a wiki for The Dark Mod VR over at Github. I thought it might be a good idea to document missions and how they perform in VR, as an orientation particularly to newer players that might be interested in the mod. If you'd like to contribute, feel free to edit/create pages for missions and add whatever you find worth mentioning: https://github.com/fholger/thedarkmodvr/wiki

  • Like 1

Share this post


Link to post
Share on other sites

And Alpha 3 is available: https://github.com/fholger/thedarkmodvr/releases/tag/v2.0.9_alpha3

@BuckleBean I've implemented your idea of a cone of mouse movement that does not turn the player view. You can control its size by vr_decoupledMoseYawAngle. Setting it to 0 disables the whole thing :) What do you think?

The other noteworthy change is that I've dealt with cutscenes (e.g. the beginning of NHAT): since these take active control of the player camera, I'm rendering them in 2D to the overlay instead of to the eyes to avoid nausea.

In general, I'd appreciate some feedback for this version. I think it is now in a state where I should promote it outside of these forums.

  • Like 1

Share this post


Link to post
Share on other sites

These updates sound great! I’m away with the family this weekend, but should have time to have a go on Monday. I’ll make sure to share any feedback here. 
 

Cheers 

Share this post


Link to post
Share on other sites

I've only had a chance to spend about a half an hour in-game, but I wanted to try these new features out. Well done! First, it looks like you eliminated the head bob. Thank you for that. 

Both the mouse aim indicator and the cone of mouse movement are game changers. It's just so much more comfortable and so much easier to target items in the world and knock out those pesky guards. I'm also coming around on the default HUD placement. It acts as sort of a frame indicating where your "body" is facing. This sort of thing has been shown to reduce nausea as well (cockpits, for example. YMMV, of course). I have been toying with different values for vr_decoupledMouseYawAngle. FYI - you have a typo in your post above (missing the "U" in mouse 😋).  I am liking somewhere between 25 and 30 for a couple of reasons. One, my mouse sensitivity is pretty high so it gives me more wiggle room without accidentally turning. To turn I tend to flick my wrist instead of dragging the mouse, which sort of behaves like snap-turn. Now I can drag it around a little to target items in the world. Secondly, those values are about the width of the HUD, so I have a clear frame of reference in view to know how far to move the mouse before it'll turn me. 

All-in-all, I think you knocked it out of the park with this stuff. I had thought that the mouse aim indicator would be distracting, but it really just feels like an extension of my right hand on the mouse into the game world. I think that if it was attached to head movement, it wouldn't work well. But if I want it out of view then I can just lower it. Easy. 

Well done. 

 

Share this post


Link to post
Share on other sites

Thanks, great you're enjoying it! :)

Meanwhile, I've gotten the compass to work, and I'm currently investigating some rather strange light/shadow problems. Hopefully I can get that one sorted out, as it's currently the nastiest bug I'm aware of...

Share this post


Link to post
Share on other sites

Alpha 4 is available: https://github.com/fholger/thedarkmodvr/releases/tag/v2.0.9_alpha4

It fixes a regression that broke light/shadows and the lightgem visibility in many places, so it's kind of an important update :D It also features a few quality-of-life improvements, and a working compass.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...