Jump to content

LOS, LOF, units, and you!


Recommended Posts

Indirect fire in CMx1 was not simualted very well because we didn't have a functioning chain of command. In CMx2 this is all fixed. Now if you want those guns to fire indirectly someone must "take responsibility" for the call. If the Company Commander wants to blind fire into the forest... that's fine. But if he doesn't have the authority to order the guns to perform that function, then it ain't going to happen.

Steve

Link to comment
Share on other sites

  • Replies 190
  • Created
  • Last Reply

Top Posters In This Topic

Originally posted by Battlefront.com:

Indirect fire in CMx1 was not simualted very well because we didn't have a functioning chain of command. In CMx2 this is all fixed. Now if you want those guns to fire indirectly someone must "take responsibility" for the call. If the Company Commander wants to blind fire into the forest... that's fine. But if he doesn't have the authority to order the guns to perform that function, then it ain't going to happen.

Steve

Wow the clarity of that post is unusual! (and much appreciated!)

WOW....

" because (in Cmx1) we didn't have a functioning chain of command. In CMx2 this is all fixed. Now if you want those guns to fire indirectly someone must "take responsibility" for the call"

That says alot about how the game will work.

It does not address the issue of firing without LOS or whether you can "aim high" or blind fire into the tree tops. But its a GOOD start!

Thanks

smile.gif

-tom w

[ October 06, 2005, 07:04 PM: Message edited by: aka_tom_w ]

Link to comment
Share on other sites

I'm hardly the biggest expert on this board, but isn't interdiction fire the most common kind of fire mission? IIRC, a large proportion (most?) of the American shells fired in Vietnam were blind "recon by fire" into jungle around US positions that were too hazardous to inspect firsthand. Blind isn't necessarily ineffective.

As has been discussed on this board before, artillery is the biggest killer on the WWII battlefield but its effect is largely cumulative and incidental, as opposed to massive and precise (there are of course many exceptions, but not to be counted on). IIRC, even the heaviest prep barrages tended to suppress more defenders than they killed, a lesson learned in WWI.

More generally, I've always believed that CM and other WWII wargames greatly overmodel the ATTACKER's artillery support in terms of its cycle time, accuracy and role in the attack.

For a defender, sitting in a prepared OP, often connected to the battery via landline, and who may already have spent days or weeks registering and even plastering the field of battle, I can more readily visualize prompt and devastating "surgical" fires delivered on the heads of the grey (brown) masses.

But for an attacker, this is a lot harder to pull off. There are indeed plenty of WWII instances of intrepid FOs moving with the assault forces, calmly spotting enemy strongpoints or counterattackers and calling down a rain of hell on them, all within a few minutes. But pulling this off requires a lot of luck as well as smarts and guts. You have to do ALL the following:

1. locating and occupying a decent vantage point in one piece and THEN

2. spotting the enemy positions that are worth hitting and THEN

3. contacting the battery with balky WWII vintage radios and THEN

4. establishing and communicating the right reference to them and THEN

5. walking the spotting rounds in on the target to FFE

Given the above, I suspect that the attacking FO's most common role in the battle was not to blow the enemy out of their positions, but to cement the gains made by other arms, to wit:

a. As soon as possible, lay down a curtain of fire on grid squares in front of newly won objectives to: (1) deter and disrupt counterattacks and (2) persuade remaining enemy to leave the vicinity pronto;

b. If possible under constraints 1-5 above, zero fire in on any remaining strongpoints against which the attack has stalled.

That's my thesis. Counterfire away grogs, I've shot and scot....

Link to comment
Share on other sites

I learned during my service the way a normal attack goes is supposed to go like this:

I don't know if this is how attacking was done in WWII. But: CMx2 will not be all WWII and at least the Finnish artillery system _was_ somewhat similar to what I will describe.

1. You do recon / somebody else did that recon for you. You have information where the enemy is supposed to be. Ofcourse the enemy tries to make obtaining this information as hard as possible for you. This information is very important for the success of the attack.

2. You plan how the attack is supposed to go.

