Jump to content
The Dark Mod Forums

demagogue

Development Role
  • Posts

    5911
  • Joined

  • Last visited

  • Days Won

    95

Posts posted by demagogue

  1. 7 hours ago, peter_spy said:

    That actually makes me wonder. Since TDM installer gives you access to previous versions, why ensure backwards compatibility of every FM in existence, when people can copy their latest TDM pk4s, and perform a downgrade to e.g. a version required upon release? Sure, that requires some hassle, user-side, but keeping track of every FM a big strain on developers. Maybe that would take some of that pressure off.

    I meant it's not the team's responsibility to ensure backwards compatibility, at least if it's some special case (they use a deprecated system in a weird way that breaks, which is how it usually if very rarely happens). It's just managing mapper expectations that there's a small chance their FM may become broken in the indefinite future if they do that. But I basically agree with stgatilov that this, and the other things he mentioned, aren't really the job of the TOS but some "Read this before you submit an FM" note.

    Edit: Oh one thing about disgruntled mappers though, in my own org we'd have some term that if there is a dispute between the mapper and the organization, they agree to good faith private negotiations and failing that arbitration instead of going to court. But we've never had any dispute to that level.
     

    By the way, I don't do IP law professionally (although I took the class). I work in a different area. So I don't necessarily know anything anybody couldn't learn with a few hours online research. But it makes sense to have a statement that our terms disallow illegal or infringing material so there can't be any claim that the forum / team condones or invites it, mostly as a formality.

    If I were tasked with making a TOS, the first thing I'd do is find a number of other TOS's out there for similar projects and use them as a template or starting point. The bigger the org, the more likely it was vetted by their lawyers. If there are terms they almost all share, that's a sign they're the important ones. There's also the part about creating or modifying a TOS mid-stream, after 100s of FMs were released under whatever terms they were at the time (I haven't looked at it recently).

  2. Yeah the reason you'd mention no illegal or infringing material is for us to be able to say we're acting in good faith, if somebody finds their IP in an FM, they can't or it's not as straightforward to want to sue us for it. In practice I think it's more of a formality.

    As for FMs that don't finish or have buggy elements, there are demo-like or novelty FMs that might have both of those. Somebody mentioned the Tutorial itself. I wouldn't want to discourage somebody being creative, and I'd probably word it differently. Something like FMs should be "complete" before being submitted, but leaving it technically open what "complete" means. I guess it might give some examples "... including but not necessarily in special cases ..." that it starts and ends, is not egregiously buggy, does not consistently crash, etc. But I think even here it should be an encouragement instead of a hard rule, like we encourage mappers to get their FMs beta-tested, confirm that it starts and finishes, doesn't consistently crash, before submitting, and we may ask that you work on an FM more before uploading it if it is manifestly broken "without justification" (to leave open the possibility of "broken" FMs with a justification, like a novelty FM).

    Some of you might remember that TTLG ran a "buggy FM" contest once where broken FMs was actually the theme, and it was an amazing contest. Some of those FMs were broken in very creating, fun, and interesting ways, and it might be good to have FMs like that sometimes. The intentionality part was important though; you could have something broken if that's part of the artistic intention, so language that could leave something like that open may be good, or again encouraging people to always betatest and avoid unintentional crashing or broken FMs, etc.

    Because of past experience, we might also have language to give expectations regarding possible changes after they submit. Like an alert that while we make every effort to make sure future changes to the game are backwards compatible, it's possible a change breaks an FM. Also other people may want to take assets or things from the FM for their own FM, so we should say that technically, when you submit, you agree to the license we have for our assets (I forget exactly, CC-nc something something). So under that license people can use those assets. If you don't want that, you might make a personal appeal in the readme... The other worry is when people just take big chunks of the map itself, or make their own levels in the same maps... I wonder if we could have people make explicit what they consent to having done to their maps post release, if they allow the translation file, other people to use their map work, etc. But make it clear that the map is under the CC license, which allows people to use anything from it, and they can make a personal appeal that isn't binding, but people may be moved by it. And then we might have our own internal standards what seems egregious enough not to allow, like if someone completely takes another person's map and basically tries to recycle it under their own name, or when it's a team made map and the team disagrees what happens to it. Anyway, whatever we think, it's good to have language about it here to help manage expectations about what might happen, so it's good to think about what we should say to minimize conflict later on.

    • Like 3
  3. He's right though. The first step in any feature request is to make an entry in the bugtracker, so it's in a list, and it gets discussed and developed from there. It just gets buried and forgotten about if it's only in a thread. I was going to do it myself, but it apparently takes some time to dig through the entries even with the filter.

  4. If I were designing it from the ground up, I'd have a top row of small boxes designated for weapons ordered numerically, actually now that I think about it, with the ability to rearrange objects into those boxes so the designated object pops up when you push 1-9 on the keyboard, Minecraft style.

    • Like 1
  5. 4 hours ago, datiswous said:

    I wonder if you could read out the current info_location location the player is in and use that instead of saveroom size.

    The info_location location can cover multiple portal rooms though, and often times can be quite large, such as an entire mansion or neighborhood if the mapper wanted the same ambient playing for it. It'd probably be better to get the portal room, the internal number dmapping gives to that room, if you were going that route, although that's more complicated to work with.

    But actually I'd recommend just a simple radius value from the object, then it's the same amount of space in every case.

    • Like 1
  6. First of all thanks for the contribution!

    For the record I'm a fan of these kinds of fan patches that change some fundamental parts of a game, because I think people have moods that play to different sides of games sometimes. But I don't think changing or adding to the core game is the way to cater to most of them. (Games usually have a natural tendency towards some norms to the exclusion of others, and a good designer respects what their game is telling them it should be.) But having a fan patch with these other styles is the way to do it anyway because we can, and freedom is power.

    Save restrictions is a good example of this. We do put the number of re-loads in the debrief stat screen. I still agree that that's the best way to deal with these kinds of meta-game things in this kind of genre, so if a person does ghost or ironman a map, the stat screen will verify their claim with a 0 Stealth Score and 0 Reload stats.

    Having a save room actually changes how the player approaches the gameplay, so it's not just a meta-game thing. It puts it more in the territory of a rogue-like, not quite no-save permadeath, but it raises the stakes. I think that'd be a nice vibe sometimes. I still agree I don't think it's great for the core game because it puts meta things into the game world, which isn't our core vibe. But again a fan patch for it when you're in the mood is a good way to play in that way anyway.

    I don't know if I'm going to try it any time soon. I might. But in any event I'd be really interested in seeing someone make a let's play video to see it in action.

     

  7. For T2 FMs, this list from a post is pretty good, starting with the ones in bold, but it leaves out a lot of the top rated ones on CheapThiefMissions, which covers classic FMs. At least the top 10 on that site are also must plays. (I think the link already takes you to the ordered list, but click the "Rating" button to make sure it's ordered by rating if it's not already.) And for recent FMs, there's the Thief Guild's top rated list.

  8. I script a lot of FMs that I don't have time to make, including an entire massive campaign! The one I mentioned above is one on that list.

    It's not Patently Dangerous, which was an FM I actually released.

  9. In principle I like the idea of community campaign building.

    But the official campaign itself never really captured my imagination, not to mention it'd be hard for people to have an idea of where it's going, much less making it cohere.

    I scripted a Dark Mod campaign meant to introduce the districts, factions, and lore that does capture my imagination. But I'm not in any real position to ask people to build for it, and also there's still the problem that people may have different visions for it that may not cohere well.

    As for the "connecting mission", that might be interesting... But I'd reframe it a little, not that it has to be connecting per se, but you know, a hero or even another character from some FM in an adjacent setting alongside (or before or after) an existing FM, kind of like what Rozencranz and Guildenstern did for Hamlet, if you know about that. I think it's better to have it more open ended how an author wants to build off an existing FM than only connecting two FMs per se.

    That might be a really interesting theme to see play out.

     

    • Like 2
  10. Quote

     

    Suggestion - Improving the Map

    If a fan mission has a map, it would be nice if the map wasn't a generalized after-thought, but a more detailed and real-time map showing where you are when you open it.

     

     

    One way to do that would be to link the map with the location system. A mapper can already make a system to do that with the location scripts. Basically when the player enters a location (or a set of locations), it can trigger a script that switches out the map for one with that location highlighted. That's how Thief used to do it, and I think it's still fitting with the setting.

    Having a literal dot moving around the map would be much harder. I'm not sure we could do that without source code support. But It also wouldn't be as fitting to the genre. I'd be happy to see some mappers having a highlighting-map though, just for some interesting variety.

    • Like 1
  11. The Thief2 FM "Mission X" was structured like that.

    But from the perspective of someone making or using a multiplayer system, it should be as general as possible so mappers can make whatever set-up they want for their FM, like that, or leave it open to the players to play it however they want.

    I think one way for the system to work most basically is have a coop mode (shared objectives, loot, scripts, etc.) and a "thieves vs. guards" mode (separate objectives, tracking loot count & capture count; it should probably be set up like the old Thievery mod) and those are pre-made so a mapper can just turn one on and tweak some things. Those are the two most popular MP cases for this game. But then if they want to, mappers could micromanage the parameters if they want to make their own mode, and the system should facilitate that. That was my thinking.

    But I think coop is the big one for us, since all of the FMs will already be set up for that, and that's the way I imagine it'd be most used. So that should come first.

    • Like 2
  12. Since it's a one-off problem, only for the first ambient at game start, then the way you fixed it is really the right way, because the system-level alternative would be whole a little subsystem (a specialized fidelay and mandatory _z soundshader) just to handle the first 0.1 seconds of game start, and then the old system for all the maps already out there, which is a bit much. And I think it's not even that common because many ambients start quietly to begin with.

    That said, there might be an easy bit of code that could make sure the fade in always works for the first ambient that doesn't mess with anything else in the system, like a hardcoded initial 0.1 sec. delay only for it, and that may be worth doing. But it'd need experimenting and testing to make sure it works as intended and doesn't have unintended consequences.

    Anyway, it's good we have this documented for now as the way to fix the problem for other people in the future that run into it searching for a fix. In fact it'd be good to put in the wiki to make sure the fix doesn't get lost.

  13. 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.

    • Thanks 1
  14. No I can't see the videos. Put them up on Youtube as non-listed videos. Also, what's your system? Is it a relatively slow or older system? The first time one enters a location, there's some work being done that might be pre-churned from then on, so I think it might have something to do with the work load slowing all kinds of things down, including the ambient going online.

    If you know your way around DR (or editing the map file directly), you could test things like setting the native volume of the location entity to zero from the start, and see if it happens when other speakers turn on for other reasons the first time, like a trigger. It may be an issue that all speakers face that this system inherits.

  15. On 1/22/2024 at 12:09 PM, Skaruts said:

    One definitive advantage of the zone approach is that it's easier to setup for irregular places. Speakers work based on a radius, but there might be areas within that radius that should have different ambient sounds.

    Keep in mind we're usually talking about something like a massive forest or mansion or cathedral, etc., where it's absurd to think you're going to cover it very well with a simple circle the radius of the whole area, or even 30 circles for all the different rooms or areas, whereas with the location system, the locations are created out of walls and doorways, so 99% of the time they're exactly overlapping where you want your ambients transitioning on and off.

  16. We had extensive discussion of why our license is the way it is, especially when we were going standalone. There are reasons it's CC-NC-etc., and one of the big ones is that anything that tries to link the mod with money and formalization has been trouble for us, like team-breaking trouble. Well the asset license was settled long before that just in dealing with the contributors (and the engine came with GPL3 from the start of course). There would be asset creators that would (rightfully) riot if money were able to flow to some creators and not to them, because they didn't spend 1000s of hours on this mod for some knucklehead to spend 2 hours for some crap whatever and get paid for it. But the debates happening during the run up to 2.0 validated it.

    But even before that, we've talked a lot about the basic principles for how the team works, and avoiding entanglements with money and formalization are like two of the central pillars that most of us (I understand) wouldn't like to open back up to debate.

    What I see from this whole line of discussion is that you want to make a branch project with the engine. That's fair by itself. The engine license let's you do that. But it's something that should be a true branch, like you ought to make your own forum for it and develop it there. Then I think it's fair for you to let us know it's happening and even ask if anyone is interested in joining you there, and some people may want to do that. But I think it's best if you branch off and develop it separate from this forum and team if you're going to drop one of our central organizational pillars in what's gotten us this far.

    • Like 2
  17. In the early versions there was an initial pop of sound right at the moment of transition, then an immediate drop to zero sound, and then the fade in, or that's what I thought was happening. I never really understood the source of the problem to begin with, I guessed what I said above, and the shader business was a speculation about how to fix it if that really was the problem. 

    I don't recall hearing that kind of pop since like 2010 though. So I figured it fixed itself at some point. It may have been that my laptop at the time was very, very slow, or something like that too.

  18. You can walk through every entity and spawnarg in the set up piece by piece and see if there's a logical problem buried in there.

    I don't recall how the fade-in works for the initial ambient anymore. It's been too long. But you can experiment to see if it's really borked.

    But what I came to say is that note there's a Sound Override setting where you can just set up an ambient transition yourself by some trigger if the location transitions aren't working properly for some reason.

    One thing you might try, if the initial ambient always borks the fade in no matter what you do, is to set a dummy initial sound by immediately triggering the Sound Override as soon as the map starts, like just a quarter second of silence, and then turn the Sound Override off a half second later to have the system immediately transition back into the initial location ambient, and then the fade in should work properly. It's a bit of a hack, but it could fix your problem. You might be able to think of other ways to deal with it along those kinds of lines.

×
×
  • Create New...