Complete.Org: Mailing Lists: Archives: freeciv-dev: May 2003:
[Freeciv-Dev] Re: (PR#2581) Layers proposal redux

[Freeciv-Dev] Re: (PR#2581) Layers proposal redux

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: raahul_da_man@xxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#2581) Layers proposal redux
From: "Raimar Falke" <rf13@xxxxxxxxxxxxxxxxx>
Date: Tue, 27 May 2003 12:22:53 -0700
Reply-to: rt@xxxxxxxxxxxxxx

On Tue, May 27, 2003 at 09:57:41AM -0700, Davide Pagnin wrote:
> On Mon, 2003-05-26 at 23:42, Per I. Mathisen wrote:
> > On Mon, 26 May 2003, Raimar Falke wrote:
> > > I think this is pretty straightforward. So what would this patch do?
> > >  - change the attack field in the ruleset to a list
> > >  - change the attack_strength field in struct unit_type to an array
> > >  - network support for the previous point
> > >  - extend function in common/combat to take the defender
> > >  (base_)get_attack_power for example
> > >  - update various output function (client help, client unit info, ...)
> > >  - add logic that you can't attack a layer for which you have attack==0
> > 
> > Sounds good for the behind-the-scenes implementation. My only worry is
> > that you might overload the information presented to the user.
> This means that this is the solution that is going to be implemented?

We are discussing it. Do you think it is a good idea.

> To be more clear. After reading the Layers Redux from Per, this proposal
> seems quite different from it, at least in some crucial points.

It isn't an alternative to Per's Layer Redux. It is an addition. With
Per's Layer Redux we get layers and new attack rules. With my proposal
from above we get different attack power for different layers.

> > > TODO:
> > >  - change AI to cope with this (the AI may use the average attack
> > >  power for the start)
> > 
> > The AI usually knows which layer it is going to attack, so this shouldn't
> > present much of a problem.
> > 
> >   - Per
> On civ1 / civ2 compatibility issues:
> I've seen Per proposing all units in the same layer, this seems not a
> good way to be "civ[12]" compliant.
> Say we put: sea=0, land=1, air=2
> if bomber is in layer 1, it can be attacked by every unit, with no
> substantial differences from other units...

> if bomber is in layer 2, only units that has attack power in layer 2 can
> attack it, in this civ[12] environment, only fighter is in layer 2 and
> has attack power > 0


> As far as I'm concerned on civ[12] compatibility, it is better to
> preserve fighter as only air attacking unit than assuring that a bomber
> can prevent an attack from an armor to a whole stack of artillery.

> I'm still not convinced, anyway, that we have to drop compatibility with
> civ[12], in this respect.

We could model the units "correctly" (i.e. only fighter has air
attack) and for civ[12] we would only need a special rule for the

> The whole point are in these statements of Per Layer redux:
> 1. You cannot attack a tile if your own layer contains one or more units
> but you cannot attack any of them. (Layer superiority rule.)
> 2. Otherwise, if there is any unit on target tile that you can attack,
> you can attack the tile.
> 3. Layers as such neither allow nor prevent attack.
> (this is only a clarification not a rule per se)
> This means, if we put bomber 0/x/y + z land attack, that a fighter over
> a stack of artillery will prevent a bomber to attack them cause of 1.
> (NOTE: This example can't happen in civ[12] cause of the fact that move
> part of the turn isn't simultaneous, and a fighter can't be on fly
> during other player's turn)

> As far as realism is concerned, I think that a bomber should be allowed
> to attack, and to take its risks in doing so (if there are fighters the
> bomber are more likely to be taken down but they can also succeed in the
> attack)
> For solving this issue, we can consider to add more that 3 layers, so
> that we have, say: high-air, low-air, land, sea, sub-sea
> bomber is high-air with 0/4/2 with 5 land attack and 5 sea attack (and 5
> sub-sea?)
> fighter is low-air with 4/4/2 with 4 land attack, 4 sea attack, 4
> high-air attack, etc.

This possible for the default ruleset but this is some time
away. First some code has to go in.

> NOTE: If we introduce different attack power for every layers, we should
> consider to do the same for defense power. (this will make AEGIS not an
> exception but something that has big low-air and high-air defense power)
> I realize that this seems overly complicated, but I do think that
> freeciv players want something usable and understandable, but an
> attack/defense matrix of values isn't complicated at all, a novice
> player will just use common sense at think that a bomber is good for
> attacking land targets and he will realize afterwords that he was right
> but that there are some exceptions (if the city is defended by a
> fighter, for example)

I also thought about this. It looks like the natural extension. But I
think this is too much complication and too less benefit. The "right"
model would be IMHO that you have 
 - one attack power per layer and
 - one armor value
instead of the current 3 values (att, def, firepower). Both units
attack alternating with the attack power and this is modified by the
armor value of the other unit. Reason 1: it doesn't change the kind of
weapon you use for attacking and defending. Reason 2: it doesn't
matter if the 20mm bullet which hits you is from a plane or a
ship. Your armor (if you have one) is equal thick all over the place.

I know that this model has no chance for civ[12] compatibility and it
has low chances to ever get into freeciv.

> Now, to turn back to civ[12] compatibility, I want to introduce another
> topic in this discussion, cause I think it is time to talk of this and
> it is useful as an example:
> killstack! 
> As far as realism is concerned, it is not clear at all how, by
> destroying the most powerful defense unit of a region, you will succeed
> in destroying all the others! 
> Imagine that you have 5 mech. inf., fortified on a mountain tile, all
> veterans. If you attack them with a veteran bomber, there are low
> chances that you will succeed, but that event may happen.
> Is is realistic that the other 4 units are destroyed?
> I think not.
> A more realistic approach, should be to destroy only one unit (as every
> tile has a fortress in it).

I agree that it isn't realistic but I think that Sid Meier and his
crew had reasons to put it this way. Possible is for example that
without this rule the war was too slow because you had a hard time
killing all the defenders.

> Another realistic approach is to making the other units "retreat"
> automatically (and eventually attack another tile if no free tile are
> present), those units should have a penalty to attack in this condition
> (caused by disorganization, but definitely destroying them isn't the
> best solution nor the most fair for the defender)
> This is done this way cause of civ[12] compatibility.

> By introducing layers, you are going to break civ[12] compatibility on
> an aspect that has some problems (bomber that defend artillery from
> armor) but those problems aren't critical IMHO, and at the same time,
> you continue to use another aspect that is not realistic and that is
> unfair for the defender.

At least my proposal (different-attack-powers-for-different-layers) is
not primary driven by realism. We already has special rules for this
and this proposal just generalize it. I also remember someone
requesting a ship-buster flag some time ago. This would be possible

> I have to think on a feasible solution for layers, that maintain
> civ[12] compatibility, for the moment this is may 2 cents on the
> argument.

From what I understood I think that code changes for civ[12]
compatibility are rather small.


 email: rf13@xxxxxxxxxxxxxxxxx
 "If at first you don't succeed... well so much for skydiving."

[Prev in Thread] Current Thread [Next in Thread]