2a: Make your attack plan, that is what route the squads are supposed to attack, who will lay covering fire, who will do the actual assault to the enemy positions and so on.

2b: Make a fire plan. The fire plan is a series of barrages by different pieces of artillery. First you fire the big stuff, say -5 (mins) from the start of the actual attack, this could go on for 2 minutes. Then from -4 to -2 you fire the smaller stuff, 120mm mortars for example. Last goes light mortars from -2 to zero. It is well possible that the bigger stuff will fire to a supporting enemy location from -1 to +x, also the smaller stuff could do this after they have fired to the position being attacked. Now, all the times are to the second and when the shells will land on target . For example the first rounds from light mortars will explode exactly at -2 and the last ones exactly at zero. Once the plan gets going, you don't do adjustments to the plan. Making the plan doesn't take that long, this is, this sort of attack can be deployed as a counter attack.

3. When you are attacking, you can get to 300m from the target when the big stuff is firing, to 200m when the 120mm mortars are firing, and to 100m when the light mortars are firing (ranges are made up, but you get the point...) The one coordinating movement of the attacking force is the FO, he shows when to advance and what is the closest safe distance to go to. When the light mortars stop firing, the assault gets going. This means that the _exact_ second when the last rounds are on the target the attacking force will start the assault. It was considered a _very_ bad mistake when we fired so that the last shells were 3 seconds late!

