detail extensions
From Wiki
(1.1.1.5 (fin)) |
|||
Line 70: | Line 70: | ||
The dead zone is 50% of the area, which itself is 100% of the size of the game window. Refer to [[#mouse_saturate_multiplier]]|real}} | The dead zone is 50% of the area, which itself is 100% of the size of the game window. Refer to [[#mouse_saturate_multiplier]]|real}} | ||
− | ''Note that as of 1.1.1.5 when certain antagonistic movement keys are pressed together (either with the keyboard or by way of the game controller configuration) the mouse will center itself either horizontally or vertically in the dead zone. Vertical centering will change the player character's perspective. Horizontal centering will not be noticed when inside the dead zone. Holding the horizontal centering combo creates a temporary 100% dead zone area so that free-looking does not get interrupted. This feature still requires some work before the keys can be pressed together without timing becoming an issue. Still it is pretty handy and beats nothing.'' | + | ''Note that as of 1.1.1.5 when certain antagonistic movement keys are pressed together (either with the keyboard or by way of the game controller configuration) the mouse will center itself either horizontally or vertically in the dead zone. Vertical centering will change the player character's perspective. Horizontal centering will not be noticed when inside the dead zone. Holding the horizontal centering combo creates a temporary 100% dead zone area so that free-looking does not get interrupted. This feature still requires some work before the keys can be pressed together without timing becoming an issue. Still it is pretty handy and sure beats nothing.'' |
====mouse_horizontal_multiplier==== | ====mouse_horizontal_multiplier==== |
Revision as of 09:57, 23 January 2013
! |
Transcluded by Sword of Moonlight Extension Library / list of extensions. |
Extensions in this section complement those of the #Option section. Each Option extension takes the form do_..., where each Detail extension takes the form ..._... where the first parts (...) are identical to one another. If the Option extension is switched off the corresponding Detail extensions have no part to play.
Contents
- 1 alphafog_skyflood_constant
- 2 alphafog_skyfloor_constant
- 3 ambient_contribution
- 4 bob_frequency_multiplier
- 5 cursor_hourglass_ms_timeout
- 6 escape_analog_gaits
- 7 escape_analog_modes
- 8 log_initial_timeout
- 9 log_subsequent_timeout
- 10 mipmaps_samples_limit
- 11 mouse_...th_button_action
- 12 mouse_deadzone_multiplier
- 13 mouse_horizontal_multiplier
- 14 mouse_left_button_action
- 15 mouse_menu_button_action
- 16 mouse_middle_button_action
- 17 mouse_right_button_action
- 18 mouse_saturate_multiplier
- 19 mouse_tilt_..._action
- 20 mouse_vertical_multiplier
- 21 numlock_status
- 22 numlock_key
- 23 pause_button
- 24 pedal_damage_force
- 25 pedal_damage_limit
- 26 red_multiplier
- 27 wasd_and_mouse_mode
alphafog_skyflood_constant
Introduced around 1.0.0.1, this extension is part of an effect that blends the horizon into the sky domes that are part of Sword of Moonlight. The sky is fully transparent at #alphafog_skyfloor_constant and becomes fully opaque as the vertical distance from the floor approaches 1 in sky model coordinates.
This constant can be thought of as scaling the sky along the vertical axis, so that the larger the scaling the slighter the gradient. The default value is 8.
Note that internally this value simply sets a shader preprocessor macro that is used by the default shader set. Values are limited to real numbers.[#]
Note: in order to fully disable this effect it is necessary to set this extension to a value of 0. Recall that the default behavior is particular to Sword of Moonlight sky domes. Care must be given to custom sky models.
alphafog_skyfloor_constant
Introduced around 1.0.0.1, this extension is part of an effect that blends the horizon into the sky domes that are part of Sword of Moonlight. The default value is -0.125 or the lowest point of the sky domes. Any part of the sky below this point will be made completely invisible as it blends into the horizon. Refer to #alphafog_skyflood_constant.
Note that internally this value simply sets a shader preprocessor macro that is used by the default shader set. Care must be given to custom sky models. Values are limited to real numbers.[#]
ambient_contribution
Introduced around 1.0.0.1, this extension sets the percentage of a lamp that is converted from diffuse to ambient light. The default percentage is not specified. Historically it is and has been 0.15, or 15%. This is unlikely to change, however it doesn't hurt to set this manually, even if 15% is alright with you. Some caution should be observed. Refer to #do_ambient. Values are limited to real numbers between 0 and 1.[#]
bob_frequency_multiplier
Introduced around 1.1.1.5, this extension multiplies the number of times the walking effect will loop over the distance of a meter when moving at full walking speed. Each loop can be thought of as a single step. An increased frequency amounts to a shorter stride. A decrease a longer stride. Values are limited to real numbers.[#]
cursor_hourglass_ms_timeout
Introduced around 1.0.0.1, this extension sets the number of milliseconds that a game may be "unresponsive" before an "hourglass" icon will be made to appear to indicate that the game is working behind the scene.
The default value is 0. Which is converted into an internal default timeout that has historically been fixed at 250ms, or a quarter of a second. You might need to use a larger value if the icon is a nuisance. Values are limited to positive whole numbers.[#]
Note that the game may or may not be working or may only be partially working. The real intent is to make the game appear responsive to put the player at ease and stop the Windows "not responding" protocol.
escape_analog_gaits
Introduced around 1.1.1.5, this extension calibrates the sensitivity of Sword of Moonlight's game controller. Note that this extension is overshadowed by #Joypad sections. Refer to #..._analog_gaits.
This extension has 7 parts that must be separated in a way that is unambiguous. Any part not specified defaults to: 0.2, 0.333333, 0.5, 0.666666, 0.75, 0.875, and 0.95 respectively. This is a perfect linear mapping. A game controller may use a nonlinear mapping. In example, a DualShock controller is very biased; .2 .25 .3 .4 .55 .75 .95 gives a greater sense of control over its sticks by flattening out the windows between the gaits.
Note that this is not a mechanism for calibrating imbalance or fighting in a stick. That is done with the Windows Control Panel calibration feature.
The first and last numbers in the series are unique. An input below the first number is ignored. This is important because sticks usually require a wide "dead zone" so not to appear cocked when left still. An input above the last number is taken to be full tilt. A calibrated stick should achieve full tilt. An expanded window lessens the need to force a stick to full tilt.
If a number is less than or equal to the number before it results are undefined. The option to merge gaits will be visited at a later date. Values are limited to series of real numbers between 0 and 1.[#]
escape_analog_modes
Introduced around 1.1.1.5, this extension describes the modes available to #do_escape. The defaults are uz, enabling a single analog mode equivalent to Sword of Moonlight's axis based movement controls; moving forward and backward and turning left and right. The non-axis based movement controls are button based; moving sideways and looking up and down.
An analog mode can be up to eight (8) letters long comprised of x, y, z, u, and v, denoting lateral, vertical, forward and backward, turning, and looking movement respectively. Each letter can be capitalized, X, Y, Z, U, and V, in order to invert the axis. However it is not necessary to add an additional mode solely to invert the looking movement, as inverted look modes will be generated automatically.
The letters correspond to axes of the game controller. An axis can be knocked out using a dash (-) place holder. So to add a 2nd and 3rd (automatically generated inverted) mode uz, xzuv-v is a start. These modes should add a dual thumb stick set-up compatible with most DualShock like controllers and adapters that the player can access by pressing the Esc (escape) key once in game. Values are limited to series of analog modes as described above.
Note: in the future #do_system will be required to bypass the new system menu which will make the "Analog Mode" approach obsolete for all but the most stubborn and curious. In the meantime this extension is absolutely essential to beginners and avid players will want to familiarize themselves with the #Joypad section.
log_initial_timeout
Introduced around 1.0.0.1, this extension sets the number of refresh frames to log to a log file before logging is no longer performed. This is a diagnostic tool. A log file can grow very large and logging can make a game unplayable under different circumstances. The default setting is 0. The default behavior is to log until manually disabled. Refer to #log_subsequent_timeout. Values are limited to positive whole numbers.[#]
log_subsequent_timeout
Introduced around 1.0.0.1, this extension sets the number of refresh frames to log whenever logging is manually enabled before automatically disabling logging. The default setting is 0. The default behavior is to enable logging until manually disabled. Refer to #log_initial_timeout. Values are limited to positive whole numbers.[#]
mipmaps_samples_limit
previously mipmaps_maximum_anisotropy prior to 1.1.1.6
Introduced around 1.0.0.1, this extension takes the maximum number of anisotropic filtering samples. The default is 0. This will use the maximum number of samples supported by the video adapter. Use 1 to disable anisotropic filtering. Note that when #do_anisotropy is switched on players are able to directly set this up in the Options menu. Values are limited to positive whole numbers.[#]
mouse_...th_button_action
Introduced around 1.0.0.1, this extension assigns an action to any additional buttons that a computer mouse may support beyond the standard left, right, and middle buttons. The part before th_button_action must be a number between 4 and 8 distinguishing the 4th, 5th, 6th, 7th, and 8th button respectively. Values are limited to keyboard macros.[#]
mouse_deadzone_multiplier
Introduced around 1.0.0.1, this extension multiplies the inner region of what is conceptually a virtual mouse pad that acts like a thumb stick of a game controller that does not pull itself back to center. Any movement within the "dead zone" is treated as free-looking. Once the virtual mouse leaves this region it behaves exactly as a thumb stick does so that you can turn without having to pick the computer mouse up off its mouse pad and place it back in the center over and over and over.
The dead zone is 50% of the area, which itself is 100% of the size of the game window. Refer to #mouse_saturate_multiplier. Values are limited to real numbers between 0 and 2.[#]
Note that as of 1.1.1.5 when certain antagonistic movement keys are pressed together (either with the keyboard or by way of the game controller configuration) the mouse will center itself either horizontally or vertically in the dead zone. Vertical centering will change the player character's perspective. Horizontal centering will not be noticed when inside the dead zone. Holding the horizontal centering combo creates a temporary 100% dead zone area so that free-looking does not get interrupted. This feature still requires some work before the keys can be pressed together without timing becoming an issue. Still it is pretty handy and sure beats nothing.
mouse_horizontal_multiplier
Introduced around 1.0.0.1, this extension multiplies the sensitivity of the computer mouse with respect to side to side motion. Negative numbers also invert the motion. Values are limited to real numbers.[#]
mouse_left_button_action
Introduced around 1.0.0.1, this extension assigns an action the left computer mouse button. If the player has indicated they are left handed the action may or may not be swapped with the #mouse_right_button_action. Values are limited to keyboard macros.[#]
Introduced around 1.0.0.1, this extension assigns an action to take when the left and mouse buttons are held down together for a short period of time. If #wasd_and_mouse_mode indicates a one-handed control scheme this button may be assigned a default action. Otherwise the default action is to do nothing. Values are limited to keyboard macros.[#]
mouse_middle_button_action
Introduced around 1.0.0.1, this extension assigns an action the left computer mouse button. Note that not all mice will feature a middle button and when present the button is combined with a wheel making it comparatively more awkward to utilize. Values are limited to keyboard macros.[#]
mouse_right_button_action
Introduced around 1.0.0.1, this extension assigns an action the right mouse button. If the player has indicated they are left handed the action may or may not be swapped with the #mouse_left_button_action. Values are limited to keyboard macros.[#]
mouse_saturate_multiplier
Introduced around 1.0.0.1, this extension multiplies what is conceptually a virtual mouse pad with the same dimensions as the game window with the goal of producing a one-to-one relationship between the computer mouse and the in game motion. Refer to #mouse_deadzone_multiplier, and #mouse_horizontal_multiplier and #mouse_vertical_multiplier. Values are limited to positive real numbers.[#]
mouse_tilt_..._action
Introduced around 1.0.0.1, this extension assigns an action to a feature many computer mice have in the form of either an additional wheel or the ability to nudge the mouse wheel to the left and right. The part before _action must be one of left or right. Note that Windows' handling of this feature is very limited. It is essentially restricted to scrolling text sideways in such a way that is very very clunky in any other context. That said you can work with it. You can even move sideways with it if you don't mind the lurch. Values are limited to keyboard macros.[#]
mouse_vertical_multiplier
Introduced around 1.0.0.1, this extension multiplies the sensitivity of the computer mouse with respect to up and down motion. Negative numbers also invert the motion. Values are limited to real numbers.[#]
numlock_status
previously numlock_initial_state prior to 1.1.1.6
Introduced around 1.0.0.1, this extension determines the Num Lock status at start-up when #do_numlock is switched on. Values are limited to binary statements.[#]
numlock_key
Introduced around 1.0.0.1, this extension chooses a key on the keyboard to emulate a Num Lock key. Values are limited to keyboard keys.[#]
pause_button
previously pause_button_default prior to 1.1.1.6
Introduced around 1.0.0.1, this extension chooses a button on Sword of Moonlight's game controller to use to pause the game. The default button is 9. Values are limited to pseudo buttons.[#]
pedal_damage_force
Introduced around 1.1.1.5, this extension determines the amount of pseudo force applied to the PC, or player character, when knocked back by an NPC attack. The default amount is 3. How this works is the PC loses a percentage of HP expressed as a ratio between 0 and 1 that is multiplied by this amount to arrive at the knock back figure. From there the distance knocked back depends on the move speed and relaxation function.
It is best to think of this in terms of how much damage as a percent of HP should result in maximum knock back. The default assumption is 100% represents maximum knock back. If 20% makes more sense for your game then 20 goes into 100 five times so go with five times the default, or 15, and don't forget to set the #pedal_damage_limit because if the PC somehow receives more than 20% damage the knock back is still going to be five times as great, or five times five great at 100% damage!
Again this is highly dependent on the SOM_SYS move speed settings. Don't be afraid to fudge things to your liking. Also consider that dashing increases the movement speed, so that the knock back is greater while dashing. To a degree this captures a sense of footing; even so this behavior will almost certainly be evolving in due time. Values are limited to real numbers.[#]
pedal_damage_limit
Introduced around 1.1.1.5, this extension places a ceiling on the amount of force produced by #pedal_damage_force. The default amount is 3, or the same as the default force. Values are limited to real numbers.[#]
red_multiplier
Introduced around 1.1.1.5, this extension multiplies the intensity of the red flash effect when the player character receives damage. Maximum intensity is reached when an NPC attack deals 50% damage. For example, if 25% damage is considered a critical hit then you will want to set this to 2. Note that a Game Over hit is always displayed at maximum intensity. Refer to #red_flash_tint. Values are limited to real numbers.[#]
wasd_and_mouse_mode
Introduced around 1.0.0.1, this extension determines the default configuration of the "WASD" key group on a Qwerty keyboard and computer mouse. There are two modes, one (1) handed, and two (2) handed. If #do_mouse and #do_wasd are both in play the default mode is two handed. If not the default mode is one handed.
One handed is ideal for puzzle games that won't involve combat or high stakes action. A free hand can also be less stressful in a game's development stage. Mice with only three buttons may require further configuration to be truly one handed.
Basically one handed modes always use turning movements where two handed modes will use sideways movements. One handed uses the mouse buttons to move forward and backward and does not use the attack and magic buttons. There are other differences in terms of how spare buttons get prioritized, all of which are subject to change. Values are limited to 1 or 2.