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. I just made an interesting discovery. In my FM that's in beta I have custom main menu music, but it doesn't always work. Basically it works: When you first start the game (whether the FM is currently selected or if you change to this mission and the game restarts) during the text briefing It doesn't work (i.e. you only get silence) When escaping back to the main menu while in-game After quitting a mission and it goes back to menu As far as I know I had all the correct settings in mainmenu_custom_defs.gui: /// Menu music after startup (not in-game) #define MM_MENU_SOUND_CMD "music fs_muslim;" /// Played in main menu when in-game (ESCaping out of the game) #define MM_INGAME_MENU_SOUND_CMD "music fs_muslim;" /// Played during non-video briefing #define MM_BRIEFING_SOUND_CMD "music fs_muslim;" It turns out the problem was I had this line set in the sound shader: leadin sound/ambient/ambience/silence.ogg Commenting that out on a hunch fixed the problem. So you might be saying to yourself 'that's all very interesting but who cares?'. My point is: Just an FYI in case someone else runs into this I don't think there is anywhere on the Wiki that covers menu customization? @Geep you've done a whole bunch around GUI scripting recently - is there somewhere you can recommend I can stick this?
  2. Yes. But, in this case, it's rather about creating darkness. Otherwise you could just break a window, throw a bottle, or whatever.
  3. For the FM? For beta 1 it's here: https://drive.proton.me/urls/H1QBB04GA0#oBZTb1CmVFQb I've already done around 100 fixes though, so you might want to wait for beta 2 which should be ready in a couple of days hopefully. All links are in the first post of the beta thread here: https://forums.thedarkmod.com/index.php?/topic/22439-the-lieutenant-3-foreign-affairs-beta-testing/
  4. That's a very valid question. Personally, I'd say the key is to watch what the otherwise-disengaged fringes of the community are saying. If first time posters or long time lurkers start coming out of the woodwork about well made new missions, praising them for their geometry and story but saying that innovative parts of the gameplay felt frustrating or off, that's probably the first sign that the innovations are starting to get out of hand. For a more concrete example, re-read the comments on Hazard Pay. As much as I and many others love that mission, it's clearly a case where the author strayed further than many people were comfortable with. It also points to the likely endgame if authors do take their customization too far. After getting the negative feedback, kingsal made adjustments, and now the mission is much more friendly towards player preferences that don't match the author's original vision. You don't need to restrict the mapmakers' tools to stop them from straying too far from the traditional formula. When people start speaking up, the authors will rein themselves in on their own.
  5. Plan B in case Joebarnin cannot get it right with immobilizations. By Any Other Name: attached to this post are the Bow/Arrow, Blackjack and Shortsword scripts updated to 2.12. I didn't take any liberties. Blame snatcher if something isn't right. @joebarnin, @stgatilov z_byanyothername_212_scripts.pk4
  6. Here's a link with the Engine, Game and Input file in case anyone would like to dig in but don't own or have the game installed. Either for Performance or Quality optimization: https://github.com/honzi/files/blob/master/Config/Thief/2014/ThiefEngine.ini
  7. The idea is that mapper can set spawnargs on map entity to override defaults from entityDef. If some entityDef is used only to dynamically spawn entity without any map entity, then it does not fit. I guess this is the case with arrow weapons, sadly. UPDATE: At some moment we discussed an option to specify "patches" to core entityDefs, but the idea never got far.
  8. Never thought it was enabled.....thanks! Stupid camera lens "simulation" effects (bloom when overdone, chromatic aberration, flares, dirt, etc.....even DISTORSION of the entire viewport in Atlas Fallen - it's only acceptable in a sniping UI) The only thing rivaling in "detest" feeling with camera lens effects is the pre-sharpening pass in case of Temporal AA (Chernobylite) or Depth of Field too (yes, I see you Dishonored 2 / DotO)
  9. One of the problems with the old #str_number system, that would not be automatically solved in the new #str_phrase system, is lack of versioning/history. For example, suppose in the FM I provide a new string: #str_Mother! which (by magic TBD, ideally in DR) generates this placeholder in all the .lang files: "#str_Mother!" "Mother!" The translator in the fr.lang file later does this: "#str_Mother!" "Mere!" Still later, the FM author revises the string in DR: "str_Mother!!!" In a naive implementation, this breaks the link to the existing translation(s), which becomes orphan in all the .langs, and creates a new entry: "#str_Mother!!!" "Mother!!!" OK, how could we do better? Case 1 (as above): the FM author knows the change is trivial, and so (at revision time in DR) might ask the translations to be retained but marked for review. So maybe the fr.lang files gets: // WAS UNTIL 2025-01-01: "#str_Mother!" "Mere!" "#str_Mother!!!" "Mere!" // Needs minor review with removal of the orphans (after they become comments and moved to before their replacements) Case 2, where the revision is not trivial: the FM author (at revision time in DR) might ask the translations to be replaced by english but marked for review, e.g.: #str_Mother of Pearl! causes the fr.lang files to have (with orphan removal as case 1): // WAS UNTIL 2025-01-01: "#str_Mother!" "Mere!" "#str_Mother of Pearl!" "Mother of Pearl!" // NEEDS REDO Then the translator could eventually fix it: // WAS UNTIL 2025-01-01: "#str_Mother!" "Mere!" "#str_Mother of Pearl!" "Nacre!" // Done 2025-03-14 by Henri
  10. The translation pack has the german string in the base pack rather than in the fm subfolder. I will fix it in the mission database. Edit: Fixed in the mission db Edit 2: Nope. Not exactly fixed. It seems that lang files in the mission string folder need to be "complete" because they fully override the core strings. If I am correct, this was broken in 2.11 when we permitted in-file overrides of core files in missions. Edit 3: Still broken in 2.10, rolling back to 2.07 Edit 4: Still broken in 2.07. Something has gotta be wrong with the translation specific to this mission. Edit 5: The core mission XD files don't use the strings so nothing happens if the lang files are in the strings/fm subfolder. Probably means that the translation packs "never worked" for many missions unless impacted players sought out special editions of the missions on Tels' server. What a mess. Fuzzy recollection time: I think Tels was trying to push the team to mass convert all missions to move XD data into strings/fm/english.lang but nobody wanted to broach it and even mission authors weren't happy about this way of handling things. If the translation pack takes precedence, the best way forward is to include the converted XD file into it. Testing... Edit 6: Couldn't get the XD update to work, so I decided to checkout Darkfate's version. It works flawlessly. I copied their pack into the standard translation pack and the added string files for the other languages worked as well. Darkfate's packs include map files so I'll need to study whether we can avoid that. Otherwise we are basically doubling our mission db or "damaging" our hosted versions to make them translatable. Since this mission is so small and probably will never be edited again we can probably use darkfate's version as-is.
  11. This is how i18n typically works in code: Developers write the strings in English (or their native language), but mark all the strings with a function/macro which identifies them for translation. In C++ this might be _("blah") or tr("blah") — something which is short and easy to write. A tool (which may be integrated into the build system), extracts all the strings marked for translation into a big list of translatable strings. This list is then provided to the translators, who do not need to be developers or compile the code themselves. They just create a translation for each listed string and send back a file in the appropriate format (which may or may not be created with the help of translation tools, perhaps with a GUI). At runtime, the code looks up each translatable string, finds the corresponding translated string in the chosen language, and shows the translated version. At no point do developers (who in this case would be mission authors) have to mess around with manually choosing string IDs. All they do is use the appropriate function/macro/syntax to mark particular strings as translatable. String IDs may be used internally but are completely invisible to developers. I suggest that any system that involves instructions like "search the list of known strings for a similar string" or "manually choose a string ID between 20000 and 89999 and then write it as #str_23456" are over-complicated, un-ergonomic and doomed to be largely ignored by mappers.
  12. BTW, my concern about #str values is about those distributed in FM-specific .lang files. For standard assets, where the info would be in tdm_base01.pk4/all.lang and its derivative .lang files, I guess that's less of a problem. In that case, maybe, instead of using a #str_<number>, you could use a fixed prefix, like: #str_shouldered_<english_name> or #str_moveable_<english_name> That is, like #str_shouldered_chair A general string like that might be used with multiple different chair models, as you intended. If the author overrode the shouldered name with a non-#str name: #str_shouldered_chair --> cushy chair with clue then any translated general strings would be hidden, and just the English version shown.
  13. Interesting idea. Not sure about my upcoming time availability to help. A couple of concerns here - - I assume the popup words uses the "Informative Texts" slot, e.g., where you might see "Acquired 80 in Jewels", so it likely wouldn't interfere with that or with already-higher subtitles. - There are indications that #str is becoming unviable in FMs; see my just-posted: https://forums.thedarkmod.com/index.php?/topic/22434-western-language-support-in-2024/
  14. It's a big project, so it's important to test everything thoroughly and run several tests. "The Lost Citadel" had a lot of bugs in the first release because I didn't test enough. I will not repeat this mistake. I have fixed all problems found during beta 2. Beta 3 shall include all subtitles and briefing videos. The problem is that I'm still missing some voices. This means we can't complete the game subtitles and produce the briefing videos. In the worst case, I'll have to do a new audition for this stuff, but currently I don't feel like it.
  15. In post https://forums.thedarkmod.com/index.php?/profile/254-orbweaver/&status=3994&type=status @nbohr1more found out what the Fixup Map functionality is for. But what does it actually do? Does it search for def references (to core?) that don't excist anymore and then link them to defs with the same name elswhere? Also I would recommend to change the name into something better understood what it is for. Fixup map could mean anything. And it should be documented in the wiki.
  16. You can check if transform has no scaling (3x3 submatrix is orthogonal up to epsilon) and leave sound spawnargs "as is" in this case. I think that would make more sense than setting them on every movement.
  17. I'm at the beginning of a new area, where bandits fights each other. Near the end, I imagine, but I'm not going to bother finishing it. The thing is tedious. It's very obvious your focus was on telling a story. The issue is that's not my thing, and I also think this is not the right game for it. You're trying to make it do things it was never designed to, so it feels clunky. I think the game shines best in a smaller map with some backstory and little touches in the mission, like notes one character leaves for another. Here, it feels like I'm being pulled along from place to place, having to go back where enemies have artificially respawned, with locked doors everywhere, JUST to further the story, not to give me an interesting challenge. And in terms of story, it's the same thing we see all the time: Pagans are the poor, downtrodden, nice people, and the Builders, are the heartless monsters. Yawn. I don't get how the gargoyle switch works in that guy's office, even after having read your explanation. I don't even understand what the situation is supposed to be. The gargoyle looks like it's locked inside a glass case, and therefore you want to get that glass case open. The note says the gargoyle switch is behind the downstairs desk. Downstairs from this note, there is no desk. And the note calls it the "gargoyle switch", which implies it's a switch for the gargoyle, not that the gargoyle itself is a switch. It's confusing for no good reason. Random notes: Boring name, as others have mentioned. A cursive font in letters is annoying to read. Loud music and sound effects are not fun, it just hurts the player's ears. The map is a screenshot. That ruins immersion. The light issues have been covered. For me, it never felt like I was in shadows, as opposed to other missions. Almost everything looks pretty brightly lit. I saw someone mentioning rope arrows are pointless, and I agree. You asked how that player could have made it past something without using one; well, I haven't used it either. You can just mantle. Of course, that's not an issue in itself. There's not reason to cry "I'm getting review bombed" when people are just giving their opinion.
  18. Taffers, Time ago @Obsttorte and I worked on an AutoHotKey script that allows to control the player speed with the mouse wheel. In a further attempt to reduce the amount of critical keys this game demands I also created back then a script that allows the Left Alt Key to act as a lean modifier: Left Alt + W = Lean forward Left Alt + A = Lean left Left Alt + D = Lean right I never got around publishing the script because it isn't as good as it needs to be but I think we can debate regardless whether such a Lean Modifier Key would be welcomed in the core game or not. The most interesting aspect in my opinion is that we can claim back important keys such as Q and E and use them for other purposes. ---------------------------------------------------------------------- Here below is the script in case anyone wants to give it a try (you must be familiar with AutoHotKey). The required key bindings for the script to work are: Move forward [W], Strafe Left [A], Strafe Right [D] Lean Forward [Numpad8], Lean Left [Numpad4], Lean Right [Numpad6] You can of course change the script to your liking.... #IfWinActive ahk_exe TheDarkModx64.exe ; run only when TDM is in focus <!w:: while (GetKeyState("LAlt", "P") && GetKeyState("w", "P")) { Send {Blind}{Numpad8 down} } Send {Numpad8 up} return <!a:: while (GetKeyState("LAlt", "P") && GetKeyState("a", "P")) { Send {Blind}{Numpad4 down} } Send {Numpad4 up} return <!d:: while (GetKeyState("LAlt", "P") && GetKeyState("d", "P")) { Send {Blind}{Numpad6 down} } Send {Numpad6 up} return Cheers!
  19. The commit which introduced unconditional writing of the s_mindistance and s_maxdistance spawnargs was this one: https://github.com/codereader/DarkRadiant/commit/541f2638c810588ada12e9a28360f16df6143d45 and it appears it was intended to fix this bug: https://bugs.thedarkmod.com/view.php?id=6062 The current logic is to set the spawnargs to the same values as in the sound shader, if a shader is set: // Write the s_mindistance/s_maxdistance keyvalues if we have a valid shader if (!_spawnArgs.getKeyValue(KEY_S_SHADER).empty()) { // Note: Write the spawnargs in meters _spawnArgs.setKeyValue(KEY_S_MAXDISTANCE, string::to_string(_radii.getMax(true))); _spawnArgs.setKeyValue(KEY_S_MINDISTANCE, string::to_string(_radii.getMin(true))); } This happens in the freezeTransform method which is called after performing some manipulation of the speaker entity such as moving or resizing it. In this case _radii is the object which contains the modified speaker radii, so this code is persisting the modified radii into the relevant spawnargs. This seems to be working correctly when I manipulate a speaker with a valid sound shader. The only way I can get 0 is by creating a speaker with a sound shader like blackjack_swing which does not have radii defined. In this case the speaker has a default minimum radius of 0.0 and a default maximum radius of 10.0. We could avoid setting a radius at all, but then the speaker just appears as an entity box rather than a sphere/circle, which I assume is the original reason for setting a default value. Right now I have no idea what code path would lead to having both a minimum and a maximum of 0.0. I think we'd need more detailed reproduction steps. This is the current logic for setting the spawnargs on speaker construction (rather than manipulation, which is the previous code): // Initialise the speaker with suitable distance values auto radii = soundShader->getRadii(); entity.setKeyValue("s_mindistance", string::to_string(radii.getMin(true))); entity.setKeyValue("s_maxdistance", radii.getMax(true) > 0 ? string::to_string(radii.getMax(true)) : "10"); So there is a specific check that s_maxdistance is greater than 0 before setting it as a spawnarg. Code similar to this has existed for many years, as far as I can see, and I have to go as far back as 2009 to find something different (originally all speakers just had hardcoded 16/32 radii to make them visible).
  20. The new behavior is available in the latest dev17026-10712. If you set cvar s_overrideParmsMode to 1, then you get the new behavior. The old behavior is under value 0, which is default yet. Also there is "debug mode" if you set value to 2. In this case the new behavior is used, but console warnings are posted when a sound being started shows difference in behavior (i.e. the engine computes both behaviors and complains if they are different). Right now you'll see regular warnings about various AI sounds: they have wrong effective volume in TDM 2.12 and before due to this issue. As for modifying the missions, I think the main blocker is the new DarkRadiant behavior. @greebo @OrbWeaver, could you please comment why DR automatically sets s_minDistance and s_maxDistance spawnargs since recently?
  21. Yes, this is a bug. In svn rev 17012 I fixed this warning in case player closes objectives with anything but Escape button.
  22. Is it possble to make skins for brushes/patches by conferting them to func_static? Models are func_static when you add them in DR, but in the skin file you reference them with the model name instead of the entity name. When you convert a brush/patch though, it converts it uses a model with the same name as the entity name, so in this case func_static_1 for example. Would it be enough to use that in the skin file? Allthough the wiki article states it's important to add an extension.
  23. I thought that might be the case. I don't believe I can access the SVN. Could you zip up all the font stuff you can easily find in that archive and send a link to me? TGA/DDS, even TTF for Stone, Mason, Carleton, etc., etc. No hurry. Thanks. P.S. Try to preserve file timedates
  24. Hint: I checked the objectives. It is possible to not read the note and also not see the body, in which case you wouldn't know she needed reviving and then you would not be able to complete the mission. I will release an update to fix that. Since you did find her though, I don't know why you didn't get an objective to revive her. I'm not able to reproduce that bug. Finding the note is set as optional, so missing that alone wont cause a fail.
  25. Because DDS is a lossy format, every direct edit of a DDS file may reduce its quality slightly. So that means either: hunt down the corresponding TGA file with the same timestamp otherwise, edit the DDS as few times as possible. In the case of Stone, if the TGA can't be found and editing DDS is needed, I'd want to think about batching up all the bitmap edits needed for i18n... but that's a lot of work. I might add, there a third possibility in the case of the readable fonts that are currently ASCII only. If they were sourced from TTF, and you find the TTF (easy in a few cases), then see if it covers Latin-1 or more. You can (with some complications RE the conversion software) regenerate an improved TDM font from that.
×
×
  • Create New...