In CMx1 (at least CMAK, don't know about CMBB):

You start with no information about the location of the defensive forces. Ofcourse you can quess where they are. But the pricing of the artillery (at least in CMAK, I don't have CMBB) is made so that it is not wise to fire prep fire to quessed enemy locations. There is no way to make a fire plan to the second. There is no way to coordinate your attack to the second (you can use the pause command, but it isn't the same thing).

Well, what is my point? It is that the procedure given by LongLeftFlank is what you will be doing in CMx1, but it is _not_ what you are supposed to do when attacking. The attacking FO's role _is_ to suppress the enemy positions, but it might well be that he has given all the commands before the start of the actual battle. During the fire plans execution the only thing the FO is going to command to the guns is stop firing. After the plan is over he becomes regular CM FO again. Ofcourse there might be even more guns that could fire opportunity fire even during the plan.

What I would like to see in CMx2: You could buy pre-planned fire missions or FOs. The preplanned missions would be a bit cheaper than the real FOs. When deploying, you could give commands like Fire from turn 8 to turn 10 at that target. Then if you would also have some better way of coordinating unit movement than the pause command, you would have a system which allows for very well planned attacks. The reason I would like to see preplanned barrages and regular FOs bought differently is because the regular FOs fire will be more effective. When they are firing, it will almoust always be fire to 100% known enemy positions and also to a good target. Ofcourse it would be nice to have a possibility to give an order to a regular FO to fire from turn 15 to turn 17 on that hill.

Now, there is only one problem left. You don't have the information needed to do the attack. At least when you are playing assault battles it is highly unrealistic that the only information you have about the enemy is that he is likely to have at least a portion of his troops from the middle of the map to the flags. I don't really know how to overcome this. In scenarios it would be easy to give information to the attacking player about where the enemy is (or give wrong information, to spice things up). But doing this in QBs is propably hard. The information should be something like "a suspected enemy platoon on top of Hill 365". Ofcourse one way is that the player will do the recon. But this would mean that first you will do some careful recon but also try to make enemy screening forces to withdraw to find out where the real enemy positions are. Next, you would do the planning, give orders etc. And then you would have the actual attack carried out. Now, the problem with this approach is that there would be really many turns during which time nothing would happen. This could make the game boring. Or maybe this would make the game much more interesting, but it would just take a much longer time to play one battle.

Link to comment
Share on other sites

Drusus, strange to find a Finn on these forums who doesn't own a copy of CMBB, at least to my mind, intereseting post to be sure though.

Regarding being able to have information on the enemy's positions etc, a recent bone from some BFC for CMx2 is that there will be some sort of percentage setting for being able to know where some enemy units and positions actually are by means of allotting enemy units as starting spotted even if out of the LOS of any of your units.

This is supposed to simulate pre-battle reconnaissance or other kinds of intelligence which should allow some better planning and help with plotting preparation artillery fire plans, I should expect at a guess.

OTOH Drusus in terms of attempting to replicate in some manner this pre-planned artillery fire preparation plan it might be an idea to consider playing a campaigne. During the first battle or two the attackers main objective is to obtain information through reconnaissance on the defensive works such as trenches and bunkers and likely dug in positions etc, then being able to better plan artillery fire preparation from the next battle onwards. This series of techniques could be repeated several times on an advancing campaigne map of course.

[ October 07, 2005, 09:01 AM: Message edited by: Zalgiris 1410 ]

Link to comment
Share on other sites

Originally posted by Zalgiris 1410:

Regarding being able to have information on the enemy's positions etc, a recent bone from some BFC for CMx2 is that there will be some sort of percentage setting for being able to know where some enemy units and positions actually are by means of allotting enemy units as starting spotted even if out of the LOS of any of your units.

When attacking it would be much more important to know where the foxholes, trenches and things like that are. If you only know where some of the enemy units are, it will be too easy to do a gamey exploit of this. It is just enough to start so that your troops are not where you are going to be defending and turn 1 you move your troops to the planned positions. Ofcourse this can also be considered a good real life tactic. It could also be interesting if the defender in some scenarios would gain control of the units only when enemy troops are first seen. This would simulate a suprise attack.

Campaings where you would first try to recon enemy positions. A good idea. Make it like this: The defender only has a mission to control the flags. He doesn't know if the enemy mission is recon or attack. The attacker has only a small amount of units when doing recon. The defender can't move his units between battles. How would this play out? Battle 1 could be a platoon reconing enemy positions of a company sized force. Now, the attacker must be able to go through enemy screening forces with these units. If the defender doesn't have any units in front of his main line, the attacker will get to know the enemy main lines position. Now, why wouldn't the defender just attack the "attacker"? Remeber that the defender doesn't know the enemy has only a platoon in his use. The first battle could also be a attack by a batallion sized force. Or the real attack could be the third one. The second could be moving your units into attack positions. Interesting? I think so. Out of scope of CMx2? Im afraid the answer is yes to this too.

Yes, I know the force sizes are a bit too big for what CMx2 is planned to handle. Not the point of the post.

Link to comment
Share on other sites

My recondmendation for playing a campaigne to do some of what you have been describing very well is mainly intended for CMx1 at the moment and for bigger stuff with CMx2 much later on when CPUs can handle them.

Your points Drusus are certaining fair enough regarding foxholes especially considering that one's Infantry units can "dig in" two foxholes each, such issues as gamey repositioning manoeuvres by the defender did come up in the thread that Steve threw this particular bone. However, I'm thinking more of the attacker actually finding trenches, more so because they are harder to eliminate the occupants of than foxholes, through first battle reconnaissance in the first intance for planning targetted preparatory consentraitions of artillery fires durung subsequent battles.

The size of the attacking force during the reconnaissance phase is an another interesting issue and so is the concept of holding the defenders units in situ some how until spotted or for the next battle or whatever. I can't offer to many suggestions on these but I guess it would be something that the senario designer whould have to get right to make it all work and feel right!

[ October 07, 2005, 10:43 AM: Message edited by: Zalgiris 1410 ]

Link to comment
Share on other sites

Originally posted by Battlefront.com:

Indirect fire in CMx1 was not simualted very well because we didn't have a functioning chain of command. In CMx2 this is all fixed. Now if you want those guns to fire indirectly someone must "take responsibility" for the call. If the Company Commander wants to blind fire into the forest... that's fine. But if he doesn't have the authority to order the guns to perform that function, then it ain't going to happen.

Steve

Good to hear. The follow up question is: if the company commander doesn't have the authority to order the guns, can he send a request to whoever does have the authority, presumably with a time delay? I hate to think that my company commanders are all operating on their own, with no combined arms coordination, or even coordination with each other. Or does this bring up the dreaded batallion HQ question?
Link to comment
Share on other sites

Hat Trick, yes the assignments are flexible as they are in real life. This won't mean too much for CMx1's first release, when the player controls all forces, but it will be very important when CoPlay (multi-multi player) is introduced. If you are in command of a Company and the other guy doesn't want to give you his artillery support... tough luck :D

Steve

Link to comment
Share on other sites

  • 1 year later...
Originally posted by Battlefront.com:

So how is it that Unit A knows about Unit B? Well, Unit A scans the map around itself, within certain parameters, to see what units are within its visual range. In order to do this it basically has to assume that any position may contain any enemy unit at any time. So it must check everywhere regardless.

Does this mean that every unit checks every terrain tile in its field of view, even if it is empty?

Probably i am simply misunderstanding the explanation.. but if it's like that, aren't all those checks too many? The game engine knows already where all the units are, so it should only need to check LOS unit to unit.

... most likely i simply misunderstood anyway smile.gif

Link to comment
Share on other sites

Originally posted by iLikeThisGame:

Does this mean that every unit checks every terrain tile in its field of view, even if it is empty?

Probably i am simply misunderstanding the explanation.. but if it's like that, aren't all those checks too many? [/QB]

Same question here, seems to be a huge waste of computing time.
Link to comment
Share on other sites

It is (of course) no waste of computing time.....otherwise it would not be done this way smile.gif .

If you check LOS from unit to unit, you need to compute that LOS each time increment. That is, for each unit you would have to check the coordinates, same for each other each other unit, then computed the line to each other unit, then look up the terrain between them, then check if that blocks LOS. This times the square of the number of units. And longer lines of sight make for more terain crossed, so for more blocking checks.

The other way, you start by building a LOS table for the map, just noting which terrain tile can see which other terrain tiles. The terrain tiles dont move (in contrast to the units) so this is a feature of the map, and stays the same.

Now you can use this table for a unit to check which tiles it can see from its current tile. Then you check if there are untis in those tiles. This is one check for each unit, uses no calculations, and does not go up squared for the number of units.

Only if this check reveals a *potential* LOS (that is, a unit in a tile that the unit being checked has LOS to) you need to calculate if there is an actual LOS (a more fine grained check if you want, what BF calls a LOF).

So, instead of a large umber of calculations you get a table to check, and do the calculations only if that check shows it necesairy. A huge safe of computing time.

Link to comment
Share on other sites

Bertram

is this your explanation of current system of "Action spots"?

THe 8x8 tiles used for spotting and is this action spot map at least a part of the cause of some of the other issues we are seeing?

In the action spot is not the LOS *spotting) generalized and abstracted to a single point in the dead center of each 8x8 tile like the printed center dot in the middle of the hex in Panzer Leader/Panzerblitz map board?

