Jump to content
The Dark Mod Forums

Darkmod: Inspiration thread


Recommended Posts

It does; it doesn't handle a lot of areas being rendered at the same time so well, and can mess with sound propagation (see the original version of RttC). Breaking sight lines is a good way to reduce the chances of that happening, but you can, in fact, create huge scenes that run well, as long as they aren't too heavy on details.


Of course, breaking sight lines also results in more cramped, labyrinthine architecture. And that is a Good Thing.

Come the time of peril, did the ground gape, and did the dead rest unquiet 'gainst us. Our bands of iron and hammers of stone prevailed not, and some did doubt the Builder's plan. But the seals held strong, and the few did triumph, and the doubters were lain into the foundations of the new sanctum. -- Collected letters of the Smith-in-Exile, Civitas Approved

Link to comment
Share on other sites

Ok, two questions:


Why id tech 4 doesn't handle well long views?


Since it's open source is it fixable?


Not to fully contradict Melan here but compared to other engine types Doom 3 is relatively "heavier" than other engines for several reasons.


1) When larger views are presented, more light bounding calculations must be performed. Shadowed lights include shadow vector and silhouette calculations. This especially heavy when shadowed lights extend far into the horizon. Even without shadows, if Doom 3 lights overlap more triangles must be allocated and they must be "re-filled" with new light data. This is why Doom 3 is often referred to as "fillrate bound". The longer the view the greater the risk of these overlaps. Also, many mappers are not aware that "longer brush surfaces that have one material applied to them" acquire light overlaps from the far distant regions of the surface. You can break-up materials, change texture scale or translation etc to ensure that a large surface doesn't have a huge light count with little visual aberration. Under ideal circumstances, all surfaces in a scene would have 2 or less light overlaps but this is not usually practical for mappers. In fact, if someone had the IQ for it, you could create a tool that automatically converts overlapping lights to custom light textures so that mappers could place lights free-form without worrying about the performance impact. This could have been done even without the Doom 3 source and perhaps should've been done by Id Software but it's academic now and I suspect the math involved in such a "light projection converter" would challenge even Mr Carmack himself... (especially since the LightCarve map compile method wasn't fully working as expected when the product shipped which is a "simpler" problem).


2) Longer and more complex BSP branch evaluations need to be evaluated before objects are culled (I believe Serpentine has worked on this already). Most engines no longer use BSP but instead use a more crude visibility system with aggressive LOD swapping (see below).


3) Most engines have in-renderer distance LOD systems. TDM was recently granted an LOD system but it runs from game logic which may not be fully optimal. I believe we have yet to see the potential of even the current system due to the lack of LOD models.


Can these issues be addressed in the Source? Yes


Are they easy to fix? No


We finally have 1 example renderer at Doom3world with Deferred Rendering (which would solve most of the fillrate issue) but the renderer is not complete and only works for point lights. The community is hoping for someone like Tr3B or O'dium to come along and make some big strides but the population of engine designers with the skill and motivation is very low.


A shadow solution that doesn't require CPU silhouette calculations would be one of the biggest improvements on the wish list and there is also some preliminary experiments with alternate methods but these are early days.


I have no doubt that someone will come along and show-off more promising approaches eventually.



None of this points to the concept that Doom 3 is a "bad engine". Few engines can handle dynamic light as well as Doom 3 even now. Most don't even try.

Edited by nbohr1more

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




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

Link to comment
Share on other sites

^even Source which is a very popular engine handles much the same as Doom3's, but dynamic lights KILL it. 1 or two in a map and fps drops like a brick. They've got baked lighting which is great, but dynamic is great for TDM.

Dark is the sway that mows like a harvest

Link to comment
Share on other sites

Not to fully contradict Melan here but compared to other engine types Doom 3 is relatively "heavier" than other engines for several reasons.


Here are a few more explanations:


Here is a thread with a "doom3 can do it too" style of posts, huge outdoor scenes etc. Unfortunately, most of the links to images are dead (Do You Feel Lucky Now, You Cloud Hosting Punk?)




The biggest problems for performance of large maps in idTech4 are:


* no support for LOD (TDM has this now, but it could be better performance when switching/doing the calculation, and we need way more LOD models)

* no instancing (all models are either drawn one by one from the CPU to the GPU, or are "combined" into a multi-models by the CPU. True "instancing" would the GPU let clone models by drawing one model multiple times, that is a lot faster

* no support for imposters (f.i. a far away tree gets replaced by a billboard with the tree image on it which gets updated if you get closer or move toof ar left/right automatically)

* no multi-threading (and under Linux no SIMD support)


All these mean the CPU+GPU has to work way too hard compared to other engines.


None of this points to the concept that Doom 3 is a "bad engine". Few engines can handle dynamic light as well as Doom 3 even now. Most don't even try.


Can only underwrite this. Also, people usually don't "get" it, but the engine used by TDM has come a very very long way from the engine used in D3, even before we had the full source. There is an incredible amount of modifications and revamps that were added over the years - one example is the AI, which now instead being scripted runs all inside the C++ code and is much much more complex.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)


"Remember: If the game lets you do it, it's not cheating." -- Xarax

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.

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

    • nbohr1more

      In addition to voting for TDM, let's help our friend Skacky garner some Moddb recognition for the momentous release of "The Black Parade" https://www.moddb.com/mods/thief-the-black-parade
      · 0 replies
    • peter_spy

      I don't think The Last of Us part I is a good game; it is something else in terms of pure audio-visual experience though. The attention to detail is insane, especially in sound and animation.
      · 0 replies
    • snatcher

      TDM Modpack v3.8 released!
      Introducing the SHOCK MINE!
      · 1 reply
    • JackFarmer

      If you find the new Beatles song "Now and Then", which was created with the help of AI, totally boring, then you should better play the mission of the same name by our esteemed mission maker friend joebarnin, because the latter is actually a creative milestone!
      · 4 replies
    • datiswous

      Idea: Thief 3 style missions.
      One of the great features of Thief 3 are missions defided in small segments with loading screens when you move from segment to segment. We all miss those right? I was thinking of mapping only horizontal, so not stacked. When you go up or down (stairs or elevator), you get a 20 seconds fake loading screen where you can play a minigame (The Builder's Blocks?). After that you get teleported to a different area that seems to be on top of the first, but actually isn't in the map file. It's much easier mapping, because you can see everything in one glance from above. This could also give more freedom building, because it doesn't have to fit. Everything is predictable because guards don't move to different sections.
      This could be used for the Thief 3 contest possibly..
      · 7 replies
  • Create New...