Jump to content
The Dark Mod Forums

Search the Community

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

  • 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. It turns out we have many people who enjoy discussing code My complaint about that code is that all floating point numbers are snapped to integers with same tolerance. The .proc file contains a lot of different data: models, shadow models, BSP tree, visportals. They contain in different combinations: positions, texcoords, normals, distances. Snapping or comparing all of these quantities with same tolerance is a really bad idea. Some data is more sensitive to changes than other. They even have different measurement units, i.e. you position is measures in something like meter-units, while texcoords are usually measured in something like tex-units, and they are as incomparable as meters and seconds. Some data should not be snapped at all because that could break its internal invariants. If you snap coordinates of normal vector, it is no longer normalized, and the receiver has all the fun of dealing with extremely rare cases which normally should not happen. As for Hungarian notation... I do some mesh processing with halfedge data structures. When you have 10 local variables being halfedge handles, 5 local variables being face handles, and 5 local variables being vertex handles, it becomes much easier to understand what's going on if they start with "he" / "f" / "v" respectively. But this is very situational of course. Just starting pointers with 'p' and array-like stuff with 'a' is usually unnecessary, unless you have 3-4 levels (triple pointer or triple arrays), although in that case the code is smelly regardless or how you name variables
  2. @grodenglaive I think random head turning might be plausible for specific characters, if they're supposed to be paranoid for some reason. But you should let the player know in advance that they're always looking over their shoulders. I don't know if Elsevier has any reasons to be paranoid, but it could be plausible in his case. It could even be one of the reasons why Astrid had a hard time seeing him insert the safe code. The doors thing, at least some interior doors were auto-closing too. I was specifically thinking of the dinning room doors when I wrote that. I think there were more auto-closing interior doors, though. Personally, my potato doesn't have any real issues with performance in this mission. Only on the outside the frame rates drop below 60 sometimes, but never enough to make any noticeable difference to the gameplay. That said, I wonder if you could use double visportals on the outside doors. That might help, as the inner portal should close more often, without needing to close the doors. I use double portals sometimes because of that. But it needs testing to know for sure whether it helps or not. (It also requires adjusting info_locationSeparators, as they can only touch one portal). Also, the big visportal in the water that separates the front yard from the spider area seems to be always open. I wonder if having two visportals in a V shape (from the top view) instead of that one, would help closing it. Or some similar configuration that doesn't interfere with the view from the watchtower.
  3. That's because all those guides apparently did not reach the age of web-page-based Code-Reviews via Github, Azure Devops, and the likes... All the people arguing against Hungarian say that you simply don't need it anymore, because your compiler / IDE will tell you what type a variable has (your Pull-Request web-gui will not show you that information) and that Hungarian only makes it harder to read variables (which is not really accurate, as our brain is perfectly capable to read any camel-case variable or function, so why shouldn't it be able to parse the prefix?).
  4. In that case they seem to go in the right direction and attack accordingly. What you could have expected to see for instance: If you only activated the lantern for a few seconds as to make the AI lose you, it's possible the guard may have instantly went searching in the opposite direction as if having no recollection of what (or rather where) caused it to become alert.
  5. New fresnel mod: https://www.moddb.com/mods/the-dark-mod/addons/fresnel-mod-212-beta-3 Probably not needed. I don't think anything in the previous base pk4 changed but I built it just in case.
  6. New script for mappers: my flavour of a fog density fading script. To add this to your FM, add the line "thread FogIntensityLoop();" to your map's void main() function (see the example in fogfade.script) and set "fog_fade" "1" on each foglight to enable script control of it. Set "fog_intensity_multiplier" on each info_location entity to change how thick the fog is in that location (practically speaking it's a multiplier for visibility distance). Lastly, "fog_fade_speed" on each foglight determines how quickly it will change its density. The speed scales with the current value of shaderParm3, using shaderParm3 = 1000 as a baseline. So i.e. if shaderParm is currently at 1/10th of 1000, then fade speed will be 1/10th as fast. Differences to Obsttorte's script: https://forums.thedarkmod.com/index.php?/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/&do=findComment&comment=310436 my script uses fog lights you created, rather than creating one for you. Obsttorte's script will delete the foglight if entering a fogfree zone and recreate it later more than one fog light can be controlled (however, no per-fog-light level of control) adding this to the map requires adding a line to your void main() script, rather than adding an info_locations_settings entity with a custom scriptobject spawnarg in my script, mappers set a multiplier of fog visibility distance (shaderParm3), while in Obsttorte's script a "fog_density" spawnarg is used as an alternative to shaderParm3 smaller and less compactly written script fogfade.scriptfogfade.map
  7. I guess I want to be sure I understand the context of entity "death" - both purchasing the glasses and picking them up adds a atdm:xray_glasses item to the players inventory. You mentioned basically the inventory slot which should be the be pointing at atdm:xray_glasses is pointing at nothing So it probably got "killed": -In the process of being added to inventory (in this case it was a purchase) -Upon the first attempt at using it (it sounds like it immediately did not work) -Or in the very small window in between Unless the entity in an inventory slot can be "dead" prior to it ever being added?
  8. The "peculiar lenses" don't work for me. Neither the ones I bought, nor the second ones I found in some tower. Every CInventoryItem (C++ object) stores pointer to entity in m_Item. In my case, this pointer is dead, i.e. it points to an entity which was removed some time ago. I guess for the glasses to work, it should point to the "atdm:xray_glasses" entity. The reason why it works for some people is either because the glasses don't die for them, or because they die but not completely and no other entity created afterwards takes its entity number. So the main question is: who kills the glasses entity and why? UPDATE: Just to add some more detail. I think I'm playing clean latest version with latest TDM beta. I got lost pretty quickly, so I completed all the objectives and explored most of the map first. Then I returned to the starting area and went to buy a sword. There I noticed the glasses, bought them and tried to use them instantly: they did not work. Then I explored some more and found second glasses in the tower + a piece of advice to use them. Now I have two items, but they don't work anyway.
  9. This case in Poets and Peasants is something new: In this case we have on same line: light brush wall fully closed room closed door with visportal in a brush wall player Since only backfaces cast shadows, only the door and the first brush wall can cast shadows. The brush wall does not cast shadows because the entirety of its area is unreachable by light. So the door should. It turns out that all doors that are connected to visportal should automatically get this "forceShadowBehindOpaque" flag. When the door is closed, it closes the visportal and thus becomes part of the wall, just like a brush would be in its place.
  10. Bikerdude has made a few updates to this mission so we are looking for a few testers to make sure nothing was broken or overlooked. As far as I can tell this is ready for release but it's always good to ensure nobody encounters unforeseen issues. Lowend players are probably the best target just in case there are any performance regressions too. Mini beta:
  11. This is an intereting discussion. So, could one of the mods please move this to a separate thread as to not derail the beta testing thread. As a developer, you spend about 80% of your time just reading code. So, optimizing for readability is very important. The more information you can gather just by reading without cluttering up the code (by needless comments) the better. Hungarian notation helps immensely to quickly prase the displayed code in your brain. Yes, your IDE will show the desired information as well, but a mechanical interaction with the code is required to show it (mouse over or similar). Also, often you are tasked to do code review on webpages that don't offer these nice crossreferencing features of your IDE. Some things are objectively bad, 'though, so the respective rules preventing those things should universally be followed. For instance, much legacy code is nested extremely because at some point in time, it must have been a rule that you only have one return-point in your function (probably a c-residual). Such code is exhausting to read ("what was the else-if-condition some 1000 lines ago leading to this else-case again?") and very likely contains tons of code duplication. Today, we have the rule to only use little nesting and short if-else-clauses, to make the code easy to read and debug. If I come accross such a nested legacy function, I refactor the shit out of that function while trying to understand it, just so the next person after me doesn't have to deal with that horrible mess again.
  12. I've very rarely seen setter methods which return values (unlike getters which obviously need to return the value they are "getting"). What value should a setter return? The same value it was given as a parameter? That's entirely pointless because the calling code already has that value. It could return the previous value, but such a value isn't necessarily defined (and doesn't appear to be relevant in the case of writing something to a file). Sometimes setters return the object itself, so you can call them in a chain, e.g. myObject.setWidth(60).setHeight(20).setColour(RED); but it's not clear how that would work with writeFloat which isn't an object method to begin with. That's certainly common (and is a convention I use), but not universal. The C++ standard library doesn't use it, for example — to check if a vector is empty you call std::vector<T>::empty(), not isEmpty().
  13. I was thinking of creating new libre assets that will complement existing NC assets. Not necessarily replace them. I'd be interested in hearing more about what the licensing issue on Steam was. If it was the NC assets, then a TDM-libre with a basic libre mission released initially could encourage a mapper to create a more developed map, also with with libre assets, that may qualify for inclusion on platforms currently not allowing NC assets. Perhaps. Or perhaps a developer decides to join the project because they like the idea and want to work on it. In that case this thread will provide a good overview of different aspects of this.
  14. In case you're still tracking and fixing light leaks, I found the following in Poets and Peasants: The first picture is dev16814-10408. The second picture is dev16809-10394. Something must have changed between those two devs.
  15. Yeah, I don't know what to say. Rev 10383 works fine and 10384 does not. It is always reproducible for me, meaning that every time I try to reproduce it, I can reproduce it. After some more testing, I found that r_multiSamples set at 2 or 4 has the glitch most often at that viewpos. When set to 8 or 16, it is still possible but less likely. Setting r_fboResolution 2 made no difference. If com_maxFPS is set to something lower, such as 30, the glitched frames display for a longer period of time. Yeah, I also wonder if it driver dependent or GPU dependent. I discovered the glitch while using graphics drivers Mesa 22.0.5, so I updated my OS and graphics drivers to Mesa 23.3.2 today as a test, and the problem is still there. It's strange that rev 10384 exposed this problem. My machine specs and settings: Linux, Ubuntu 22.04 AMD Ryzen 9 5900X AMD Radeon RX 6700 XT (Mesa 22.0.5 & Mesa 23.3.2 both exhibit the glitch) com_fixedTic 1 com_maxFPS 60 Anti-Aliasing 2x (r_multiSamples 2) The video I shared shows the viewpos. Even at the same viewpos, the glitched frame will pop in and out. I've only seen this glitch happen in this single room in Accountant 1. If I move around the room at that viewpos, I can find other view positions that also expose the glitch. Here's another viewpos for Anti-Aliasing 4x, 8x, and 16x. It requires moving the mouse slightly to get into the exact viewpos to expose the glitch. (1.7 -166.4 0.0) is not precise enough. -1460.29 1425.48 172.25 1.7 -166.4 0.0 Glitched frame (Shows the curtain texture, covering most of the frame. Also, a hint of the red carpet texture?): Good frame (Same viewpos and Anti-Aliasing settings, when the glitched frame disappeared for a moment.): (Before and after rev 10384) I wonder if this might also be related to: (Before and after rev 10384) Also, sometimes on the loading screen with Anti-Aliasing enabled, I get a glitched background, which does not show with Anti-Aliasing disabled. See left side of screenshot: I don't know if the last two examples (distorted first frame on launch & loading screen distorted background) are related, but I thought I'd mention them just in case it helps track down the issue.
  16. Oh yes: I have both sight and hearing set to Forgiving. I didn't think that would be related: IIRC it only affects the multiplier for how much being seen in light or heard while making noise increases the alert level per event. I should test on a higher alert level too just in case: I tend to be sloppy and impatient thus I used that for years so I wouldn't get caught all the time on more difficult FM's (lots of guards in tight areas with lights you can't turn off). I have noticed an aspect that does work well: If you're making noise by running even in darkness, alert AI will head toward your direction while searching, they won't go around randomly but actually care where the impulse came from. The problem is that this doesn't seem to scale over larger distances: If they briefly see you in broad light at a distance enough to draw weapons, AI won't head toward your general direction but begin searching their own vicinity... and at least on Forgiving the same happens if you shoot a broadhead arrow at a guard's helmet: I still think the guard should actively run toward your location instead, not exactly where you are but they should go to that road or barge into the same building.
  17. I don't think this counts as a bug but maybe it's something to look at... Nvidia GPU, Intel CPU Linux: Scroll of Remembrance - Shadowmaps ( size 1440 ) 70+ FPS / Stencil 58+ FPS Windows: Shadowmaps ( size 1440 ) 52+ FPS / Stencil 30+ FPS I am guessing we can mostly attribute this to Windows CPU usage bloat. Can any other dual-booters confirm? Edit: I went back to check my Windows security "Exploit Protections" area for "TheDarkModx64.exe" to see if it still existed and still had most of the protections disabled and found some new protections were added. I disabled "Heap Protection" and: Shadowmaps 58+ ( mostly 60+ ) / Stencil 38+ ( mostly 40+ ) ( All the FPS are at the start of the mission facing the manor, eg worst case scenario ).
  18. 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.
  19. With TDM 2.12, after the credits finished, the "Mission Complete" screen did not display. I found that the screen was black and I could hear my footsteps when I tried to move around. I think the reason for the mission not completing successfully was that the "Do not kill or harm allies" objective was never marked as "1 = STATE_COMPLETE" instead it was left as "0 = STATE_INCOMPLETE". Note, I didn't use noclip throughout the mission. Same as: https://forums.thedarkmod.com/index.php?/topic/18054-fan-mission-the-accountant-2-new-in-town-by-goldwell-20160509/&do=findComment&comment=458491
  20. How about using TDM automation framework (and maybe pcem/qemu)? More info see: https://forums.thedarkmod.com/index.php?/topic/19828-automation-features-and-discussion/
  21. You're right, libxml2 can't be fundamentally broken since it is such a core dependency on Linux, plus the exact same XPath queries work perfectly fine even within our own XmlTest, so it must be something specific to how XML is being used within the registry setup. I found a couple of online sources which suggested that XPath queries might fail if the DTD doesn't validate, but we don't have any DTDs in our XML files and the XML_PARSE_DTDVALID option is not set by default in any case. Encodings are another possible culprit (especially since the problem seems to be OS-specific), but as far as I know encodings wouldn't change the parsing of characters like "[" or "@", and if the encoding was so fundamentally wrong that even regular 7-bit ASCII failed to parse, then how would "//game" ever be found? It seems that whatever the cause of the problem is, it is very well hidden within the API and would probably require building libxml2 from source and diving into it with the debugger to find out what is going wrong. Right, that sounds like the best approach. I'll set the HEADER_ONLY flag on Linux too then for consistency, and integrate it as a header-only dependency like libfmt.
  22. Is there something wrong with the forums lately, or is it my browser? I've been having trouble formatting posts, and just now I couldn't format anything at all.

    I'm using Vivaldi.

    Usually I have to: select text, click bold, nothing happens, select again, click bold, then it works. 

    Same for other stuff, like creating spoilers, bullet points, links. Nothing works the first time. 

    1. datiswous

      datiswous

      I have no problem. I use Firefox. @Zerg Rush also uses Vivaldi. Have you tried without extensions, or in another browser?

      (btw. bold, italic and underline have shortcut keys: Ctrl B, Ctrl I and Ctrl U, you could try that)

       

  23. revelator

    solus

    So heres is the beast up and running the app in the screen is KDE Connect SMS in case you were wondering. Only problem so far is one i had with several distros... the wifi driver for the broadcom BCM4360 is inherently unstable at times and does not even get close to the speeds it is capable of on windows 1.3gb vs 135mb yuck it also has a habit of random disconnects when moving a lot of data so not really a good wifi card to pair with it, sadly it is built in to my mainboard and i dont have a spare atm. as for gaming the titles you can see in the screenshot all run quite fine with some performance deprecation due to being windows games but i have to say proton has come a long way allready. older games are actually more irritating to get running sometimes, timeshift outright crashes and i have had no luck getting it to run yet, wheel of time runs but required some tinkering because the gog version uses a ddraw wrapper for the quicktime video codec so i had to make some alterations with lutris environment variables to get it running. eg. go into runner options DLL Overrides add a new key containing ddraw in field one and n,b in field two. this tell wine that the game uses its own ddraw.dll and to not touch. lutris strangely also set the game executable to the quicktime player so i had to correct that .
  24. Would like to remind of a notable bug that persists in latest beta: Sometimes when you kill AI with a broadhead arrow, TDM will crash instantly or soon after their death. I'm currently replaying King of Diamonds and got a case of that, previously experienced during another FM with one of the dev versions. Here's the qconsole.log once more, hope it's enough to help track down the issue... the one line I believe is relevant: WARNING:idClipModel::FreeTraceModel: tried to free uncached trace model (index=0) qconsole.log
  25. This is a different issue than the click of sound at the start of every transition that I was talking about in earlier posts that you're referencing. This may be a problem that's always been there but nobody really noticed or commented on it, or maybe only for certain ambients? So the first problem is that the ambient starts abruptly at game start presumably because the sound system isn't online yet to process the fade in, and it just starts the ambient at full sound. So then you added a delay, but since you're not coming off of a previous fade out to sets the volume to zero, it plays the full volume ambient through that delay and then cuts to zero and fades in. My idea is that if you want a fade in from the start, don't start with that ambient as it is. Start with a .1 second of silence, and then fade in the ambient. There are two ways I can think to do that. (There might be other ways.) 1. Some ambient soundshaders start with a "leadin" spawnarg that starts it with a bit of silence, originally used to stop the click of sound (soundshaders ending in "_z", there were two versions, one with and one without the _z, unless that was later changed). You could confirm that the soundshader for that ambient uses a "leadin" arg, or if it does but it's not long enough, maybe use a custom soundshader to use a longer leadin blip of silence. (In that case you'd have to make the longer silence file yourself.) 2. Or another possibly easier way may be to start with an "override" sound, look at the Sound Override part of the tutorial with silence, and then after .1 second or whatever, transition that to the normal location-based ambient according to the instructions, and then the override sound will fade out and yours will fade in. I think you'd do that by setting the override arg to "1" from the start and then change it back to "0" after 0.1 seconds using Target_setKeyVal as the instructions say. Confirm that the "silence" sound is stereo. I noticed if you start it with a non-stereo sound, the system stays non-stereo. I think that was fixed, but good to double check. If it isn't, then you could do the same thing with a normal ambient that just starts off silent or very quiet for that first .1 second.
×
×
  • Create New...