IF that is the case I am wondering if that is not causeing at least some the problems we are seeing?

Link to comment
Share on other sites

Drusus,

what you describe is definately true for german artillery in WWII. Artillery was not used primarily to destroy resistance (Germany never had enough ammo and guns to establish such a doctrine), but to make the defenders keep their heads down and establish some confusion. Either the attacks were precisely timed, so the BTN commanders knew, when the barrage would advance further, or infantry commanders used illumination signals that artillery should advance with their fire.

IMO it's a great idea to "buy" multi-stage artillery plans. Several stages, that can either be pretimed or triggered by the player would be a step forward in realism - at least for the WWII release.

Link to comment
Share on other sites

Originally posted by Bertram:

Now you can use this table for a unit to check which tiles it can see from its current tile. Then you check if there are untis in those tiles.

I think the engine already knows which tile every unit is in, so it only needs to check the precalculated LOS table unit-tile to unit-tile, not every tile in field of view, and then possibly go on with more precise calculations based on actual situation. That is a very much smaller number of checks.

Anyway the most probable thing is that the engine already works like this.. i think Steve was explaining it from a conceptual point of view, not explaining the actual algorithm.

Link to comment
Share on other sites

Correct, I was explaining things from a layman's perspective, which I have to do since I am not a programmer :D Bertram's explanation is very good because it is coming from someone who understands that computers think of things in different ways than Humans do. The Action Spot system allows CM to precompile a ton of LOS/LOF information one time (during the loading process) and therefore avoid having to do everything on the fly during the game. The latter is not practical for this sort of game.

