Feature #4203

Wounding/Body armor system

Added by q1184 almost 6 years ago. Updated over 4 years ago.

Status:Expired Start date:09/01/2009
Priority:Normal Due date:
Assignee:Xeno % Done:

90%

Category:Complex
Target version:- Estimated time:99999.00 hours
Component: Affected Version:
Close Reason:

Description

After numerous experiments with the handleDamage EH I came up with a framework that will allow us to create a detailed (very detailed, if we decide to) and much or less 'realistic' wounding system, including body armor simulation. The information we can get out of the EH, sometimes using some backwards formulae, is as follows:
1. Type of ammo that hit the unit
2. Its 'hit' value (aka kinetic energy) at the moment of impact
3. Its velocity at the moment of impact (absolute value, not the vector)
4. The hit part (there are 4: head, torso, legs and hands)
5. Direction the bullet came from

The possibilities it opens up (that I came up with so far) are:

- Custom wounding effects for each of the 4 hit zones.
- Custom wounding/body armor penetration effects for different ammo types.
- Body armor simulation (why not make it destructible and allow for it to be changed/taken off during the mission).
- No more accumulative hitpoints b/s, shooting an MG belt's worth of ammo at someone's legs won't make him die, but sure will make him lose mobility and loose a lot of blood.
- People in hit/blown up vehicles are also at our disposal.

Atm all I have is the basic structure that allows to retrieve and calculate all the useful info from the EH and trigger respective custom effects, and the knowledge I alone won't pull such a massive task off.
Right now I need the thoughts on:
Effects for different hit zones (head/torso/hands/legs). What I have in mind now:
Head:
1. Light concussion - ear ringing, blurred vision (using pp effects)
2. Heavy concussion - temp. blindness, deafness, knockdown.
3. Unconsciousness
Torso:
1. Grazing wounds, bullets stopped by the vest - slight pain, maybe knock down
2. Light wounds with nothing vital affected - blood loss, pain
3. Serious wounds (internal haemorrhage, collapsed organs etc) - heavy blood loss, shock, uncosciousness
Hands:
1. Increased shake (hurray for setHit)
2. Inability to use long weapons
3. Inability to use any weapons, as well as drive etc
4. In all cases bleeding
Legs:
1. Negative stamina effects, inability to move fast
2. Loss of the ability to walk (setHit)
3. Probability of heavy bleeding/pain etc

These are what I came up with, having only superficial knowledge about actual gunshot wounds. We should design both AI and player effects.

Another area that needs research and evaluation is the common kinds of body armor and the behaviour of different ammo types against them (probability of penetration vs. distance or velocity, wounding effects of a stopped or penetrated bullet).

Also we need to figure out a good handling of HE/frag damage. Unfortunately it's impossible to tell how far a grenade or whatever blew up, but something can be deduced from the damage received and its config hit values.

Apart from all of this, a healing system should be built from the ground up.

It's a huge task, and we need the team effort to pull it off. Right now I'm concentrating on the module that retrieves/calculates all the information about an impact and passes it to the custom damage functions. Later some basic custom hit effects and body armor handling might follow.


Related issues

related to A.C.E. for OA - Feature #2076: Wounding system Duplicate 06/15/2009
related to A.C.E. for OA - Feature #2297: Damage system enhancements Closed 06/26/2009
related to A.C.E. for OA - Feature #3822: Multiple ammo types Closed 08/20/2009
related to A.C.E. for OA - Support #4622: Research body armor worn by soldiers ingame Closed 09/17/2009
related to A.C.E. for OA - Feature #15314: Health system Duplicate 11/21/2010
related to A.C.E. for OA - Bug #10832: ace_wounds energy calculations Closed 05/25/2010
related to A.C.E. for OA - Support #3210: ST Feedback Closed 07/31/2009
related to A.C.E. for OA - Feature #4150: dismemberment Rejected 08/29/2009
related to A.C.E. for OA - Feature #6487: Module: Wounding/Body armor system Closed 12/04/2009
duplicated by A.C.E. for OA - Feature #9581: Body Armor (Soft Armor/SAPIs), helmets, etc. Duplicate 03/13/2010
blocks A.C.E. for OA - Feature #5282: Getting unconscious from near Explosions Closed 10/19/2009

