ACE3/docs/wiki/feature/advanced-fatigue.md
2017-10-13 14:38:03 +02:00

100 lines
6.0 KiB
Markdown

---
layout: wiki
title: Advanced Fatigue
description: Human fatigue simulation based on scientific formulas.
group: feature
category: realism
parent: wiki
mod: ace
version:
major: 3
minor: 7
patch: 0
---
## 1. Overview
Advanced Fatigue is a human fatigue simulation based on the information and formulas provided by Bohemia Interactive Simulations, which used to be publicly available via their manuals page and are apparently used in VBS3. However, just to make this clear again, none of VBS3 code was taken over, this is an independent implementation.
### 1.1 Basics
Advanced Fatigue is based on scientific formulas that try to predict human performance, which enables ACE to provide a fairly accurate fatigue simulation with understandable in-game results in terms of performance. This means that any movement will be taken into account and may have an impact on both your short term and your long term fatigue: running around all mission will influence how long and how far you can run later, but if you're more conservative with your energy, you might benefit from that when you actually need more power.
### 1.2 Fatigue Influences
Your stamina will be drained more or less depending on various factors, some of them more severe than others. Here's a short list of all currently implemented fatigue influences:
- **Character stance:** Moving upright, crouched or prone.
- **Weapon holding:** Lowering your weapon, raising it or moving with the gun high ready
- **Movement speed:** Running, jogging or walking
- **Gear weight**
- **Terrain steepness:** Walking on slopes, up or down hill
- **Injuries:** Pain and blood volume
- **Carrying:** Both units and objects
- **Environment temperature**
### 1.3 Effects of High Fatigue
Depending on how much your character is fatigued you will experience various visual, audible and physical symptoms:
- Breathing sounds (with different intensity and frequency)
- Black flashing border when hitting the bodies limits
- Not being able to sprint
- Not being able to jog
- Slowed down movement whilst swimming or diving
- Weapon sway (majorly reduced when crouched or prone)
### 1.4 Stamina Bar
ACE provides a stamina bar similar to the one in vanilla Arma 3. You can enable and disable it through your ACE options menu. If you want to move the stamina bar, simply move the vanilla one in the GUI game options, the Advanced Fatigue one will move to the same location (this requires a restart though).
The Advanced Fatigue stamina bar has a few changes compared to the vanilla one to improve both immersion and user feedback, inspired by Dslyecxi's custom stamina bar. It will initially have a very low opacity which rises with the loss of stamina. Additionally it will first turn from white to orange and bright red afterwards.
## 2. Simulation Details
Since Advanced Fatigue is based on real life biological systems we will explain some of them in more detail here.
### 2.1 How Human Stamina Works
Human stamina is based on the availability of adenosine triphosphate (ATP), which is a molecule used by the body to transfer power. Small amounts of ATP are already stored readily available within muscle cells and larger amounts are generated by several pathways, which then transfer the ATP through blood to the muscles. There are quite a few pathways which generate and store ATP, so instead of simulating all of them, we merge them into 3 generic pathways.
### 2.2 ATP Pathways
Each pathway has different properties: They store different amounts of ATP and can provide and regenerate different amounts of ATP per second. You can compare this to having three differently sized barrels filled with water, each having a differently sized faucet and opening at the top to refill it with water.
#### 2.2.1 Anaerobic Pathway
This pathway is essentially responsible for your short term stamina. It has a very small capacity of ATP available (2300 mmol), which is can provide a lot of ATP very fast (13.3 mmol/s), but also replenished very quickly (56.7 mmol/s). This pathway is pretty much what limits how long you can jog or sprint in one go, which is why we use it as an indicator for the stamina bar.
#### 2.2.2 Aerobic Pathways
The two aerobic pathways store way bigger amounts of ATP than the anaerobic one, the first one stores over 1700 times as much ATP (4000 mol) and the second one still over 36 times as much ATP (84 mol) as the anaerobic pathway. However, they can also provide (13.3 and 16.7 mmol) and replenish (6.6 and 5.83 mmol) a lot less ATP then the anaerobic pathway.
This means that while these will last a lot longer, they do not have such a large impact on your short term performance. Instead, they will drain slowly during the day, which means that at the end you will have less power available than at the beginning, depending on how much you exhausted yourself. However, at that point they will start influencing your short term performance.
### 2.3 ATP Consumption
At any time the body consumes a certain amount of ATP - even when not moving. Since the aerobic pathways have so much ATP available, they will be drained first, and when you're not moving they can usually cover all the ATP you need. They can actually mostly regenerate the same amount of ATP that is used as is consumed, which means standing still has no effect on your performance. Once you exert yourself a little more, by jogging for example, more ATP is needed, and the anaerobic pathway comes into play. It will fill in the rest of the ATP needed.
### 2.4 ATP Pathway Fatigue
Another factor that comes into play here is pathway fatigue - the pathways themselves can fatigue too! That means, the more ATP the pathways have to provide, the slower they will will be able to, limiting how much ATP can overall be provided by each pathway. If we take into account that the aerobic pathways have provide their ATP first for any consumption, that means that the anaerobic pathway will have to provide more ATP if the aerobic ones are fatigued. This is how the long term fatigue effect is created.
## 3. Dependencies
{% include dependencies_list.md component="advanced_fatigue" %}