Another way to think about this is one unit figuring out which of 50 enemy units it can see. If it always checks which ones it can see and can't see, then it has to do 50 computed LOS checkes every time it "spots". Well, what if the friendly unit is at the back of a building and can't see more than a few meters ahead? Massive waste of resources to check each of those 50 units to find out it can't see any. As Bertram says, much easier to consult a table and find that there are no units in the few Action Spots that can be seen.

Since it is rare that a unit will have a chance of seeing all the enemy units at one time, it doesn't make sense to have a system that presumes that all enemy units can be seen every time a check is made.

TomW

is this your explanation of current system of "Action spots"?
All grids of information behave conceptually the same way to the computer. What is different is the size of the grid and therefore the number of things it has to calculate and the finer that more refined examination must be. CMx2 is currently set up with an 8x8 grid because it seemed like a size that the computer could handle. In theory Charles can shrink this grid down to partial meters if he wanted to without manking many code changes (graphics, UI, gameplay elements, etc. might have to be radically altered though) to the LOS/LOF system or other key things. What would change is the strain on the computer's CPU, RAM, and other bits of hardware.

Steve

Link to comment
Share on other sites

All grids of information behave conceptually the same way to the computer. What is different is the size of the grid and therefore the number of things it has to calculate and the finer that more refined examination must be. CMx2 is currently set up with an 8x8 grid because it seemed like a size that the computer could handle. In theory Charles can shrink this grid down to partial meters if he wanted to without manking many code changes (graphics, UI, gameplay elements, etc. might have to be radically altered though) to the LOS/LOF system or other key things. What would change is the strain on the computer's CPU, RAM, and other bits of hardware. Steve
Steve, I've read considerable, though certainly not the bulk of the LOS/LOF threads. Given my non-programming and layman's background, however, forgive this particular question in advance. Nevertheless, given your statement above, would it be possible to do LOS checks in the current center action spot as well as each CORNER of the 8x8 grid? I originally thought this might take five-times the LOS "computing power" (four corners, one center) but then realized that would be repetitive counting as a corner of one square is actually the corner of most likely FOUR squares. Closing off a typical tic-tac-toe grid equals "36 independent square-corners" but only "16 shared corner points." 16+9-center equals 25 LOS checks versus 9 of the present center-point action spots. In this model, this equates to 5x the LOS checks (four corners, one center) for the price of less than 3x the "LOS computing power." Bottom-line, I have no idea if this is easily programmable but I assume that such a map-grid LOS table-check would resolve a huge number of LOS issues presently observed....

If I sound like an idiot here, don't bother responding smile.gif

Regards,

LeBlaque

Link to comment
Share on other sites

I suck at math smile.gif

but, this sounds good to me:

"Closing off a typical tic-tac-toe grid equals 36 independent square-corners" but only "16 shared corner points." 16+9-center equals 25 LOS checks versus 9 of the present center-point action spots. In this model, this equates to 5x the LOS checks (four corners, one center) for the price of less than 3x the "LOS computing power." Bottom-line, I have no idea if this is easily programmable but I assume that such a map-grid LOS table-check would resolve a huge number of LOS issues presently observed.... "

I like the suggestion

Link to comment
Share on other sites

I am almost certain that the most efficient way to deal with the current LOS problem without rewriting the engine from scratch is to extend a units LOS to its surrounding action spots in some circumstances. Especially if the squad is spread over multiple action spots and/or moving in a very slow and methodical manner. This would reflect the point man peeking around corners instead of just walking out into the street. Though I certainly don't have a fiber optic connection straight to the jar.

