mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 13:37:58 +01:00
23 lines
7.0 KiB
HTML
23 lines
7.0 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><base href="../../"><link rel="stylesheet" href="dmdoc.css"><title>code/__DEFINES/verb_manager.dm - Space Station 13</title></head><body><header><a href="index.html">Space Station 13</a> - <a href="index.html#modules">Modules</a> - <a href="index.html#types">Types</a> — <a href="code/__DEFINES/verb_manager.html#define">Define Details</a></header><main><h1>code/__DEFINES/verb_manager.dm <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__DEFINES/verb_manager.dm"><img src="git.png" width="16" height="16" title="code/__DEFINES/verb_manager.dm"></a></h1><table class="summary" cellspacing="0"><tr><th><a href="code/__DEFINES/verb_manager.html#define/VERB_OVERTIME_QUEUE_THRESHOLD">VERB_OVERTIME_QUEUE_THRESHOLD</a></th><td>verb queuing thresholds. remember that since verbs execute after SendMaps the player wont see the effects of the verbs on the game world
|
|
until SendMaps executes next tick, and then when that later update reaches them. thus most player input has a minimum latency of world.tick_lag + player ping.
|
|
however thats only for the visual effect of player input, when a verb processes the actual latency of game state changes or semantic latency is effectively 1/2 player ping,
|
|
unless that verb is queued for the next tick in which case its some number probably smaller than world.tick_lag.
|
|
so some verbs that represent player input are important enough that we only introduce semantic latency if we absolutely need to.
|
|
its for this reason why player clicks are handled in SSinput before even movement - semantic latency could cause someone to move out of range
|
|
when the verb finally processes but it was in range if the verb had processed immediately and overtimed.
|
|
queuing tick_usage threshold for verbs that are high enough priority that they only queue if the server is overtiming.
|
|
ONLY use for critical verbs</td></tr><tr><th><a href="code/__DEFINES/verb_manager.html#define/VERB_HIGH_PRIORITY_QUEUE_THRESHOLD">VERB_HIGH_PRIORITY_QUEUE_THRESHOLD</a></th><td>queuing tick_usage threshold for verbs that need lower latency more than most verbs.</td></tr><tr><th><a href="code/__DEFINES/verb_manager.html#define/VERB_DEFAULT_QUEUE_THRESHOLD">VERB_DEFAULT_QUEUE_THRESHOLD</a></th><td>default queuing tick_usage threshold for most verbs which can allow a small amount of latency to be processed in the next tick</td></tr><tr><th><a href="code/__DEFINES/verb_manager.html#define/TRY_QUEUE_VERB">TRY_QUEUE_VERB</a></th><td>attempt to queue this verb process if the server is overloaded. evaluates to FALSE if queuing isnt necessary or if it failed.
|
|
_verification_args... are only necessary if the verb_manager subsystem youre using checks them in can_queue_verb()
|
|
if you put anything in _verification_args that ISNT explicitely put in the can_queue_verb() override of the subsystem youre using,
|
|
it will runtime.</td></tr><tr><th><a href="code/__DEFINES/verb_manager.html#define/QUEUE_OR_CALL_VERB">QUEUE_OR_CALL_VERB</a></th><td>queue wrapper for TRY_QUEUE_VERB() when you want to call the proc if the server isnt overloaded enough to queue</td></tr></table><h2 id="define">Define Details</h2><h3 id="define/QUEUE_OR_CALL_VERB"><aside class="declaration">#define </aside>QUEUE_OR_CALL_VERB<aside>(_verb_callback, _tick_check, _subsystem_to_use, _verification_args ...)</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__DEFINES/verb_manager.dm#L25"><img src="git.png" width="16" height="16" title="code/__DEFINES/verb_manager.dm 25"></a></h3><p>queue wrapper for TRY_QUEUE_VERB() when you want to call the proc if the server isnt overloaded enough to queue</p><h3 id="define/TRY_QUEUE_VERB"><aside class="declaration">#define </aside>TRY_QUEUE_VERB<aside>(_verb_callback, _tick_check, _subsystem_to_use, _verification_args ...)</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__DEFINES/verb_manager.dm#L23"><img src="git.png" width="16" height="16" title="code/__DEFINES/verb_manager.dm 23"></a></h3><p>attempt to queue this verb process if the server is overloaded. evaluates to FALSE if queuing isnt necessary or if it failed.
|
|
_verification_args... are only necessary if the verb_manager subsystem youre using checks them in can_queue_verb()
|
|
if you put anything in _verification_args that ISNT explicitely put in the can_queue_verb() override of the subsystem youre using,
|
|
it will runtime.</p><h3 id="define/VERB_DEFAULT_QUEUE_THRESHOLD"><aside class="declaration">#define </aside>VERB_DEFAULT_QUEUE_THRESHOLD <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__DEFINES/verb_manager.dm#L17"><img src="git.png" width="16" height="16" title="code/__DEFINES/verb_manager.dm 17"></a></h3><p>default queuing tick_usage threshold for most verbs which can allow a small amount of latency to be processed in the next tick</p><h3 id="define/VERB_HIGH_PRIORITY_QUEUE_THRESHOLD"><aside class="declaration">#define </aside>VERB_HIGH_PRIORITY_QUEUE_THRESHOLD <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__DEFINES/verb_manager.dm#L15"><img src="git.png" width="16" height="16" title="code/__DEFINES/verb_manager.dm 15"></a></h3><p>queuing tick_usage threshold for verbs that need lower latency more than most verbs.</p><h3 id="define/VERB_OVERTIME_QUEUE_THRESHOLD"><aside class="declaration">#define </aside>VERB_OVERTIME_QUEUE_THRESHOLD <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/__DEFINES/verb_manager.dm#L13"><img src="git.png" width="16" height="16" title="code/__DEFINES/verb_manager.dm 13"></a></h3><p>verb queuing thresholds. remember that since verbs execute after SendMaps the player wont see the effects of the verbs on the game world
|
|
until SendMaps executes next tick, and then when that later update reaches them. thus most player input has a minimum latency of world.tick_lag + player ping.
|
|
however thats only for the visual effect of player input, when a verb processes the actual latency of game state changes or semantic latency is effectively 1/2 player ping,
|
|
unless that verb is queued for the next tick in which case its some number probably smaller than world.tick_lag.
|
|
so some verbs that represent player input are important enough that we only introduce semantic latency if we absolutely need to.
|
|
its for this reason why player clicks are handled in SSinput before even movement - semantic latency could cause someone to move out of range
|
|
when the verb finally processes but it was in range if the verb had processed immediately and overtimed.
|
|
queuing tick_usage threshold for verbs that are high enough priority that they only queue if the server is overtiming.
|
|
ONLY use for critical verbs</p></main><footer>paradise.dme <a href="https://github.com/ParadiseSS13/Paradise/tree/8a8a00a2a9bec485351e5f219982b7315d3504fa">8a8a00a</a> (master) — <a href="https://github.com/SpaceManiac/SpacemanDMM/blob/master/crates/dmdoc/README.md">dmdoc 1.11.0</a></footer></body></html> |