Nanako Posted July 9, 2016 Posted July 9, 2016 So, first of all, some background information. There is a bug, or perhaps a design oversight really, in the sound playing function that we're using. Explanation for nerds: The problem is, although the engine already has its own falloff features for sounds coded in, someone decided to add their own additional falloff to it, and i'm not sure if I can remove it nondestructively given how mature the system and all its content is now. The way it works is, volume is passed in and set on a sound, where it is capped in a range of 0..100, this represents a percentage, 100% being full volume. The issue though is that linear falloff has been added onto this - sound volume is reduced by 2, that is 2% stacking additively, for every tile outside view range the source is. This means that any sound more than ~57 tiles away has its volume forcibly reduced to nothing and does not play, regardless of how loud it should be, and at distances much less than that, its still too quiet to hear. This means that long distance sounds are pretty broken Whoever coded explosions has attempted to use this system, unaware of this major design flaw. The functions for the 3D sound are still in there, but the volume is reduced to an inaudible level or dropped completely, in a majority of cases, and as a result, you cannot hear the explosion sound at all. Of course they realised this while testing it, and as far as i can tell they just kept trying til they got something working. What they've done is, ontop of the failed 3D explosion sound, they've also implemented a pretty hacky workaround of just iterating through all the clients on the Z level, and sending the .ogg to them directly as a 2D sound. This results in everyone on the station hearing explosions, but they sound like they're coming from all around you, because no directional information is supplied to the sound. Just to make this perfectly clear, the same 'distant explosion' sound is played to everyone twice, and everyone is actually only hearing one of those two attempts - the one which isn't 3D. This is a bug, and is probably not how the original designers wanted it to work As mentioned, i can't remove this falloff nondestructively, at least not without a massive ton of work retesting everything. But that won't be necessary, i've already implemented a workaround. What i've done is made the function only apply the volume AFTER it does all its calculations to reduce it. This means that a coder can now pass in a large value, like 600% volume, and it will be reduced down by the bizarre falloff into a value that can actually be heard, thus allowing distant 3D sounds to function. I'm already using this workaround for shield impacts in my recent meteor rework PR https://github.com/Aurorastation/Aurora.3/pull/538 the TL:DR is, you're supposed to be able to hear where distant explosions come from, but you can't because of a bug which instead makes them sound like they're all around you. However i can fix this easily. The reason i've created this thread, is to discuss the possible consequences of doing so. Because i think a lot of people have gotten used to how the current system works, and there might be arguments for or against changing it. Reasons i think hearing the location might be good: It would be more realistic, believable, and immersive. All sound has to come from somewhere, and the way it currently works doesn't make a lot of sense. It would involve more of the crew in the round, with people being able to know where things came from, they'll know to stay away from that area or (far more likely) go to see for themselves. Either way, bystanders will get to be more active, instead of sitting tight and waiting for security and engineering to tell them what happened, if they even do (they often don't communicate with the public) It might allow medical to save people more often, by immediately dispatching paramedics in voidsuits towards the blast area. Because dying in a breach is sucky and not fun for anyone Reasons i think hearing the location might be bad: With explosions being locateable, they might lose some impact. The confusion and terror of a bomb going off may be lessened if you know it's far away from you, and thus explosives could be a less powerful tool for an antagonist. Setting off a bomb will make everyone know exactly where the antag is (or recently was), which means people could check crew monitors or cameras, and quickly figure out who did it, or at least have a shortlist of suspects. Getting away with it would be harder. It would probably encourage validhunting. People often don't play how a character would really react. If a player hears a bomb going off down the hall from their office, their first thought is probably going to be 'finally, some action', and then they'll pickup the nearest weapon and head towards the explosion to play hero. Basically, i'm not entirely clear on what the impact of this change would be, i've got arguments for and against it, and i'm not sure which side i'm on. I'd like some feedback about this. How do you think it would affect rounds, would it be a good idea to change, or not?
Conservatron Posted July 9, 2016 Posted July 9, 2016 i dig it smart antags put long timers or remote detonators on their bombs and hide them sufficiently so they'll be nowhere near the blast, unless they're doing a breach entry
Kaed Posted July 11, 2016 Posted July 11, 2016 All of the downsides you are stating for this update seem stupid to me. I'm not saying you're stupid, Nanako. I'm saying that if these are valid concerns you have for fixing a broken piece of code, and you legitimately think they are concerning enough that people will want to keep things broken, then I wonder why you even bother to update at all. Everything you stated there except for the last is how people should be realistically reacting to hearing an explosion - finding out what happened, and realizing where it came from. I frankly am sick of people making exploding cigarettes then setting them off in the bathroom and giggling as the entire station is thrown into a panic at omnipresent explosions constantly. We should be able to locate where the shitter is, then go punch their teeth in.
Recommended Posts