Jump to content
The Dark Mod Forums

Search the Community

Searched results for '/tags/forums/ambient/' or tags 'forums/ambient/q=/tags/forums/ambient/&'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General Discussion
    • News & Announcements
    • The Dark Mod
    • Fan Missions
    • Off-Topic
  • Feedback and Support
    • TDM Tech Support
    • DarkRadiant Feedback and Development
    • I want to Help
  • Editing and Design
    • TDM Editors Guild
    • Art Assets
    • Music & SFX

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. The problem isn't with the loudness per se, it's with the transitions. I'll try to put it more clearly. When the map loads, there should be silence, and the first ambient should fade in from there. But what happens to me is that there's no fading at all, it just starts playing abruptly. Same thing when going to area 2. What should happen is ambient 1 should fade out, and ambient 2 should fade in. Instead, what happens to me is an abrupt ambient switch, where ambient 1 stops and ambient 2 starts, and then after a second ambient 2 fades out to -17 db.
  2. Yes. Sure, I will change it, but I do mind. In addition to changing the forum title, I have also had the name of the pk4 changed in the mission downloader and the thiefguild.com site’s named changed. It's not just some "joke". The forum post and thread are intended to be a natural extension of the mission’s story, a concept that is already SUPER derivative of almost any haunted media story or most vaguely creepy things written on the internet in the past 10 or 15 years. Given your familiarity with myhouse.wad, you also can clearly engage with something like that on some conceptual level. Just not here on our forums? We can host several unhinged racist tirades in the off-topic section but can’t handle creepypasta without including an advisory the monsters aren’t actually under the bed? (Are they though?) I am also trying to keep an open mind, but I am not really feeling your implication that using a missing person as a framing of a work of fiction is somehow disrespectful to people who are actually gone. I have no idea as even a mediocre creative person what to say to that or why I need to be responsible for making sure nobody potentially believes some creative work I am involved in, or how that is even achievable in the first place. Anyway, apologies for the bummer. That part wasn’t intentional. I am still here. I will also clarify that while I love the game, I never got the biggest house in animal crossing either. In the end Tom Nook took even my last shiny coin.
  3. This post differentiates between "gratis" ("at no monetary cost") and "libre" ("with little or no restriction") per https://en.wikipedia.org/wiki/Gratis_versus_libre * A libre version of TDM could: ** Qualify TDM for an article on the LibreGameWiki *** TDM is currently listed as rejected https://libregamewiki.org/Libregamewiki:Rejected_games_list because "Media is non-commercial (under CC-BY-NC-SA 3.0). The engine is free though (modified Doom 3) (2013-10-19)" ** Qualify for software repositories like Debian *** TDM is currently listed as unsuitable https://wiki.debian.org/Games/Unsuitable#The_Dark_Mod because 1) "The gamedata is very large (2.3 GB)", and 2) "The license of the gamedata (otherwise it must go into non-free with the engine into contrib)" and links to https://svn.thedarkmod.com/publicsvn/darkmod_src/trunk/LICENSE.txt Questions: 1) tdm_installer.linux64 is 4.2 MB (unzipped), which is far from the 2.3 GB which is said to be too large. Yes, the user can use it to download data that is non-libre, but so can any web browser too. If the installer itself is completely libre, does anyone know the reason why it cannot be accepted into the Debian repository? 2) If adding the installer to the repository is not a viable solution, would it be possible to package the engine with a small and beginner friendly mission built only from libre media/gamedata into a "TDM-libre" release, and add user friendly functionality to download the 2.3 GB media/gamedata using "TDM-libre" (similar to mission downloading)? 3) Would such a "TDM-libre" release be acceptable for the Debian repository? 4) Would such a "TDM-libre" release be acceptable for LibreGameWiki? 5) Would the work be worth it? * Pros: Exposure in channels covering libre software (e.g. the LibreGameWiki). Distribution in channels allowing only libre software (e.g. the Debian repository). * Cons: The work required for the modifictions and release of "TDM-libre". Possible maintenance of "TDM-libre". I'm thinking that the wider reach may attract more volunteers to work on TDM, which may eventually make up for this work and hopefully be net positive. 6) Are there any TDM missions that are libre already today? If not, would anyone be willing to work on one to fulfill this? I'll contribute in any way I can. 7) I found the following related topics on the forum: * https://forums.thedarkmod.com/index.php?/topic/16226-graphical-installers-for-tdm/ (installing only the updater) * https://forums.thedarkmod.com/index.php?/topic/16640-problems-i-had-with-tdm-installation-on-linux-w-solutions/ (problems with installation on Linux) * https://forums.thedarkmod.com/index.php?/topic/17743-building-tdm-on-debian-8-steamos-tdm-203/ (Building TDM on Debian 8 / SteamOS) * https://forums.thedarkmod.com/index.php?/topic/18592-debian-packaging/ (Dark Radiant) ... but if there are other related previous discussions, I'd appreciate any links to them. Any thoughts or comments?
  4. I plan to gradually try out all or most of the different path node types and adjust them depending on the interaction. Though I don't plan to use it in this particular mission, I have a keen interest in the follow type, as I'll want an NPC to follow the player character in another, future FM I'd like to create. Never too soon to try out various functions while I'm already learning new FM-building skins after a long hiatus. Thank you for the suggestion. I completely forgot about the location system ambients as an option ! A few years back, when I was testing various stuff in DR, I did actually use that approach instead, once or twice. I haven't used DR much in recent years, so I eventually forgot about setting it up that way. Acknowledged, and I'll look into it. It'll save a lot of time concerning the audio side of the mission. My first few missions won't have much a natural environment, they'll largelly be small and focused on buildings or urban spaces, so I won't need to bother with detailed audio for rivers yet. I have an outdoor FM planned for later (it's in the pre-production phase), and I'll have a good reason to study it in greater detail. It's actually okay, I don't reallt need rectangular speakers. Given that I've been reminded I can set a main ambience for each room - something I did know before, but forgot, after not working properly with DR these past few years - I'll do just that, and use the speakers for more secondary ambience concerns. Handy indeed. A rectangular shape would be easier to remember. I'll just use the filters in the editor to put away the speakers if I ever the get the impression they're blocking my view. Also, I don't actually mind the shape all that much. As you and the others say, the size/radius of the speaker is the actual key aspect. I'm a bit disappointed it's seemingly not possible to resize speakers the same way you can resize brushes or certain models, though you can still tweak the radius numerically, manually. As long as I can work with that, the actual shape of a speaker isn't really important. My main concern is expanding the minimum and maximum radius areas to an extent where they'll be audible for most for all of the respective areas the player will visit, rather than fading away quickly once the player leaves the hub of the speaker behind. As was already said above, I'll use the different utility to set the main ambient for the individual rooms, rather than a manually placed speaker, and I'll reserve the speakers for additional sound effects or more local ambience. I've already added some extra parameters to the speakers I'm testing out in my FM, so I'll take a look at those soon, though I'll deal with the main room ambience settings first. I'd like to thank everyone for their replies. While I'm not surprised by the answers, I'm now more confident in working with the path node and speaker entities. On an unrelated sidenote to all of this, the same in-development FM where I'm testing the speaker placement and range was tested yesterday for whether an NPC AI can walk from the ground floor all the way to the topmost floor, without issues. Thankfully, there have been no issues at all, and the test subject - a female mage, whom I won't use in the completed FM, sadly - did a successful first ascent of the tower-like building that'll serve as the main setting. (That's all your getting from me for now, concerning the FM contents.)
  5. If you can do this, I don't know how. But it's something I want as well and was actually going to raise it as a feature request. I think speakers are spherical so they model real sound which radiates from a source outwards. I find this doesn't work so well with some scenarios though: water. For example you want to hear the sound of waves lapping a shoreline or a running water sound for a stream, river or canal. If the shoreline or stream is on the longer side, you have to have a speaker with a huge radius to cover it and the sounds extends too far along perpendicular to the body of water. Or alternatively multiple speakers but then you have to manage overlap and it becomes a pain. wind. Same idea but vertical - if you have a long edge or balcony then you need a large radius speaker to cover it and it might extend too low so you hear wind noises on the ground. @Petike the Taffer If all you want is for a sound to fill a room, just use the location system ambients instead. But you can only have one sound I think, so you couldn't have say your ambient music and also a weather sound at the same time without using a speaker for one of them.
  6. I've seen fun workarounds like that in other game modding as well. Years ago, maybe even a decade, some fella who was making a mod for Mount & Blade over at the Taleworlds forums revealed that he put invisible human NPCs on the backs of regular horse NPCs, then put the horse NPCs inside a horse corral he built for one of his mod's locations/scenes and then did some minor scripting, so the horses with invisible riders would wander around the corral. The end result was that it looked they're doing this of their own will, rather than an NPC rider being scripted to ride around the corral slowly. Necessity is the mother of invention. I don't know about the newest Mount & Blade game, but the first generation ones (2008-2022) apparently had some sort of hardcoded issue back in the earlier years, where if you left a horse NPC without a rider in its saddle, the horses would just stand around and wait and you couldn't get them to move around. Placing an invisible rider in their saddles suddenly made it viable again, at least for background scenes, of riderless horses wandering around, for added atmosphere. First generation M&B presumed you'd mostly be seeing horses in movement with riders, and the only horses-wandering-loosely animations and scripting were done for situations when the rider was knocked off their horse or dismounted in the middle of a battle. Hence the really odd workarounds. So, an invisible NPC trick might not be out of the question in TDM, even though you could probably still bump into it, despite its invisibility.
  7. Here's my first FM. A small and easy mission, inspired by Thief's Den and The Bakery Job, where you must find and steal a cook's recipe book in order to save a friend from going out of business. Download: Mediafire (sk_cooks.pk4) TDM Website's Mission Page The in-game mission downloader Thanks to: The people who helped me get this far, both in the forums and on Discord. The beta testers: MirceaKitsune, Mat99, Baal, wesp5, Cambridge Spy, jaxa, grodenglaive, Acolytesix ( Per the author in the beta testing thread. ) Skaruts has given permission to the TDM Team to add Subtitles or Localization Strings to this mission. (No EFX Reverb.) If anyone from the Community or TDM team wishes to create these we will gladly test them and update the mission database.
  8. Inn Business It's business, at an inn, over three nights. Development screenshots: Download: https://drive.google...dit?usp=sharing Update 1.48 uploaded March 8th, 2014, one change: patches key rarely not being frobable in one of its possible spots Big thanks to my beta testers: Airship Ballet, Kyyrma and AluminumHaste! Development supporters of note: Sotha, Springheel and Obsttorte. Also thanks Sotha, for urinating in my mission. ;-) And thanks Kyyrma for the title screen! My appreciation to all forum/wiki contributors, without whom, this wouldn't exist. Thanks to positive commenters on my previous mission too, extra motivation helps! :-) Note this uses campaign features, what you use the first night, impacts subsequent nights. And to quote a tester, "...the level is maybe best experienced in more than one sitting". If you do pause between nights, please be sure to save, you can't begin partway through effectively. (If you accidentally start a night you already completed, just fail the kill objective to switch to another night.) If your frame rates are too low facing the cemetery, please reduce your "Object Details LOD" setting. It was designed with "AI Vision" set to "Forgiving", to be able to sneak through with minimal reactions, if you want more/less, adjust your settings accordingly. There are several random, conditional aspects, and ways of going about things, so others might have slightly different experiences. Post here if you discover hidden objectives for extra points! My condolences to loot completionists, I made a bit on the third night hard, you've got your challenge cut out for you! Speaking of which, there's a TDM bug that mission complete totals too high, here are the real amounts per night: 2026/970/202. Oh, there is something that in the U.S. would be rated PG, in case you play with kids in earshot. I hope you enjoy playing it, feel free to let me know you did, and I'm glad to respond to inquiries (like how stuff was done, nothing was scripted). (Note which night you are referring to if it's something specific.) (Please remember spoiler tags to not expose things meant to be discovered by playing.) Like so: [spoiler]secrets[/spoiler] Developed for TDM 2.01. PS: Thiefette, good news, no spiders! Springheel, if you find an optional objective you can skip...you might find it immersion breaking. Others, no undead! There are a couple other interactive critters though. :-) Edit note: Some posts below were from users of an unreleased version of TDM 2.02 which broke several things, they do not reflect regular game-play.
  9. Something I've been wondering for a while, and the wiki couldn't quite answer my question to a satisfying degree; does ambient noise affect sound propagation in anyway? In other words, is there any system in place that simulates background noise masking player generated racket? I'm mainly thinking of things like roaring machinery, a common set piece in induralist settings. Or heavy rain, loud music, waterfalls, any kind of noise generating entity that physically exist in the mission's world, thus audible for AI entities, and could reasonably overshadow/drown out footsteps. Based on personal experience I'm fairly certain background noise is not taken into account, but it doesn't hurt asking. An old, personal pet peeve of mine is when enemies, that the player can't hear moving around due to blaringly loud ambient noises, somehow isn't affected by the same auditory disturbance and immediately goes searching mode over a single, casual footstep. Or when enemies somehow can distinguish between two sets of identical sounding footsteps, although I can accept that a bit more than the first one. The superhuman hearing can be quite ridiculous. Follow-up question; assuming it doesn't already exist, would such a system be a worthwhile addition? Could be a powerful tool for map makers and players, setting up areas where the player perform rushed actions by utilizing the environment. Like turning on a gramophone to be able to run through a fully illuminated wooden corridor, and stuff. One possible argument I can think of is that such an addition could mess with old missions, however I'd contend that any mission, that would get ruined by an extra tool/route, wasn't a particularly well designed mission in the first place. Another issue is that it might be pretty expensive to calculate or properly define the propagation.
  10. The fisheries have had a bad year. Unemployed roam the streets and crowd the pubs. The merchants sleep with one eye open and keep a tight grip on their property amid the unrest. A thief, even a skilled thief like myself, has a hard time finding good, worthwhile work. I began looking for more... unusual tasks. I set my eyes on Thornton Hall, remote and cut off from the outside world. These outlying manors are difficult to find, let alone reach, but they're bound to hold precious trinkets and family heirlooms untouched by anyone. Not few are said to be haunted by one dreadful apparition or another. But it's common for the lords themselves to spread these rumours, to keep unwanted visitors away. This mission is in two parts. Once youre done with the first, on to the next. Download Dropbox- river3In-game downloaderClick continue at the bottom of the login screen if you use the Dropbox link but don't have a login, then place the mission archive in the fms folder of your Dark Mod installation. Changelog, v3, December 14th, 2016: Changelog, v2.5, November 23rd, 2016: Changelog, v2, October 27th, 2016: Notes In response to a question about the relation of this mission to One Step Too Far: This mission started its life as a standalone mission for a Halloween contest, so it takes place in a different setting and begins with its own story. There is, however, a strong link thatll become apparent during the mission. From a mapping perspective it contains areas and ideas that I had originally intended for Of Brambles and Thorns, which is the bonafide sequel, but realised that they wouldn't have space there anymore. So this could be described as being neither sequel nor prequel, but certainly a part of the series that began with One Step Too Far. Solutions Part 1 Part 2 Credits - Inspiration, Story: The Terrible Old Man by H.P. Lovecraft, a short story which leaves much to the imagination. - Inspiration, Setting: Right Up There in the Mountains by Troutpack, a fan mission for Thief 2 which left its mark. - Betatesters Round 1: Abusimplea, ankai, Ryan101, Oldjim, bikerdude - Betatesters Round 2: nbohr1more, bikerdude, crowbars82, jaxa, dunedain19 - Custom voice work: AndrosTheOxen, bikerdude, Goldwell - Custom models: Atheran, epifire, Dragofer - Custom paintings: Airship Ballet - Custom AI path setup: Sotha - Custom ambient tracks: gigagooga, spady, bottle_rocket_fx, dobroide, Dragofer, augustsandberg, bosk1, 01sound - Custom sound effects: kyyrma, cgeffex, speedenza, cabro, joelaudio, robinhood76, klankbeeld, benjaminharveydesign, vate - Bikerdude for not allowing me to stray from the highest standards and perfing troublesome spots - John Atkinson Grimshaw, Ivan Aivazovsyk and William Bradford for paintings used in the briefings and loading screens
  11. So I'm like - He-he the doc is an idiot, he couldn't remember which book is supposed to open the compartment so he made sure all of them open it, and then I find the desk key and find the manual... Guess I'm an idiot! Also, the torn pages - nice touch, gets you thinking. And then I find the clue how to open it and... I struggle bad. Because, like others. I thought "Color of books, no that's not it, color of bookshelves, also not it" (really hard to see colors on the left side, I got it right but they blend in too much, for me at least) and then I read HERE that it's a different order(!) I read the recipe, and I am just going to ask - Six ounces of Snooze berries?! Excuse me?! Also, whoever made that ambient track that included fire starter sounds - damn you. DAMN YOU! XD (How do you get into a dilapidated room? I couldn't find a switch anywhere)
  12. You can walk through every entity and spawnarg in the set up piece by piece and see if there's a logical problem buried in there. I don't recall how the fade-in works for the initial ambient anymore. It's been too long. But you can experiment to see if it's really borked. But what I came to say is that note there's a Sound Override setting where you can just set up an ambient transition yourself by some trigger if the location transitions aren't working properly for some reason. One thing you might try, if the initial ambient always borks the fade in no matter what you do, is to set a dummy initial sound by immediately triggering the Sound Override as soon as the map starts, like just a quarter second of silence, and then turn the Sound Override off a half second later to have the system immediately transition back into the initial location ambient, and then the fade in should work properly. It's a bit of a hack, but it could fix your problem. You might be able to think of other ways to deal with it along those kinds of lines.
  13. Ah, pity I wasn't reading the forums back in February. I'm fond of that game, along with Bugbear's other early title, Rally Trophy. I was never too good at FlatOut, but it was always a hoot to play.
  14. Jack's video seems to be gone, so I recorded a few of my own. (Hopefully you can see them, if imgur doesn't play tricks on me.) This is what I had initially, before changing fidelay to 0.1 (default fidelay is 0.001). There are no fade-ins. Ambient starts playing abruptly. This is what I have now with fidelay 0.1, which makes it bearable, but doesn't fix it. There's a short burst of sound, then silence, then fades in. I'd like to stress that this only happens the first time I enter a location. After that all transitions work as they should. I also have issues with some ambient sounds, which I suppose could also be described as popping. Rright after the guard snores, there's a small "pfft" sound, and the ambient seems to get slightly louder. (I hope "pfft" sound is really in the video, and not just on my own speakers.)
  15. I intend to update the FM if any bugs/errors are found or updates to TDM necessitate it, but you're correct that I'm not updating it for content going forwards. The ambient tracks I used in this FM were a little bit busier than I normally would use, mostly because I knew this was going to be a very short FM going in and I had to deliver an atmosphere somewhat quickly. Rest assured that my next FM is going to be a bit less busy and more varied in terms of ambience. Don't worry, I don't view this as a major failing or anything. I don't really find Lovecraft's works "scary" in a traditional sense, if I wanted this to be overtly scary I likely would have gone way over the top and diverted too heavily from the source material. I've always enjoyed Lovecraft's works for their ominous tone, ambience, and mystery, which it seems from your feedback I more or less achieved. I'm glad you enjoyed my FM, Arrow, and thanks for the feedback!
  16. When talking about a possible libre version of TDM (https://forums.thedarkmod.com/index.php?/topic/22346-libre-version-of-tdm/) it seems we believe all media/gamedata included in TDM is licensed CC-BY-NC-SA. I am not familiar with how the process of adding new media/gamedata works today; I have seen files uploaded to the bugtracker which developers then commit to SVN, but I don't know if there are other ways. It may be a good idea to implement a process that when new components (media/gamedata included in TDM) are added, the contributor is asked to be explicit about the license (a choice which may defaults to their previous preference, for usability). It won't fix the past, but it may help in the future. This will make it easy for contributors to add future data under a more permissive license if they choose. Libre media can be added and its license can be tracked, rather than assumed to be CC-BY-NC-SA. I suggest looking at how Wikimedia Commons has implemented this: the contributor state the source and license at the time the data is uploaded. This can be done either by providing urls or by saying "It's my work and I choose this licsense". The first step could be to add a way to keep track of each filepath in SVN, author, license, sources. Start by setting the value for each file's license to "(default/legacy CC-BY-NC-SA)". Possible implementations for a user interface for new additions are: * Use our own wiki, which runs Mediawiki (same as Wikimedia Commons). I see several benefits of this, but we also need a way to accept uploads of batches, not just single files. * Look at how other open source projects have solved this. There may be more appropriate solutions available. ... but I'll leave the implementation open. Suggestions are very welcome! If the author of each file already in SVN can be tracked, then it may be possible that the author is willing to give a blanket permission for all their past files in one statement, and all their files in SVN can be updated in one commit. A productive contributor willing to release some of their work under a more permissive license could make a big change. If Dark Radiant would support letting mappers search media/gamedata by license (does it already?), it would make it easier for mappers to create a completely libre mission, which would help facilitate a TDM-libre release. If I understand things correctly. This post does not address all details and it may contain misunderstandings or assumptions, but it's a start. Also relevant: * Is there a compiled and maintained list of recommended or deprecated resources for mappers to use? * https://forums.thedarkmod.com/index.php?/topic/20311-external-art-assets-licensing/
  17. Hello, everyone! In this multi-part, comprehensive tutorial I will introduce you to a new light type that has been available in The Dark Mod since version 2.06, what it does, why you would want to use it and how to implement it in your Fan Missions. This tutorial is aimed at the intermediate mapper. Explanations of how to use DarkRadiant, write material files, etc. are outside of its scope. I will, however, aim to be thorough and explain the relevant concepts comprehensively. Let us begin by delineating the sections of the tutorial: Part 1 will walk you through four, distinct ways to add ambient light to a scene, the last way using irradiance environment maps (or IEMs). Lighting a scene with an IEM is considered image-based lighting. Explaining this concept is not in the scope of this tutorial; rather, we will compare and contrast our currently available methods with this new one. If you already understand the benefits IBL confers, you may consider this introductory section superfluous. Part 2 will review the current state of cubemap lights in TDM, brief you on capturing an environment cubemap inside TDM and note limitations you may run into. Three cubemap filtering applications will be introduced and reviewed. Part 3 will go into further detail of the types of inputs and outputs required by each program and give a walkthrough of the simplest way to get an irradiance map working in-game. Part 4 will guide you through two additional, different workflows of how to convert your cubemap to an irradiance map and unstitch it back to the six separate image files that the engine needs. Part 5 will conclude the tutorial with some considerations as to the scalability of the methods hitherto explained and will enumerate some good practices in creating IEMs. Typical scenes will be considered. Essential links and resources will be posted here and a succinct list of the steps and tools needed for each workflow will be summarized, for quick reference. Without further ado, let us begin. Part 1 Imagine the scene. You’ve just made a great environment for your map, you’ve got your geometry exactly how you want it… but there’s a problem. Nobody can appreciate your efforts if they can’t see anything! [Fig. 1] This will be the test scene for the rest of our tutorial — I would tell you to “get acquainted with it” but it’s rather hard to, at the moment. The Dark Mod is a game where the interplay between light and shadow is of great importance. Placing lights is designing gameplay. In this example scene, a corridor with two windows, I have decided to place 3 lights for the player to stealth his way around. Two lights from the windows streak down across the floor and a third, placeholder light for a fixture later to be added, is shining behind me, at one end of the corridor. Strictly speaking, this is sufficient for gameplay in my case. It is plainly obvious, however, that the scene looks bad, incomplete. “Gameplay” lights aside, the rest of the environment is pitch black. This is undesirable for two reasons. It looks wrong. In real life, lights bounce off surfaces and diffuse in all directions. This diffused, omni-directional lighting is called ambient lighting and its emitment can be termed irradiance. You may contrast this with directional lighting radiating from a point, which is called point lighting and its emitment — radiance. One can argue that ambient lighting sells the realism of a scene. Be that as it may, suppose we disregard scary, real-life optics and set concerns of “realism” aside… It’s bad gameplay. Being in darkness is a positive for the player avatar, but looking at darkness is a negative for the player, themselves. They need to differentiate obstacles and objects in the environment to move their avatar. Our current light level makes the scene illegible. The eye strain involved in reading the environment in these light conditions may well give your player a headache, figurative and literal, and greatly distract them from enjoying your level. This tutorial assumes you use DarkRadiant or are at least aware of idtech4’s light types. From my earlier explanation, you can see the parallels between the real life point/ambient light dichotomy and the aptly named “point” and “ambient” light types that you can use in the editor. For further review, you can consult our wiki. Seeing as how there is a danger in confusing the terms here, I will hereafter refer to real life ambient light as “irradiant light”, to differentiate it from the TDM ambient lights, which are our engine’s practical implementation of the optical phenomenon. A similar distinction between “radiant light” and point lights will be made for the same reason. Back to our problem. Knowing, now, that most all your scenes should have irradiant light in addition to radiant light, let’s try (and fail, instructionally) to fix up our gloomy corridor. [Fig. 2] The easiest and ugliest solution: ambient lights. Atdm:ambient_world is a game entity that is basically an ambient light with no falloff, modifiable by the location system. One of the first things we all do when starting a new map is putting an ambient_world in it. In the above image, the darkness problem is solved by raising the ambient light level using ambient_world (or via an info_location entity). Practically every Dark Mod mission solves its darkness problem1 like this. Entirely relying on the global ambient light, however, is far from ideal and I argue that it solves neither of our two, aforementioned problems. Ambient_world provides irradiant light and you may further modulate its color and brightness per location. However, said color and brightness are constant across the entire scene. This is neither realistic, nor does it reduce eye strain. It only makes the scene marginally more legible. Let’s abandon this uniform lighting approach and try a different solution that’s more scene-specific. [Fig. 3] Non-uniform, but has unintended consequences. Our global ambient now down to a negligible level, the next logical approach would be hand-placed ambient lights with falloff, like ambient_biground. Two are placed here, supplementing our window point lights. Combining ambient and point lights may not be standard TDM practice, but multiple idtech4 tutorials extol the virtues of this method. I, myself, have used it in King of Diamonds. For instance, in the Parkins residence, the red room with the fireplace has ambient lights coupled to both the electric light and the fire flame. They color the shadows and enrich the scene, and they get toggled alongside their parent (point) lights, whenever they change state (extinguished/relit). This is markedly better than before, but to be honest anything is, and you may notice some unintended side-effects. The AI I’ve placed in the middle of the ambient light’s volume gets omnidirectionally illuminated far more than any of the walls, by virtue of how light projection in the engine works. Moving the ambient lights’ centers closer to the windows would alleviate this, but would introduce another issue — the wall would get lit on the other side as well. Ambient lights don’t cast shadows, meaning they go through walls. You could solve this by creating custom ambient light projection textures, but at this point we are three ad hocs in and this is getting needlessly complicated. I concede that this method has limited use cases but illuminating big spaces that AI can move through, like our corridor, isn’t one of them. Let’s move on. [Fig. 4] More directional, but looks off. I have personally been using this method in my WIP maps a lot. For development (vs. release), I even recommend it. A point light instead of an ambient light is used here. The texture is either “biground1” or “defaultpointlight” (the latter here). The light does not cast shadows, and its light origin is set at one side of the corridor, illuminating it at an angle. This solves the problem of omnidirectional illumination for props or AI in the middle of the light volume, you can now see that the AI is lit from the back rather than from all sides. In addition, the point light provides that which the ambient one cannot, namely specular and normal interaction, two very important features that help our players read the environment better. This is about as good as you can get but there are still some niggling problems. The scene still looks too monochromatic and dark. From experience, I can tell you that this method looks good in certain scenes, but this is clearly not one of them. Sure, we can use two, non-shadowcasting point lights instead of one, aligned to our windows like in the previous example, we can even artfully combine local and global ambient lights to furnish the scene further, but by this point we will have multiple light entities placed, which is unwieldy to work with and possibly detrimental to performance. Another problem is that a point light’s movable light origin helps combat ambient omnidirectionality, but its projection texture still illuminates things the strongest in the middle of its volume. I have made multiple experiments with editing the Z-projection falloff texture of these lights and the results have all left me unsatisfied. It just does not look right. A final, more intellectual criticism against this method is that this does not, in a technical sense, supply irradiant light. Nothing here is diffuse, this is just radiant light pretending the best it can. [Fig. 5] The irradiance map method provides the best looking solution to imbuing your scene with an ambient glow. This is the corridor lit with irradiance map lights, a new lighting method introduced in The Dark Mod 2.06. Note the subtle gradients on the left wall and the bounced, orange light on the right column. Note the agreeable light on the AI. Comparing the previous methods and this, it is plainly obvious that an irradiance environment map looks the most realistic and defines the environment far better than any of the other solutions. Why exactly does this image look better than the others? You can inform yourself on image-based lighting and the nature of diffuse irradiance, but images speak louder than words. As you can see, the fact of the matter is that the effect, subtle as it may be, substantially improves the realism of the scene, at least compared to the methods previously available to us. Procuring irradiance environment maps for use in lighting your level will hereafter be the chief subject of this tutorial. The next part will review environment cubemap capture in TDM, the makeIrradiance keyword and three external applications that you can use to convert a TDM cubemap into an irradiance map. 1 “ Note that the color buffer is cleared to black: Doom3 world is naturally pitch black since there is no "ambient" light: In order to be visible a surface/polygon must interact. with a light. This explains why Doom3 was so dark ! “ [source] Part 2 Cubemaps are not new to The Dark Mod. The skybox materials in some of our prefabs are cubemaps, some glass and polished tile materials use cubemaps to fake reflections for cheap. Cubemap lights, however, are comparatively new. The wiki page linked earlier describes these two, new light types that were added in TDM 2.05. cubicLight is a shadow-casting light with true spherical falloff. An example of such a light can be found in the core files, “lights/cubic/tdm_lampshade_cubic”. ambientCubicLight is the light type we will be focusing on. Prior to TDM 2.06, it acted as a movable, on-demand reflection dispenser, making surfaces in its radius reflect a pre-set cubemap, much like glass. After 2.06, the old behavior was discarded and ambientCubicLight was converted to accept industry standard irradiance environment maps. Irradiance environment maps (IEMs) are what we want to make, so perhaps the first thing to make clear is that they aren’t really “handmade”. An IEM is the output of a filtering process (convolution) which requires an input in the form of a regular environment cubemap. In other words, if we want to make an IEM, we need a regular cubemap, ideally one depicting our environment — in this case, the corridor. I say a snapshot of the environment is ideal for lighting it because this emulates how irradiant light in the real world works. All radiating surfaces are recorded in our cubemap, our ambient optic array as it were, then blurred, or convoluted, to approximate light scatter and diffusion, then the in-game light “shines” this approximation of irradiant light back to the surfaces. There is a bit of a “chicken and the egg” situation here, if your scene is dark to begin with, wouldn’t you just get a dark irradiance map and accomplish nothing? In the captured cubemap faces in Fig. 6, you may notice that the environment looks different than what I’ve shown so far. I used two ambient lights to brighten up the windows for a better final irradiance result. I’ve “primed the pump”, so to speak. You can ignore this conundrum for the moment, ways to set up your scenes for better results, or priming the pump correctly, will be discussed at the end of the tutorial. Capturing the Environment The wiki has a tutorial on capturing cubemaps by angua, but it is woefully out of date. Let me run you through the process for 2.07 really briefly. To start with, I fly to approx. the center of the corridor with noclip. I then type “envshot t 256” in the console. This outputs six .tga images in the <root>/env folder, simply named “t”, sized 256x256 px and constituting the six sides of a cube and depicting the entire environment. This is how they look in the folder: [Fig. 6] The six cube faces in the folder. Of note here is that I do not need to switch to a 640x480 resolution, neither do I need to rename these files, they can already be used in an ambientCubicLight. Setting Up the Lights For brevity’s sake, I’ll skip explaining material definitions, if you’ve ever added a custom texture to your map, you know how to do this. Suffice it to say, it is much the same with custom lights. In your <root>/materials/my_cool_cubemaps.mtr file, you should have something like this: lights/ambientcube/my_test_IEM_light { ambientCubicLight { forceHighQuality //cameraCubeMap makeIrradiance(env/t) cameraCubeMap env/t colored zeroClamp } } We’ll play with the commented out line in just a bit. Firstly, let’s place the actual light in DarkRadiant. It’s as simple as creating a new light or two and setting them up in much the same way you would a regular ambient light. I select the appropriate light texture from the list, “my_test_IEM_light” in the “ambientcube” subfolder and I leave the light colored pure white. [Fig. 7] The corridor in DR, top view, with the ambient cubic lights highlighted. I can place one that fills the volume or two that stagger the effect somewhat. Remember that these lights still have a spherical falloff. Preference and experimentation will prove what looks best to you. Please note that what the material we defined does is load a cubemap while we established that ambientCubicLights only work with irradiance maps. Let’s see if this causes any problems in-game. I save the map and run it in game to see the results. If I already have TDM running, I type “reloadDecls” in the console to reload my material files and “reloadImages” to reload the .tga images in the /env folder. [Fig. 8] Well this looks completely wrong, big surprise. Wouldn’t you know it, putting a cubemap in the place of an irradiance map doesn’t quite work. Everything in the scene, especially the AI, looks to be bathed in slick oil. Even if a material doesn’t have a specular map, it won’t matter, the ambientCubicLight will produce specular reflections like this. Let’s compare how our cubemap .tga files compares with the IEM .tgas we’ll have by the end of the tutorial: [Fig. 9] t_back.tga is the back face of the environment cubemap, tIEM_back.tga is the back face of the irradiance map derived from it. As you can see, the IEM image looks very different. If I were to use “env/tIEM” instead of “env/t” in the material definition above, I would get the proper result, as seen in the last screenshot of part 1. So it is that we need a properly filtered IEM for our lights to work correctly. Speaking of that mtr def though, let’s not invoke an irradiance map we haven’t learned to convert yet. Let’s try an automatic, in-engine way to convert cubemaps to IEMs, namely the makeIrradiance material keyword. makeIrradiance and Its Limitations Let’s uncomment the sixth line in that definition and comment out the seventh. cameraCubeMap makeIrradiance(env/t) //cameraCubeMap env/t Here is a picture of how a cubemap ran through the makeIrradiance keyword looks like: [Fig. 10] Say ‘Hi’ to our friend in the back, the normalmap test cylinder. It’s a custom texture I’ve made to demonstrate cubemap interactions in a clean way. Hey now, this looks pretty nice! The scene is a bit greener than before, but you may even argue it looks more pleasing to the eyes. Unfortunately, the devil is in the details. Let’s compare the makeIrradiance keyword’s output with the custom made irradiance map setup seen at the end of part 1. [Fig. 11, 12] A closer look at the brick texture reveals that the undesired specular highlighting is still present. The normal map test cylinder confirms that the reason for this is the noisy output of the makeIrradiance keyword. The in-engine conversion is algorithmic, more specifically, it doesn't allow us to directly compare .tga files like we did above. Were we able to, however, I'm sure the makeIrradiance IEM would look grainy and rough compared to the smooth gradient of the IEM you’ll have by the end of this tutorial. The makeIrradiance keyword is good for quick testing but it won’t allow you fine control over your irradiance map. If we want the light to look proper, we need a dedicated cubemap filtering software. A Review of Cubemap Filtering Software Here I’ll introduce three programs you can produce an irradiance map with. In the coming parts, I will present you with a guide for working with each one of them. I should also note that installing all of these is trivial, so I’ll skip that instructional step when describing their workflows. I will not relay you any ad copy, as you can already read it on these programs’ websites. I’ll just list the advantages and disadvantages that concern us. Lys https://www.knaldtech.com/lys/ Advantages: Good UI, rich image manipulation options, working radiance/specular map filtering with multiple convolution algorithms. Disadvantages: $50 price tag, limited import/export options, only available on Windows 64-bit systems. cmftStudio https://github.com/dariomanesku/cmftStudio Advantages: Available on Windows, OSX and Linux, free, open source software, command line interface available. Disadvantages: Somewhat confusing UI, limited import options, missing features (radiance/specular map filtering is broken, fullscreen doesn’t work), 32-bit binaries need to be built from source (I will provide a 32-bit Windows executable at the end of the tutorial). Modified CubeMapGen https://seblagarde.wordpress.com/2012/06/10/amd-cubemapgen-for-physically-based-rendering/ Advantages: Free software, quickest to work with (clarified later). Disadvantages: Bad UI, only Windows binaries available, subpar IEM export due to bad image adjustment options. Let’s take a break at this point and come back to these programs in part 3. A lot of caveats need to be expounded on as to which of these three is the “best” software for making an irradiance map for our purposes. Neither of these programs has a discreet workflow; rather, the workflow will include or exclude certain additional programs and steps depending on which app you choose to work with. It will dovetail and be similar in all cases. Part 3 The aim of this tutorial is twofold. First, it aims to provide the most hands-free and time-efficient method of converting an envshot, environment cubemap to an IEM and getting it working in-game. The second is using as few applications as possible and keeping them all free software that is available for download, much like TDM itself. The tutorial was originally going to only cover IEM production through Lys, as that was the app I used to test the whole process with. I soon realized that it would be inconsiderate of me to suggest you buy a fifty dollar product for a single step in a process that adds comparatively little to the value of a FM, if we’re being honest (if you asked me, the community would benefit far more from a level design tutorial than a technical one like this, but hey, maybe later, I’m filling a niche right now that nobody else has filled). This led me to seek out open-source alternatives to Lys, such as Cubemapgen, which I knew of and cmftStudio, which I did not. I will preempt my own explanations and tell you right away that, in my opinion, cmftStudio is the program you should use for IEM creation. This comes with one big caveat, however, which I’m about to get into. Six Faces on a Cross and The Photoshop Problem Let’s review. Taking an envshot in-game gives you six separate images that are game-ready. Meaning, you get six, split cubemap faces as an output, you need six, split irradiance map faces as an input. This is a problem, because neither Lys nor cmftStudio accept a sequence of images as such. They need to be stitched together in a cube cross, a single image of the unwrapped cube, like this: [Fig. 13] From Lys. Our cubemap has been stitched into a cross and the “Debug Cube Map Face Position” option has been checked, showing the orientations of each face. In Lys only panoramas, sphere maps and cube maps can be loaded into the program. The first two do not concern us, the third specifically refers to a single image file. Therefore, to import a TDM envshot into Lys you need to stitch your cubemap into a cross. Furthermore, Lys’ export also outputs a cubemap cross, therefore you also need to unstitch the cubemap into its faces afterwards if you want to use it in TDM. In cmftStudio you can import single map faces! Well… no, you can’t. The readme on GitHub boasts “Input and output types: cubemap, cube cross, latlong, face list, horizontal and vertical strip.” but this is false. The UI will not allow you to select multiple files on import, rendering the “face list” input type impossible.2 Therefore, to import a TDM envshot into cmftStudio you need to stitch your cubemap into a cross. Fortunately, the “face list” export type does work! Therefore, you don’t need to unstitch the cubemap manually, cmftStudio will export individual faces for you. In both of these cases, then, you need a cubemap cross. For this tutorial I will use Adobe Photoshop, a commercial piece of software, to stitch our faces into a cubemap in an automated fashion (using Photoshop’s Actions). This is the big caveat to using cmftStudio, even if you do not want to buy Lys, PS is still a prerequisite for working with both programs. There are, of course, open source alternatives to Photoshop, such as GIMP, but it is specifically Photoshop’s Action functionality that will power these workflows. GIMP has its own Actions in the form of Macros, but they are written with python. GIMP is not a software suite that I use, neither is python a language I am proficient with. Out of deference for those who don’t have, or like working with, Photoshop, I will later go through the steps I take inside the image editor in some detail, in order for the studious reader to reconstruct them, if they so desire, in their image editing software of choice. At any rate, and at the risk of sounding a little presumptuous, I take it that, as creative types, most of you already have Photoshop on your computers. 2 An asterisk regarding the “impossibility” of this. cmftStudio is a GUI for cmft, a command line interface that does the same stuff but inside a command prompt. I need to stress that I am certain multiple faces can be inputted in the command line, but messing with unwieldy prompts or writing batch files is neither time-saving nor user-friendly. This tutorial is aimed at the average mapper, but a coder might find the versatility offered in cmft interesting. The Cubemapgen Workflow You will have noticed that I purposefully omitted Cubemapgen from the previous discussion. This is because working with Cubemapgen, wonderfully, does not need Photoshop to be involved! Cubemapgen both accepts individual cubemap faces as input and exports individual irradiance map faces as output. Why, then, did I even waste your time with all the talk of Lys, cmftStudio and Photoshop? Well, woefully, Cubemapgen’s irradiance maps look poor at worst and inconsistent at best. Comparing IEMs exported from Lys and cmftStudio, you will see that both look practically the same, which is good! An IEM exported from Cubemapgen, by default, is far too desaturated and the confusing UI does not help in bringing it to parity with the other two programs. If you work solely with Cubemapgen, you won’t even know what ‘parity’ is, since you won’t have a standard to compare to. [Fig. 14] A comparison between the same irradiance map face, exported with the different apps at their respective, default settings. Brightened and enlarged for legibility. This may not bother you and I concede that it is a small price to pay for those not interested in working with Photoshop. The Cubemapgen workflow is so easy to describe that I will in fact do just that, now. After I do so, however, I will argue that it flies in the face of one of the aims of this tutorial, namely: efficiency. Step 1: Load the cubemap faces into Cubemapgen. Returning to specifics, you will remember that we have, at the moment, six .tga cubemap faces in a folder that we want to convert to six irradiance map faces. With Cubemapgen open, direct your attention to these buttons: [Fig. 15] You can load a cubemap face by pressing the corresponding button or using the hotkey ‘F’. To ensure the image faces the correct way, you must load it in the corresponding “slot”, from the Select Cubemap Face dropdown menu above, or by pressing the 1-6 number keys on your keyboard. Here is a helpful list: X+ Face <1> corresponds to *_right X- Face <2> corresponds to *_left Y+ Face <3> corresponds to *_up Y- Face <4> corresponds to *_down Z+ Face <5> corresponds to *_forward Z- Face <6> corresponds to *_back ...with the asterisk representing the name of your cubemap. With enough practice, you can get quite proficient in loading cubemap faces using keyboard shortcuts. Note that the ‘Skybox’ option in the blue panel is checked, I recommend you use it. Step 2: Generate the Irradiance Map [Fig. 16] The corridor environment cubemap loaded in and filtered to an irradiance map. The options on the right are my attempt to get the IEM to look right, though they are by no means prescriptive. Generating an IEM with Modified CubeMapGen 1.66 is as easy as checking the ‘Irradiance cubemap’ checkbox and hitting ‘Filter Cubemap’ in the red panel. There are numerous other options there, but most will have no effect with the checkbox on. For more information, consult the Sébastien Lagarde blog post that you got the app from. I leave it to you to experiment with the input and output gamma sliders, you really have no set standard on how your irradiance map is supposed to look, so unfortunately you’ll have to eyeball it and rely on trial and error. Two things are important to note. The ‘Output Cube Size’ box in the red panel is the resolution that you want your IEM to export to. In the yellow panel, make sure you set the output as RGB rather than RGBA! We don’t need alpha channels in our images. Step 3: Export Irradiance Map Faces Back in the green panel, click the ‘Save CubeMap to Images’ button. Save the images as .tga with a descriptive name. [Fig. 17] The exported irradiance map faces in the folder. These files still need to be renamed with appropriate suffixes in order to constitute a readable cubemap for the engine. The nomenclature is the same as the table above: “c00” is the X+ Face, to be renamed “right”, “c01” is the X- Face and so on. Right left, up down, forward and back. That’s the order! This is all there is to this workflow. A “cameraCubeMap env/testshot” in the light material will give us a result that will look, at the very least, better than the inbuilt makeIrradiance material keyword. [Fig. 17] The map ended up being a little bright. Feel free to open Fig. 4 and this in seperate tabs and compare the Lys/cmft export with the cubemapgen one. A Review of the Workflow Time for the promised criticism to this workflow. I already stated my distaste for the lack of a standardised set of filtering values with this method. The lack of any kind of preset system for saving the values you like makes working with Cubemapgen even more slipshod. Additionally, in part 2, I said that Cubemapgen is the fastest to work with, but this needs to be qualified. What we just did was convert one cubemap to an irradiance map, but a typical game level ought to use more than a single IEM. Premeditation and capturing fake, “generic” environment cubemaps (e.g. setting up a “blue light on the right, orange on the left” room or a “bright skylight above, brown floor” room, then capturing them with envshot) might allow for some judicious reuse and keep your distinct IEM light definition count down to single digits, but you can only go so far with that. I am not arguing here for an ambient cubic light in every scene either, certainly only those that you deem need the extra attention, or those for which the regular lighting methods enumerated in Part 1 do not quite work. I do tentatively assume, though, that for an average level you would use between one and two dozen distinct IEMs. Keep in mind that commercial games, with their automated probe systems for capturing environment shots, use many, many more than that. With about 20 cubemaps to be converted and 6 faces each to load into Cubemapgen, you’ll be going through the same motions 120 whole times (saving and renaming not included). If you decide to do this in one sitting (and you should, as Cubemapgen, to reiterate, does not keep settings between sessions), you are in for a very tedious process that, while effective, is not very efficient. The simple fact is that loading six things one by one is just slower than loading a single thing once! The “single thing” I’m referring to is, of course, the single, stitched cubemap cross texture. In the next part, I will go into detail regarding how to make a cubemap cross in Photoshop in preparation for cmftStudio and Lys. It will initially seem a far more time-consuming process to you than the Cubemapgen workflow, but through the magic of automation and the Actions feature, you will be able to accomplish the cubemap stitch process in as little as a drag-and-drop into PS and a single click. The best thing is that after we go through the steps, you won’t have to recreate them yourself, as I will provide you with a custom Actions .atn file and save you the effort. I advise you not to skip the explanations, however. The keen-eyed among you may have noticed that you can also load a cube cross in Cubemapgen. If you want to use both Cubemapgen and Photoshop together to automate your Cubemapgen workflow, be aware that Cubemap gen takes crosses that have a different orientation than the ones Lys and cmftStudio use. My macros (actions) are designed for the latter, so if you want to adjust them for Cubemapgen you would do well to study my steps and modify them appropriately. For the moment, you’ve been given the barebones essentials needed to capture an envshot, convert it to an irradiance map and put it in your level at an appropriate location, all without needing a single piece of proprietary software. You can stop here and start cranking out irradiance maps to your heart’s content, but if you’re in the mood for some more serious automation, consider the next section.
  18. I think the default gamma was raised to 1.2 to reduce banding and color precision artifacts at the low end of the brightness scale. There are probably some confounding factors that make that a questionable decision. 1) At the time of this discussion, I believe TDM's bloom settings were generating extra contrast and thus lowering gamma 2) By the time that soft gamma was implemented, we also were using a new bloom system that does not tie the bloom effect to other post processing effects 3) There was some attempt to make TDM shaders compliant with industry gamma defaults but that attempt to adhere to standards may have caused problems because most games are much brighter than TDM so using calibration established for use in brighter games may cause unintended results. These days, I normally set gamma to 1 ambient gamma to 1.1 and set my postprocess color curve to 0.2 or 0.3 which darkens gamma back to something similar to 1. Maybe someday I'll purchase a monitor calibration machine and try to sort out the ideal default state.
  19. V2.12beta crashed at the mission "the shadows at northdale" ---snip--- 354 msec to load m1 Interaction table generated: size = 0/512 Initial counts: 4418 entities 406 lightDefs 3765 entityDefs Restarting ambient sound snd_thieves_highway'(phantoms) with volume -8 Changed location from 'loc_apartment_streets' to 'loc_thieves_guild'. The ambient 'snd_thieves_guild' (music_thieves_guild) for location 'loc_thieves_guild' is now playing. Changed location from 'loc_thieves_guild' to 'loc_apartment_streets'. The ambient 'snd_thieves_highway' (phantoms) for location 'loc_apartment_streets' is now playing. Changed location from 'loc_apartment_streets' to 'loc_thieves_guild'. The ambient 'snd_thieves_guild' (music_thieves_guild) for location 'loc_thieves_guild' is now playing. WARNING:Cannot find sound snd_lockpick_lock_picked on door atdm_door_96x48_2hinge_29 DEBUG: entity atdm_loot_painting_medium_5 was frobbed and frob_loot runs DEBUG: entity atdm_loot_painting_small_7 was frobbed and frob_loot runs Trying to load image models/darkmod/props/textures/painting03_l_d from frontend, deferring... Trying to load image models/darkmod/props/textures/painting03_l_d from frontend, deferring... signal caught: Segmentation fault si_code 1 Trying to exit gracefully.. terminate called after throwing an instance of 'std::shared_ptr<ErrorReportedException>' double fault Aborted, bailing out shutdown terminal support About to exit with code 6 ---snap---
  20. Here yer go - [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 374):INI (INIT) FR: 0] LogFile created at 2018.11.25 22:31:50 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 377):INI (INIT) FR: 0] Executable last cleaned and rebuilt on Nov 17 2018 14:24:15 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 380):INI (INIT) FR: 0] The Dark Mod 2.07/64, code revision 7762 (7762) [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 426):FRC (FORCE) FR: 0] LogBegin: 1 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 426):FRC (FORCE) FR: 0] LogEnd: 1 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 426):FRC (FORCE) FR: 0] LogInfo: 1 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 426):FRC (FORCE) FR: 0] LogDebug: 1 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 426):FRC (FORCE) FR: 0] LogWarning: 1 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 426):FRC (FORCE) FR: 0] LogError: 1 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_FRAME: 1 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_SYSTEM: 1 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_MISC: 1 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_FROBBING: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_AI: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_SOUND: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_FUNCTION: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_ENTITY: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_INVENTORY: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_LIGHT: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_WEAPON: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_MATH: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_MOVEMENT: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_STIM_RESPONSE: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_OBJECTIVES: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_DIFFICULTY: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_CONVERSATION: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_MAINMENU: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_LOCKPICK: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_AAS: 0 [c:\testtdm\darkmod_src\game\darkmodglobals.cpp ( 436):FRC (FORCE) FR: 0] LogClass_STATE: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/meatlight] - []/[lights/stormy2.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squareblast] - []/[lights/squareblast] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_strobe] - []/[lights/biground1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/barrelexplode] - []/[lights/spot01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/redglow] - []/[lights/squarelight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/popanimlight] - []/[textures/particles/rocketstripsmall.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/falloff_exp1] - []/[lights/falloff_exp1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/falloff_exp2] - []/[lights/falloff_exp2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/cloudscroll] - []/[lights/cloudscroll] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/cloudscroll2] - []/[lights/cloudscroll2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/cloudscroll3] - []/[lights/cloudscroll3] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/cloudturn] - []/[lights/cloudturn] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/stormy1] - []/[lights/stormy2.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/lightgratelight] - []/[lights/lightgratelight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/lightgratelight_snd] - []/[lights/lightgratelight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square_strobe_slow] - []/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spectrum2Light_round] - [lights/squarelight1a.tga]/[lights/spot01] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spectrum2Light] - [lights/squarelight1a.tga]/[lights/fullambient.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/plasmaglow] - [lights/squarelight1a.tga]/[textures/particles/plasmalight.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squareishlight] - [lights/squarelight1a.tga]/[lights/squareishlight.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1] - [lights/squarelight1a.tga]/[lights/biground1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_snd_spectrum] - [lights/squarelight1a.tga]/[lights/biground1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_snd_noflicker] - [lights/squarelight1a.tga]/[lights/biground1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_global] - [lights/squarelight1a.tga]/[lights/biground1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_parmsndflicker] - [lights/squarelight1a.tga]/[lights/biground1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/grate8] - [lights/squarelight1a.tga]/[lights/grate8.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/grate8sqr_blinky] - [lights/squarelight1a.tga]/[lights/grate8sqr.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/grate7] - [lights/squarelight1a.tga]/[lights/grate7.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/grate7_blinky] - [lights/squarelight1a.tga]/[lights/grate7.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/fullambient] - [lights/squarelight1c.tga]/[lights/fullambient_amb.tga] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/grate6] - [lights/squarelight1c.tga]/[lights/grate6.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/triangle2] - [lights/squarelight1c.tga]/[lights/triangle1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/triangle1] - [lights/squarelight1c.tga]/[lights/triangle1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/rred] - [lights/squarelight1c.tga]/[lights/rred.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/impflash] - [lights/squarelight1c.tga]/[lights/impflash.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/redspawnflash] - [lights/squarelight1c.tga]/[lights/redspawnflash.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spawnflash] - [lights/squarelight1c.tga]/[lights/spawnflash.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/defaultPointLight] - [lights/squarelight1a.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/default3DLight] - [lights/squarelight1a.tga]/[_cubicLight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/desertambientlight] - [lights/squarelight1a.tga]/[lights/squarelight_amb.tga] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/desertlight2] - [lights/squarelight1a.tga]/[lights/desertlight.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/defaultProjectedLight] - [_noFalloff]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/ambientLight] - [lights/squarelight1a.tga]/[lights/squarelight1_amb.tga] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/ambientLight2] - [lights/squarelight1a.tga]/[lights/squarelight_amb.tga] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/nofalloff] - [lights/squarelight1a.tga]/[lights/nofalloff.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/qcfloorvent01x] - [lights/squarelight1a.tga]/[lights/qcfloorvent01x.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/floorpgrate] - [lights/squarelight1a.tga]/[lights/floorpgrate.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/qc_comj] - [lights/squarelight1a.tga]/[lights/qc_comj.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blamplight2] - [lights/squarelight1a.tga]/[lights/blamplight_cv.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/floorvent01x_cv] - [lights/squarelight1a.tga]/[lights/floorvent01x_cv.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/fanblade3] - [lights/squarelight1a.tga]/[lights/fanblade3.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/fanlightgrate] - [lights/squarelight1a.tga]/[lights/fangrate.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square_blast] - [lights/squarelight1a.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square_strobe] - [lights/squarelight1a.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square_flicker2] - [lights/squarelight1a.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square_flicker] - [lights/squarelight1a.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square_flicker3] - [lights/squarelight1a.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square_flicker3_spectrum] - [lights/squarelight1a.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square_flicker4] - [lights/squarelight1a.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/round_sin] - [lights/squarelight1a.tga]/[lights/round.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/round_strobe] - [lights/squarelight1a.tga]/[lights/round.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/round_flicker2] - [lights/squarelight1a.tga]/[lights/round.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/round_flicker] - [lights/squarelight1a.tga]/[lights/round.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/mlight01] - [lights/squarelight1a.tga]/[lights/mlight01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blur_cv] - [lights/squarelight1a.tga]/[lights/blur_cv.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blamplight_cv] - [lights/squarelight1a.tga]/[lights/blamplight_cv.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blamplight_still_cv] - [lights/squarelight1a.tga]/[lights/blamplight_cv.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/xblamplight_cv] - [lights/squarelight1a.tga]/[lights/blamplight_cv.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/bspot01_cv] - [lights/squarelight1a.tga]/[lights/bspot01_cv.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/xbspot01_cv] - [lights/squarelight1a.tga]/[lights/bspot01_cv.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square] - [lights/squarelight1a.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/rotate] - [lights/squarelight1a.tga]/[lights/rotate3.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/bspot01] - [lights/squarelight1a.tga]/[lights/bspot01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spot01_dblbright] - [lights/squarelight1a.tga]/[lights/spot01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spot01] - [lights/squarelight1a.tga]/[lights/spot01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spot01_global] - [lights/squarelight1a.tga]/[lights/spot01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/flash] - [lights/squarelight1a.tga]/[lights/light.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blinds02] - [lights/squarelight1a.tga]/[lights/blinds02.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/duolight01] - [lights/squarelight1a.tga]/[lights/duolight01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blamplight_tile4] - [lights/squarelight1a.tga]/[lights/blamplighttile.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blamplight] - [lights/squarelight1a.tga]/[lights/blamplight_cv.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blamplighte3] - [lights/squarelight1a.tga]/[lights/blamplighte3.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/triangle] - [lights/squarelight1a.tga]/[lights/triangle.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squarelight_split] - [lights/squarelight1a.tga]/[lights/squarelight_split.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squarelight1a] - [lights/squarelight1a.tga]/[lights/squarelight1a.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/floorvent01blue] - [lights/squarelight1a.tga]/[lights/floorvent01blue.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/floorvent01int] - [lights/squarelight1a.tga]/[lights/floorvent01int.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/floorvent02] - [lights/squarelight1a.tga]/[lights/floorvent01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/grate4] - [lights/squarelight1a.tga]/[lights/grate4.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/floorvent01] - [lights/squarelight1a.tga]/[lights/floorvent01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/floorvent01x] - [lights/squarelight1a.tga]/[lights/floorvent01x.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/crap01] - [lights/squarelight1a.tga]/[lights/crap01.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squarelight1blue] - [lights/squarelight1a.tga]/[lights/squarelight1blue.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squarelight2a] - [lights/squarelight1a.tga]/[lights/squarelight2.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squarelight2] - [lights/squarelight1a.tga]/[lights/squarelight2.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/twopass] - [lights/squarelight1a.tga]/[lights/inverse.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squarelight1sky] - [lights/squarelight1b.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squarelight1_dblbright] - [lights/squarelight1b.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squarelight1] - [lights/squarelight1b.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/grate3] - [lights/squarelight1b.tga]/[lights/grate3.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/grate3x] - [lights/squarelight1b.tga]/[lights/grate3x.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/rspot01drk] - [lights/squarelight1b.tga]/[lights/spot01drk.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spot08] - [lights/squarelight1b.tga]/[lights/spot08.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blur] - [lights/squarelight1b.tga]/[lights/blur.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blur2] - [lights/squarelight1b.tga]/[lights/blur2.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spot01drk] - [lights/squarelight1b.tga]/[lights/spot01drk.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spot02] - [lights/squarelight1b.tga]/[lights/spot02.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/stainedglass] - [lights/squarelight1b.tga]/[lights/stainedglass3.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/spotlight04] - [lights/squarelight1b.tga]/[lights/spot04.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blurlight3] - [lights/squarelight1b.tga]/[lights/blur3.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blurlight3] - [lights/squarelight1b.tga]/[textures\sfx\black_2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blurlight3] - [lights/squarelight1b.tga]/[textures\sfx\black_2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blurlight3] - [lights/squarelight1b.tga]/[_spotlight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blurlight3] - [lights/squarelight1b.tga]/[_pointLight1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blurlight3] - [lights/squarelight1b.tga]/[_pointLight2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/blurlight3] - [lights/squarelight1b.tga]/[_pointLight3] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/windowLight] - [lights/squarelight1b.tga]/[lights/window] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/rotatingLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/swingingLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/scalingLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/scaleRotateLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/rotateScaleLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/shearingLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/translatingLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/translatingLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/translatingLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/translatingLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/colorAnimatingLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/doubleLight] - [lights/squarelight1b.tga]/[lights/spot05] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/squarelight] - [lights/squarelight1b.tga]/[lights/squarelight.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/globalFadeLight] - [lights/squarelight1b.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/globalFadeLight2] - [lights/squarelight1b.tga]/[lights/squarelight1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/duffysquarelight] - [lights/squarelight1b.tga]/[lights/squarelight.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/lightgratelight2] - [lights/squarelight1b.tga]/[lights/lightgratelight2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/duolight02] - [lights/squarelight1b.tga]/[lights/duolight01] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/desertlight] - [lights/squarelight1b.tga]/[lights/desertlight.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/lanternglow] - [lights/squarelight1b.tga]/[lights/lanternglow] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/hellgate1_colorme] - [lights/squarelight1b.tga]/[lights/squarelight1_amb.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/hellgate1] - [lights/squarelight1b.tga]/[lights/hellgate1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/redlight01] - [lights/squarelight1b.tga]/[lights/hellgate1.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_doublestreetlight] - [lights/squarelight1b.tga]/[lights/tdm_doublestreetlight.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/mansion01_window01] - [lights/squarelight1b.tga]/[lights/mansion01_window02] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/mansion01_window02] - [lights/squarelight1b.tga]/[lights/mansion01_window01] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/mansion01_window04] - [lights/squarelight1b.tga]/[lights/mansion01_window04] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/fire_walltorch] - []/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/fire_walltorch_falloff_exp1] - []/[lights/falloff_exp1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/fire_walltorch_falloff_exp2] - []/[lights/falloff_exp2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/fire_walltorch_falloff_exp3] - []/[lights/falloff_exp2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/fire_fireplace] - []/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/brightround] - [textures/lights/brightround]/[textures/lights/brightround] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground_candleflicker] - [textures/lights/brightround]/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground_candleflicker_shadow] - [textures/lights/brightround]/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground_torchflicker] - [textures/lights/brightround]/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/8pt_cageflicker] - [textures/lights/brightround]/[lights/8pt_cagelight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_biground_fastpulse] - [textures/lights/brightround]/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/falloff_exp1_candleflicker] - [textures/lights/brightround]/[lights/falloff_exp1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/falloff_exp2_candleflicker] - [textures/lights/brightround]/[lights/falloff_exp2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/ambient_brightround] - [textures/lights/brightround]/[textures/lights/brightround_amb] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/doubleround] - [textures/lights/doubleround]/[textures/lights/doubleround] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/ambient_doubleround] - [textures/lights/doubleround]/[textures/lights/doubleround_amb] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdmnofalloff] - [textures/lights/ambientlightnfo]/[textures/lights/ambientlightnfo_amb] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/ambientlightnfo] - [textures/lights/ambientlightnfo]/[textures/lights/ambientlightnfo_amb] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/ambientlightnfo_clouds] - [textures/lights/ambientlightnfo]/[textures/lights/ambientlightnfo_clouds] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/ambient_biground] - [lights/biground1]/[lights/biground1_amb] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/ambient_fade_1edge] - [textures/lights/fade_1edge]/[textures/lights/fade_1edge_amb] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/ambient_roundedsquare] - [textures/lights/roundedsquare]/[textures/lights/roundedsquare_amb] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/paintinglight] - [textures/lights/brightround]/[textures/lights/paintinglight_01] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_lanternlight] - [textures/lights/brightround]/[textures/lights/tdm_lanternlight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_lanternlight_static] - [textures/lights/brightround]/[textures/lights/tdm_lanternlight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_streetlamp_8fold] - [textures/lights/brightround]/[textures/lights/biground1_streetlamp_8fold] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_streetlamp_4fold] - [textures/lights/brightround]/[textures/lights/biground1_streetlamp_4fold] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_streetlamp_8fold_snd] - [textures/lights/brightround]/[textures/lights/biground1_streetlamp_8fold] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_streetlamp_4fold_snd] - [textures/lights/brightround]/[textures/lights/biground1_streetlamp_4fold] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_lanternlight_4fold_small_snd] - [lights/biground1]/[textures/lights/tdm_lanternlight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_squarelamp_snd] - [lights/biground1]/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_squarelamp_snd_heavyflicker] - [lights/biground1]/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/biground1_squarelamp_small_snd] - [lights/biground1]/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_lamp_desk] - [textures/lights/tdm_lampshade01]/[textures/lights/tdm_lampshade01] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_lamp_desk_02] - [textures/lights/tdm_lampshade02]/[textures/lights/tdm_lampshade02] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_lamp_desk_03] - [textures/lights/tdm_lampshade_03]/[textures/lights/tdm_lampshade_03] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_round_pulse] - [lights/biground1]/[lights/biground1] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_clouds_pulse] - [lights/biground1]/[textures/lights/clouds] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_clouds_pulse] - [lights/squarelight1a]/[textures/lights/brightround] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_roundtop_window] - [lights/squarelight1a]/[textures/lights/tdm_roundtop_window] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_window_grating_2x3] - [textures/lights/brightround]/[textures/lights/tdm_window_grating_2x3] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_window_grating_2x2] - [textures/lights/brightround]/[textures/lights/tdm_window_grating_2x2] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/church512x256] - [textures/lights/church512x256]/[textures/lights/church512x256] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/roundhalf] - [textures/lights/roundhalf]/[textures/lights/roundhalf] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/roundquarter] - [textures/lights/roundquarter]/[textures/lights/roundquarter] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/zol_nofalloff] - [lights/zol_nofalloff.tga]/[lights/zol_nofalloff.tga] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/zol_nofalloff2] - [lights/zol_nofalloff2.tga]/[lights/zol_nofalloff2.tga] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/zol_nofalloff3] - [lights/zol_nofalloff2.tga]/[lights/zol_nofalloff2.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/zol_nofalloff4] - [lights/zol_nofalloff2.tga]/[lights/zol_nofalloff2.tga] - Ambient: 1 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/zol_nofalloff5] - [lights/zol_nofalloff2.tga]/[lights/zol_nofalloff2.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_4point_chandelier] - [lights/zol_nofalloff2.tga]/[lights/4point_round] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/window_diamond_pattern] - [lights/zol_nofalloff2.tga]/[lights/window_diamond_pattern] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/diamond_pattern_andbars01] - [lights/zol_nofalloff2.tga]/[textures/lights/diamond_pattern_andbars01] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/metal_crossed] - [lights/zol_nofalloff2.tga]/[textures/lights/metal_crossed] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/metal_diamond_pattern3] - [lights/zol_nofalloff2.tga]/[textures/lights/metal_diamond_pattern3] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/metal_grated] - [lights/zol_nofalloff2.tga]/[textures/lights/metal_grated] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/metal_irregularpanes] - [lights/zol_nofalloff2.tga]/[textures/lights/metal_irregularpanes] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/square_pattern01] - [lights/zol_nofalloff2.tga]/[textures/lights/square_pattern01] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/lamp_hang_swing] - [lights/zol_nofalloff2.tga]/[textures/lights/lamp_hang_swing_light] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/window01_interior_set] - [lights/zol_nofalloff2.tga]/[lights/window01_interior_set] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_pointedtop_big01] - [lights/zol_nofalloff2.tga]/[textures/lights/tdm_pointedtop_big01] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/round_pearly_white] - [lights/zol_nofalloff2.tga]/[textures/lights/round_pearly_white] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [] - []/[models/md5/chars/steambots/bc_lanternbot] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [] - []/[models/md5/chars/steambots/bc_lanternbot] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/tdm_lanternbot_spot] - [textures/lights/brightround]/[textures/lights/tdm_lanternbot_spotlight] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/roundfire2] - []/[lights/roundfire.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/round_brokenneon1] - []/[lights/round.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\game_local.cpp (7133):INF (SYSTEM) FR: 0] Texture: [lights/grate8sqr] - []/[lights/grate8sqr.tga] - Ambient: 0 [c:\testtdm\darkmod_src\game\matrixsq.h ( 149):DEB (MISC) FR: 0] CMatrixSq constructor called, set vars.
  21. @snatcher I understand that when you feel your work doesn't live up to your goals that you don't want it out in the wild advertising your own perceived shortcomings but that leads to a troubling dilemma of authors who are never satisfied with their work offering fleeting access to their in-progress designs then rescinding them or allowing them to be lost. When I was a member of Doom3world forums, I would often see members do interesting experiments and sometimes that work would languish until someone new would examine it and pickup the torch. This seemed like a perfectly viable system until Doom3world was killed by spambots and countless projects and conceptual works were lost. I guess what I am trying to say is that mods don't need to be perfect to be valuable. If they contain some grain of a useable feature they might be adapted by mission authors in custom scenarios. They might offer instructive details that others trying to achieve the same results can examine. It would be great if known compelling works were kept somewhere safe other than via forum attachments and temporary file sharing sites. I suppose we used to collect such things in our internal SVN for safe keeping but even that isn't always viable. If folks would rather not post beta or incomplete mods to TDM's Moddb page, perhaps they would consider creating their own Moddb page or allow them to be added to my page for safe keeping. Please don't look at this as some sort of pressure campaign or anything. I fully understand anyone not willing to put their name next to something they aren't fully happy with. As a general proviso, ( if possible \ permitted ) I just want to prevent the loss of some valuable investigations and formative works. The end of Doom3world was a digital apocalypse similar to the death of photobucket. It is one of my greatest fears that TDM will become a digital memory with only the skeletons of old forum threads at the wayback archive site.
  22. Congrats on the release! Remember to check ThiefGuild as well as the DarkFate forums (via Google Translate) for additional feedback.
  23. Complaint From Players The player must pick up candles before extinguishing them, and then the player must remember to drop the candle. The player must drag a body before shouldering it (picking it up), and the player must remember to frob again to stop dragging the body. The player finds this annoying or easy to make mistakes. For players who ghost, some of them have the goal of returning objects back to their original positions. With the current "pick up, use item, and drop" system, the item might not return easily or at all to its original position. For example, a candlestick might bounce off its holder. (See player quotes at the bottom.) Bug Tracker https://bugs.thedarkmod.com/view.php?id=6316 Problems to Solve How can the "pick up" step be eliminated so that the player can directly use or interact with the item where it is in the game world? How can so much key pressing and mouse clicking be eliminated when the player wants to directly use an item? How can candles be extinguished and lanterns toggled off/on without first picking them up? How can bodies be shouldered without first dragging them? Solution Design Goals Make TDM easier for new players while also improving it for longtime players. Reduce tedious steps for common frob interactions. Make it intuitive so that menu settings are unnecessary. Do not introduce bugs or break the game. Terms frob -- the frob button action happens instantly. hold frob -- the frob button is held for 200ms before the action happens. (This can be changed via cvar: 200ms by default.) Proposed Solution Note: Some issues have been struckthrough to show changes since the patch has been updated. Change how frobbing works for bodies, candles, and lanterns. For bodies: Frob to shoulder (pick up) a body. Second frob to drop shouldered body, while allowing frob on doors, switches, etc. Hold frob (key down) to start drag, continue to hold frob (key down) to drag body, and then release frob (key up) to stop dragging body. Also, a body can be dragged immediately by holding frob and moving the mouse. For candles/lanterns: Frob to extinguish candles and toggle off/on lanterns. Hold frob to pick it up, and then frob again to drop. Frob to pick it up, and then frob again to drop. Hold frob to extinguish candles and toggle off/on lanterns. For food: Frob to pick it up, and then frob again to drop. Hold frob to eat food. For other items: No change. New cvar "tdm_frobhold_delay", default:"200" The frob hold delay (in ms) before drag or extinguish. Set to 0 for TDM v2.11 (and prior) behavior. Solution Benefits Bodies: New players will have less to learn to get started moving knocked out guards. With TDM v2.11 and earlier, some players have played several missions before realizing that they could shoulder a body instead of dragging it long distances. Frob to shoulder body matches Thief, so longtime Thief players will find it familiar. Second frob drops a shouldered body. Players still have the ability to both shoulder and drag bodies. Compatible with the new auto-search bodies feature. Dragging feels more natural -- just grab, hold, and drop with a single button press. There is no longer the need to press the button twice. Also, it's no longer possible to walk away from a body while unintentionally dragging it. Set "tdm_frobhold_delay" cvar to delay of 0 to restore TDM v2.11 (and prior) behavior. Candles: New players will have less to learn to get started extinguishing candles. With TDM v2.11 and earlier, some players didn't know they could extinguish candles by picking them up and using them. Instead, they resorted to throwing them to extinguish them or hiding them. Hold frob to extinguish a candle feels like "pinching" it out. Once a candle is picked up, players still have the ability to manipulate and use them the same way they are used to in TDM v2.11 and earlier. For players who ghost and have the goal of putting objects back to their original positions, they'll have an easier time and not have to deal with candles popping off their holders when trying to place them back carefully. Set "tdm_frobhold_delay" cvar to delay of 0 to restore TDM v2.11 (and prior) behavior. Solution Issues Bodies: Frob does not drop a shouldered body, so that might be unexpected for new players. This is also different than Thief where a second frob will drop a body. "Use Inv. Item" or "Drop Inv. Item" drops the body. This is the same as TDM v2.11 and earlier. This is the price to pay for being able to frob (open/close) doors while shouldering a body. Patch was updated to drop body on second frob, while allowing frob on doors, switches, etc. Candles: Picking up a candle or lantern requires a slight delay, because the player must hold the frob button. The player might unintentionally extinguish a candle while moving it if they hold down frob. The player will need to learn that holding frob will extinguish the candle. The player can change the delay period via the "tdm_frobhold_delay" cvar. Also, when the cvar is set to a delay of 0, the behavior matches TDM v2.11 and earlier, meaning the player would have to first "Frob/Interact" to pick up the candle and then press "Use Inv. Item" to extinguish it. Some players might unintentionally extinguish a candle when they are trying to move it or pick it up. They need to make sure to hold frob to initiate moving the candle. When a candle is unlit, it will highlight but do nothing on frob. That might confuse players. However, the player will likely learn after extinguishing several candles that an unlit candle still highlights. It makes sense that an already-extinguished candle cannot be extinguished on frob. The official "Training Mission" might need to have its instructions updated to correctly guide the player through candle manipulation training. Updating the training mission to include the hold frob to extinguish would probably be helpful. Similar Solutions In Fallout 4, frob uses an item and long-press frob picks it up. Goldwell's mission, "Accountant 2: New In Town", has candles that extinguish on frob without the need of picking them up first. Snatcher's TDM Modpack includes a "Blow / Ignite" item that allows the player to blow out candles Wesp5's Unofficial Patch provides a way to directly extinguish movable candles by frobbing. Demonstration Videos Note: The last two videos don't quite demonstrate the latest patch anymore. But the gist is the same. This feature proposal is best experienced in game, but some demonstration videos are better than nothing. The following videos show either a clear improvement or that the player is not slowed down with the change in controls. For example, "long-press" sounds long, but it really isn't. Video: Body Shouldering and Dragging The purpose of this video is to show that frob to shoulder a body is fast and long-press frob to drag a body is fast enough and accurate. Video: Long-Press Frob to Pick Up Candle The purpose of this video is to show how the long-press frob to pick up a candle isn't really much slower than regular frob. Video: Frob to Extinguish The purpose of this video -- if a bit contrived -- is to show the efficiency and precision of this proposed feature. The task in the video was for the player to as quickly and accurately as possible extinguish candles and put them back in their original positions. On the left, TDM v2.11 is shown. The player has to highlight each candle, press "Frob/Interact" to pick up, press "Use Inv. Item" to extinguish, make sure the candle is back in place, and finally press "Frob/Interact" to drop the candle. The result shows mistakes and candles getting misplaced. On the right, the proposed feature is shown. The player frobs to extinguish the candles. The result shows no mistakes and candles are kept in their original positions. Special Thanks @Wellingtoncrab was instrumental in improving this feature during its early stages. We had many discussions covering varying scenarios, pros, and cons, and how it would affect the gameplay and player experience. Originally, I had a completely different solution that added a special "use modifier" keybinding. He suggested the frob to use and long-press frob to pick up mechanics. I coded it up, gave it a try, and found it to be too good. Without his feedback and patience, this feature wouldn't be as good as it is. Thank you, @Wellingtoncrab! And, of note, @Wellingtoncrab hasn't been able to try it in game yet, because I'm using Linux and can't compile a Windows build for him. So, if this feature isn't good, that's my fault. Code Patch I'll post the code patch in another post below this one so that folks who compile TDM themselves can give this proposal a try in game. And, if you do, I look forward to your feedback! Player Complaints TTLG (2023-01-10) Player 1: TDM Forums (2021-03-13) Player 2: Player 3: TDM Forums (2023-06-17) Player 4: TDM Discord (2021-05-18) Player 5: TDM Discord (2023-02-14) Player 6: Player 7: Player 8:
  24. Just curious, based on this discussion: http://forums.thedarkmod.com/topic/19239-soft-r-gamma/?p=427350
×
×
  • Create New...