Advertisement

Morale

Started by July 06, 2003 02:43 AM
9 comments, last by Diodor 21 years, 6 months ago
If I''d have to pick one difference between the LotR books and, say, the Warcraft series, it should be the use of morale. In the books the tides of battle change as one side gains in courage and the other despairs, whereas the computer games are all about cold strategy. But how can it be possible to accurately simulate morale in a computer game? I''m not very concerned about psychological issues - the main problem is making the units able to predict the future - a technical problem. Once this is solved, the rest is easy. Making a last stand, surrendering, obeying orders or fleeing in dissaray, all these decisions can be calculated based on what the unit thinks the outcome of the battle will be (and the specifics of the unit itself). It is moderately easy to calculate the short term future on a very local level. But how about a higher level view of the future - a strategic one? Does the answer to this lie in the use of good AI that lets an army understand concepts like being surrounded or getting surrounded or fighting in a death zone (survival requires winning)? I think there are ways to make a good morale simulation even without good AI. The trick is the player already has a good appraisal of the future - why not use that? Heroes will offer a morale boost - but will the player put his best heroes in a forlorn hope type of mission? The morale boost the heroes give is also a guarantee of the players hopes for the mission. The same goes for special artifacts. The same goes for special map locations (as Minas Tirith - the stronghold of Gondor is in LotR). A more direct approach may work: what if the player could send messages to his armies - the likes of "you''ll receive help in three days" or "the fate of the world depends on .."? These messages would give good morale bonuses, but only as long as they turn out to be true - the false prophet holds no power.
The problem with units predicting the outcome of a battle to determine morale would be that each individual unit would have to have calculations in its coding for how much it can take before it "breaks" and runs away. Now, if you have a game where zerging is feasible, you would have you actually do computations for each of the units. There could be hundreds or thousands of such calculations. Some games have solved this problem by either minimizing the theater per mission or by making units groups of people (or tanks or whatnot) and then calculating morale for that unit and disregarding the individuals.
"everything you need is around you...the only danger is inside of you."
Advertisement
I''d suggest checking morale for an entire squad in two circumstances, recieving an order or spotting an enemy. The margin of failure would determine how much of the squad disobeys you.

Influence mapping, or some similar method of evaluating how safe an order is, would be handy here. Under most circumstances, it''s rather odd when your troops flee in terror upon being told to return to base. Less so when they march off cheerfully towards certain death, but only because we''re used to it.
The read on morale is The Art of War, by Sun Tzu, get it from your local library or promo.net/pg (Yay, 30:th anniversary!). That book will tell you everything you need to know about battles and war in general, morale and everything else included.

The Moral Law causes the people to be in complete
accord with their ruler, so that they will follow him
regardless of their lives, undismayed by any danger.
Moral isn''t hard to implement, First divided it into two sets local moral and global moral. For local moral it applies only to unit currently involed in a battle. It increases when you kill an enemy and decreases when you you lose a unit. For global moral thats based on how many battles you''ve lost and won. This keeps it all very simple and requires litle in terms of computer time. Then to see it effects you stat such as loyalty, if moral is below loyalty units starts become less effective and if it drop low enought they begin to desert.
Morale'' is a tad more complicated then just keeping track of the win:loss ratio. While thats a good start, Morale'' is the general attitude about the upcoming changes to the win:loss ratio. In mathematics, predicting the change in a linear progression of numbers is called differentiation. It''d be slightly more accurate to create morale based on the differentiation of the mapping of the win:loss ratio.

Practically, that''d work a bit like this. We look at the win:loss ratio. For our purposes, lets say is 200:150, or 4/3rds. Then we win again. 201:150 becomes 1.34, a change of .006~. Then we lose again. 201:151, 1.3311258etc, a change of -0.0088742~ from 1.34. This amount of change is what we want to figure out, thats an easy Morale. So, what we do is we set Morale to 100, and then add to it these very minor changes. As the combat progresses, the morale will alter with the ratio along the rate-of-change-in-ratio curve.

Now, as for intangible stuff like speeches and local morales and stuff, thats much harder to calculate, and where I suggest the rand() function shows up. In fact, my Morale function will most definately fall apart when you factor in that stuff, but at least we have a start.
william bubel
Advertisement
I think you don''t have to worry about the strategic understanding of units being able to predict the outcome of a battle. I think warfare is like psychological dominoes. If one unit fails and falls back in dissarray and nearby units see this, then they too start to panic, potentially creating a domino effect.

A part of the problem lies not in being able to predict battle outcomes, but in world awareness. If an isolated unit has no idea that his flanks have caved in, it''s not going to panic. If a unit knows that it is outnumbered, and that it is outgunned, then it may suffer morale problems, but not necessarily. Look at the Spartans at Thermopylae or Alexander vs. the world. Ultimately, I think it depends on how much each group of units knows (if they are outnumbered, outgunned, have suffered grievous damage, are low on ammo, are being charged, know there are no reinforcements etc), as well as the ability of the commander.

You also have to think about the morale of the commanders themselves. For example, in one battle, Frederick the Great''s cavalry got routed off the field, and Frederick was in despair thinking the battle was lost...without his cavalry he thought the battle was as good as done, so he ordered his troops to retreat. However, some of his guard infantry units were too far away to get this order, and they actually attacked the center line, capturing the center of the battlefied and throwing the enemy into disarray. One of Frederick''s lieutenants noticed this and told Frederick, so the battle was still won despite the actual Commander in chief himself losing hope for victory.