A corner animation would be cool, but it could come later.

Link to comment
Share on other sites

Originally posted by Battlefront.com:

Another way to think about this is one unit figuring out which of 50 enemy units it can see. If it always checks which ones it can see and can't see, then it has to do 50 computed LOS checkes every time it "spots". Well, what if the friendly unit is at the back of a building and can't see more than a few meters ahead? Massive waste of resources to check each of those 50 units to find out it can't see any. As Bertram says, much easier to consult a table and find that there are no units in the few Action Spots that can be seen.

Steve

What i was saying in my post is that the LOS table should not be "scanned" tile by tile: in programmer's language that's called a linear search algorithm, and it's very very inefficient on such a large dataset. The best way to look for data on a table is by implementing a binary search algorithm: this kind of algorithm allows to you to find the information you need very faster.

An example (trying not to talk too much like a programmer):

on a 2km x 2km map, the 8x8 m grid is composed of 62,500 tiles (or Action Spots).

For each of these tiles you have precalculated a list of tiles that can be seen from there, that's the LOS table.

The algorithm Steve described is this: every unit checks all of the tiles who are in its "can see" list.

Suppose you have 50 units, placed in 50 different tiles, we can assume that on average each of them can have in its list a number of entries who can be as much as 30,000 or so (it's just a rough estimate, and obviously this is dependent on the terrain and on unit placement, they'll be much less in urban settings and possibly more in open terrain).

Let's just assume an average of 10,000 visible tiles for each unit.

Now, if for every tile occupied by a unit you check all of the visible tiles, including empty ones, a full LOS table checks requires 50 x 10,000 = 500,000 iterations.

Instead, if you implement a binary search algorithm, you can do the check this way:

for each tile occupied by a unit, you consider all of the other tiles who have a unit inside, and check if each of them is contained in your "can see" list using binary search.

Binary search is fast: it allows you to find an item in a list of 10,000 in only 15 iterations (or less), without needing to scan the entire list.

So now the total number of iterations required is 50 x 50 x 15 = 37,500

Since at this level LOS can be considered working both ways, the actual number is halved: 18,750

(I'm still talking about checks to the table, without the need to compute any coordinates at all).

So, the number of checks to do a complete LOS table check would be:

- with full field of view scan, as described in previous posts: 500,000

- with binary search and direct tile-to-tile inquiry: 18,750

That is, in the second scenario you could iterate all the LOS table in only 5% of the time.

With the time spared you can do more precise calculations based on the actual 3d coordinates, maybe even including checking obstruction to LOS from moving vehicles in real time (i'm not sure of this though).

This gain of course heavily depends on how big the "can see" lists actually are as well as on the number of units, but surely when you have to find data in a list, and the list contains more than 20-30 items, binary search is the way to go.

Obviously i don't know exactly how the game implementation works at this level: i'm just reasoning basing on Steve's description, and this is where my hypothesis can possibly be wrong. Surely Charles could put the final word on this. My idea is still that it was just the explanation to be inaccurate.

Anyway, it's a great game, and getting better smile.gif

[ October 07, 2007, 06:16 AM: Message edited by: iLikeThisGame ]

Link to comment
Share on other sites

iLikeThisGame,

another way to tackle LOS tables is to store for each spot, for several directions (or pizza slices) from that spot the distance to which LOS extends in the best case.

With this, you establish whether's a likely LOS/LOF for a pair of units u1 and u2 as follows:

- los(spot(u1), dir(u2, u1)) >= dist(u1, u2) && los(spot(u2), dir(u1, u2)) >= dist(u1, u2)

If this expression returns false, you're done. Otherwise, you perform a LOS check (and take into account all dynamics such as vehicles, smoke, vegetation, posture, etc.). Total: 50x50x2 table lookups (worst-case).

The downside of such an approach (and the downside of LOS tables in general) is that it is expensive to repair these tables when obstacles (buildings, etc.) are removed.

William

ref: http://www.cgf-ai.com/slides_gdc2005.html, slide 38

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...