Jump to content
The Dark Mod Forums

Leaderboard

Popular Content

Showing content with the highest reputation since 07/08/25 in Posts

  1. An abandoned underground pagan temple...
    15 points
  2. I'm happy to announce the release of my third FM: Year of the Rat. This is my first city hub map, focused primarily on story characters and environment. It's my most complex project to date, taking its fair share of effort to make which was a good learning experience. As an experiment I opted to use no scripts and rely solely on the default entities, as well as no custom assets apart from the map and splash screen hence the small pk4. It features a few special elements, such as factions that are hostile only when the player commits crime or a decoder lockpick used to open electronic doors. The beta testing thread can be found here, thank you everyone who helped find the most obvious problems. You play as a famous thief nicknamed Black Jack: A man who's pulled many crazy jobs in his life, only to be hired for an absurd and insulting task by an anonymous employer. The objective is pretty straightforward: Be kind to the mice and feed them some cheese! Your silly quest takes you to the Lantern Light district during the Lunar New Year celebration, a place where gangs and corrupt nobles do their dirty deeds together. What ulterior motives and unexpected twists could your adventure entail? While the most obvious problems were patched during beta testing, some issues can't be easily resolved due to the complexity of the entity setup and objectives, meaning you may encounter a few inconsistencies. Most notably surrounding AI, which may float above chairs and not react to alerts or oppositely send the whole map into a panic: This is mostly due to how the engine handles AI and alarms. The map is small since I wanted to add more detail without having to work on large areas, as such some places can feel cramped while the skybox may be visible up close. I'll be busy so further updates are unlikely unless I decide to add new content later... you're welcome to report any issues you encounter, but keep in mind that if something wasn't fixed it's likely known but difficult to address or due to engine functionality. Spoilers for objectives and secrets as follows: Download 1.2: Google Drive, Mega. Screenshots with minor spoilers for the various areas:
    8 points
  3. So I thought I had found a new and BETTER way of creating lit/selflit windows for TDM, but discovered fairly quickly that some window textures are already using this mething, but that unfortunaly the vast majority are not. The aformerntioned method is that we use the stock material def for the frame (so you retain the diffuse & bumpmap details), and then only 'blend add' the lit window panes which are a separate texture. An example stock texture that uses this method already - textures/darkmod/window/wooden_frame01/wooden_frame01_lit What we have above is an overlay of JUST the window panes, and its just this texture that is RGB boosted! I don't know why we HAVENT been doing this in the core mod all this time, and to quote @nbohr1more"Boosting the diffuse is a pretty poor way to achieve that effect." And unfortunately a LOT of the core window textures are using this poor method instead of the window pane overlay method. Ive already spent some time in establishments of lower affairs (the line from the gatehouse popped into my head, heh), making overlay versions for frost_salamander for his recently released FM. So when and create da repo for this that @Amadeus has already had a look at and used some in his upcoming wip - - https://drive.google.com/file/d/11168eiBj_m-Lu5d-8FLYUgM7J1MC_92h/view?usp=sharing
    5 points
  4. So for comparison, this was the very first blockout pass -
    5 points
  5. @OnlyTaffingCowardsHideLook dude - we have next to no rules here but that doesn’t mean you get to do our act however you want “because internet”. I think you have established you don’t have much to elaborate on in terms of your feedback about the game not running as well as you would like at 4k. So it follows you do not need to argue or pick fights about it. Unless that is the actual point. There is appeal in working within the limitations of older technology that not everyone understands. The “trash” as you put it, represents an opportunity for us to express something we might otherwise not be able to. So you are free to criticize it, but you don’t need to denigrate it or our members while doing so. Even if no one stops you, it’s not welcome here.
    4 points
  6. 4 points
  7. Bunch of 100% off on Steam, expiring July 17: https://store.steampowered.com/app/1025440/Fantasy_General_II/ https://store.steampowered.com/app/2921380/Caribbean_Crashers/ https://store.steampowered.com/app/544610/Battlestar_Galactica_Deadlock/ https://store.steampowered.com/app/1368870/Field_of_Glory_II_Medieval/ July 15: https://store.steampowered.com/app/1035510/Ultimate_Zombie_Defense/
    3 points
  8. Indeed like you said TDM engine is not outdated, at lest not like the original Doom 3 engine is. Yes is not using PBR and nanite and raytracing and all that new Unreal Engine 5 stuff that makes it a very fast engine ... not ... but the TDM engine has a ton of updates, above the original idtech4 engine from Doom 3, IMO has now more in common with idTech 5 than idTech4. And all done by a very tiny team of TDM players, with the necessary knowhow, on their free time, for absolute free. Man some people don't deserve to get nice things for free... And I'm not talking about you datiswous. To anyone wondering, here is some of the things TDM engine has above original idTech4 that I'm aware: - soft stencil shadows like Wolfenstein 2009 (original is hard stencil shadows only). - new shadow system using shadow maps. - volumetric lighting (aka god rays). - more advanced AI system (so more CPU heavy). - GLSL shaders support and OpenGL 3.x akin to D3D10/11 level, (original is OGL 2.0 akin to d3d9 level and uses ARB assembly shaders only). - modern multicore support (original is single core only). - unlocked framerate (original is locked at 60hz) - 64bits color support - Screen Space Ambient Occlusion - Parallax Occlusion Mapping And a ton of more changes, like LOD support, obj models support, improved gui system, improved scripting system, better window system with support for high dpi monitors and 16 by 9 and other screen ratios, etc, etc. None of these changes were easy to make and took years of hard work, again for free, for a free game that we wall consume without paying a dime. IMO the lest some people can do, is respect that! Enough said.
    3 points
  9. The Problem Readables are available in a wide range of TDM bitmap fonts. Unfortunately, the majority of these fonts lack non-ASCII glyphs for European languages, and it would be a prohibitively lengthy task to craft them. This is one of several translation hurdles. (Another is soliciting, organizing, and distributing the work of human translators; see “AI for Translations: An Exploration” for work on an alternative. This also promotes the use of meaningful alphanumeric #str_ IDs - possibly automatically generated – instead of traditional numeric.) A Proposed Solution Suppose that when a particular page of readable is shown, it is shown first is English, with the mapper-specified font (e.g., Camberic), and then, after a number of seconds, shown in the current user-selected language, with a different font (e.g., Stone), one that offers the needed diacritics? And with the translated font size scaled down to accommodate potentially more-lengthy translated strings? Both the English and translated text can be viewed in sequence. That opens the door to “quick and dirty” default translations, e.g., machine translation. In particular, the reader may sometimes be able to work-around any layout problems and sub-optimal translation by consulting the English text. (Nevertheless, default translations may sometimes miss subtle nuanced hints, so the ability to improve them with tweaked text is a necessity.) The Proposed Mechanics Recall that the game engine currently passes these values to a readable’s gui: gui::title gui::body With a multipage readables, the content of these parameters changes as pages are flipped. For clarity, it is proposed to replace them with: gui::titleEnglish gui::bodyEnglish gui::titleTranslated gui::bodyTranslated The latter 2 would be just like gui::title and gui::body, except that they would serve empty strings when the current language is English or there is no translation available in the current language (and so be used for gui code program logic, to suppress a transition). Observe that this behavior does not substitute an English string for a missing non-English string. Skip the remainder of this section if details are not of interest. Each stock readable .gui would need a one-time conversion to use them. Instead of the traditional 2 winDef overlays for text, there would be 4, corresponding to the 4 text-passing parameters just mentioned. This allows the translated text to fade in while the English text fades out, when an onTime event starts the transition (at 2 seconds in this example). Here is the fragment of .gui code that has been altered: Aspects of this Design – Transition from English The transition is timed, so no extra “Translate” button is shown, nor a hard-to-come-by hot key required. If you want to see the English again, you would briefly navigate away from the page to another, then return; or, if a single-page, close and re-open it. A simple implementation (as the code above and example below) uses a fixed, hard-coded time. Alternative Mechanism. At some cost to code clarity, it is probably possible to get by with just the 2 normal text-passing parameters (gui::title and gui::body) and their traditional 2 overlays, though additional variable(s) would be needed for tight time-synchronization between engine and gui; and overlapping fade-in/fade-out between English and translation would not be possible. Advanced Version. In the longer term, timing could be made more flexible, by passing it as parameter from the engine, e.g.: “gui::transitionTime” Where does this value come from? While it could somehow encoded into the .xd file by the mapper, I prefer a different approach. Have the engine calculate it from character or word count of the body, with user-specified globals for reading rate and min and max bounds, e.g.: sys_readablesWordsPerSecTransTime sys_readablesMinTransTime sys_readablesMaxTransTime A drawback of a timed transition is that additional reading time is needed to get to the translations, which may, with immobile readables, increase risk of discovery by guards. So having these additional user controls would let a user get to the translations faster, even skip the English entirely by setting bounds to zero. A Simulated Example – FM “readableTranslationFadeIn” In the absence of engine support for the 4 text-passing parameters, it is still possible to make an approximately-functional mockup using some hard coding. However, this prototype DOES NOT suppress the transition when the current language is English. That is, it shows (rather than prevents) an English-to-English transition with change of font & font-scale. TDM with the languages set to “Francais” (French). The first screen shot shows page 1 of a 3-page scroll, momentarily displayed in English with Camberic title and body. After a few seconds, it transitions to the second screen shot, in French in Stone font. With accents. While shown here as a scroll, this approach should be easily adaptable to books and sheets. About the Example’s Implementation The screen shots are from a prototype FM: readableTranslationFadeIn Notable files are: guis/readables/scrolls/scroll_calig_camberic.gui, a custom override of the standard Camberic scroll readable, with the translation transition mechanism from above, plus additional simulation fakery described below. strings/all.lang, a UTF-8 file containing 6 #str_ (2 per scroll page – title & body) in each language section. Only the [English] and [French] sections were implemented. The English example content was loosely derived from the St. Lucia FM. The English text (without #str_ structuring) was manually converted to UTF-8 French using Google Translate (website, not API). strings/english.lang & french.lang. These were generated from all.lang using my gen_lang_plus program to create the 8-bit “ANSI” versions as required, e.g., ISO-8859-15 encoding for French. xdata/readableTranslationFadeIn.xd, that contains the #str_IDs for the 3 scroll pages. Within scroll_calig_camberic, this simulation had this fakery: “gui::title” and “gui::body” were stand-ins for hypothetical parameters “gui::titleTranslated” and “gui::bodyTranslated”; The English text was hard-coded, and the appropriate content selected by actual parameter “gui::curPage”, to make up for missing hypothetical parameters “gui::titleEnglish” and “gui::bodyEnglish”. The READABLE_FADE_TIME is currently set to 2 seconds for testing. Probably 5-6 seconds would be better during game play. Aspects of the Design – Font Scaling As mentioned earlier, the translated font is scaled to make the text smaller than the original, to accommodate languages that need more room. A simple implementation (like in the example code) uses fixed values with “textscale”. So the textscale for the two Translated winDef overlays is smaller than for the 2 English winDef overlays. Specifically, in the example GUI code, the text scaling factors from the original Camberic readable were retained: textscale 0.4 // titleEnglish textscale 0.31 // bodyEnglish and supplemented by (with a different font, namely Stone): textscale 0.33 // titleTranslated textscale 0.24 // bodyTranslated The goal is to keep the rendered text smaller than the original English rendering for languages with more characters per sentence. These values, while hard-coded, will differ across readables (due to different starting fonts), and would need to be experimentally determined. But this treatment, with just a fixed scaling value that is independent of both text content and current language, is unlikely to be very satisfactory. Better ideas, needing additional engine modifications, will be considered in a follow-on post. Additional Considerations When Authoring the XD File. Recall that TDM is relatively inflexible when using #str_ within an .xd file. So this form will not work: "page1_body" : { "" "" "#str_fm_scroll_camberic_pg1_body_parish_inspection_excerpts" } Instead use "page1_body" : "#str_fm_scroll_camberic_pg1_body_parish_inspection_excerpts" With the 2 leading linebreaks moved into the #str content as leading \n\n. When Testing. If there is a mismatch between the TDM Language setting and the PC’s language setting (e.g., under Windows), then some characters may turn out wrong or indicated as missing (e.g., as boxes). The degree will vary by language, and is unlikely to be seen in the initial English render (because that’s almost all in ASCII, common to all the ISO encodings.) Even with such mismatches, the translation can be reviewed as to overall length and where linebreaks occur. Be aware that direct editing of *.lang files is not recommended, and could risk converting from a particular “ANSI” raw 8-bit encoding into “UTF-8”. Applying this Technique More Broadly. A few fonts have oddball glyphs for certain characters, e.g., a skull and crossbones in Treasure Map. This would require special handling during translation. For Briefings, Objectives, and Messages, similar approaches can be conceived. However, for each of these (and different from readables), only one particular font is routinely offered. And there are alternative designs to be considered. For instance, the English and Translated text could be shown simultaneously side-by-side in various ways, instead of sequentially. The Objectives have the additional complication that the font size is already user-adjustable.
    3 points
  10. I agree. I had made some edits across all themes for consistency, but this doesn't work for Light. Edit: Removed until there's a better option.
    2 points
  11. A lot of it can! But I had to be selective about what I allow to cast shadows. A) because not everyhing needs to cast shadows and b) it would impact performance..
    2 points
  12. And by the way, if you still hope to "max the game". Open game console, type "r_fboResolution 3" and hit enter. Congratulations! Now you need 9x more performance to maintain the same FPS. There is always some way to waste your GPU, be it 1050 or 4090. And TDM is not a big single-release commercial game which can test everything on many PC configurations and only provide "safe" options to the players.
    2 points
  13. As a general rule I'm in favor of modifying the originals as long as they look identical enough and it's only to upscale the resolution: I think new versions should only be created if the texture is too different. Nothing will really change otherwise, old FM's won't be upgraded and we'll keep adding more assets that ultimately replicate each other.
    2 points
  14. I post for the first time since January with a detailed response about an important(ish) topic and I get a laugh reaction. In all seriousness though, if one doesn't like DRM they have to be careful posting nowadays since a lot of people have a lot of time invested in games and platforms with DRM of various sorts, and any issues you raise with the game/platform these people will take as personal attacks against themselves, even though it was never intended. Not so bad here, but reddit and Steam forums? Good God. Bruh we both live in Australia, it's not that bad here with regards to the authorities most of the time. I mean it does depend where you live (I'm in SA) but comparing our cops to those in the US is like using a cheat code.
    2 points
  15. I think it comes down to peer pressure (people will notice if an FM is extremely demanding, and mention it during the beta testing phase), and peer assistance (mapping help from people who know what they are doing). Maybe there are things that can be done with the engine that can help support more gigantic "open world" style maps but I'm not sure what they are. It is reasonable for hardware recommendations to go up as the game evolves over decades and mappers push the limits. A bargain bin i3-10105 smashes the old A6-3400M I used to play TDM on, and multiple cores can actually be utilized. Le code it yourself geg I say excuse the rudeness as long as the criticism is anywhere near valid (debatable). Man's sober now at least. It's actually quadruple the pixels: 1920 x 1080 = 2,073,600 2560 x 1440 = 3,686,400 (~1.78x 1080p) 3840 x 2160 = 8,294,400
    2 points
  16. The absence of rope arrows forces you to consider alternatives, which I think was the point here. I also felt that there was supposed to be rope arrows but that I missed picking them up. It forced me to explore other means to forge ahead, which I found. Again, that was deliberate. Same with the "fastened" doors. It hinted to me that there was something on the other side, but I had to find a different way to get there. It all comes together when you finish the mission. Getting from the end of the mission to the beginning is far easier than getting to the end from the beginning. This is important for those who have to return to collect unfound loot. There IS one wall pipe that is climbable. I don't think there is any ivy however. Some of the jumps WERE a bit tedious. That's always a turn off. And it was indeed dark. Particularly when you're trying to spot a ledge to creep along. Maybe this is a Ver 2.13 issue with the lighting. I don't know. But I managed to complete the mission and totally enjoyed it. Still can't find all the loot though. When you have verticality like this, there's bound to be an isolated window to burgle or some bird nest teetering remotely.
    2 points
  17. This was only ever supposed to be used as a facade/distance model. But upscaling the textures and making a prefab would be simple enough. But used in the right scene, it dosent look to bad.
    1 point
  18. Seems to be so hard to trigger that I never ran into it, in over 15 years I play this mod now.
    1 point
  19. I raised a bug tracker for this also, a long while back- https://bugs.thedarkmod.com/view.php?id=5158
    1 point
  20. Those look fantastic! But, keep in mind, light coming from the Sun or the Moon will be functionally parallel by the time it gets to earth. Unfortunately, I think parallel lights might have been removed from TDM.
    1 point
  21. I'm proud to announce the release of The Lieutenant 4: A Reciprocal Gambit Huge thanks to beta testers: @Mat99 @Bikerdude @Cambridge Spy @Shadow @DavyJones Screenshots: https://flic.kr/s/aHBqjCit3B 800x600 versions for @nbohr1more: https://flic.kr/s/aHBqjCir1t Download link (version 2): https://drive.proton.me/urls/PV79JTNVAW#7zDvAvipKG0I TDM 2.13 required. Enjoy! Frost
    1 point
  22. Well the so called rioters were actually pretty peacefull until someone started sending in marines and what not , so freedom of speech only applies to some people ? Ouch. Im not familiar with the governor but he seems like an ok guy from what i could gather, but stereotyping people based on thirdhand experiences mostly ends badly so no comment . As for the idea with a non government affiliated judical system i actually believe it would be better than what is currently at hand. Hell even in little denmark it is allmost impossible to get the government higher ups prosecuted for offences because they can just make it legal meaning 99% of judges dont even want to try even if the case is waterproof. Other than that and a somewhat overprotective attitude towards certain things it is not to bad here either. Beating up teslas though is in the wtf! territory. You might not like the man behind the company but the car did nothing to you so in that regard id be on the lock em up boat. But voicing your opinion should be ok for anyone.
    1 point
  23. I'm in Victoria, and it's not that bad here yet, but I see the way coppers carry on in QLD or NSW and I worry.
    1 point
  24. That's all fine in Germany, I suppose, where you can generally trust the authorities. But where I live I don't really trust cops not to falsify, doctor, or creatively edit the footage, or conveniently "lose" all the exculpatory stuff. That'd go double if I lived in America. My enduring image of the California "riots", which were actually mostly peaceful marches that avoided where all the paramilitary goons were hanging out, was of cops shooting an unarmed reporter in the back.
    1 point
  25. ... or maybe the TDM developers take it on one day. Again, I get why it wouldn't be highest priority.
    1 point
  26. Oh, you are right. I tried and the audio from the podcast was outputted to the selected output but indeed the TDM audio output didn't change. Hmmm I did a test with OBS using Application Audio Capture and the Audio Monitor pluggin, and I could sent the game audio to an other output, but it kept playing on the speakers also. By muting the audio under the speaker icon in the taskbar I am left with only the audio going to the output I selected for the audio monitor in OBS. So that "works" but requires running OBS while running the game and it's not a sexy solution ... Maybe the simpelest solution is an audioswitch or an external audiocard then ..
    1 point
  27. eh... no. There is no excuse to be rude. If they apologised, sure. Nobody's perfect. No, I don't get the point. Nobody left TDM on your lawn. You put it there yourself. Nobody, ever, needs to put up with crap like this. I don't care if you are John f****** Carmack. Nothing is worth putting up with yet another toxic contributor to an arguably borderline toxic community.
    1 point
  28. Ha, you folks are gonna laugh but it was partly reshade causing the problem. This is the only opengl game I ever play, and even the lighter effects in reshade contribute to significantly reduced performance that wouldn't be a problem in DX or Vulkan. Disabled a lighting shader and gained an extra 10 fps at 4k. Settled on medium stencil shadows, 4x aa, and ao set to low (too noisy to bother with higher settings anyways). This is only in the starting cathedral, but overall it runs much better than I thought.
    1 point
  29. Not only that, if he turns on MSAA (multi sampling antialising) that can quadruple or more the amount of pixels the engine has to shade. And this engine uses full real time PER PIXEL lighting, meaning the more pixels you give the lighting system the slower it becomes. And comparing this engine to other titles, imo means nothing, because we don't know how they handle lighting, shadowing, culling, compared to this one. Thou he talked about Dishonored 2, and I know that game uses a different visibility culling system to TDM engine, if I'm recalling well is based on a third party tech called Umbra (also used by Unity3D) that does the job entirely on the GPU. TDM still uses the original portal system from idtech4 and it runs entirely on the CPU. D2 engine also does character skinning (rigging and animation) on the GPU, TDM still does it on the CPU, and many other things, both engines are not comparable. One was improved by highly skilled professionals, paid to do so, another was improved by people with different skill levels, again and will not tire to mention, for absolute free. Very different things.
    1 point
  30. Frankly, if it allows for companies to survive, and offer games at a reasonable price, then DRMs are a good thing, from which everyone benefits. Nobody "likes" DRM, not publishers nor buyers, but, nobody likes locking home doors or cars either. It's a necessity, because some people aren't decent enough to pay working people what they deserve and need to make a living. Or they just rob them blind.
    1 point
  31. I honestly don’t know any mappers who are using 4k or much in the way of MSAA as a target when considering performance. The 1660 is the card I actually built all of Iris on - and it was frankly a nightmare to keep it running at 1080p/1440p. I don’t think your expectations are as reasonable as you think. Vanilla Doom 3 is not that scaleable of a game relatively speaking. I agree that Void in D2 is a very impressive example of forward rendered dynamically lit game. It also rather obviously quite different at some pretty fundamental levels. But if your expectations are ultimately that we are going to live up to that level of resource development - the base of which is already 2 entire generations of idtech ahead as a starting point, I think we are going to continue to disappoint you. I have however seen since my time mapping, quite substantial performance improvements across versions. But we mappers are greedy and “optimization” is in the eye of the beholder- we are going to use that overhead to do more with the game. Sorry.
    1 point
  32. I agree with you from that perspective. But the companies don't see it that way, though. I stopped buying any game that contains DRM since around 2010, due to all the reasons why they're a problem to paying customers. Day one of Assassin's Creed II I was comfortably playing a pirated copy to see how I liked the game, while paying customers were all waiting for hours for Ubisoft to unclog their DRM servers. That was the moment I decided to never buy a DRM game again. Problem is, I've been pretty much alone in that. That's actually the real problem. Most people are ok with DRM.
    1 point
  33. One thing that contributed to the difficulties, and also being stuck a few times now, is also the darkness of the mission It's significantly darker than some other missions (not even turning up the gamma or brightness really helped), and there are also shadows in some places I wouldn't have expected, as there's light sources nearby.
    1 point
  34. DRMs like that pose the problem, not DRMs in general. They're responsible for most stuff which doesn't work anymore here. Although I must say that that is really the vast minority. Most stuff is still working, even after 20 years. Ultimately, it's not like on Mac OS, where every OS update can break stuff, or the change of processor architecture once a decade Apple is so "famous" for, which renders ANY old software non-operable. Bunch of crazies. And their fans still throw money at everything they do.
    1 point
  35. A Plan for Readables with AI Translations I’ve created a separate forum thread, "Proposal - Fade-In Translations for Readables", for a new style of readable more adaptable to translations. This would require engine changes, but can be faked in the short term. I plan to create custom .gui to do this for Air Pocket. And if the proposal wins favor and moves to timely implementation, to revise Air Pocket to use the new system. I'ill be pausing my posts here for a moment to build out that other thread, then come back to explore the actual AI translations for Air Pocket readables.
    1 point
  36. Testing Air Pocket with Just English Strings Why? So far, English is the only language with all #str_ done; the rest have only inventory items and shouldered names done. Preliminary testing of the just the English version is mainly because of all the manual renaming. If #str_ were generated automatically with better naming, this could be largely skipped. How? The [English] part of our emerging all.lang was copied out and became the heart of a replacement strings/english.lang. I didn’t have to bother with gen_lang processing. This works because English is restricted here to ASCII and that’s common to both all.lang [UTF-8} and english.lang [Windows-1252]. To speed testing, I added the Master Key at startup (in DR, entity key_master gets inv_map_start 1). The game was then played through in English. This is a short FM, with just a few readables and messages that don’t really change with difficulty level, so this is viable. The briefing has to be eyeballed once, and the objectives list a few times during play, to ensure all is well. Results? As expected, a few typos were introduced when editing #str in .map, .xd, .lang. files, so needed correcting. I have some thoughts about strategies for the upcoming testing in the other languages, as well as in larger FMs, but later for that.
    1 point
  37. Great mission Frost I understand the complaint that there were too many doors that were locked from the outside, but I have to say that only bothered me until I realized they were hints that you can find a different way to get get to the other side of the door. Having the distinct lock sound was very helpful as well. Once the mission is finished, with all doors unlocked, it's quite easy to go back and forth. Which is what I have to do because my loot total is very poor.
    1 point
  38. Saw the new mission of the Lieutenant series and decided to replay the whole thing, because for some reason forgot to played Lieutenant 2. Want to congratulate you with the release. I'll post my opinion in a week I think.
    1 point
  39. A quick demo video of using a fire arrow to blast jump up to new heights. It may be loud and harmful to the user, but it's still a fun option! Done on the mission "Tears of St. Lucia" on Expert... which thankfully doesn't seem to affect the self-damage.
    1 point
  40. Ampersat 100% off on Steam, ends July 6, 2025 at 1pm ET https://slickdeals.net/f/18416488-thru-7-6-ampersat-pc-steam-digital-download-free-via-steam https://store.steampowered.com/app/1356040/Ampersat/ Don't confuse with the option to add the Demo version instead of full version.
    1 point
  41. Yet More #str_ Added – Shouldered Names The I18N.pl script does not automatically localize characters’ “name”, “shouldered_name” and “shouldered_name_dead”. And that’s generally the right call. You don’t necessarily want to translate character names. For instance, I prefer my character “Emily” be left that way, i.e., not rendered as for instance “Émilie” in French. (And I’m unclear whether the “name” spawnarg should ever get the #str treatment. So really just looking at “shouldered_name” and “shouldered_name_dead”.) But I do have 3 characters that have not just name, but also title/rank, and it might be worthwhile to translate the title/rank, along the lines: "#str_fm_map_shouldered_name_capt_riggs" "Capt Riggs" "#str_fm_map_shouldered_name_first_mate_logah" "First Mate Logah" "#str_fm_map_shouldered_name_second_mate_chaf" "Second Mate Chaf" By story design, only Logah is actually shoulderable, but for completeness I’ll do all three. I’m using the same #str_ for both “shouldered_name” and “shouldered_name_dead”. BTW, an argument could be made that the character #str_ renames should include the class, e.g., ..._atdm_ai_townsfolk_wench_..., ..._atdm_env_ragdoll_guard_thug_, etc. However, a class name, while explaining the visual appearance, can be somewhat remote from the precise role that the AI plays in the FM. Prompt to ChatGPT With Air Pocket specifics in italics. You are an expert translator between English and other European languages, including Russian. You wish to translate a list of crew members on a small historic sailing ship, from English to these other languages. Each line of the list begins with a tab, then a word beginning with #str_ within double quotes, then another tab, then a phrase within double quotes. When you translate a line, in the output keep the tabs and the #str_ word unchanged, and only change the phrase to the other target language in UTF-8, keeping it in double quotes. Make the translated phrase reasonably short while preserving the formal meaning. Avoid modern slang. Old-fashioned wording is fine. At the end of each line, add another tab, the fixed text "//bt: ", and then a back-translation of the previously translated phrase into English again. When back-translating, ignore the original English phrase. The crew members names are Riggs, Logah, and Chaf, all males. Keep the name-portion unchanged, but translate the title-portion. Some centuries ago, they were on a small coastal sailing ship, trading in goods along the coast. In that time frame, take account of different countries having different merchant marine titles aka ranks. "Capt" here is an informal title for "Captain". These titles may be less formal than those of military officers aboard navy ships. Following the input list of crew members, append output lists in these target languages: 1. German 2. French 3. Polish 4. Italian 5. Spanish 6. Portuguese 7. Russian 8. Czech 9. Hungarian 10. Dutch 11. Slovak 12. Danish 13. Swedish 14. Romanian 15. Turkish 16. Catalan. List of crew members: "#str_fm_map_shouldered_name_capt_riggs" "Capt Riggs" "#str_fm_map_shouldered_name_first_mate_logah" "First Mate Logah" "#str_fm_map_shouldered_name_second_mate_chaf" "Second Mate Chaf" Results This time, ChatGPT did not place results in separate frames by language; because of fewer input strings? Also, between the title and name in every case was some odd “hollow box” character (possibly null character 0x00); I did a replace-all of those with <space>. What follows is the start of ChatGPT’s response (with my hollow-box correction). Here are the translations for each language. I’ve preserved tabs and identifiers exactly, translated the title portion into the historical/formal equivalent, and added brief back-translations (“//bt: …”) into English. 1. German "#str_fm_map_shouldered_name_capt_riggs" "Kpt Riggs" //bt: Capt Riggs "#str_fm_map_shouldered_name_first_mate_logah" "Erster Maat Logah" //bt: First Mate Logah "#str_fm_map_shouldered_name_second_mate_chaf" "Zweiter Maat Chaf" //bt: Second Mate Chaf 2. French "#str_fm_map_shouldered_name_capt_riggs" "Capt Riggs" //bt: Capt Riggs "#str_fm_map_shouldered_name_first_mate_logah" "Second Capitaine Logah" //bt: First Mate Logah "#str_fm_map_shouldered_name_second_mate_chaf" "Tiers Capitaine Chaf" //bt: Second Mate Chaf 3. Polish "#str_fm_map_shouldered_name_capt_riggs" "Kapn Riggs" //bt: Capt Riggs "#str_fm_map_shouldered_name_first_mate_logah" "Pierwszy oficer Logah" //bt: First Mate Logah "#str_fm_map_shouldered_name_second_mate_chaf" "Drugi oficer Chaf" //bt: Second Mate Chaf 4. Italian "#str_fm_map_shouldered_name_capt_riggs" "Capitano Riggs" //bt: Capt Riggs "#str_fm_map_shouldered_name_first_mate_logah" "Primo ufficiale Logah" //bt: First Mate Logah "#str_fm_map_shouldered_name_second_mate_chaf" "Secondo ufficiale Chaf" //bt: Second Mate Chaf ... etc. Other Observations As you can see above, ChatGPT neglected to provide a leading <tab> to each line, so I had to. I had forgotten to think about asking for “title case” in the prompt. Maybe just as well, since the 2 meanings of “title” (rank and capitalization) might have confused the AI. In the results, the person’s name was always left capitalized, and the first word. In a few languages, the second word was also capitalized; in most, it was not. I wasn’t sure if that’s how ranks are usually treated in various countries. I decided (unlike the inventory case) not to adjust the AI-provided casing. Finally, ChatGPT back-translated “Capt” always to “Capt”, never to “Captain”, even if the foreign language gave the full word, e.g., Capitaine. Probably evidence of its cheating here. I’m getting less confident in back-translation as a way to insure quality... at least when done by the same AI that does forward translation, and at the same time. Or maybe it’s just a ChatGPT shortcoming, and other AIs would do better.
    1 point
  42. Inventory Item Results The AI results, generated in a flash, were successful overall. The desired output format was achieved, and the back translations detected very few problems. An example result (before alphabetic ordering), from [Italian]: "#str_fm_map_inv_key_sea_trunk" "Baule da mare" Sea chest "#str_fm_map_inv_key_galley" "Cucina di bordo" Ship’s galley "#str_fm_map_inv_key_mess" "Refettorio" Mess "#str_fm_map_inv_key_master_key" "Chìave maestra" Master key ... Caveats: A judgement of “overall success” is without ground-truthing by human translators. The back-translation uses the same AI as the forward-translation... loosely analogous to “grading its own paper”. Though told not to look at the original English when back-translating, is it cheating and lying? Revisions and Refinements Title Casing for Inventory Items. I should have explicitly prompted to generate this in the results. I manually corrected these (leaving separators like di, de, do, del in lower case), but a few cases required ChatGPT consultation to get the proper upper-case Unicode letter. Mess. Two translation needed revision, because they seemed to suggest an eating area of a much larger or luxurious ship: [German] "#str_fm_map_inv_key_mess" "Offiziersmesse" Officers’ mess [French] "#str_fm_map_inv_key_mess" "Salle à manger" Dining room Rather than rerun the whole translation, I just asked ChatGPT about these cases: On a small ship, what is the mess or eating area called in French? On a small ship, the eating area is typically called la cambuse or le carré, depending on the context: Le carré – This is the standard French nautical term for the crew's or officers’ mess (eating/living area) on a ship. It’s equivalent to the English term mess. Carré des officiers – officers' mess Carré de l’équipage – crew mess La cambuse – Often refers to the ship’s food storage or sometimes the galley (kitchen), but in some informal or small-vessel contexts, it can be used more broadly, though this is less precise for "mess." So for a small ship’s mess or dining area, the best and most nautical French term is le carré. Consequently, I just replaced "Salle à manger" with “Carré”. Likewise, in German, simply “Messe”. Master Key. This was back-translated as “Main key” in 6 of the languages, which I guess is OK. In Air Pocket, a Master Key (entity name key_master) was left in the blue room, if needed for a debugging build; inaccessible otherwise. Arguably, it should not be translated at all. So I’ll comment those non-English lines out. (“Master key” is not part of TDM’s base strings?) Captain’s – Odd Punctuation and Perhaps Compound Unicode. The German translation of “Captain’s Cabin” had odd punctuation: "Kapitan­s¬kajüte" (and some evidence of a Unicode “combining character”). I did a separate follow up to ChatGPT, and revised to drop the punctuation and add an umlaut over the 'a': Kapitänskajüte. Another German use of “Captain’s” was similarly revised. German reportedly never uses apostrophe for possessive form. Captain’s – Title versus Name. There was one case in [Danish] where the word “Captain’s” was not translated, as if it was a person’s name. (Also, reportedly, Danish does not generally use apostrophes for possessives; there are exceptions, but doesn’t seem to apply here.) State of All.Lang So Far Starting from a temporary file into which I pasted the raw AI results (with [<language>] headers added), I fabricated all.lang by: Making sure it had Unix line ending, not CRLF. (In Notepad++, Edit/EOL Conversion/Unix). Begin it with a first-draft preamble comment, heavily adapted from TDM’s all.lang preamble. Following that, a line with just an opening bracket. And a closing bracket line at end of file. Making the handful of translation corrections mentioned above. Change the casing to Title Case. (I didn’t bother changing the back-translation’s case.) Tagging the back-translations with “//bt:”, so they are denoted and if need be can be quickly stripped out with an editor. (If subsequent revision is manually applied, the delimiter will also be altered; preamble will provide guidance.) Lessons Learned So Far Improvements to Prompting... Specify that the FM’s ship is small. Specify that “Captain” is a title, not a person’s name. (Hmm, there’s some shouldered names, not touched by I18N.pl, that maybe should be partially-translated too, with titles like “First Mate Logan”.) For inventory items (and likely readables titles), ask the AI to make the output in Title Case. Tell the AI not to generate Unicode combining characters. Ask the AI to add a special delimiter “ //bt: “ before the back-translation. To the extent possible, convert any directional punctuation (apostrophes, single quotes, double quotes) to non-directional, to comply with TDM font limitations. Since it seems to give better results if you ask about one specific item (like “mess” in French), maybe it’s optimizing for speed instead of accuracy. Ask it to take more time? ChatGPT translation seems to have problems with possessive forms... or at least those problems are more-easily spotted during review. Speculation: maybe one cause of this is that I didn’t specify which country or regional dialect of a language to use. Perhaps a prompt to “prefer the form of language spoken in a language’s originating country, within or adjoining Europe.” Concerns about Translation Length... The results are generally short, but in-game will some of them prove to be too long? Traditionally, inventory names are limited to 2 lines, with “\n” needing to be inserted. This will need to be tested eventually.
    1 point
  43. Have a look at Lords & Legacy by Kvorning and you will see room you can look into litte room dotted around the mission. Not he actually built the room I think, What Im proposing its to use EnvShot to create a cubemap textures that mappers can then use to create virual rooms that have no perf hit. A good example of an EnvShot is the the little book case world I created for The Painters Wife, where you can see how into the library etc.
    1 point
  44. Yes, if you add: Required TDM Version: 2.13 To darkmod.txt is should warn players: https://wiki.thedarkmod.com/index.php?title=Packaging_Your_Mission Most authors don’t do it since many missions are still playable with broken assets and they don’t want to exclude folks who can’t upgrade (etc). Let me know and I’ll update the darkmod.txt in the mission database.
    1 point
  45. I've also been playing lots of TG/T2 missions recently and I definitely feel this sentiment, but I do also remember how TDM played before the blackjacking revamp. Now that was garbage. Post revamp, with the animation tell, I've actually felt comfortable enough with the way TDM does things now? Like its still definitely more difficult and finicky than TG/T2 and that frustrates me in the moments where I fail to blackjack and thought I was gonna succeed, but I at least respect it as a design decision. TG/T2 really do make it too easy to give an entire city block migraines by bopping people in the feet. What needs to change is how quickly AI goes from unaware to perfectly invincible - a "surprise" state, where they play some comical "BWA-HUH?!?!" shrug animation and can still be blackjacked while you're running up to them or if you suddenly jump out of the shadows, would probably go a long way to making the blackjacking mechanics and hitboxes feel the way they're intended to feel.
    1 point
  46. @chakkmanBefore joining this forum I completed all available fan missions for TDM, but before playing them I had significant experience with other stealth games and fan missions for Thief series and I will tell you that I hated TDM's gameplay for its jankiness, but at the same time, paradoxically, I learned my ways around all those broken mechanics. And yet I still don't think that this jank should be a norm for TDM and your point of view only proves it, because you're not alone who may see things like this when they had better experience in other stealth games. And so this huge pile of gameplay imperfections just does TREMENDOUS disservice to the popularity of TDM, some people may try it and just say to themselves: "Screw this crap, I prefer player friendly games!" and they will be absolutely right. But why I learned to be tolerant to such things? Well, because I saw a lot of passion in all those fan missions I played and still exactly because of this I think that TDM has no right to be so broken. I think that it is mostly thanks to the modding community TDM is not dead, without all the great fan missions barely anybody would ever touch it and they just deserve better platform for their work. The problem here is that TDM wasn't created by a professional game designer, it's harsh but true. As I understand it, the dev team just had their opinion about certain things and instead of doing them in the best way possible they simply ignored all the better examples in the stealth genre.
    1 point
  47. I don't know if this bug has been found before and has made into the bug tracker, but there is a strange behaviour with key object in TDM. apparently you can make yourself float in the air with this key bug i have posted another video on the current beta testing thread, I videoed this bug in a mission called ‘training mission’ to avoid spoilers
    1 point
  48. Picked up an old mountain FM, I decided to scrap the original idea and repurpose the town I made for my multiple city hub idea which required expanding it. This is a new area I added, the large structure in the last two shots is meant to be a castle that may not look as I originally envisioned but I'm happy with the result none the less.
    1 point
×
×
  • Create New...