History

Updated by ViperMaul almost 6 years ago

Bravo

Updated by pufu almost 6 years ago

really good information there.
Also agreed with the list, of course on the go, some get get some more attention - detail the specific issue.

I am also in agreement that the healing system should be build from grounds up rather than fixed - read try to.

Regarding body armor: do you thing of this to be model/object that one should equip, or based on the armor type modeled for the existing characters?

Updated by Scubaman3D almost 6 years ago

cool ideas Q. I'm available to help with whatever you think I'm able to do.

Updated by rocko almost 6 years ago

I am for armor based on modelled appearance. If I see no vest, he really does not have a vest. Not sure how far an addon system can reach for that by rendering available ballistic vests and allowing them to be worn. Similar to ace_sys_goggles it could be made.

Updated by Squelch almost 6 years ago

Excellent proposals. I'm a bit worried that head wounds are underdone. A full hit to the head would cause not just unconsciousness, but instant death in many cases for gameplay purposes ie >0.75 damage to that selection.

We have had handshit etc for a long time, but they have always been underutilised. As a rough check of the status and ultimate combat readiness of the unit, I think they could be used in conjunction with handleDamage EH.

Also, I strongly believe we should make any affects impede the AI too. The AI tends to cheat in many cases, and by not including them into this framework might lead people to be tempted to turn it off in the same way they wanted in ACE1 due to the unfair advantage the AI was seen to get. If this cannot be done, then it should only be applied when PvP games are in progress so all players are affected equally.

A fine grained wounding system is long overdue, and A2 offers better tools to achieve this. This existing code from ACE1 should be archived, and only called on where it will be prudent to do so. A major rewrite is the best approach imho.

Updated by rocko almost 6 years ago

Who do we assign to it? Who rewrites it?

I let my magic finker finger cirlce over the namelist.

Updated by tpM almost 6 years ago

I'll make the ear ring /shock /vest impact sounds.

Updated by q1184 almost 6 years ago

Figured out how to reverse-calculate distance to an exploded projectile with fair accuracy, if it's farther than indirecthitrange meters from the unit. If it's within the indirecthitrange, max. damage is applied regardless of the distance so it's impossible to find it out. It opens up a possibility to account for both blast (if closer than indirecthitrange) and frag (if outside of it) damage. Explosive ammo might get several config entries, such as fragments density, energy and max effective distance, which would affect the probability, type and severity of a fragment-caused injury.

Updated by dslyecxi almost 6 years ago

An important thing to note here re: the head is that helmets do not have an impact in ArmAx. Thus, "overdoing" head effects helps to compensate for that to a degree. I would rather err on the side of caution for head hits - having pistols or really long-range battle rifle shots potentially not insta-kill isn't a bad thing.

Ultimately, from a gameplay perspective you get much cooler results by wounding people than outright killing them. Erring on the side of caution (less damage) here is the safer and potentially more enjoyable path to take, in my opinion.

Updated by ViperMaul almost 6 years ago

We are currently reviewing this thread. Hopefully we have a dev team and test team for this core feature very soon.

Updated by Sickboy almost 6 years ago

  • Target version set to 1.0.0

Updated by ViperMaul over 5 years ago

  • Assignee set to Xeno

Updated by mr.g-c over 5 years ago

This is really all awesome to read! Really looking forward to such a awesome system.
I have played a bit today with the newest SLX Version in conjunction with latest Beta-Patch and i like Solus approach in many ways very much. The Animations when someone is hit and knocked down are really lovely (Stock A2?), looks very natural and realistic. Same goes for the Animationn on the Ground like crawling/rolling in pain and screaming after a massive hit.

I of course have a few suggestions i've already had during Arma1/ACE1 times and i just list them here again as it seems its more feasible with a whole new system:

1. Loose Weapon(s) when hit at a specific spot with specific damage (SLX approach is really nice made)
2. Be able to "disarm" someone knocked to the ground/someone unconscious. This Mess with killing all wounded Enemies from Arma1/ACE1 was not the ideal solution/way.
3. Be able to take a disarmed Enemy as Prisoner-of-War, for instance after you gave him medication and disarmed him. (SLX way is very nice made!)
4. A Medic should have a higher succes-rate in treating wounds than a normal Soldier.
5. Creating additional Medic-Class which is free of the "magical-healing"(setdamage=0). So a Mission Designer can choose if he placed a Medic which can setdamage=0 or someone which is "only" equipped with Proper Medical Equipment for treating ACE2 Wounds.

