Jump to content
The Dark Mod Forums

Recommended Posts

Posted

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
Posted

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?

I always assumed I'd taste like boot leather.

 

Posted

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.

Posted

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
Posted

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.

Posted

2.05.

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

Would you be interested in incorporating your version into trunk provided you were given access to assets svn?

Posted

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
Posted

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?

Posted

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
Posted

Never mind, I fixed the problem with the flickering lighting and shadows. It was a remnant of a previous failed experiment. I reverted those changes, and now it's fine again. I uploaded a fixed version.

  • Like 2
Posted

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.

Posted

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...)

Posted

There isn't actually any locking going on in the two code paths. The only use of mutexes is to synchronize when frontend and backend should start and stop working, and there mutexes should be perfectly fine.

  • Like 1
Posted

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.

Posted

After building with DXSDK I get a startup error: Unknown value "testEvent1" when loading script\tdm_player.script

Current mission is Inn Business.

Posted

Hm, works for me with 2.05 assets. Is it possible you tested with SVN assets? Or it's a mismatched dll/exe pair, that gave me some script-related assertions once?

  • Like 1
Posted

Hm, works for me with 2.05 assets. Is it possible you tested with SVN assets? Or it's a mismatched dll/exe pair, that gave me some script-related assertions once?

Yes, svn assets

  • Like 1
Posted

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...)

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.


  • Recent Status Updates

    • datiswous

      I moved from Manjaro Linux (rolling release) to Linux Mint (LTS). One of the reasons was that I found the updates a bit too often and long. But now on Mint I get updates every day, although they're usually small updates.
      · 3 replies
    • JackFarmer

      "Hidden Hands: Vitalic Fever" - new update available including subtitles & compressed briefing video (thanks to @datiswous) and several fixes.
      · 0 replies
    • Wolfmond

      🇬🇧

      2025-04-20
      I'd like to track my level design progress a bit more often now, so I'm using the feed in my profile here.
      I've been working intensively on Springheel's YouTube course over the past few days. I'm currently up to lesson 8. There is so much information that needs to be processed and practiced. 
      I have started to create my own house. As I don't have the imagination to create a good floor plan, I grabbed a floor plan generator from Watabou and experimented with it. I chose a floor plan that I will modify slightly, but at least I now have an initial idea. 
      I used two guards as a measuring tape: The rooms are two guards high. It turned out that I can simply double the number of boxes in DarkRadiant in grid size 8 that are drawn in the floor plan. 
      I practiced the simplest things on the floor plan first. Drawing walls, cutting walls, inserting doors, cutting out frames, creating VisPortals, furnishing rooms.
      I have had my first success in creating a book. Creating a book was easier than I thought. I have a few ideas with books. The level I'm creating will be more or less a chill level, just for me, where I'll try out a few things. I don't have an idea for my own mission yet. I want to start small first.
      For the cellar, I wanted to have a second entrance, which should be on the outside. I'm fascinated by these basement doors from the USA, I think they're called Bilco basement doors. They are very unusual in Germany, but this type of access is sometimes used for deliveries to restaurants etc., where barrels can be rolled or lifted into the cellar. 
      I used two Hatch Doors, but they got completely disoriented after turning. I have since got them reasonably tamed. It's not perfect, but it's acceptable. 
      In the cellar today I experimented with a trap door that leads to a shaft system. The rooms aren't practically finished yet, but I want to continue working on the floor plan for now. I'll be starting on the upper floor very soon.

      __________________________________________________________________________________
      🇩🇪

      2025-04-20

      Ich möchte nun mal öfters ein bisschen meinen Werdegang beim Leveldesign tracken, dazu nutze ich hier den Feed in meinem Profil.
      Ich habe mich in den vergangenen Tagen intensiv mit dem Youtube-Kurs von Springheel beschäftigt. Aktuell bin ich bis zu Lektion 8 gekommen. Das sind so viele Informationen, die erstmal verarbeitet werden wollen und trainiert werden wollen. 

      Ich habe mich daran gemacht, ein eigenes Haus zu erstellen. Da mir die Fantasie fehlt, einen guten Raumplan zu erstellen, habe ich mir einen Grundrissgenerator von Watabou geschnappt und damit experimentiert. Ich habe mich für einen Grundriss entschieden, den ich noch leicht abwandeln werde, aber zumindest habe ich nun eine erste Idee. 

      Als Maßband habe ich zwei Wächter genommen: Die Räume sind zwei Wächter hoch. Es hat sich herausgestellt, dass ich in DarkRadiant in Gittergröße 8 einfach die doppelte Anzahl an Kästchen übernehmen kann, die im Grundriss eingezeichnet sind. 

      Ich habe bei dem Grundriss erstmal die einfachsten Sachen geübt. Wände ziehen, Wände zerschneiden, Türen einsetzen, Zargen herausschneiden, VisPortals erstellen, Räume einrichten.

      Ich habe erste Erfolge mit einem Buch gehabt. Das Erstellen eines Buchs ging leichter als gedacht. Ich habe ein paar Ideen mit Bücher. Das Level, das ich gerade erstelle, wird mehr oder weniger ein Chill-Level, einfach nur für mich, bei dem ich ein paar Sachen ausprobieren werde. Ich habe noch keine Idee für eine eigene Mission. Ich möchte erst einmal klein anfangen.

      Beim Keller wollte ich gerne einen zweiten Zugang haben, der sich außen befinden soll. Mich faszinieren diese Kellertüren aus den USA, Bilco basement doors heißen die, glaube ich. Diese sind in Deutschland sehr unüblich, diese Art von Zugängen gibt es aber manchmal zur Anlieferung bei Restaurants etc., wo Fässer dann in den Keller gerollt oder gehoben werden können. 
      Ich habe zwei Hatch Doors verwendet, die allerdings nach dem Drehen vollkommen aus dem Ruder liefen. Inzwischen habe ich sie einigermaßen gebändigt bekommen. Es ist nicht perfekt, aber annehmbar. 
      Im Keller habe ich heute mit einer Falltür experimentiert, die zu einem Schachtsystem führt. Die Räume sind noch quasi nicht eingerichtet, aber ich möchte erstmal am Grundriss weiterarbeiten. In Kürze fange ich das Obergeschoss an.



      · 2 replies
    • JackFarmer

      On a lighter note, thanks to my cat-like reflexes, my superior puzzle skills and my perfect memory, I was able to beat the remastered version of "Tomb Raider: The Last Revelation" in a new superhuman record time of 23 h : 35 m, worship me!
      · 3 replies
    • Goblin of Akenash

      My mapping discord if anyone is interested, its more of a general modding thing rather than just for TDM 
      https://discord.gg/T4Jt4DdmUb

       
      · 0 replies
×
×
  • Create New...