However, the units DO have to have some kind of intelligence to understand limited tactical problems. How does a unit know another unit is more powerful? How does a unit know it is in a disadvantageous position (perhaps in a valley surrounded by ridges)? How do they know if they are cut off? How do they know if they have friendly units in the area to assist?
The world has achieved brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants. We know more about war than we know about peace, more about killing than we know about living. We have grasped the mystery of the atom and rejected the Sermon on the Mount." - General Omar Bradley
Moral being based on future chances or past events are really two seperate things, and would be implemnted diffrently depending on which the game maker decieded to use.

For instance I use current situation and past events to determine morale, with no prediction involved. The system is basically like this. The enemy army just wipped out half of your friends, its raining and you've got to move on quickly leaving the bodies of your allies to vultures.





[edited by - TechnoGoth on July 6, 2003 8:16:09 PM]
Now that I think about it....there's a sort of reverse psychological effect when a unit thinks the odds are hopeless. Sometimes units will surrender in these circumstances, but at others, they will fight to the last man. Think Custer's Last Stand, The Alamo, Thermopylae, Isandhlwana/Rorke's Drift (see "Zulu Dawn" for those not familiar) or Dien Bein Phu for famous large scale battles. I'm sure there have been scores of tiny engagements in which all the men were lost too.

So what is it that makes men fight to the last man? In the case against the Indians or Zulus, capture simply wasn't an option, but in the other engagements they were. Of course a Spartan would rather die than be captured, and the French and Americans had too much pride to surrender to their "inferior" foes. In all those situations, it must have become apparent at a certain point that the battle was hopeless. So why keep fighting?

I think battle prediction should be based locally since the common fighting grunt will not be privy to much information. For that matter, low grade field officers may not be aware of the whole situation either...depending on the tech level of the game. When American audeiences watch a movie like "Saving Private Ryan", we think how awful and terrifying it must have been for those poor yet brave kids having to fight their way up that murderous beach. And yet I often wonder what it must have felt like to have been a German soldier, and seeing landing craft and warships as far as the eye could see...with Destroyers risking running aground to provide fire support for their comrades-in-arms. It must have been just as terrifying if not more so for the Germans. Or what about the Japanese defenders at places like Kwajalin, Tarawa, Guadalcanal, Iwo Jima, Peleliu, New Guinea or New Ireland?

Morale is a tricky subject, but I believe it can make or break a game. Most importantly, I think it can break the tedious formulaic calculations of rocks/paper/scissors style play. I do think as someone suggested with his reference to Sun Tzu, that leadership plays a HUGE role in the morale of its soldiers. Good leaders will make troops go to hell and back (in one true story, when confederate soldiers found out they were marching close to Robert E. Lee's camp, they took off their shoes so as not to make noise to wake him up....now that's leadership skill). Or what of Washington's impassioned plea to keep the Continental Army together...using money out of his own pocket to pay the soldiers? Washington was no military genius (though he was capable), but Washington above all was a leader of men who commanded a great deal of respect and admiration. How about Naval Commanders like John Paul Jones ("I have not yet begun to fight!") or David Farragut ("Damn the torpedoes, full steam ahead!") who may have not been military geniuses (well, Jones may have been)...but they were definitely extremely good leaders. I think in some respects leadership capabilities are more important than all-out military aptitude...but when you combine the two like in Robert E Lee or Stonewall Jackson, then the result is amazing.


The world has achieved brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants. We know more about war than we know about peace, more about killing than we know about living. We have grasped the mystery of the atom and rejected the Sermon on the Mount." - General Omar Bradley

[edited by - dauntless on July 7, 2003 12:09:41 AM]
The world has achieved brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants. We know more about war than we know about peace, more about killing than we know about living. We have grasped the mystery of the atom and rejected the Sermon on the Mount." - General Omar Bradley
quote: Original post by Dauntless
Now that I think about it....there''s a sort of reverse psychological effect when a unit thinks the odds are hopeless. Sometimes units will surrender in these circumstances, but at others, they will fight to the last man.

...

So what is it that makes men fight to the last man?

Psychologically, people always do what they think benefits them most. In the absence of any context, this means a soldier will continue fighting until it seems likely that fleeing will be more beneficial to them than continuing to fight. In game terms, that''s easy enough to derive using influence maps of local kill rate differentials as mentioned above, etc. But the ''fight to the death'' comes about when dying is better than the alternative, or in other words, where the perceived benefit of attempting flight is lower than the perceived benefit of attempting to fight. This is pretty easily simulated as part of the previous equation by adding in constants for things such as pride and shame, and the (perceived) chance of being allowed to survive if captured. High scores here will keep the morale total above the flee threshold. You might also include factors such as how many friendly units are nearby (as having friends makes you feel safer, or maybe makes you more ashamed to flee, whichever), and if there''s a relatively safe way to flee. At Rorke''s Drift some of the British soldiers initially fled but found themselves to be trapped, and decided to fight (and die). In the game, this would be a case of the morale score being past than the flee threshold so that the units would flee, but eventually end up in a position where there is nowhere to flee and the equation would go back below the threshold since there is no benefit to flight.

quote: I think battle prediction should be based locally since the common fighting grunt will not be privy to much information.

When a unit dies, broadcast a little message to all nearby units. This can affect morale accordingly. I like the idea of periodically averaging morale over nearby friendly units, weighting officers more highly (depending on rank or leadership skill), so that panic or courage will spread.

[ MSVC Fixes | STL Docs | SDL | Game AI | Sockets | C++ Faq Lite | Boost
Asking Questions | Organising code files | My stuff | Tiny XML | STLPort]

This topic is closed to new replies.

Advertisement