Updated by rocko over 5 years ago

- Medics in A2 have the option "To heal someone else".
When you are wounded and not a medic and close to a medic, you won't get that action known from A1 "Heal at ...".
Only medics can apply that action on wounded. Not vice versa.

- Loosing weapons vs. weapon sling
Maybe small arms.

Updated by mr.g-c over 5 years ago

rocko wrote:

- Medics in A2 have the option "To heal someone else".
When you are wounded and not a medic and close to a medic, you won't get that action known from A1 "Heal at ...".
Only medics can apply that action on wounded. Not vice versa.

I know this, but it would be nice to have medics without that option/ability, or else "they" will make use of it, when controlled by AI or Human players

- Loosing weapons vs. weapon sling
Maybe small arms.

Weapon sling is indeed an argument...

Updated by mr.g-c over 5 years ago

Sorry for bothering again: But after reading the whole ACE2 topic in BI-Forums (about the wounding potential of certain round types) and reading the point "1." in Q1184 first post, why not also simulate wounding potential based on round type, if you can go already that detailed with the system?

For instance, add a Entry like "ACE_WoundCoefficient = x.xx" into each config-class of the ammo-types and query it later on (when hit "object" is a human and bullet passed through armor), to decide how strong wounds and the resulting bleeeding/pain/other relevant factors, will be.

So you can give a higher WoundCoefficient on 5.56mm Nato compared to 7,62x39mm Russian AK47 type, which could mean that a Guy hit with the higher WoundCoefficient-Value bullet will bleed much faster to death, than when hit with a lower valued round into the same area.
What you think?

Updated by Sedim over 5 years ago

Ammo needs more than a wound coefficient, it also needs a penetration value. 00 buckshot can mess a person up, but its not going to make it through body armour. A full metal jacket round on the other hand has a better chance of penetrating body armour, but can still over penetrate and do less wounding damage.

EDIT: Just looked at http://dev-heaven.net/issues/show/3822. Apparently A2 already supports this, the data just needs to be put together.

Updated by mr.g-c over 5 years ago

Sedim wrote:

Ammo needs more than a wound coefficient, it also needs a penetration value. 00 buckshot can mess a person up, but its not going to make it through body armour. A full metal jacket round on the other hand has a better chance of penetrating body armour, but can still over penetrate and do less wounding damage.

EDIT: Just looked at http://dev-heaven.net/issues/show/3822. Apparently A2 already supports this, the data just needs to be put together.

Hi, yes thats why the "wound-coefficient" could be a additional config-value on top of the other things already doable. I'm aware of the other possibilities doable, like penetration values and so on and it was suggested for the people knowing what can be done, for instance like the ACE-Devs.... :-)

Updated by Sickboy over 5 years ago

  • Target version changed from 1.0.0 to 0.9

Updated by Sickboy over 5 years ago

If I understood VM correctly, this might be reachable for Beta 2?

Updated by mr.g-c over 5 years ago

Sickboy wrote:

If I understood VM correctly, this might be reachable for Beta 2?

This would be absolutely awesome! I thought this takes a year or more to develop...... wow, good job people, really amazing!

Updated by Xeno over 5 years ago

Beta 2 sounds good, a basic version (a little bit like the ACE 1 version, but just a little bit and completely rewritten from scratch) might be reachable for Beta 1 (activate it by placing a module ?).

Still trying to balance things (handledamage kills me) and it needs a MP test (mainly for the animations, rest should be fine). One small script running for each unit (I still have to transfer it to FSM).

What's working:
- Examine
- Epi
- Morphine
- Bandages
- Bleeding
- Blackouts (AI and players may wake up, depending on damage state, including FX effects for blackouts and bleeding)
- Drag uncon units
- Carry uncon units
- Pull uncon units out of vehicles
- No magic healing for medics
- Sounds
- Medic boxes with bandages, mash and medic vehicles have their set of medic stuff (currently the same as in ACE 1)
- and so on

