However, a side effect is the midi device most people are used to, “Microsoft GS Wavetable Synth”, seems to not be able to output correctly / consistently. This is great news for the most part as now people can make their own games in the engine. This feature is exclusive to Strife, though some advanced source ports can allow to use it with other custom weapons.That’s what I asked after updating GZDoom to find that a few of my maps‘ background MIDI music wasn’t playing any more! So what happened? I’m no expert on the matter, but it seemed to coincide with when GZDoom went fully GPL compliant in version 3.0.0 – more specifically, the removal of FModEx which caused the transition to OpenAL. This is implemented by the engine checking if the player's weapon is one such sneaky weapon in the P_FireWeapon function, and not calling P_NoiseAlert in that case. Strife features two silent weapons, the punch dagger and the crossbow with poison bolts. Note that since propagation is sector-based, sound can propagate across noncontiguous space by way of joined sectors. Monsters that appear in the sector after the sound has been emitted (spawned, teleported, or resurrected there) will be woken up as if the sound had happened while they were there. Once a sector's soundtarget is set, it cannot normally be unset. But even an ambush monster will be woken up by a soundtarget, getting 360° vision. If so, they start chasing it, unless they are lying in ambush and wait for the player to enter their line of sight. When monsters call the A_Look function, they check if their sector has a valid soundtarget. If the two-sided line is marked as sound-blocking, the recursive call will take this into account by marking the sound as having been blocked once and if the sound had already been blocked once already, it will not propagate to the other side of this line. For every two-sided line, if the other sector has a height between floor and ceiling greater than 0, the function will recursively call itself for the other side's sector. This latter function sets the sector's soundtarget pointer to the player's mobj, then looks at each of the sector's lines. When P_NoiseAlert is called, it calls P_RecursiveSound for the player's current sector. A weapon with a long loading time, such as the BFG 9000, can be used to propagate sound in a sector and shoot in another (after taking a teleporter or opening a door) without alerting the monsters in the second area. This means that the alert is sounded as soon as the button is pressed not when the weapon actually fires. This function checks that the player has enough ammo, and if so sets the player and its weapon in the relevant states, and also calls P_NoiseAlert. When a player hits the attack button, the function P_FireWeapon is called. Inversely, punching the air is a silent action in-game, but since the player presses the attack button to trigger this action, it can be heard by monsters. For example, selecting the chainsaw will cause sounds to be played, but this does not count as a sound for alerting monster. Note that this is purely an issue of game mechanics, and is unrelated to actual audio - only attacks emit sound as far as this system is concerned. Sound propagation is a system in the Doom engine in which the "sound" emitted by player weapons can travel through the level, alerting monsters.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |