Jump to content
The Dark Mod Forums

I can help too. I hope


tech

Recommended Posts

Just you to know if you need some of my skills:

I'm a student, fascinated by low-level programming: I had a little OS'dev project, but it got frozen cause I was alone, writing it in asm, had no much time. Now I do some researches about information security. To my regret I haven't started yet learning driver coding, but I'll do my best. If you need some low-level implementation, I'm here.

I know asm (fasm syntax). Also I know C/C++, but I used them long time ago, cause my favourite language is asm.

Link to comment
Share on other sites

Hey there.

 

I'm not sure we have much use for hardcode assembler coding in the mod. The only place where assembler is used in signficant amounts is in the SIMD class hierarchy (you might want to check up with MoroseTroll about the status of that one).

 

Help with programming in C++ is always welcome, but beware that I've grown very hesitant to have new folks signed up and to lead them by the hand. I've done it dozens of times and I just don't have the time for that anymore. If you are willing to help, prove it to yourself that you are able to handle the TDM codebase, by picking one of the issues on the bugtracker, diving into the code and trying to fix it. Asking questions is always ok, of course, but don't expect anybody to do your "homework" (= reading the code, trying to find a solution that is not hopefully not just a dirty hack).

 

I'm probably coming across more harshly than I actually am, but I've seen too many people sign up and disappear after little more than two weeks. I'm not intending to discourage you, just go ahead and test your skills on an actual problem on the tracker.

 

Generally, you don't need to be a team member or have access to SVN or the team forums. Everything you need to get started is freely availabe: the code, the bugtracker, the wiki including compilation guides in all three supported platforms. Just get cracking!

Link to comment
Share on other sites

greebo: I'm waiting for the source of Doom 3. Not sure that my implementation of idSIMD would help TDM, but who knows...

 

tech: I think, TDM needs some optimization, but by multithreading (not by using asm, as I was thinking before). As all we know, almost all modern CPUs are multicore, but Doom 3 (and TDM) almost doesn't use multithreading. So if someone would parallelize it, it would be wonderful ;).

Link to comment
Share on other sites

I've already spent one or two days to hack multithreaded AI thinking into the game code (I think it was sometime in 2010) and it was a disaster, since most low-level libraries are not thread-safe.

 

I'm not saying it's not possible or wouldn't have benefits, but it definitely requires some extensive work. That, and full source access, since the collision model manager code is among the systems which are not thread-safe (it's using static local variables/arrays behind the scenes, if I recall correctly).

Link to comment
Share on other sites

Let's just say that companies regularly redesign entirely or just add hardware into simple programs rather than make the original code multithreaded.

 

Basically doing multithreaded code worth it requires:

 

0) profiling and make sure the limitation point is not inherently sequential.

0b) check that the whole runtime libraries used in what you found are thread safe or can be made thread safe (without losing the expected performance).

1) algorithm redesign

2) finding the right crossover point from dividing the work to working into single thread

3) very carefully check the uses of shared resources and their publication points

4) very carefully check that you've found all of 3

5) pray, since you can't have good unit tests for thread bugs.

6) go insane if you used wait/notify/join or lock/unlock/readlock instead of queues/fences & other high level slower constructs.

7) profile again to see if you haven't actually made the code slower due to vagaries of the OS thread scheduler and/or over locking and/or cache non-locality.

8) ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn

Edited by i30817
Link to comment
Share on other sites

Let's just say that companies regularly redesign entirely or just add hardware into simple programs rather than make the original code multithreaded.

 

Basically doing multithreaded code worth it requires:

 

0) profiling and make sure the limitation point is not inherently sequential.

0b) check that the whole runtime libraries used in what you found are thread safe or can be made thread safe (without losing the expected performance).

1) algorithm redesign

2) finding the right crossover point from dividing the work to working into single thread

3) very carefully check the uses of shared resources and their publication points

4) very carefully check that you've found all of 3

5) pray, since you can't have good unit tests for thread bugs.

6) go insane if you used wait/notify/join or lock/unlock/readlock instead of queues/fences & other high level slower constructs.

7) profile again to see if you haven't actually made the code slower due to vagaries of the OS thread scheduler and/or over locking and/or cache non-locality.

8) ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn

 

Curiously, the only entry I can understand is the last one. Peculiar, is it not? :P

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

Ohh... Converting program to multithreaded one is a rather hard thing as it was said here,,, We'll need to revise the whole Doom3 code and correct it. And bugs will be everywhere.

It's easier to use some engine and implement TDM through it than to correct Doom3 source code :)

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.

  • Recent Status Updates

    • Petike the Taffer

      I've finally managed to log in to The Dark Mod Wiki. I'm back in the saddle and before the holidays start in full, I'll be adding a few new FM articles and doing other updates. Written in Stone is already done.
      · 4 replies
    • nbohr1more

      TDM 15th Anniversary Contest is now active! Please declare your participation: https://forums.thedarkmod.com/index.php?/topic/22413-the-dark-mod-15th-anniversary-contest-entry-thread/
       
      · 0 replies
    • JackFarmer

      @TheUnbeholden
      You cannot receive PMs. Could you please be so kind and check your mailbox if it is full (or maybe you switched off the function)?
      · 1 reply
    • OrbWeaver

      I like the new frob highlight but it would nice if it was less "flickery" while moving over objects (especially barred metal doors).
      · 4 replies
    • nbohr1more

      Please vote in the 15th Anniversary Contest Theme Poll
       
      · 0 replies
×
×
  • Create New...