Not much more possible in two weeks.

Updated by mr.g-c over 5 years ago

Wow this sounds very good if its at least like it was in ACE1.

Not much more possible in two weeks.

"Not much more" sounds like a farce, You say you have written a complete system like the one from ACE1 in "only" two weeks?! Outstanding! That is fabulous! :-)

But will it be expandable like in Q1184s first post, means have you made it that expandable, or does it means you have then to rewrite it again from scratch?

Updated by tpM over 5 years ago

And whats up with ballistic vests? :)

Updated by Xeno over 5 years ago

tpM wrote:

And whats up with ballistic vests? :)

Please feel free to contribute once it is in the repository :)

Updated by q1184 over 5 years ago

Xeno wrote:

tpM wrote:

And whats up with ballistic vests? :)

Please feel free to contribute once it is in the repository :)

The stuff I made (handledamage, body armor etc) is in the test branch, it seems you weren't aware of it.

Updated by ViperMaul over 5 years ago

Actually he was aware of its existance. And I sent him all of your work.
However, because we were lucky to have any Dev with skills, and time and willing to work on the component, I gave him some simple goals to start out. And I gave him full leadership over the project so we can actually keep a dev working on such an important project.

The simple goals:
Make a basic version first that has good server performance for MP first. If we can make a Beta 2 release before Christmas great. After we have this then we can expand and work towards our original goals making a more detailed vision as the one you described.

But I didn't want too much pressure on the Xeno since it is a very important core component.

Updated by q1184 over 5 years ago

Oh, makes sense now. And thank you Xeno for stepping up and taking the system over :)

Updated by Sickboy over 5 years ago

Awesome Xeno!

If a basic system (manually activated), can be reached at the pub beta, we at least can claim victory on the fact that there is a system available, at the first release.
While tweaking, or further finalization can happen on the daily builds?

But, I'm sure the public can live with some more days of BI AIS etc, when deemed impossible :P

Updated by Xeno over 5 years ago

The system must be activated by a module currently :)

What I have done today is MP testing, adding drag and carry for dead units (you can pick up any dead unit on the battlefield, nobody gets left behind, works fine in MP) and removing medic or medic vehicle magic healing completely. The problem is, that vehicles or objects don't fire the handleHeal eventhandler, so I had to replace their configs to get rid of it. This means, even if the wounds system isn't enabled you get no magic healing at those objects. You have to rely on medics then. If somebody has a better solution, let me know.

But most important was that all animations worked out of the box in MP (knock on wood :), no setVehicleInit used yet).
Unconscious units are forced into death animations to get rid of that strange "lying on the back and rolling left or right" animations that BI uses.

Updated by Sickboy over 5 years ago

Very nice news Xeno!
I have no ideas atm, but ill try to come up with some :)
Do we do any checks to verify if BIS AIS etc aren't currently active? Might be a good check to add :P

Updated by q1184 over 5 years ago

If default ambulances/tents do not heal anymore, we can create additional "magic" classes with enabled healing, so at least new missions will work fine without the module, old missions will require modification though.
Edit: A script that automatically replaces objects with disabled healing with their magical counterparts if wounding module is disabled might be an idea.

Updated by fireship4 over 5 years ago

These two updates in the ArmA2 beta may be of use in this case:

[59691]  Improved: Small hit be ignored by hitpoints (configurable by minimalHit) 
[59668] Improved: Hitpoint can pass only a part of the hit to the total damage (passthrough setting no longer ignored).

Also I dont know about real world, but soldiers probably fall over if they are hit solidly even if they are not injured, the kinetic enery/shock/pain will knock them down (or on overpenetration make them fall over many times) im sure. I remember in particular the video from Iraq(?) where a soldier is hit and goes down like a log. He's down for a couple of seconds then picks himself up and runs behind a HUMVEE. Obviously you wouldnt be knocked over every time you are hit but still.

PS I didnt put quote tags around the patch notes. Woo spooky.

Updated by CAS over 5 years ago

Great news Xeno!

It’s great to see that you could implement the transportation of all kind of body’s (including the dead) into the simulation!
Nice that magic healing is gone!

