Jump to content
The Dark Mod Forums

Search the Community

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

  • 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. I'm happy to present my first FM, The Spider and the Finch. There may be a spider, but no ghosts or undead. It should run a couple hours. It's now available on the Missions page or the in-game downloader. Many thanks to the beta testers Acolytesix, Cambridge Spy, datiswous, madtaffer, Shadow, and wesp5 for helping me improve and making the mission to the best of my abilities. This would not be have been possible without Fidcal's excellent DarkRadiant tutorial. Thanks also to the many people who answered my questions in the TDM forums. Cheers! 2023-12-13 Mission updated to version 3. Fixed a bug where the optional loot option objective was not actually optional. Updated the animations for Astrid Added a hallway door so the guards are less likely to be aggroed en masse.
  2. 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.
  3. 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.
  4. I havent tried in 2.11 yet but I will. Just an update on this. For now I think I fixed it by: - Addressing most of the warning in the log above. Outside common errors like some missing textures and such that are part of the core. - Made sure to give my parallel lights "parallelSky " "1" spawnarg. - Deleted my .aas files and rebuilt them - Dmapped the entire thing Right now I am not getting the load error . It's a very hard problem to nail down because the console isn't giving a specific script name that it's getting hung up on (if that is even the issue similar to Amadeus's problem) AND I am actively working on the mission, creating new errors, fixing other broken things. ect. Its definitely something I fear will pop back up in beta testing though
  5. Ever since I worked on "Chalice of Kings" with Bikerdude, I have wanted to get flame particles with new particle glares into the core mod. My reasoning was that the candles have glares and the un-glared torches look mismatched. This proposal was met with mixed reactions, so (knowing the history of TDM feature proposals...) I have created a technical demo. You may download it here: zzz_flameglare.pk4.txt (fixed) Just rename without the .txt extension at the end and place it in your Darkmod directory. Here are some screens. Using particles for this is probably the wrong way to go now that Duzenko has an emissive light feature in his branch: http://forums.thedarkmod.com/topic/19659-feature-request-emissive-materialsvolumetric-lights/
  6. And those pics that Daft Mugi posted do show the problem with TDM maps, but I also have to say, that is a problem with TDM shadow maps, not with maps in general, I never seen such ugly issues in Stalker for example or Call of Juarez and many other games. Perhaps those shadow maps issues arise from people not thinking of shadow maps at all, when creating their lights, shadow maps do require a little more tweaking to look good, specially at grazing angles, because they are literally textures, so perhaps moving the lights a little solves those problems or even increasing the shadow map res. Just think about this, if shadow maps where that ugly, the gaming industry would never deprecate stencil shadows and we would still be seeing a ton of games using them, but is totally the contrary, games with stencil shadows, are the minority, even idSoftware removed them, I think since Rage (i'm not totally sure about Rage...) and up (besides obviously Doom 3 BFG). For example: Wolfenstein II Dishonored 2 Evil within 2 (this particular shot is impossible with stencil shadows, because of the blood that is a particle effect with alpha) etc. For obvious reasons TDM fans have a good opinion of stencil shadows and I comprehend that, they do look very good, TDM and Wolfenstein 2009 are the games with the best soft stencil shadows that I haver seen, but maps can also look good, if given the chance and used to their full potencial. another game with good stencil soft shadows Thou tree shadows on this game seem to use something else or literally stencil shadows because sometimes they look like a blob on the floor instead of seeing the individual leaf.
  7. Hello, all. This thread is meant as a follow-up companion piece to my previous thread listing royalty-free music by Kevin MacLeod that could be usable for new missions for The Dark Mod. In this thread, I take a slightly different approach. Instead of focusing on one author and his royalty-free music, I'll be writing an ever-expanding list of songs, compositions tracks and ambients by various musical artists that could come in useful for mission makers working on FMs for TDM. Aside from ambient music for background atmosphere, I'll also be listing some historical music and compositions from the real world's ca 14th-17th century that are in the public domain and could be used as background music in your missions, provided that someone does a royalty-free recording of them (i.e. not released on some payed-for album, but at most a royalty-free album or online collection/archive). Please note that, though I will try to provide you with links to royalty-free versions of historical compositions in particular, I sometimes might not be sure of the status of some of these recreations/recordings and you'll have to snoop around for their royalty-free status on your own. However, if you do confirm that, e.g. some freelance artist recorded a well-known 16th century piece of music, and is giving it away royalty-free, possibly with the only necessity being attribution, then please let me know and I'll include any download links and the details concerning necessary attribution. Thank you ! And now, it's time to begin... ---- Royalty-free ambients As in "free to distribute and use (though possibly with attribution)", not necessarily "free of the TDM universe royalty". Free Music Archive (FMA) From his particular website, I'll only be including tracks that have broad Creative Commons licenses or free licenses, and tracks that are suited to both Non-commercial and Commercial use. In other words, largelly CC BY 4.0 and CC BY 4.0 Deed. It's better to search for ambients and tracks that are more lenient with their licenses. Lee Rosevere - All the Answers - Awkward Silences (B) - Baldachin - Betrayal - Compassion (keys version) - Delayed Reaction - Edge of the Woods (kind of too modern sounding in parts, but maybe you could find a use for it á la some of the old grungy-sounding ambient tunes in Thief) - Expectations - Everywhere (sounds like a calm but moody mansion ambient to me) - Gone - Her Unheard Story - It's A Mystery - Not Alone - Old Regrets - Reflections - Slow Lights - Snakes - Something To Fill The Space - Thoughtful (especially the first half to first two thirds, before the more electronic beat kicks in) - The Long Journey - The Nightmare - The Past - Time to Think - Under Suspicion (maybe the bit between 2:26 and 2:48 would be the best for a tension sting, the rest sounds a bit too modern spy-fi for the TDM setting) - What's in the Barrel ? - You're Enough (A) - Maarten Schellekens - A Bit of Discomfort - Daydream - Deliverance - Free Classical Theme (arguably more like for an SF film with classical music portrayed electronically, but not bad) Salakapakka Sound System - Aiti, joku tuijottaa meita metsasta - Holle - Kadonnut jalkia jattamatta - Privatomrode i Vasteros - Syttymissyy tuntematon 1 - Syttymissyy tuntematon 2 Sawako albums - 098 (ambient for background humming and buzzing, perhaps machinery, electricity, industrial ambience, etc.) - Billy Gomberg Remix - If You're Ther (odd city ambience, between moody music and city background ambience, mild background thumping) - Lisbon ambience (maybe usable as background ambience in some mission set at a more Mediterranean city) - Mizuame (Sawako Sun) (could work as ambience for a larger baths or spa hall, with the sound of water, and human voices occassionally heard in the background) - November 25, 2007 - Snowfall - Spring Thaw - Tim Prebble Remix - UNIVERSFIELD - A Beatiful Sky (this track would actually be good for a church or cathedral interior) - A Calm Soulful Atmosphere For A Documentary Film (calm but somewhat mysterious ambient, reminds me of some of the Dishonored ambients) - A Grim Horror Atmosphere - A Music Box With A Tense Atmosphere - Atmosphere for Documentaries (rather suspensful ambient with an undertone of woodwind instruments) - Background Horror Tension - Beautiful Relaxing Ambient (a calmer ambient that's good for a location with some degree of grandeur or one that provides relief to the player) - Blood-chillingly Creepy Atmospheres - Bloody - Cloaked in Mystery - Corpse Rot - Crime City - Dark Background - Deep Space Exploration (has a nice atmosphere of mystery and exploration) - Drifting in Harmony (calm but suspensful ambient) - Embrace of the Mist - Exoplanet (mysterious ambient, could work for various environments) - Exploring the Cursed Cemetery (short, fifteen second tension sting with piano) - Evening Meditation In The Open Air (could work for a number environments during evening hours) - Fading Memories - Gloomy Atmosphere for Documentaries - Gloomy Reverie - Grim Atmosphere - Horror Atmosphere (Version 2) - Horror Background Atmosphere 6 - Horror Background Atmosphere for Horror and Mystical - Horror Background Atmosphere for Scary Scenes - Horror Background Atmosphere for Suspensful Moments (1) - Horror Background Atmosphere for Suspensful Moments (2) - Horror Dark Atmosphere (Version 1) - Horror Music Box - Intergalactic Ambience (good calm theme of mystery and wonder) - In the Embrace of Darkness - Mars (suspensful ambient for a suspensful location, with a metallic undertone in its melody) - Meditation in Nature (aside from outdoor environments, could work in a number of other environments as well) - Melodies of Fear - Midnight Secrets - Mild Heaven (a calm ambient, maybe could work for night time city streets and city rooftops) - Moment of a Dream (suspensful theme, hopefully not too electronic in undertone) - Mysterious Passerby - Mystery Atmosphere - Mystery Horror - Mystery House - Mystical Dark Atmosphere - Nebula Soundscape (sounds like a good ambient for outdoor or cave environments or maybe even churches and city rooftops) - Ominous Criminal Atmosphere - Sad Emotional Piano for Documentary Films - Scary Dark Cinematic For Suspensful Moments - Scary Horror Atmosphere - Sinister Mystery - Sinister Piano Melodies (short, fifteen second tension sting with piano) - Siren's Call (I feel this one has more limited uses, though maybe it could work for suspense in an industrial environment) - Soothing Serenade (calm, soothing ambient, with a slight hint of mystery, could work for several types of environments) - Soothing Soundscapes (calm, soothing ambient, with a slight hint of mystery, could work for several types of environments) - Spooky Hallway - Suspense Atmosphere Background - Tense Dark Background - Tense Horror Atmosphere - Tense Horror Background Atmosphere - The Box of Nightmares - This Sunset (good for an evening or night time ambient, even includes subtle cricket chirping sounds) - Tropical Escapes (good for an outdoor environment with a waterfall, flowing stream or falling rain) Many of these tracks by UNIVERSFIELD are quite short, about a minute or slightly under a minute, but good as tension-building themes or as suspensful ambients. ---- Historical background music - lute and similar string instruments La Rossignol ("The Nightingale"} - a Renaissance era piece, anonymous composer. This one was written as an instrumental duet for two musicians. So, if you'd use this for a scene of AI characters playing their instruments, you should use two such characters for added believability. Here's what the composition sounds like when played as a duet on: - lute (obviously the most medieval/Renaissance instrumentation) - acoustic guitar (example 1) and acoustic guitar (example 2) - 11-string guitar what it sounds when played as a duet on an 11-string guitar - licensed album version (presumably lute) If you find any royalty-free version in good quality, let me know. Lachrimae ("Tears", sometimes known as "Seven Teares") by John Dowland - another Elizabethan era piece, by a 16th-17th century composer. Various reconstructions: - on lute (example solo performance at the Metropolitan Museum) - on lute, with vocal accompaniment (lutist and female soprano) - on lute, violas, and other (six musician ensemble performance) - on viola da gamba (five musician ensemble performance) Lachrimae Pavan ("Teary Pavane / Pavane of the Tears") by John Dowland - a variation on the previous composition, for the Renaissance pavane style dance. Various reconstructions: - on lute - on acoustic guitar (example 1), (example 2), (example 3) Again, I'd like to find a royalty-free version of these two compositions. Frog Galliard - one more by Dowland, for now. Another composition for a Renaissance dance style, the galliard. Reconstructions: - on lute (solo performance) - on lute, deeper sound (solo performance) - on acoustic guitar (example 1), (example 2), (example 3) Royalty-free version would be appreciated. Greensleeves - by an anonymous 16th century author, quite possibly a folk song of the era. Trust me, you know this one, even if you don't know the name. It's one of the most well-known bits of Renaissance secular and courtly music in the popular imagination. (Trust me, it's been referenced in everything. Even the first Stronghold game from the early 2000s had an in-game character sing a made-up ditty to the tune/melody of this song.) Reconstructions: - on lute (solo performance) - classical guitar (solo performance) - acoustic guitar (solo performance) I bet there's a royalty-free version of this one somewhere. I'll snoop around, and if you find one before I do, let me know. In taberna quando sumus ("When we are at the tavern") - anonymous period song from the 14th century, of Goliard origin. Written and sung entirely in Latin (so if you can explain Latin within the TDM setting or use only an instrumental version, go for it). An unabashed drinking song, you could use this for more rascally Builder priests/monks or for various commoners and lower-ranking noblemen while they're having a good time at the inn. A pretty well-known song even nowadays (though the most famous melody for it might be the more recent arrangement). Reconstructions: - example performance 1 - example performance 2 Again, an entirely royalty-free version of this one could come in handy. Historical background music - by Jon Sayles Jon Sayles is a musician who runs the Free Early and Renaissance Music website. His recordings are in .mp3 format (so you will need a conversion to .ogg) and Sayles has made them all freely available. The instrument he used for his musical reconstructions is the classical guitar. Some examples of Sayles' reconstructions of period music by anonymous or known authors: Saltarello, based on the late-medieval and Renaissance dance tune from Italy Madrigal by Anthony Holborne Al fonsina by Johannes Ghiselin Ich weiss nit by Ludwig Senfl So ys emprentid by John Bedyngham, mid-1400s Riu, riu, chiu, famous 15th century Spanish Christmas carol Fantasia, by Orlando Gibbons, late 16th and early 17th century Die Katzenpfote, German-speaking lands, anonymous author, 15th century A gre d'amors, 14th century, anonymous French author Nightengale (unrelated to La Rossignol), by Thomas Weelkes El Grillo, 15th to early 16th century composition by Josquin des Prez The Witches' Dance, by anonymous, Renaissance English composition Ma fin est mon comencement, by 14th century composer Guillame de Machaut In Nomine, late 15th and early 16th century composition by John Taverner Ricercare ("ricker-caré", nothing to do with rice or care), by Adrian Willaert Fantasia by Thomas Lupo, 16th-17th century English composer The Nite Watch, composed by Anthony Holborne - appropriate for TDM Plenty more where these came from... Historical background music - from the A-M Classical website This website offers plenty of freely available, royalty-free .mp3s of early and classical musical compositions and instrumental songs. The only thing you need to do is provide attribution, as everything on the site is via a Creative Commons license (this is noted on every page). Counting Christmas songs from the Middle Ages and Renaissance alone, I was able to download loads of them already years and years ago. Though they're far from epic recordings, if you're just looking for a competently done free version of these compositions, this is an excellent site. A few examples of medieval music from the A-M Classical site: Angelus ad Virginem (played quietly on organ), Diex soit en cheste maison by Adam de la Halle (organ and other instruments), Greensleeves (this is for a carol version of the lyrics, but the melody is the same as standard Greensleeves) Historical background music - by Vox Vulgaris The Swedish band/ensemble Vox Vulgaris aren't very active nowadays, but they did plenty of early music recording in the early-to-mid 2000s. From what I've read about their song releases, they're okay with others using the songs from their 2003 album and other material they've done. I don't know if their website is still around (there's an archived version) and whether you can still contact the band members, but if you'd like to be extra sure and ask, go ahead. I don't think they've changed their copyleft stance to their own works, but it pays off to be sure. So, here are some of VV's own takes on period music: Cantiga 166 - based on the eponymous song (full title "Cantiga 166 - Como póden per sas culpas (os homés seer contreitos)"), by Spanish composer Alphonso X from the 13th century (yes, king Alphonso X ! They didn't call him Alphonso the Learned for nothing). To provide you with a point of comparison, here, here and here are versions by other artists. (If I remember correctly, this particular VV song was also used by moonbo in his Requiem FM, as part of an inn's muffled background music. I did a real double-take when I played the mission for the first time and recognised it.) Cantiga 213 - based on the eponymous song (full title "Cantiga 213 - Quen sérve Santa María, a Sennor mui verdadeira"), again by Spanish composer, king Alphonso X from the 13th century. To provide you with a point of comparison, here and here are versions by other artists. Saltarello - based on the well-known melody for the Italian late-medieval Renaissance dance, the saltarello (also the saltarello trotto specifically in this case). To provide you a point of comparison, here and here are versions by other artists. La Suite Meurtrière - I can't quite source this one, it might be their own original composition, though "in the style of" some particular period music. Rókatánc (Fox Dance) - this is a really wild bit of period dance and festive music, possibly Hungarian-inspired, given the name. I think this would fit both a tavern environment or some public event for the nobility and patricians, including an armed sparring tournament or similar. Final note from me New suggestions are always welcome as I expand this thread. For any suggestions concerning Kevin MacLeod's royalty-free music, please use the other thread I've already made, purely for listing MacLeod's stuff.
  8. In the Widow's apartment, there is her diary that mentions Smythe next door. (Combine that with a Thief-ette's note and you have a hint that you need to visit him) but you can't enter his place. Since my usual MO is to snuff all the lights, I kept missing the Attic. (Loved his stash tho) "Panic" - as in, casually leaving the room =D They didn't break or anything. It's just... Were they expecting ME, after my predecessor failed so bad he decomposed in days? Were they expecting someone else, like half a dozen of other people that they sent letters to, and seeing me they weren't happy? Mission 2 makes it clear they didn't get far but still....
  9. 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.
  10. 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.
  11. this sounds like something that'll need a custom def. I know you can bind lights to the player and a few other things; I feel like this should work too, but experimentation will be needed. If I have time today or tomorrow I might look into it
  12. This is surely because of volumetric shadows. I get 200 FPS without them and 100-120 FPS with them (that's not fullscreen). Point lights in this room also have volumetrics enabled, not just the projected lights --- I believe they should not. But even if it gets fixed, performance will still be lower when volumetric shadows are involved. Since @Fiver has extremely low-end machine, it would probably make sense to tweak r_volumetric* cvars. Maybe "r_volumetricLowres 2", maybe "r_shadowMapSize 512". Maybe simply disable them.
  13. 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/
  14. 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.
  15. GAMEPLAY * Frob controls have been reworked completely. Previously players were annoyed by having to do three presses to extinguish a light. Also, some player didn't even know that bodies could be shouldered and were limited with dragging bodies. Now simply clicking the frob button performs the action player needs most of the time, and pressing-and-holding the same button performs alternative actions like dragging bodies and extinguishing candles (thread). * Several aspects of mantling has been improved: overhead mantling has become faster, mantling over low obstacles is allowed while carrying an item or a body. Also it is possible to switch weapon while being on rope/ladder or mantling. Pressing crouch button on rope/ladder now starts slide-down immediately. * Some aspects of gameplay can be further simplified. Auto-search bodies is for players who don't want to waste time searching for keys and purses on guard bodies. Lockpicking "Auto" difficulty now indeed trivializes lockpicking (thread). * Leaning animation has been improved with lower head tilt (thread). * Player footstep sounds have been rebalanced. Metal and water sounds were especially painful previously. * Further improvements of subtitles: revised location and font to avoid overlapping with other GUI elements, added directional cue, better slot allocation. Each subtitle is now displayed for at least one second even if the sound is very short. * More settings to reduce camera bobbing/rolling/shaking, which is good for players who feel motion sickness from default camera animations. * Now several script addons can coexist and work independently (thread). ENGINE * Optimized generation of light-entity interactions in rendering frontend. Also greatly optimized shadow processing, especially for moving lights. Unfortunately, many existing missions are not compatible with these changes, so you might see light leaking through walls (mainly with stencil shadows). Please report all such cases, we'll apply workaround on case by case basis (thread). * The "old" and "new" rendering backends are finally merged into one. It is as nice to program as the new backend, and as old-fashioned and reliable as the old backend. Single-pass shadow maps enabled by default and now respect noselfshadow. * Materials with polygonoffset now interact with lights. So static decals can have bumpmap and specular lighting. Note however: dynamic decals still don't interact with lights. * Revised parallelSky lights and marked shadowing parallel lights as deprecated (thread). * PNG image format now behaves equally to other supported formats. In particular, it is not required to explicitly specify its extension, and it can be referenced directly in GUI code. * Added functions min/max to material expressions, which can be useful for clamping. * Fixed minor culling bugs on animated entities and enabled entity scissors by default. * Reduced color banding for fog with some dithering at tonemapping stage. * Finally our C++ code can compress and decompress all texture formats we use, meaning that we no longer depend on occasionally buggy/slow vendor implementations. BUGS * Now both OGG and WAV sounds work the same way and stop playing while in main menu. * Fixed "gui::startSelect" as a feature that allows to choose player starting location in GUI briefing. * Fixed warnings in newspaper_bridgeport0X core readable GUI. ASSETS * Added automatic turrets, to be combined with security cameras (Thread). * Added more covered furniture models (6289). * Added wall models from Seeking Lady Leicester (6293). * New and fixed versions of atdm:lamp_electric_square_3_lit_unattached (6315). * Fixed UV map on Stove models (6312). * Fixed some issues with moor AI (6345).
  16. They don't work with stencil shadows. If a player has stencil shadows enabled, the volumetric lights have forced shadow maps enabled, while other lights have still stencil shadows. So it will just work. I think it will have a performance hit (also because the mentioned forced shadow maps I assume), but the mission overal is not very demanding? Afaik volumetric lights is enabled with a spawnarg. So via a trigger/script this setting can be changed? Not sure.
  17. 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.
  18. Hi, this mission is crashing on my system and I cannot go on. Playing "Hidden Hands - The lost citadel" Version 6 on Fedora Linux Version 38. I paste the whole output of the console below. Perhaps someone can find the cause for the crash, that would be very nice [stefan@fedora darkmod]$ ./thedarkmod.x64 TDM 2.11/64 #10264 (1435:10264) linux-x86_64 Jan 30 2023 02:02:43 /proc/cpuinfo CPU frequency: 899.998 MHz 900 MHz Intel CPU with SSE & SSE2 & SSE3 & SSSE3 & SSE41 & AVX found interface lo - loopback Found Intel CPU, features: SSE SSE2 SSE3 SSSE3 SSE41 AVX TDM using AVX for SIMD processing. Found 0 new missions and 0 packages. ------ Initializing File System ------ Current search path: [M] /home/stefan/darkmod/fms/hhtlc [M] /home/stefan/darkmod/fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4 (665 files - 0xf04d8d7e) [C] /home/stefan/darkmod/ [C] /home/stefan/darkmod/tdm_textures_wood01.pk4 (382 files - 0x54c704d0) [C] /home/stefan/darkmod/tdm_textures_window01.pk4 (399 files - 0x50a48869) [C] /home/stefan/darkmod/tdm_textures_stone_sculpted01.pk4 (464 files - 0x3bd63c7c) [C] /home/stefan/darkmod/tdm_textures_stone_natural01.pk4 (141 files - 0x4d0836ff) [C] /home/stefan/darkmod/tdm_textures_stone_flat01.pk4 (302 files - 0x671a22d2) [C] /home/stefan/darkmod/tdm_textures_stone_cobblestones01.pk4 (271 files - 0xc46ab14f) [C] /home/stefan/darkmod/tdm_textures_stone_brick01.pk4 (527 files - 0x1d087cf8) [C] /home/stefan/darkmod/tdm_textures_sfx01.pk4 (69 files - 0x2c673886) [C] /home/stefan/darkmod/tdm_textures_roof01.pk4 (69 files - 0x24547b7) [C] /home/stefan/darkmod/tdm_textures_plaster01.pk4 (142 files - 0x9747529e) [C] /home/stefan/darkmod/tdm_textures_paint_paper01.pk4 (67 files - 0xa4a95a09) [C] /home/stefan/darkmod/tdm_textures_other01.pk4 (127 files - 0x36932451) [C] /home/stefan/darkmod/tdm_textures_nature01.pk4 (286 files - 0x19240606) [C] /home/stefan/darkmod/tdm_textures_metal01.pk4 (509 files - 0x441d098f) [C] /home/stefan/darkmod/tdm_textures_glass01.pk4 (51 files - 0x3f3721e) [C] /home/stefan/darkmod/tdm_textures_fabric01.pk4 (43 files - 0x649daf73) [C] /home/stefan/darkmod/tdm_textures_door01.pk4 (177 files - 0xb0130166) [C] /home/stefan/darkmod/tdm_textures_decals01.pk4 (474 files - 0xe2ff12c6) [C] /home/stefan/darkmod/tdm_textures_carpet01.pk4 (130 files - 0x79bc3d7c) [C] /home/stefan/darkmod/tdm_textures_base01.pk4 (435 files - 0xc07a324) [C] /home/stefan/darkmod/tdm_standalone.pk4 (4 files - 0xb3f36d20) [C] /home/stefan/darkmod/tdm_sound_vocals_decls01.pk4 (32 files - 0x53cda0aa) [C] /home/stefan/darkmod/tdm_sound_vocals07.pk4 (1111 files - 0xa13ec4c2) [C] /home/stefan/darkmod/tdm_sound_vocals06.pk4 (696 files - 0x44c85e78) [C] /home/stefan/darkmod/tdm_sound_vocals05.pk4 (119 files - 0x6cf23214) [C] /home/stefan/darkmod/tdm_sound_vocals04.pk4 (2869 files - 0xd7ec1256) [C] /home/stefan/darkmod/tdm_sound_vocals03.pk4 (743 files - 0xb3f2e0f1) [C] /home/stefan/darkmod/tdm_sound_vocals02.pk4 (1299 files - 0x5092940e) [C] /home/stefan/darkmod/tdm_sound_vocals01.pk4 (82 files - 0xf4d326b2) [C] /home/stefan/darkmod/tdm_sound_sfx02.pk4 (605 files - 0x31673482) [C] /home/stefan/darkmod/tdm_sound_sfx01.pk4 (987 files - 0x97451b7a) [C] /home/stefan/darkmod/tdm_sound_ambient_decls01.pk4 (8 files - 0x9404877c) [C] /home/stefan/darkmod/tdm_sound_ambient03.pk4 (24 files - 0xd28ca9ec) [C] /home/stefan/darkmod/tdm_sound_ambient02.pk4 (163 files - 0x84efad22) [C] /home/stefan/darkmod/tdm_sound_ambient01.pk4 (220 files - 0xee228c81) [C] /home/stefan/darkmod/tdm_prefabs01.pk4 (1017 files - 0x506baa0b) [C] /home/stefan/darkmod/tdm_player01.pk4 (127 files - 0xd983fc45) [C] /home/stefan/darkmod/tdm_models_decls01.pk4 (101 files - 0x146c787) [C] /home/stefan/darkmod/tdm_models02.pk4 (2241 files - 0x42cdbf62) [C] /home/stefan/darkmod/tdm_models01.pk4 (3326 files - 0x829270f2) [C] /home/stefan/darkmod/tdm_gui_credits01.pk4 (49 files - 0xbff51863) [C] /home/stefan/darkmod/tdm_gui01.pk4 (758 files - 0xcbf4fd2d) [C] /home/stefan/darkmod/tdm_fonts01.pk4 (696 files - 0x7c5027bf) [C] /home/stefan/darkmod/tdm_env01.pk4 (176 files - 0x8bd4045b) [C] /home/stefan/darkmod/tdm_defs01.pk4 (194 files - 0xe5f440dc) [C] /home/stefan/darkmod/tdm_base01.pk4 (223 files - 0x9704b43c) [C] /home/stefan/darkmod/tdm_ai_steambots01.pk4 (31 files - 0x26416485) [C] /home/stefan/darkmod/tdm_ai_monsters_spiders01.pk4 (80 files - 0x15c3ef89) [C] /home/stefan/darkmod/tdm_ai_humanoid_undead01.pk4 (55 files - 0x25e463ad) [C] /home/stefan/darkmod/tdm_ai_humanoid_townsfolk01.pk4 (104 files - 0xa6f7c573) [C] /home/stefan/darkmod/tdm_ai_humanoid_pagans01.pk4 (10 files - 0x566fb35a) [C] /home/stefan/darkmod/tdm_ai_humanoid_nobles01.pk4 (51 files - 0x5ca54cab) [C] /home/stefan/darkmod/tdm_ai_humanoid_mages01.pk4 (8 files - 0x5e7a666b) [C] /home/stefan/darkmod/tdm_ai_humanoid_heads01.pk4 (100 files - 0x45ec787e) [C] /home/stefan/darkmod/tdm_ai_humanoid_guards01.pk4 (379 files - 0x9801be8d) [C] /home/stefan/darkmod/tdm_ai_humanoid_females01.pk4 (172 files - 0xc7de4598) [C] /home/stefan/darkmod/tdm_ai_humanoid_builders01.pk4 (91 files - 0x6dea9b57) [C] /home/stefan/darkmod/tdm_ai_humanoid_beasts02.pk4 (229 files - 0x886c9a98) [C] /home/stefan/darkmod/tdm_ai_humanoid_beasts01.pk4 (23 files - 0xba9da54c) [C] /home/stefan/darkmod/tdm_ai_base01.pk4 (9 files - 0x1de319e8) [C] /home/stefan/darkmod/tdm_ai_animals01.pk4 (82 files - 0x6c0fda50) File System Initialized. -------------------------------------- Couldn't open journal files /proc/cpuinfo CPU processors: 2 /proc/cpuinfo CPU logical cores: 4 ----- Initializing Decls ----- WARNING:file materials/puzzle_paintings.mtr, line 228: material 'textures/puzzle/flower' previously defined at materials/puzzle_paintings.mtr:14 WARNING:file sound/ambient.sndshd, line 79: sound 'firstfloor' previously defined at sound/ambient.sndshd:51 WARNING:file sound/soul.sndshd, line 129: sound 'builder_tim_1' previously defined at sound/soul.sndshd:102 WARNING:file sound/video.sndshd, line 12: sound 'main' previously defined at sound/ambient.sndshd:1 ------------------------------ I18N: SetLanguage: 'english'. I18N: Found no character remapping for english. I18N: 1321 strings read from strings/english.lang I18N: 'strings/fm/english.lang' not found. Couldn't exec editor.cfg - file does not exist. execing default.cfg Gamepad modifier button assigned to 6 execing Darkmod.cfg execing DarkmodKeybinds.cfg execing DarkmodPadbinds.cfg Gamepad modifier button assigned to 6 Couldn't exec autoexec.cfg - file does not exist. I18N: SetLanguage: 'german'. I18N: Found no character remapping for german. I18N: 1321 strings read from strings/german.lang I18N: 'strings/fm/german.lang' not found. I18NLocal: 'strings/fm/english.lang' not found, skipping it. ----- Initializing OpenAL ----- Setup OpenAL device and context OpenAL: found device 'ALSA Default' [ACTIVE] OpenAL: found device 'HDA Intel PCH, CS4208 Analog (CARD=PCH,DEV=0)' OpenAL: found device 'HDA Intel PCH, HDMI 0 (CARD=PCH,DEV=3)' OpenAL: found device 'HDA Intel PCH, HDMI 1 (CARD=PCH,DEV=7)' OpenAL: found device 'HDA Intel PCH, HDMI 2 (CARD=PCH,DEV=8)' OpenAL: device 'ALSA Default' opened successfully OpenAL: HRTF is available [ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1) OpenAL vendor: OpenAL Community OpenAL renderer: OpenAL Soft OpenAL version: 1.1 ALSOFT 1.21.1 OpenAL: found EFX extension OpenAL: HRTF is disabled (reason: 0 = ALC_HRTF_DISABLED_SOFT) OpenAL: found 256 hardware voices ----- Initializing OpenGL ----- Initializing OpenGL display ...initializing QGL ------- Input Initialization ------- ------------------------------------ OpenGL vendor: Intel OpenGL renderer: Mesa Intel(R) HD Graphics 615 (KBL GT2) OpenGL version: 4.6 (Core Profile) Mesa 23.1.9 core Checking required OpenGL features... v - using GL_VERSION_3_3 v - using GL_EXT_texture_compression_s3tc Checking optional OpenGL extensions... v - using GL_EXT_texture_filter_anisotropic maxTextureAnisotropy: 16.000000 v - using GL_ARB_stencil_texturing X - GL_EXT_depth_bounds_test not found v - using GL_ARB_buffer_storage v - using GL_ARB_texture_storage v - using GL_ARB_multi_draw_indirect v - using GL_ARB_vertex_attrib_binding X - GL_ARB_compatibility not found v - using GL_KHR_debug Max active texture units in fragment shader: 32 Max combined texture units: 192 Max anti-aliasing samples: 16 Max geometry output vertices: 256 Max geometry output components: 1024 Max vertex attribs: 16 ---------- R_ReloadGLSLPrograms_f ----------- Linking GLSL program cubeMap ... Linking GLSL program bumpyEnvironment ... Linking GLSL program depthAlpha ... Linking GLSL program fog ... Linking GLSL program oldStage ... Linking GLSL program blend ... Linking GLSL program stencilshadow ... Linking GLSL program shadowMapA ... Linking GLSL program ambientInteraction ... Linking GLSL program interactionStencil ... Linking GLSL program interactionShadowMaps ... Linking GLSL program interactionMultiLight ... Linking GLSL program frob ... Linking GLSL program soft_particle ... Linking GLSL program tonemap ... Linking GLSL program gaussian_blur ... Linking GLSL program testImageCube ... --------------------------------- Font fonts/english/stone in size 12 not found, using size 24 instead. --------- Initializing Game ---------- The Dark Mod 2.11/64, linux-x86_64, code revision 10264 Build date: Jan 30 2023 Initializing event system ...873 event definitions Initializing class hierarchy ...172 classes, 1732032 bytes for event callbacks Initializing scripts ---------- Compile stats ---------- Memory usage: Strings: 56, 9048 bytes Statements: 23155, 926200 bytes Functions: 1358, 177432 bytes Variables: 107720 bytes Mem used: 2149432 bytes Static data: 408 bytes Allocated: 1152120 bytes Thread size: 7928 bytes Maximum object size: 816 Largest object type name: speaker_zone_ambient ...6 aas types game initialized. -------------------------------------- Parsing material files Found 0 new missions and 0 packages. Found 42 mods in the FM folder. Parsed 46 mission declarations. No 'tdm_mapsequence.txt' file found for the current mod: hhtlc -------- Initializing Session -------- session initialized -------------------------------------- Font fonts/english/mason_glow in size 12 not found, using size 48 instead. Font fonts/english/mason_glow in size 24 not found, using size 48 instead. Font fonts/english/mason in size 12 not found, using size 48 instead. Font fonts/english/mason in size 24 not found, using size 48 instead. WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'QuitGameDialogAskEverytimeOption' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'ColorPrecision' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'OpenDoorsOnUnlock' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'InvPickupMessages' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'HideLightgem' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'BowAimer' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'FrobHelper' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'showTooltips' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertAttack' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertParry' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'SCGeneralBind5' has value count unequal to choices count --- Common Initialization Complete --- ------------- Warnings --------------- during The Dark Mod initialization... WARNING:file materials/puzzle_paintings.mtr, line 228: material 'textures/puzzle/flower' previously defined at materials/puzzle_paintings.mtr:14 WARNING:file sound/ambient.sndshd, line 79: sound 'firstfloor' previously defined at sound/ambient.sndshd:51 WARNING:file sound/soul.sndshd, line 129: sound 'builder_tim_1' previously defined at sound/soul.sndshd:102 WARNING:file sound/video.sndshd, line 12: sound 'main' previously defined at sound/ambient.sndshd:1 WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'BowAimer' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'ColorPrecision' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'FrobHelper' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'HideLightgem' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'InvPickupMessages' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertAttack' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertParry' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'OpenDoorsOnUnlock' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'QuitGameDialogAskEverytimeOption' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'SCGeneralBind5' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'showTooltips' has value count unequal to choices count 15 warnings WARNING: terminal type 'xterm-256color' is unknown. terminal support may not work correctly terminal support enabled ( use +set in_tty 0 to disabled ) pid: 4247 Async thread started Couldn't exec autocommands.cfg - file does not exist. Found 0 new missions and 0 packages. Found 42 mods in the FM folder. reloading guis/msg.gui. WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'QuitGameDialogAskEverytimeOption' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'ColorPrecision' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'OpenDoorsOnUnlock' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'InvPickupMessages' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'HideLightgem' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'BowAimer' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'FrobHelper' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'showTooltips' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertAttack' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'MeleeInvertParry' has value count unequal to choices count WARNING:idChoiceWindow:: gui 'guis/mainmenu.gui' window 'SCGeneralBind5' has value count unequal to choices count reloading guis/mainmenu.gui. WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:48 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:53 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:58 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:63 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:68 WARNING:unknown destination 'FlareBox::rect' of set command at /fms/hhtlc/hhtlc_1b4187d3b30d65cf.pk4/guis/map/hhtlc.gui:73 --------- Map Initialization --------- Map: hhtlc ------- Game Map Init SaveGame ------- ---------- Compile stats ---------- Memory usage: Strings: 57, 9144 bytes Statements: 23506, 940240 bytes Functions: 1379, 179716 bytes Variables: 108332 bytes Mem used: 2188540 bytes Static data: 408 bytes Allocated: 1176676 bytes Thread size: 7928 bytes collision data: 1373 models 163204 vertices (5100 KB) 273893 edges (12838 KB) 110189 polygons (8170 KB) 15680 brushes (2322 KB) 138243 nodes (6480 KB) 243924 polygon refs (3811 KB) 58507 brush refs (914 KB) 85771 internal edges 9795 sharp edges 0 contained polygons removed 0 polygons merged 39637 KB total memory used 2123 msec to load collision data. map bounds are (22831.0, 23151.4, 9093.0) 79 KB passage memory used to build PVS 52 msec to calculate PVS 252 areas 598 portals 14 areas visible on average 7 KB PVS data [Load AAS] missing maps/hhtlc.aas48 [Load AAS] loading maps/hhtlc.aas96 done. [Load AAS] loading maps/hhtlc.aas32 done. [Load AAS] missing maps/hhtlc.aas100 [Load AAS] loading maps/hhtlc.aas_rat done. [Load AAS] loading maps/hhtlc.aas_elemental done. WARNING:Couldn't load gui: 'guis/map_of.gui' WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer2.lwo' contains different model WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer3.lwo' contains different model WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer4.lwo' contains different model WARNING:Couldn't load sound 'explosion_all_clear.wav' using default [map entity: atdm_trigger_voice_12] [decl: explosion_all_clear in <implicit file>] [sound: explosion_all_clear.wav] No running thread for RestoreScriptObject(), creating new one. -------------------------------------- ----- idRenderModelManagerLocal::EndLevelLoad ----- 0 models purged from previous level, 2786 models kept. --------------------------------------------------- ----- idImageManager::EndLevelLoad ----- WARNING:Couldn't load image: lights/qc_comj [map entity: light_159] [decl: lights/qc_comj in <implicit file>] [image: lights/qc_comj] WARNING:Couldn't load image: guis/assets/game_maps/map_of_icon [map entity: MapMansion1] [decl: atdm:map_of in def/tdm_shopitems.def] [decl: guis/assets/game_maps/map_of_icon in <implicit file>] [image: guis/assets/game_maps/map_of_icon] 0 purged from previous 219 kept from previous 2070 new loaded all images loaded in 41.8 seconds ---------------------------------------- Linking GLSL program cubeMap ... Linking GLSL program bumpyEnvironment ... Linking GLSL program depthAlpha ... Linking GLSL program fog ... Linking GLSL program oldStage ... Linking GLSL program blend ... Linking GLSL program stencilshadow ... Linking GLSL program shadowMapA ... Linking GLSL program ambientInteraction ... Linking GLSL program interactionStencil ... Linking GLSL program interactionShadowMaps ... Linking GLSL program interactionMultiLight ... Linking GLSL program frob ... Linking GLSL program soft_particle ... Linking GLSL program tonemap ... Linking GLSL program gaussian_blur ... Linking GLSL program testImageCube ... Linking GLSL program depth ... Linking GLSL program interaction_ambient ... Linking GLSL program interaction_stencil ... Linking GLSL program interaction_shadowmap ... Linking GLSL program stencil_shadow ... Linking GLSL program shadow_map ... Linking GLSL program frob_silhouette ... Linking GLSL program frob_highlight ... Linking GLSL program frob_extrude ... Linking GLSL program frob_apply ... Linking GLSL program heatHazeWithDepth ... Linking GLSL program HeatHazeWithMaskAndDepth ... Linking GLSL program heatHaze ... Linking GLSL program heatHazeWithMaskAndBlur ... Linking GLSL program fresnel ... Linking GLSL program ambientEnvironment ... Linking GLSL program heatHazeWithMaskAndDepth ... ---------------------------------------- ----- idSoundCache::EndLevelLoad ----- 394497k referenced 125k purged ---------------------------------------- ----------------------------------- 77079 msec to load hhtlc Interaction table generated: size = 0/512 Initial counts: 6903 entities 665 lightDefs 5265 entityDefs ------------- Warnings --------------- during hhtlc... WARNING:Couldn't load gui: 'guis/map_of.gui' WARNING:Couldn't load image: guis/assets/game_maps/map_of_icon WARNING:Couldn't load image: lights/qc_comj WARNING:Couldn't load sound 'explosion_all_clear.wav' using default WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer2.lwo' contains different model WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer3.lwo' contains different model WARNING:idCollisionModelManagerLocal::LoadModel: collision file for 'models/ritual_hammer4.lwo' contains different model 7 warnings Interaction table generated: size = 0/512 Initial counts: 6903 entities 665 lightDefs 5265 entityDefs WARNING:Restarted sound to avoid offset overflow: sound/ambient/environmental/water_pool02.ogg WARNING:Restarted sound to avoid offset overflow: sound/ambient/ambience/silence.ogg WARNING:Restarted sound to avoid offset overflow: sound/ambient/ambience/alien05.ogg Linking GLSL program environment ... The ambient volume is now -1.885291 decibels (range: -60..0), i.e., 87.749992% of full volume. Restarting ambient sound snd_ct_babtistery'(derelict03) with volume -1.885291 signal caught: Segmentation fault si_code 128 Trying to exit gracefully.. ----- idRenderModelManagerLocal::EndLevelLoad ----- 0 models purged from previous level, 2786 models kept. --------------------------------------------------- Regenerated world, staticAllocCount = 0. Getting threadname failed, reason: No such file or directory (2) --------- Game Map Shutdown ---------- ModelGenerator memory: 67 LOD entries with 0 users using 1072 bytes. --------- Game Map Shutdown done ----- Shutting down sound hardware idRenderSystem::Shutdown() ...shutting down QGL I18NLocal: Shutdown. ------------ Game Shutdown ----------- ModelGenerator memory: No LOD entries. Shutdown event system -------------------------------------- Sys_Error: ERROR: pthread_join Frontend failed shutdown terminal support About to exit with code 1
  19. The latest TDM dev version (dev16650-10157) appears to contain broken definitions for ambient cube lights, breaking lighting on any FM that uses them (I have several in progress). I noticed the path got renamed from "ambientcube" to "ambientCube" (c became a capital C). Even if picking the new path however, DarkRadiant shows a "shader not found" error, whereas in-world the light is no longer visible and functional. Can this be fixed for the next dev snapshot please?
  20. It took awhile to get used to the size of this mission. The long loading times didn't help, but after passing a certain point, I get it now. However, I will say this - the AI is crazy on this map. I started, right? And the first thing I see - all guards going ape because some thug cut loose. I sat in the dark corner, for like ten minutes, waiting for them to calm down, because I figured I should look around for loot (I only found some of it much later when I was returning here after finishing the mission) The same thing happened later, when I needed to pass an abandoned mansion. I waited for the epic battle, instead it was a massacre, but like an idiot I saved AFTER I left the tunnel, not before. So I couldn't reload and see if next time the battle will go differently. (Am I crazy or do leather thugs spawn after a moment?) I had to use up all gas arrows to pass that part because they kept trimming the bushes. The evidence part got me confused because I dropped a piece of evidence, but it didn't count, so I dropped everything that said evidence. Only then it counted, but later, as I was still hunting for loot, I finally remembered that I had a vent key and came looking and found yet another piece of evidence?! Finding Smythe was funny, because he kept saying "Show yourself" and the moment I did... I gathered skulls before I was prompted to, but Edgar... I don't get it. edit: Those glasses, tho. Holy crap, I did not expect to see "actual glass" in this game. The hidden room took me ages to find, despite TWO blatant hints. But I was sleep-deprived at the time. There was one snag, and one confusion that I had. The snag was that, when I finally reached the alchemist, the note told me to use the vent, right? But... I couldn't open the second vent in his lab. I don't know which key I was missing for that. So I figured - I could just go back the same way... and game CTD. I walked there again - CTD. I noclipped through that locked vent, killed the spiders, and tried to open the doors to my left (got spooked by friendly guards) - CTD. Only when I walked right and up the stairs did I finally progressed. Not sure what that was about. The confusion, however, came from Builders. I knocked out most of them in the Builder's outpost, but when I dealt with the Mr. Nom-nom-zom, they vanished. I guess they needed that many people to dig him out of the spider outhouse? (Never found the second news flash either) I still somehow missed 3.5k, and noticed that lights kept poking through walls (there is a piece of light pointed at doors leading into the inner garden of Builder's outpost that nearly got me killed a few times) Overall, however, this was an impressive piece of work.
  21. This is probably the most practical way of indicating breakable electric lights and can be done with existing models if the effect consists of something like sparks + flickering.
  22. And making it possible for the new electric lights to be broken adds a psychological problem: how will players know that they are breakable if in 99% missions they are not? Recall lootable paintings and frob-extinguishable unmoveable candles.
  23. It's okay! I'm down with any option hence why I asked. But I agree: Most players would likely not approve of such a change being done retroactively and affecting all old FM's, so it would likely be best as a derivative entity for mappers to use in the future based on new or existing lamps that can provide one. In any case it would likely require engine changes, not something you can currently do with a script: Lights already use their own hardcoded script classname which can't be overridden. Even if it weren't for that I don't think there's a way to intercept broadhead arrow collisions and check what kind of surface they hit, even with the Stim / Response system. There should probably be two new spawnargs: A breakable boolean enabling the feature on an entity, and a skin_broken to specify the skin used when a light was smashed.
  24. Yeah, I guess I didn't consider making a new entity for future mappers to implement in their future maps when I responded to you (sorry!), but that is not a bad idea. The changes should be done in a way where it wouldn't affect older FMs, and it would be a fair chunk of work. I actually have a few breakable lights in my WIP, although they are kinda glitchy and far from perfect.
×
×
  • Create New...