Jump to content
The Dark Mod Forums

I'm working on a VR version - early alpha


cabalistic
 Share

Recommended Posts

I know, the engine is entirely CPU-bound, in large part due to it being effectively single-threaded. That's why I added threading in the first place, and it helped quite a bit. I might try to do more; but for now getting GUI usable takes priority.

  • Like 2
Link to comment
Share on other sites

Respect.

What version is your work based on?

We have unlocked fps, rudimentary FBO, buggy unfinished threaded game tics in source svn.

Regarding low end PC's: I think 90 tics per second could be too taxing in some places.

Try the spider cavern in NHAT for example.

Link to comment
Share on other sites

2.05.

I would have developed against svn, but without compatible assets, that wasn't possible :)

 

So, the threaded work you've done, is it easily adaptable to other parts of the engine? Such as physics running on it's own thread, sound etc?

No, I effectively just "restored" the threading of frontend and backend, as was originally intended in the Doom3 engine. Anything else will have to be investigated separately. I also wouldn't necessarily look at adding more threads dedicated to a specific purpose, but rather looking for parallelisation with the help of worker threads. E.g. spreading physics calculations on multiple cores. Intel's threading building blocks library would be a good choice, provided one can identify places where this kind of parallelisation works.

I originally tried it that way with certain parts of the frontend renderer, similar to how it's done in the Doom 3 BFG edition. But unfortunately I hit a few roadblocks, so I postponed that approach for a later reinvestigation.

  • Like 1
Link to comment
Share on other sites

I know, the engine is entirely CPU-bound, in large part due to it being effectively single-threaded. That's why I added threading in the first place, and it helped quite a bit. I might try to do more; but for now getting GUI usable takes priority.

 

Adding optimised assets will help a lot too, but that will take time. Or maybe someone will make VR-focused missions, that would be interesting to see.

Link to comment
Share on other sites

The threading work? Sure, although I'd say let's take the current alpha build for a few more test runs first, to make sure I didn't miss any potential race conditions... :)

 

The VR portion I'd say let's keep it separated for now as it's really just an experiment.

  • Like 1
Link to comment
Share on other sites

The threading work? Sure, although I'd say let's take the current alpha build for a few more test runs first, to make sure I didn't miss any potential race conditions... :)

One thing I failed on was disappearing dynamic models (e.g. guards) in the frobable area - did you get that right?

Link to comment
Share on other sites

I just played with the training mission a bit, picked stuff up, stole the key from the guard, knocked a guard down and picked up his body. Nothing was disappearing, all seemed fine. I found two other problems though:

- Fullscreen is borked. Might have something to do with the additional OpenGL context I'm creating. You'll need to run the build in windowed mode for now.

- There is some issue with lighting and shadows with some flickering that isn't there in the base 2.05 build. Not sure if this is related to the threading, but there's definitely something wrong.

 

Oh, also I noticed that I accidentally put VR mode to disabled by default. So if you actually want to test the VR output, you'll ned to set vr_enable to 1 in your autoexec.cfg.

  • Like 1
Link to comment
Share on other sites

Swell news. My microwave laptop could see the other thread being used as a good performance hike.

 

Wasn't aware TDM runs on an older version of Doom 3.

"I really perceive that vanity about which most men merely prate — the vanity of the human or temporal life. I live continually in a reverie of the future. I have no faith in human perfectibility. I think that human exertion will have no appreciable effect upon humanity. Man is now only more active — not more happy — nor more wise, than he was 6000 years ago. The result will never vary — and to suppose that it will, is to suppose that the foregone man has lived in vain — that the foregone time is but the rudiment of the future — that the myriads who have perished have not been upon equal footing with ourselves — nor are we with our posterity. I cannot agree to lose sight of man the individual, in man the mass."...

- 2 July 1844 letter to James Russell Lowell from Edgar Allan Poe.

badge?user=andarson

Link to comment
Share on other sites

Cool stuff.

 

Not that I'm a expert in this area but I've read that Mutex performance is pathological on Windows:

 

https://www.arangodb.com/2015/02/comparing-atomic-mutex-rwlocks/

 

http://demin.ws/blog/english/2012/05/05/atomic-spinlock-mutex/

 

Did you try using Atomics instead?

  • Like 1

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

Cool stuff.

 

Not that I'm a expert in this area but I've read that Mutex performance is pathological on Windows:

 

https://www.arangodb.com/2015/02/comparing-atomic-mutex-rwlocks/

 

http://demin.ws/blog/english/2012/05/05/atomic-spinlock-mutex/

 

Did you try using Atomics instead?

Probably won't be much difference here because it's only waiting once per frame per thread.

I couldn't build the vr version quickly due to missing DXSDK that 2.05 required and 2.06 does not.

Link to comment
Share on other sites

@Duzenko:

 

The commit log is missing some events apparently. Here is one of interest:

 

 

https://github.com/fholger/thedarkmodvr/commit/ea93ed997be838f283c3b59e83c9dfaa95625da8

  • Like 1

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

I haven't had time to build my own but I tried both v1 and v1.1 and they both produce some visual artifacts,

random black tris around animating objects (etc). Still, better than the whole AI flickering when you get up close.

  • Like 1

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
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.

 Share


  • Recent Status Updates

    • Nort

      I just gave myself vertigo. A pleasant kind of vertigo, like the world has been lifted off my shoulders. I'll explain:
      Yesterday I saw to my dismay, that I had made my entire map two - two - units too short on every level - that every set01 piece was sticking 2 units into the ceiling. That's basically 402 brushes that needs to be realigned (minus the ground floor brushes).
      I knew enough about selections to do all of that in a very tense five minutes, and it compiled without leaks. (Thank you so much, Dark Radiant devs, for making an editor with such care for precision that you can align hundreds of brushes perfectly at once (which is not something I can say for Valve's Hammer editor, which has some serious issues on that front, which actually made me just quit it in disgust).) However, the result is that the entire level has now been stretched a barely noticable 2 units, and it will take some getting used to psychologically.
      · 0 replies
    • Nort

      My workflow is basically running from a chain of disasters, eventually trying to seek shelter in former disasters. It's not ideal - it's just my life.
      When I abandoned my first map, it was out of a typical mental breakdown, and so I returned to find a skybox void where the kitchen door should have been (due to a misplaced visportal) and two overlapping brushes Z-fighting on the kitchen floor.
      I've now cleaned up the last bit of mess, by cleanly separating every floor into its own layer. Now I can finally work on each floor in peace.
      ...not that I really needed to. Once you get skilled enough, the orthographic messes, well, I'll let this video speak for itself:
       
      · 1 reply
    • Nort

      Beams, beams, beams...
      Support beams, and cross beams, and then beams to fixate the support beams to the cross beams. The more beams you have in a map, the better. There's walls, floors and ceilings, but the rest of the map is pretty much just beams. Beams makes a thief happy.
      · 0 replies
    • jaxa

      Embracer Group is Buying Square Enix Montréal, Eidos, and Crystal Dynamics for “Only” 300 Million USD: https://wccftech.com/embracer-group-square-enix-montreal-eidos-crystal-dynamics/
      · 1 reply
    • duzenko

      Do we want fur in TDM? Like https://duzenko.github.io/webgl/
      · 6 replies
×
×
  • Create New...