Jump to content
The Dark Mod Forums

stgatilov

Active Developer
  • Posts

    6775
  • Joined

  • Last visited

  • Days Won

    233

Everything posted by stgatilov

  1. Technically, it does not matter. It might be convenient to have .srt files at same location and with same name as the sound files that they correspond to. I think that was the reason to suggest placing .srt into sounds. Or maybe I did not think to much about it Are you encouraged or required to prefix your sound samples with "fm_"? I know many mappers do use some kind of prefix, and that's good. Others don't and that can cause accidental name collisions. Nothing new here. There is a link to .srt description. Also, .srt is kinda standard format.
  2. Perhaps you can add a space to .subs file and do reloadDecls?
  3. Yes. Defaults change often, sometimes in such a major way that old defaults no longer work properly. If you switch between major versions without resetting config, you might get in a situation where your version has several weird behaviors. We got too tired of debugging other people's configs during beta, so I added opt-out reset to the new installer. Note that developers today often prefer making internal cvars archived despite player never touching them, like some mantling height or whatever.
  4. As far as I remember, it is not possible. If sound ends, it is no longer in the sound system, so it does not generate subtitle anymore. I think some command can pull the subtitle changes from disk. It's either reloadDecls or reloadSounds.
  5. There is a small sneaky button after tdm_installer ends, which says "restore config". If you are confident that you won't get into some config mess, you can click it. Also, all the config files that tdm_installer removes are stored in TDM directory, named like Darkmod_220709_094207.cfg. So if you want it restored, just rename it back. You can also run some diff tool (like WinMerge) and only merge the settings that are important to you.
  6. I wonder what is wrong with using map_of_icon instead of map_of. I suppose map_of_icon is low-res image, while map_of is high-res one?
  7. Actually, I see the following list: cauldron_v2_2/cauldron_v2_2.pk4 -> def/tdm_weapon_blackjack.def nobleaffairs/nobleaffairs.pk4 -> def/tdm_weapon_blackjack.def northdale2/northdale2.pk4 -> def/tdm_weapon_blackjack.def volta1_3/volta1_3.pk4 -> def/tdm_weapon_blackjack.def snowed_inn/snowed_inn.pk4 -> def/tdm_weapon_blackjack.def northdale1/northdale1.pk4 -> def/tdm_weapon_blackjack.def hazard/hazard.pk4 -> def/tdm_weapon_blackjack.def iris/iris.pk4 -> def/tdm_weapon_blackjack.def And yeah, we can't do anything to it. The missions work properly, so I suppose we should just leave it as is. I wonder if we should have override-with-inheritance for def files, as well as a proper way to delete a spawnarg after inheritance?
  8. For a start, did you try config reset?
  9. Just read this whole thread, and here is what I learnt: Player can carry body up ropes, vines, and ladders. All of them are quite situational, but still it shows that it was never planned to restrict possibility of lifting a body up. Of course, we are not going to change this behavior. Mantling with a body: I think everyone is OK with allowing about waist-level mantle with a body. If you can put body down on a table and mantle on it, then it's surely safe to allow mantling with a body, although I wouldn't keep this 100% strict and minor bump in this height should be OK. Throwing body from rope: I'd say I'm OK with that. I personally hate that the game does not allow me to throw a body where I want. Fall damage: I think it is very hard to balance this, since it depends much on physics, and that is today also frame-dependent. In case of unconscious body it depends on ragdoll physics, which is very hard to control. How high player can fall without damange/dying should be more or less fixed, but as for body... I'm eager only to fix major issues, like "falling from any height does not induce damage".
  10. That's probably because TDM was/is built natively for Elbrus, while the commerical games are translated from x86 code on-the-fly. We did some work for that to happen together with @r.a.sattarov a few years ago.
  11. I looked at it, and it is enabled. And it seems that this is default... However, I don't think it actually can handle larger than 2 GB addresses
  12. Did anyone try 32-bit executables BTW?... Especially the Linux one.
  13. beta211-08 is available. This is also considered "release candidate", so 32-bit executables are available. You can download them using this link: simply unpack these two files into TDM directory and run one of them to play. As long as you don't run huge missions, please test 32-bit executables a bit, especially on Linux.
  14. I don't think naming is a good idea, but this idea of location hints are good. I think they can reduce the confusion from several people speaking simultaneously. Perhaps keep brainstorming in this direction The problem with different positioning of text is that if you move, the text would suddenly jump to a different place, and it does not help reading. On the other hand, having smoothly changing position of subtitle in realtime might be hard due to GUI system interaction... although we can probably write just positions into gui::XXX variables and make "rect" of windows depend on it. Another possibility is to show some marker on top of person who is speaking. But I think this is OK only as last resort accessibility feature.
  15. @AluminumHaste, why are there two files runners\ornate_red_black03_HD.dds and runners\ornate_red_black03_HD_d.dds? Can I remove ornate_red_black03_HD.dds?
  16. For a particular reason yes, it probably can be added, but "for some reason"?... What exactly is the typical problem? Syntax errors of .srt of .subs files not reported? The engine has debug command com_showSoundDecoders, which displays all currently playing sounds on screen. It should be easy to add a small tag here showing which sounds have subtitles and which not.
  17. Languages... maybe it's time to finally get into this mess. I'm afraid there that would be a long story, and subtitles won't even be the first issue. Regarding ID of the speaker. Let's suppose we pass the entity of the speaker into the subtitles code. How exactly should it be used? It would make no sense to automatically add names like "tdm_guard_generic07: I've got him cornered!"
  18. I thought about naming sounds by who said them but did not got any particular scheme. One problem here is that subtitles are supported inside the sound engine, where sounds no longer have any source: you just have a sound and probably location, but not something like who said it. I made sure that a subtitle for a sound does not move between slots. Other than that, there are 3 slots for simultaneous subtitles, and I guess some prioritization. But if there are many guards talking at once, it would be chaos. As for colors: it should be possible to generate color automatically but it won't help anything. It should be possible to specify colors inside subtitle files, similar to the way verbosity is now specified. To be honest, I'm not sure it's a good idea to give names, since player usually does not know who speaks. But that's of course mapper's preference: sometimes player surely knows who is talking in a cutscene, so why not.
  19. @Daft Mugi, I am sorry to cause the confusion. I thought I made it clear when you came with the first pack of 5 patches, that such generic changes currently get into release only as an exception, but apparently it was not clear. You are right: I should have been more strict and rejected all the generic changes since at least the New Year. Making exceptions on subjective basis makes things look unfair and can offend people. The current idea is to make the next beta release a "release candidate", and if nothing bad happens, then make it the final release. We are already beta-testing it for 2 months. Looking at the previous beta 2.10, it started 10 days later than this year. Also, it lasted so long exactly because something bad happened in February: some people reported driver-dependent graphical issues. Considering 12 months between subsequent releases, we spend 1/6 of astronomic time in beta phase. And it is tough for developers, because they have to stop normal development during this time. For instance, I'd really want to go on and nuke the old/new backend division due to how much pain it has caused thus far, but I have to wait until 2.11 is out. Or I want to implement a better AI visibility check but it also has to wait. Now imagine that some people want to reduce time interval between releases, for instance to half a year (I recall we have summer release a few years ago). It means 1/3 of our time we'll have to restrain from changes! You should understand that in case of TDM, official releases are rare because how hard it is to test the game. If you want people to see your changes fast, now there are development builds for that. If you want to make something into official release, be ready that your changes will wait for months before that. Here is what happens to your changes now: Everything that is in the latest beta stays there. 6241, 6231 --- will get into 2.11. 6242 --- will not get into release. 5892 --- cvar will get into release, but the following conditions will not. P.S. I must say that I personally would be greatly disappointed if you leave TDM because of this.
  20. Like... who was that person who pushed the latest major mantling changes during beta?... UPDATE: Maybe things got mixed in my mind
  21. To be honest, that can be said about 99% of changes to the game Yes, that's exactly what is happening I'm trying to filter all these changes depending on how scary they look to me. Out of what Daft Mugi has listed that is not in beta211-07 yet, I think only the fix for damage from fall + mantle is going to make it. The rest of the changes... I'd better not hurry. The general rule is that we do development before beta starts, not after. And especially not in the second half of beta.
  22. Well, if I look into the code at https://github.com/stgatilov/darkmod_src/blob/trunk/renderer/Model.cpp#L1101 I see that vertices which are almost equal by positions, texcoords and normals, are merged together. And the constants which control that are r_slopVertex = 0.01, r_slopTexCoord = 0.001, r_slopNormal = 0.02. On the other hand, it is probably OK. It does not break convex or concave edges. And only on mixed-convexity edges of edges with tangential points smoothing can be enforced near tangential points. But only in cases where it is almost zero anyway.
  23. I think it will be "used" in very little sense, but it will be skipped and you won't see it. As far as I see, mainmenu_briefing_video.gui already includes subtitles code: //stgatilov #2454: display subtitles #define SUBTITLES_NAMEPREFIX BriefingVideo #include "guis/tdm_subtitles_common.gui" So just adding subtitles for your audio file would be enough. I guess sound from video file is also supported, just need to find the syntax on wiki.
  24. Bumped into an interesting piece of wisdom called Hyrum's Law:
    With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody.

    1. Show previous comments  2 more
    2. stgatilov

      stgatilov

      Love and hate are close friends 😉
      Also: there are libraries that everyone complains about and libraries that nobody uses 😁

    3. STiFU

      STiFU

      I'd be curious to hear some actual examples where the MSVC implementation of STL diverges from what the standard dictates and developers actually rely on that divergence. I honstely can't imaging there are any instances. The only thing I could think of is that some programmers might rely on implementation where the standard indicates "undefined behaviour", but that would be a major error on the programmers part.

    4. stgatilov

      stgatilov

      One example from recent practice: I had to advise my colleague to not use std::hash<int>, because while it makes some useful things on MSVC, it is a plain identity function for integers on GCC. That's because standard does not control the quality of hash functions at all, so GCC decides to put the hash finalizer into the hash table. I think he just used boost hash function in the end: it has same implementation on all platforms.

      Another case is C++11 random. We all know that C rand sucks for many reasons, and different algorithm on different platforms is one of the reasons. For testing purposes, it is often desirable to have exactly the same PRNG on all platforms. For that reason C++11 generators are fully defined by the standard: std::mt19937 works exactly the same way on Windows and Linux. But the distributions are not fixed. So if you use std::mt19937 + std::uniform_int_distribution, then you'll get different results on MSVC and GCC. Reinvent that wheel yourself 😉

      Another example might be std::deque. Ideologically, people expect it to be a linked list of chunks. But it seems (I did not test this myself, I prefer reinventing such wheels) that MSVC implementation has very small size of chunks, so it boils down to be a worse version of std::list.

      In all of the cases, all implementations fully comply with the standard requirements. But as a programmer, you might expect or implicitly rely on some properties in terms of performance/reproducibility and thus depends on implementation details, which are not cross-platform.

×
×
  • Create New...