Do not use your costly time to implement Epi and Morphine. Those two will not save injured soldiers!
Most important is the handling of blood loss.
The procedure to apply bandages should take time (medics could have a bonus in speed and effectiveness)
Bleeding should only be reduced by bandages (depending on the injury); it would only be stopped by reaching a destination simulating an operation facility (fx. med tends stop bleeding but do not heal). This would encourage a rapid MEDEVAC and make it more exiting on the way.

If you have time to implement more advanced medical features I would vote for airway handling and pneumothorax treatment. This can save lives in this kind of setting.

I only now got aware of dev-heaven after I made some posts with link to a relevant article in the BI forum.

I am a real live doctor and would be happy to support you with your project if you have any questions!

Updated by CarlGustaffa over 5 years ago

If "magic" healing is removed from everything in the game, how are we supposed to get back into the fight? I'm all for medevac in certain missions that can support it, but keep in mind that many squads are too small to have this as a valid playable option. If all we do all night is medevac due to injuries, the gaming night (a few hours once a week) will be pretty much ruined for some of us.

I'm a bit concerned about nullifying the regular medic stuff (although unrealistic). I'd rather have new medics, vehicles, and tents where this ability is fixed (removed). Editing of most missions is ok by me, but how about the campaign stuff? Not having a "regular medic" in the campaign I believe would make it unplayable. And it's not something for everyone to edit.

How about old system if ACE_wound logic is not present, and new system when it is present? Is that even doable?

Then again, I might have to play before I speak to much :)

Updated by Xeno over 5 years ago

CarlGustaffa wrote:

How about old system if ACE_wound logic is not present, and new system when it is present? Is that even doable?

That is exactly how it is working currently.

If the logic isn't placed, you get vanilla ArmA 2 magic healing. Medics and medic vehicles that is.

Btw, although it is a module logic, you don't need to sync units against it, just place it in the editor. In contrast to how BI uses modules (you have to sync groups or units). Means, it will work even for JIP players and when AI is disabled.

Updated by CAS over 5 years ago

CarlGustaffa wrote:

If "magic" healing is removed from everything in the game, how are we supposed to get back into the fight? I'm all for medevac in certain missions that can support it, but keep in mind that many squads are too small to have this as a valid playable option. If all we do all night is medevac due to injuries, the gaming night (a few hours once a week) will be pretty much ruined for some of us.

Of curse it would only work in new missions. ARMA has the feature to re spawn instead of an AI soldier. If you are injured you can leave your injured character behind and re spawn as a new "reserve" soldier. The reserve AI soldiers can either be hold back in the second line of fighting or back at the base. You (or your team) still would have to take care of your former character, the causality. Would be a good thing for team play with focus on slow approaches. It would be more important to communicate where team members are and what status they have. If you get shot it is no longer only your personal problem but a problem to the entire team.

This would make things more realistic.
Defibrillators, Epi, Morphine, and battlefield heal only make it unrealistic in a different way. (I like the magic heal for some games; I would only love to see a game with a realistic alternative)

Updated by CarlGustaffa over 5 years ago

Yes, tested it today. Modded dom with module has no magic healing, and testing grounds without module has magic healing. Just as I wanted it. Thx.

I don't think I have ever respawned for the sake of convenience. Except during testing or due to bugs which I'll usually play out for quite some time. Yes I agree, some "game modes" needs the "magic" due to lack of proper players, but I don't mind advanced stuff either in more mature games.

Updated by ViperMaul over 5 years ago

  • % Done changed from 10 to 90

Updated by ViperMaul over 5 years ago

  • % Done changed from 90 to 70

Updated by ViperMaul over 5 years ago

  • Target version changed from 0.9 to 1.0.0

Updated by rocko over 5 years ago

  • % Done changed from 70 to 90

Updated by rocko over 5 years ago

  • Status changed from In progress to Expired

Updated by Sickboy over 5 years ago

  • Target version changed from 1.0.0 to 1.0.1

Updated by Sickboy over 5 years ago

  • Target version changed from 1.0.1 to 1.0.2

Updated by Sickboy over 5 years ago

  • Target version changed from 1.0.2 to 1.0.1

Updated by rocko about 5 years ago

  • Target version deleted (1.0.1)

Also available in: Atom PDF