Page MenuHomeWildfire Games

Nescio
User

Projects

User Details

User Since
Sep 7 2017, 12:14 PM (168 w, 6 d)

Recent Activity

Yesterday

Nescio added a comment to D3169: [gameplay] Adjust aura ranges following rP24217.

I'm not denying the math, but I don't think this tells the whole story. Area is hardly useful in 0 A.D., since you're rather unlikely to actually fill space up completely. Distance-to-aura matters much more, and that remains only about 4 meters in your example, or < .5 seconds for most units.
The fact that the previous calculations were buggy is a problem: imagine a wide enough entity, it might actually never be able to get inside the range of an aura smaller than its clearance, as the target size wasn't accounted for. We also directly had the range issues with buildings and units. Arrows that missed their target would also fail to pick all possible alternative targets.

In general (e.g. attack range) I agree, what matters is the distance. And I'm certainly not saying the old situation was perfect. However, this patch is on auras, and for auras (and territory) I believe what's meaningful is the aura. Just have a look at those of the monument, pyramid, and temple. What matters is not how quickly your units can reach it, but how many units benefit while fighting the enemy.

The fact is that even with a perfect edge-to-edge check system, bigger buildings would have bigger auras. It is possible to reject that notion entirely, but I'm not certain that I'd call that better. Larger buildings are also harder to place, etc.

Yes, they would, but under the distance to edge, the increase in area is simply proportional to the size.

Wed, Dec 2, 10:32 PM
Nescio added a comment to D3169: [gameplay] Adjust aura ranges following rP24217.

Edit: in fact, compared to before, a building larger than the "expected" size will go from a large negative range penalty to a small positive one, and a building smaller than the expected size will go from a large positive bonus to a small negative one. The polarities are reversed, but the magnitude is likely to decrease.

You're right that before smaller structures were better, now larger are at an advantage. It's probably an improvement for attacks (at least archers can no longer hit a fortress without it shooting back). However, for attacks it's only the distance that matters, for auras it's the area. Because it's squared, small differences have more significant consequences.
In the brit vs spart temple example above, previously the difference was −115/1600π=−2.3%, now it's 304π/1600π=+19%.
Please correct me if I'm overlooking something.

Wed, Dec 2, 10:13 PM
Nescio added a comment to D3169: [gameplay] Adjust aura ranges following rP24217.

Not quite, since you need to account for this diff, which reduces the range by [average size of temples, or about a]. The difference will depend on the size of the temple and the size of the range, but it's not that unfair.

The brit temple has an obstruction radius of about 16 and the spart temple of about 20. The distances are quite close, but what matters is the area, which is squared. Let's say the new aura radius is 20 instead of 40. The brit temple then covers an area of 1296π, the spart temple 1600π. Because, a, b, and r are all positive (>0), the difference in area (here 304π or about 955) is always much larger than the difference in obstruction size (here 17.5×35.5−22.5×22.5=115). The effect is disproportionate: the larger the structure, the greater the free area.

Wed, Dec 2, 9:55 PM
Nescio added a comment to D3169: [gameplay] Adjust aura ranges following rP24217.

Before, some temples covered areas smaller than others. A large temple might even have covered no area at all.

Yes, but the difference is now larger:
Previously, a temple of size a×a covered an area of πr² - a².
Now, the same temple covers an area of π(r+a)² - a² = πr² + 2πar + (π - 1)a².
The larger the temple is, the disproportionally larger the area becomes.

Wed, Dec 2, 9:08 PM
Nescio added a comment to D3169: [gameplay] Adjust aura ranges following rP24217.

Is it more predictable, though? Now obstruction size is taken into account, it means some temples cover larger areas than others.
Also, range visualizations seem to be still calculated from the centre:


The horseman benefits from the pyramid aura (see icon), but is clearly beyond the indicated line.

Wed, Dec 2, 8:48 PM
Nescio added a comment to D2892: clean up market and other structure classes.

@Angen, you pointed out some of the Barter/Market/Trade classes ought to be changed, however, it's not always clear to me into what exactly; see earlier posts.

Wed, Dec 2, 8:33 PM
Nescio updated subscribers of D2959: deprecate template_unit_cavalry_melee.xml and *_ranged.xml.

@Angen, interested in reviewing this one?

Wed, Dec 2, 8:24 PM
Nescio added a comment to D3169: [gameplay] Adjust aura ranges following rP24217.

The old way was problematic, but the new situation is similarily problematic.
I'm not even sure which one I prefer. For gate pass radius and territory influence calculating from the centre is probably better, but for structure attack vision it's not.

I do agree that it'd be good to have better range checking, but it has performance impacts...

Performance is certainly important! I'm not a programmer and don't really understand code. Could you give an indication how costly various approaches are, compared to each other?

  • distance to centre (old)
  • distance to circle around obstruction (current)
  • distance to ellipse around centre, with r_1 the obstruction width and r_2 the obstruction depth
  • distance to corners (i.e. four circles)
  • distance to edge (i.e. not a circle)
Wed, Dec 2, 7:58 PM
Nescio added a comment to D3178: deprecate template_unit_*_hoplite.xml.

The purpose of this patch is to improve consistency and treat those formations on the same level. Currently the phalanx is the only one with separate unit templates; that's quite an inefficient approach; if we do that for all formations we'd have dozens of such files more, hundreds if we want to take into account combinations.

Why? What if I want my roman spearmen to use it ?

If that's desired I supposed we could add it into the units/rome/infantry_spearman_b.xml file.

In a normal game they won't, but they will if the campaign gives you some extra units, or if a building suddenly allows you to recruit them.

Good point! Any civ can get mercenaries from cart embassies or kush camps. I'm not sure those units are supposed to be able to form a testudo. If not, then perhaps it's better to remove that formation from the generic template_unit* files and insert it instead in the relevant specific units/rome/* files.

I believe anticavalry was removed because it's broken.

It's still present in the rome.json civ file. (The other two further questions refer to pers.json and kush.json.)

Wed, Dec 2, 7:39 PM
Nescio added a comment to D3169: [gameplay] Adjust aura ranges following rP24217.

Distance from a structure, yes, but the new implementation is a distance to a circle around a structure, which is not quite the same thing. The more oblong an entity, the worse it becomes. And even for circular structures it's off.

Wed, Dec 2, 7:20 PM
Nescio added a comment to D2685: simplify mercenary cost.

The same could be said about civ bonuses: in principle those changes could be done in the specific templates too. Also unit_elephant_african.json and unit_elephant_indian.json, or unit_advanced.json and unit_elite.json.
The advantage of this patch is that if someone wants to change these values, e.g. increase mercenary cavalry metal cost to +50, or reduce infantry to -10, that could be done by simply editing a single file, rather than having to go through numerous specific templates. Not everyone knows how to use grep.

Wed, Dec 2, 7:16 PM
Nescio requested review of D3178: deprecate template_unit_*_hoplite.xml.
Wed, Dec 2, 3:59 PM
Nescio added a comment to D2972: [gameplay] Increase hack damage of pikemen.

It's a little frustrating when women do more damage to siege engines than pikemen.

current pikeman  : 1 hack / 2 s = 0.5 hack/s
proposed pikeman : 2 hack / 2 s = 1 hack/s
female citizen   : 2 hack / 1 s = 2 hack/s
Wed, Dec 2, 3:36 PM
Nescio updated the diff for D2685: simplify mercenary cost.
  • rebased
Wed, Dec 2, 2:11 PM
Nescio planned changes to D2685: simplify mercenary cost.

(Needs to be rebased.)

Wed, Dec 2, 1:56 PM
Nescio added a comment to D2801: [gameplay] enable stable for all civilizations.

persians lost their unique structure, do they get something else here like lowered cost or something ?

Persians have four types of citizen cavalry and two types of champion cavalry, more than any other civ (most have two and one). Moreover, the training_levy_cavalry and training_conscription_infantry are available to pers only, and special_war_horses is available only to pers and sele. In other words, the stable is probably more useful for pers than for other civs, I don't think it's necessary to make it even cheaper.

yes from my perspective, stables should get similar tech as barracks to heal units.

An earlier version introduced a few cavalry technologies for the stable, but it was pointed out it's probably better to do that in a future patch. The heal_barracks affects only units garrisoned in the barracks; a heal_stable technology could be introduced, of course; however, that raises a few questions:

  • Why only the barracks and stable, and not other structures?
  • Would playes actually research such technologies, given that garrisoning a temple is always more effective? If not, why keep such technologies?
  • Wouldn't it make more sense to have just one technology, researchable at the temple, that improves the garrison heal speed of all structures?

It's not obvious what's the best approach, therefore I'd say it belongs in a separate patch.

I do not really like how fortresses are getting emptier and emptier with every patch.
For some civs they are already empty and there is almost no reason to build them instead of hp and will to fight tech.

Why should fortresses train units? As you point out, athen and spart fortress don't train anything at all, so why should those of other civs be treated differently, when they're otherwise equivalent? Isn't the purpose of a fortress defending an area? I don't think it needs more than a decent attack, a lot of health, a high garrison capacity, and perhaps a territory root (D1762). Towers don't train soldiers either.
(I'm also in favour of moving the attack_soldiers_will technology to the Wonder and civ-specific technologies elsewhere.)

Wed, Dec 2, 1:56 PM
Nescio requested changes to D3169: [gameplay] Adjust aura ranges following rP24217.

These reductions are too severe. Keep in mind a structure's radius is from centre to edge, thus to calculate it one should use half the width and half the depth of an entity, i.e. a structure with an obstruction size of 2a × 2b has a radius of c = √(a² + b²).
I also wonder whether it wouldn't make more sense to continue calculating auras from the centre; that's also still done for territory influence, isn't it?

Wed, Dec 2, 1:29 PM

Tue, Dec 1

Nescio updated subscribers of D3155: [WIP] - Show Gatherers next to resource icons.

Traders do generate income, omitting them while displaying gatherer counts seems rather incomplete. Likewise, it would be nice to see resource trickle totals.
Moreover, in my 0abc mod, I added a resource, silver, which can not be gathered directly; traders generate silver, but are no longer able to get other resources. I believe @wowgetoffyourcellphone does something similar in his Delenda Est mod. I'm not saying you should account for whatever any mod does, but it doesn't harm to look a bit beyond the current public mod and make the code more generic.

Tue, Dec 1, 11:54 AM
Nescio added a comment to D3174: [gameplay] remove rome army camp production queue.

Yes, people should build barracks too!
The whole point of the army camp is that it can be built in neutral and enemy territory. It's fundamentally a weaker fortress, costing wood instead of stone. Similarily, siege walls can be built neutral and enemy territory, unlike city walls, and are weaker and cost wood.

Tue, Dec 1, 11:43 AM
Nescio requested review of D3174: [gameplay] remove rome army camp production queue.
Tue, Dec 1, 12:14 AM

Mon, Nov 30

Nescio requested review of D3172: [gameplay] remove female inspiration aura.
Mon, Nov 30, 4:05 PM
Nescio added a comment to D3155: [WIP] - Show Gatherers next to resource icons.

First of all, thank you for rebasing and uploading this patch! This is something many people would like to see in game, myself included.
What do you do with traders? Those can generate any resource. Also, should resource gather rates be taken into account?

Mon, Nov 30, 2:52 PM

Mon, Nov 23

Nescio added a comment to D3134: fix some typos.

I assume the rest of the ” \n -> ”\n is not done to not cause needless retranslations.

Indeed.

Mon, Nov 23, 12:07 PM

Sun, Nov 22

Nescio requested review of D3134: fix some typos.
Sun, Nov 22, 6:17 PM
Nescio added a comment to D3133: Update linux CI to GCC7.

Why not go to gcc10?
Also, the list is not exactly the same as the one listed on https://trac.wildfiregames.com/wiki/BuildInstructions#DebianUbuntu ?

Sun, Nov 22, 5:01 PM
Nescio added a comment to rP24217: Update range queries to account for entity size..

If it does, then this makes structures with local auras significantly more effective, especially temples.

Sun, Nov 22, 1:04 PM
Nescio added a comment to D3098: outpost → lookout.

(it's also a bit odd that the aura is above the building description imo)

There are various tooltips, and what's listed in them and their order is a bit of a mess:

  • when hovering over an entity icon in the right selection panel, the order is name, classes, auras, identity tooltip, costs, other stats
  • when hovering over an entity icon in the structure tree, the order is name, costs, identity tooltip, auras, other stats
  • when having right-clicked on an entity icon to open the detailed information, the order is name, costs, other stats, identity tooltip, auras, classes, built by, trains, researches

I wouldn't say so, no [...]. It doesn't imply the building is basically useless without a garrison, imo, which it is (see Towers saying "additional arrows", which implies that there are some by default).

Feel free to propose a different <Identity/Tooltip> string.

Further, I'm not sure we shouldn't make a different aura, since adding defense bonus for the outpost feels slightly wrong (there's no wall...)

Both the “outpost” and wall segments have a parapet, so the resistance bonus is appropiate. The aura name ought to be changed, or perhaps indeed have a separate copy for the “outpost”. (And maybe a third for the siege walls, which are noticeably lower?)

(incidentally, at this point, is there really an advantage to an outpost over a wall tower?)

The “outpost” is really cheap, can be built outside your territory, and is available in the village phase. A wall tower fires arrows when garrisoned, like towers (and unlike other wall segments).

Sun, Nov 22, 1:01 PM
Nescio updated subscribers of D2863: [gameplay] deprecate stoas and stoa champions.
Sun, Nov 22, 12:44 PM
Nescio updated the diff for D2863: [gameplay] deprecate stoas and stoa champions.
  • forgot obsolete stoa loading screen tip
Sun, Nov 22, 12:42 PM
Nescio added a comment to rP24217: Update range queries to account for entity size..

Does this affect auras? If so, shouldn't their ranges be adjusted too?
And territory influence radius?

Sun, Nov 22, 12:32 PM
Nescio added a comment to D3098: outpost → lookout.

Isn't that already implied by the “Wall Protection” aura tooltip?

Sun, Nov 22, 12:27 PM
Nescio added a comment to D3098: outpost → lookout.

And I would argue that new players regularly get confused about this. This is somewhat besides the point, but IMO we can't just ignore the utter influence that game has had/still has on our player base.

To be clear, I'm not saying we should it ignore entirely, but on the other hand, we shouldn't assume everyone is familiar with Age of Empires either.

I wouldn't call it a dealbreaker in this instance, though I might wonder if the outpost/watchtower tooltip is accurate nowadays.

It is:


Sun, Nov 22, 12:15 PM
Nescio added a comment to D3122: Fixes after rP24216..

Also, something odd is going on with the Fortress random map:

Sun, Nov 22, 12:04 PM
Nescio added a comment to D3098: outpost → lookout.

Well, the same is true of a lookout, to an extent. Certainly doesn't have to be a tower.

True. As pointed out earlier, I opted for “Lookout” to be able to avoid the word “tower”.

I guess either "Observation Tower" or "Lookout Tower" then.

If “tower” is to be part of the name, then I'd prefer “watchtower” (clearer and shorter) to “lookout tower” or “observation tower”.

If we go with Watchtower, which is definitely accurate, we need to acknowledge that it is _not_ the same thing ad the various AOE Watchtowers, which may or may not be obvious to players.

Why exactly? Age of Empires is a different game. We don't highlight that fireships in 0 A.D. are different from theirs, or explicitly emphasize in game that infantry can build and gather, or that structures have territory and can be captured.

Sun, Nov 22, 11:53 AM
Nescio added a comment to D3098: outpost → lookout.

As for the Age of Empires series, their tower terminology is not constant, as I wrote elsewhere (https://code.wildfiregames.com/D2551#129902 ; also, in Age of Empires III, the tower is called “Outpost”). Moreover, they're often sloppy when it comes to language, confusing “ballista” and “catapult”, or “fireship” and “demolition ship”, calling a building a “blacksmith” (i.e. a person), and introducing an ahistorical “siege workshop”. So I'd say Age of Empires is a great example of what 0 A.D. shouldn't do.
As for “observation post”, this can be anything, including a half-buried bunker, or a car that can move around.
I wouldn't mind renaming the current “outpost” to “watchtower” (no space), since that is a correct term.

Sun, Nov 22, 10:37 AM

Sat, Nov 21

Nescio edited reviewers for D3122: Fixes after rP24216., added: Restricted Owners Package; removed: Restricted Owners Package, Nescio.

grep -r '"units/"' suggest you should also have a look at the maps/scripts/Regicide.js and maps/random/rmgen-common/player.js files.
There might be more, I don't know what to look for, and I can't say I understand map scripts.

Sat, Nov 21, 4:30 PM
Nescio added a comment to D2886: [gameplay] introduce crossbowman templates.

D2901/rP23890 added the champion crossbowman to the arsenal. Moreover, various crossbowman units are available in the Han China mod: https://github.com/0ADMods/han_china

Sat, Nov 21, 10:45 AM
Nescio added a comment to D2689: Update fmt to the most recent release.

Maybe it has a different name on Debian? E.g. fmt-dev, fmtlib, libfmt.

Sat, Nov 21, 10:42 AM

Fri, Nov 20

Nescio requested review of D2992: [gameplay] remove structure <Loot/xp>.
Fri, Nov 20, 10:50 AM
Nescio updated subscribers of D2886: [gameplay] introduce crossbowman templates.

@badosu, @borg-, @ValihrAnt, any opinions on the proposed values?
For comparison:

 pierce damage / reload time = damage per second ; maximum range
champion archer (unchange):     6.5 / 0.5 = 13   ; 76
current champion crossbowman:   6.5 / 3   =  2.2 ; 76
proposed champion crossbowman: 40   / 3   = 13.3 ; 60
Fri, Nov 20, 10:30 AM
Nescio updated subscribers of D2950: [gameplay] keep population for houses.

@ValihrAnt, any opinions on this?

Fri, Nov 20, 10:25 AM
Nescio updated the diff for D2992: [gameplay] remove structure <Loot/xp>.
Fri, Nov 20, 10:24 AM
Nescio added a comment to D2992: [gameplay] remove structure <Loot/xp>.

It's an improvement.

One could say this patch does two things:

  • remove experience from structures that are unable to shoot projectiles
  • make experience proportional to health for structures that can attack

The latter is a bit simplistic, since structures can have quite different resistance and attack values.

Could probably even increase the amount of xp by multiple times,

I opted for 10% to stay close to the current values, however, it could be changed to 20% or some other number, if you think that's better.
Or we could just remove experience from all structures altogether.

Fri, Nov 20, 9:15 AM

Thu, Nov 19

Nescio updated the diff for D2959: deprecate template_unit_cavalry_melee.xml and *_ranged.xml.
Thu, Nov 19, 8:00 PM
Nescio removed a reviewer for D2886: [gameplay] introduce crossbowman templates: Restricted Owners Package.
Thu, Nov 19, 6:29 PM
Nescio added a comment to D2886: [gameplay] introduce crossbowman templates.

Thanks but no thanks: doing that kind of defeats the purpose of this patch, because then mods with crossbowmen (e.g. Han China) still need to include these templates to define some reasonable values. Having crossbowmen with only one-sixth the damage per second as archers doesn't make much sense.
Going the other way around is more reasonable (i.e. changing the values first, introducing separate templates afterwards), but then we encounter the same limitation, and it would be more work (maintaining two patches), hence why I did it all in a single patch.

Thu, Nov 19, 6:17 PM
Nescio added a comment to D2996: [gameplay] Move bireme to village phase and balance..

Or maybe keep the bireme as is and introduce a new, much weaker (e.g. 400 health, 1 arrow, 10 garrison capacity) village-phase ship for all civs.

Thu, Nov 19, 5:25 PM
Nescio requested changes to D2996: [gameplay] Move bireme to village phase and balance..
  • brit, gaul, iber need a bireme
Thu, Nov 19, 5:05 PM
Nescio updated the diff for D1762: [gameplay] give Fortress a territory root.
Thu, Nov 19, 4:32 PM
Nescio added a comment to rP24217: Update range queries to account for entity size..

If I understand correctly, this is the distance at which the gate opens or closes when friendly units approach or leave.
The distance parallel to the wall is unimportant, what matters is the distance perpendicular to it. The thickest gate (ptol) has a footprint depth of 12, so the gate range reduction ought to be at most half that.

Thu, Nov 19, 4:06 PM
Nescio added a comment to rP24217: Update range queries to account for entity size..

Why the severe <Gate/PassRange> reduction?

Thu, Nov 19, 3:50 PM
Nescio updated the diff for D2815: [gameplay] give all civs rams.
  • rebased
Thu, Nov 19, 3:43 PM
Nescio updated the diff for D2672: [art/actors] move siege tower and ram actors from structures to units.
  • rebased
Thu, Nov 19, 3:28 PM
Nescio updated the diff for D2494: [gameplay] overhaul artillery attacks.
  • rebased
Thu, Nov 19, 2:14 PM
Nescio updated the diff for D2993: [gameplay] add visible garrison points to rome siege wall tower.
  • rebased
Thu, Nov 19, 1:59 PM
Nescio updated the diff for D2992: [gameplay] remove structure <Loot/xp>.
  • rebased
Thu, Nov 19, 1:52 PM
Nescio updated the diff for D2972: [gameplay] Increase hack damage of pikemen.
  • updated
Thu, Nov 19, 1:22 PM
Nescio updated the diff for D2801: [gameplay] enable stable for all civilizations.

*rebased

Thu, Nov 19, 1:08 PM
Nescio updated the diff for D2843: [gameplay] kush: tweak Amun temple, deprecate upgrade_rank_elite_healer.json technology.
  • rebased
Thu, Nov 19, 12:51 PM
Nescio updated the diff for D2866: [gameplay] tweak human training times.
  • rebased
Thu, Nov 19, 12:43 PM
Nescio updated the diff for D2950: [gameplay] keep population for houses.
  • rebased
Thu, Nov 19, 12:35 PM
Nescio updated the diff for D2939: [gameplay] delete armor_hero_01 technology.
  • rebased
Thu, Nov 19, 12:27 PM
Nescio updated the diff for D2688: [art/actors] move a few unit actors and icons.
  • rebased
Thu, Nov 19, 12:21 PM
Nescio updated the diff for D2863: [gameplay] deprecate stoas and stoa champions.
  • rebased
Thu, Nov 19, 11:54 AM
Nescio added a comment to rP24215: Let players remap hotkeys in-game, fix default hotkeys being qwerty-specific..

Also, when running the checkrefs.pl script, I get:

Loading GUI XML...
Unexpected GUI XML root element 'page':
$VAR1 = {
          'page' => {
                      'include' => [
                                     'common/modern/setup.xml',
                                     'common/modern/styles.xml',
                                     'common/modern/sprites.xml',
                                     'common/setup.xml',
                                     'common/sprites.xml',
                                     'common/styles.xml',
                                     'common/global.xml',
                                     'hotkeys/sprites.xml',
                                     'hotkeys/hotkeys.xml'
                                   ]
                    }
        };
Thu, Nov 19, 11:44 AM
Nescio updated the diff for D2886: [gameplay] introduce crossbowman templates.
  • rebased
Thu, Nov 19, 11:41 AM
Nescio removed a reviewer for D2863: [gameplay] deprecate stoas and stoa champions: Angen.
Thu, Nov 19, 11:18 AM
Nescio added a comment to rP24215: Let players remap hotkeys in-game, fix default hotkeys being qwerty-specific..

Concerning the in-game manual, previously it was:


Now it is:

I may be biased, but I think the old + and or are better readable than the new + and , . Moreover, the new version has but LeftBracket, whereas the previous version displayed ↑ (Up) and [ (Left Bracket), which I think was clearer.
Ideally, though, the manual ought to use columns, with the key combination nicely aligned in one and the description in another.

Thu, Nov 19, 11:09 AM
Nescio added a comment to D3120: Fix .dae files with paths inside..

grep -r 'C:/':

meshes/gaia/lavender_bush_02.dae:      <init_from>/C:/Dev/trunk/binaries/data/mods/public/art/textures/skins/gaia/lavender_bush_01_02.png</init_from>
meshes/skeletal/animal_lioness.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/lion/lioness2.max</source_data>
meshes/skeletal/donkey.dae:      <source_data>file:///C:/3dsMax6/scenes/0ad/animals/Copy%20of%20donkey_export_R9.max</source_data>
meshes/skeletal/animal_lion.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/lion/lion2.max</source_data>
meshes/skeletal/giraffe_infant.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe/giraffe_infant.max</source_data>
meshes/skeletal/m_tunic_long.dae:      <source_data>file:///C:/3dsMax7/scenes/0addudes_COLLADA.max</source_data>
meshes/skeletal/m_tunic_long.dae:      <init_from>file:///C:/0ad/binaries/data/mods/official/art/textures/skins/skeletal/plac_rome_e.dds</init_from>
meshes/skeletal/giraffe_adult.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/giraffe_sk.max</source_data>
meshes/skeletal/animal_tuna.dae:      <init_from>/C:/Users/stanislas.dolcini/Desktop/fauna_tuna.png</init_from>
meshes/props/iber_fishship_sail.dae:			<source_data>file://C://</source_data>
meshes/props/iber_sb_props_a.dae:            <source_data>file:///C:/Users/Egbert/Desktop/iber_sb_props_a.dae</source_data>
meshes/props/pers_bir_fence.dae:			<source_data>file://C:/Users/EmjeR/Models/Persian%20Bireme2.blend</source_data>
meshes/props/pers_bir_mast.dae:			<source_data>file://C:/Users/EmjeR/Models/Persian%20Bireme2.blend</source_data>
meshes/props/donkey_pack_01.dae:      <source_data>file:///C:/3dsMax6/scenes/0ad/animals/donkey_pack.max</source_data>
meshes/props/helmet/old/celt_helmet_n.dae:      <source_data>file:///C:/3dsMax7/scenes/helmetsexport01.max</source_data>
meshes/props/helmet/old/celt_helmet_n.dae:      <init_from>file:///C:/Documents%20and%20Settings/Administrator/Desktop/david/celt-horns.png</init_from>
meshes/props/helmet/old/celt_coolus_caradoc.dae:      <source_data>file:///C:/3dsMax6/scenes/0ad/helmetsexport01.max</source_data>
meshes/props/helmet/old/celt_coolus_caradoc.dae:      <init_from>file:///C:/Documents%20and%20Settings/Administrator/Desktop/celt_a3.dds</init_from>
meshes/props/celt_siege_ram_shields.dae:			<source_data>file://C:/Models/0ADSiegeRam/0ADSiegeRam14export.blend</source_data>
meshes/props/palisade_tall_spikes.dae:			<source_data>file://C:/Models/0ADpalisades/pure_palisade23.blend</source_data>
meshes/props/pers_bir_oars.dae:			<source_data>file://C:/Users/EmjeR/Models/Persian%20Bireme2.blend</source_data>
meshes/props/pers_tri_oars.dae:			<source_data>file://C:/Users/EmjeR/Models/Persian%20Trireme.blend</source_data>
meshes/props/iber_merch_sail.dae:			<source_data>file://C:/Users/EmjeR/Models/Iberian_merc_ship.blend</source_data>
meshes/props/m_staff.dae:      <source_data>file:///C:/3dsMax6/scenes/0ad/walk/staff_walk.max</source_data>
meshes/props/m_staff.dae:      <init_from>file:///C:/Users/User/Desktop/0adart/work%20in%20progress/Steven%20%5BSkylerCloud222%5D/Art%20assets%20for%20feature%20freeze/Staff/celt_struct_1.dds</init_from>
meshes/props/palisade_small_spikes.dae:			<source_data>file://C:/Models/0ADpalisades/pure_palisade23.blend</source_data>
meshes/props/pers_tri_mast.dae:			<source_data>file://C:/Users/EmjeR/Models/Persian%20Trireme.blend</source_data>
meshes/props/kart_wall_gate_doors_open.dae:      <init_from>file:///C:/0ad/binaries/data/mods/internal/art/meshes/props/images/kart_struct.dds</init_from>
meshes/props/m_backpack.dae:      <source_data>file:///C:/3dsMax6/scenes/0ad/walk/backpack_walk.max</source_data>
meshes/props/iber_sb_props_b.dae:            <source_data>file:///C:/Users/Egbert/Desktop/iber_sb_props_b.dae</source_data>
meshes/props/special/broken_rope_bridge_long.dae:			<source_data>file://C:/Models/0ADRopeBridge/RopeBridge07.blend</source_data>
meshes/structural/iber_fishship.dae:			<source_data>file://C://</source_data>
meshes/structural/hele_tric.dae:			<source_data>file://C:/Users/EmjeR/Models/Greek%20Trireme.blend</source_data>
meshes/structural/celt_fishing_boat_sail.dae:			<source_data>file://C:/Models/0ADCeltFishingBoat/pure_FishingBoat11.blend</source_data>
meshes/structural/celt_warship.dae:			<source_data>file://C:/Models/0ADCeltWarship/pure_CeltWarship14export.blend</source_data>
animation/mechanical/chariot_walk.dae:      <source_data>file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/3dsmax/scenes/chariots_R9_su1_walk.max</source_data>
animation/mechanical/chariot_run.dae:      <source_data>file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/3dsmax/scenes/chariots_R9_su1_walk.max</source_data>
animation/quadraped/giraffe_adult_idle_02.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe_sk_idle_02.max</source_data>
animation/quadraped/giraffe_adult_run.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe_sk_run2.max</source_data>
animation/quadraped/giraffe_infant_idle_01.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe/giraffe_infant_idle_01.max</source_data>
animation/quadraped/giraffe_infant_idle_03.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe/giraffe_infant_idle_03.max</source_data>
animation/quadraped/donkey_walk_01.dae:      <source_data>file:///C:/3dsMax6/scenes/0ad/animals/donkey_idle_R9.max</source_data>
animation/quadraped/giraffe_infant_idle_02.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe/giraffe_infant_idle_02.max</source_data>
animation/quadraped/lion_death.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/lion/lion_death7.max</source_data>
animation/quadraped/giraffe_adult_idle_03.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe_sk_idle_032.max</source_data>
animation/quadraped/giraffe_infant_death.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe/giraffe_infant_death.max</source_data>
animation/quadraped/donkey_death_01.dae:      <source_data>file:///C:/3dsMax6/scenes/0ad/animals/donkey_idle_R9.max</source_data>
animation/quadraped/lion_walk.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/lion/lion_walk7.max</source_data>
animation/quadraped/giraffe_adult_walk.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe/giraffe_walk.MAX</source_data>
animation/quadraped/lion_run.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/lion/lion_run6.max</source_data>
animation/quadraped/giraffe_adult_death.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe/giraffe_death6.max</source_data>
animation/quadraped/giraffe_infant_run.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe/giraffe_infant_run.max</source_data>
animation/quadraped/lion_idle_01.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/lion/lion_idle2.max</source_data>
animation/quadraped/giraffe_infant_walk.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe/giraffe_infant_walk.max</source_data>
animation/quadraped/donkey_idle_01.dae:      <source_data>file:///C:/3dsMax6/scenes/0ad/animals/Copy%20of%20donkey_export_R9.max</source_data>
animation/quadraped/giraffe_adult_idle_01.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/giraffe_sk_idle2.max</source_data>
animation/quadraped/lion_idle_03.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/lion/lion_idle_032.max</source_data>
animation/quadraped/lion_idle_02.dae:      <source_data>file:///C:/Documents%20and%20Settings/Athos%20Arantes/Meus%20documentos/Arquivos/outros/C%2B%2B/0AD/art/lion/lion_idle_02.max</source_data>

grep -r 'D:/':

meshes/skeletal/deer_mesh.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
meshes/props/iber_bull_statue.dae:            <source_data>file:///D:/0ad/binaries/data/mods/public/art/meshes/props/iber_bull_statue.dae</source_data>
meshes/props/iber_bull_statue.dae:            <init_from>file:///D:/Users/Egbert/My%20Documents/Luxology/modo/scenes/WildfireGames/0%20A.D/Iberian%20Structures/Statue/Bull/Bull_Texture_Maps/Final_Diffuse6_small.tga</init_from>
meshes/props/deer_antlers.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_template.max</source_data>
meshes/props/deer_antlers.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
meshes/props/iber_lion_statue_small.dae:            <source_data>file:///D:/Users/Egbert/My%20Documents/Luxology/modo/scenes/WildfireGames/0%20A.D/Iberian%20Structures/Statue/Small_Lion/small_iberian_lion_final.lxo</source_data>
meshes/props/iber_lion_statue_small.dae:            <init_from>file:///D:/Users/Egbert/My%20Documents/Luxology/modo/scenes/WildfireGames/0%20A.D/Iberian%20Structures/Statue/Small_Lion/Texture%20Maps/base_color1%2Bao_small.tga</init_from>
meshes/structural/rome_corral.dae:      <init_from>/D:/0%20A.D.%20SVN/binaries/data/mods/public/art/textures/skins/structural/ao/rome_corral.png</init_from>
animation/quadraped/deer_idle_04.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_eat_01.max</source_data>
animation/quadraped/deer_idle_04.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
animation/quadraped/deer_attack_01.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_attack_01.max</source_data>
animation/quadraped/deer_attack_01.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
animation/quadraped/deer_death_02.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_death_02.max</source_data>
animation/quadraped/deer_death_02.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
animation/quadraped/deer_walk_01.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_walk_01.max</source_data>
animation/quadraped/deer_walk_01.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
animation/quadraped/deer_run_01.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_run_01.max</source_data>
animation/quadraped/deer_run_01.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
animation/quadraped/deer_idle_03.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_idle_03.max</source_data>
animation/quadraped/deer_idle_03.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
animation/quadraped/deer_idle_01.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_idle_01.max</source_data>
animation/quadraped/deer_idle_01.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
animation/quadraped/deer_walk_02.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_walk_02.max</source_data>
animation/quadraped/deer_walk_02.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
animation/quadraped/deer_death_01.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_attack_01.max</source_data>
animation/quadraped/deer_death_01.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>
animation/quadraped/deer_idle_02.dae:      <source_data>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/Idle/deer_idle_02.max</source_data>
animation/quadraped/deer_idle_02.dae:      <init_from>file:///D:/0adart/EWU/Task%20060%20%5BDeer%5D/deer.jpg</init_from>

grep -r 'E:/':

meshes/gaia/tree_tropic_top_c.dae:      <source_data>file:///E:/3dsmax7/scenes/Tree.max</source_data>
meshes/gaia/tree_tropic_top.dae:      <source_data>file:///E:/3dsmax7/scenes/Tree.max</source_data>
meshes/gaia/tree_tropic_top_b.dae:      <source_data>file:///E:/3dsmax7/scenes/Tree.max</source_data>
meshes/props/palisade_angle_spike.dae:			<source_data>file://E:/Models/0ADpalisades/pure_palisade29.blend</source_data>
meshes/props/iceberg_a.dae:      <source_data>file:///E:/3dsmax7/AutoBack/Untitled_recover.max</source_data>
meshes/props/palisade_rocks_end.dae:			<source_data>file://E:/Models/0ADpalisades/pure_palisade28.blend</source_data>
meshes/props/kart_civiccentre_palms.dae:			<source_data>file://E:/Models/0ADCartStoa/0ADCartStoa09.blend</source_data>
meshes/props/palisade_rocks_watchtower.dae:			<source_data>file://E:/Models/0ADpalisades/pure_palisade28.blend</source_data>
meshes/props/palisade_rocks_curve.dae:			<source_data>file://E:/Models/0ADpalisades/pure_palisade28.blend</source_data>
meshes/props/kart_embassy_celtic_props.dae:			<source_data>file://E:/Models/0ADCartEmbassyCeltic/0ADCartEmbassyCeltic08.blend</source_data>
meshes/props/kart_corral_mud.dae:			<source_data>file://E:/Models/0ADCartCorral/kart_corral05.blend</source_data>
meshes/props/iceberg_b.dae:      <source_data>file:///E:/3dsmax7/AutoBack/Untitled_recover.max</source_data>
meshes/props/palisade_rocks_straight.dae:			<source_data>file://E:/Models/0ADpalisades/pure_palisade28.blend</source_data>
meshes/props/special/bridge_edge_wooden.dae:			<source_data>file://E:/Models/0ADWoodenBridge/0ADwoodenBridge09.blend</source_data>

grep -r 'F:/':

meshes/props/elephant/howdah_01.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/elephant/howdah_hannibal.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/elephant/cushion_03.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/elephant/howdah_03.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/elephant/howdah_02.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/shield/pelte_01_front.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/meshes/props/shield/aspis_01_bronze.png</init_from>
meshes/structural/kart_tri.dae:			<source_data>file://F:/Ancient%20Ships/Models/Punic%20Trireme.blend</source_data>

grep -r 'G:/':

meshes/props/elephant/howdah_01.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/elephant/howdah_hannibal.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/elephant/cushion_03.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/elephant/howdah_03.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/elephant/howdah_02.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/textures/skins/props/ptol_howdah_a.png</init_from>
meshes/props/shield/pelte_01_front.dae:      <init_from>/F:/Programas/0.A.D.%20Dev/binaries/data/mods/public/art/meshes/props/shield/aspis_01_bronze.png</init_from>
meshes/structural/kart_tri.dae:			<source_data>file://F:/Ancient%20Ships/Models/Punic%20Trireme.blend</source_data>
Thu, Nov 19, 10:55 AM
Nescio retitled D2853: [gameplay] adjust elephant template values from [gameplay] tweak elephants again to [gameplay] adjust elephant template values.
Thu, Nov 19, 10:24 AM
Nescio updated the diff for D2853: [gameplay] adjust elephant template values.
  • rebased
Thu, Nov 19, 10:22 AM

Wed, Nov 18

Nescio added a comment to D3114: Post-SM52 merge Fixes.
Wed, Nov 18, 7:30 PM
Nescio accepted D2995: Introduce translatable attack names.

Concerns I have:

  • the names are essentially arbitrary, more based on the appearance of an actor prop and animation than anything else
  • <AttackName> is mandatory, not optional; omitting it causes errors
  • strings are added in the default skirmish placeholders
  • changing context forces retranslation

Nonetheless, this patch (allowing attack names to be translated) is an improvement over the status quo (hard coded attack names that are not translated). Furthermore, committing it would probably make it easier to have entities with an optional number of arbitrary attacks at some point in the future.
The patch is complete and correct, applying the patch and going through entity lists in Atlas or the structure tree does not trigger any errors or warnings. Doing a grep in the templates folder also confirms its complete. As for the proposed strings, I went through the changes a few more times and did not find any that needs immediate replacement. While not perfect, they're good enough for now, and if someone has a better suggestion, they could be altered individually, of course. Moreover, I went through the unit list in Atlas again and can confirm that all swordsman exceptions are encountered for.
To summarize, the patch is an improvement, works, is correct, and is complete, therefore I'm accepting it.

Wed, Nov 18, 7:24 PM
Nescio added a comment to D3007: [gui] correct some strings.

It might, though if that's to be done, it's probably better to do it in a future patch, given the number of occurrences.
Right now there is no consistency indeed; it already starts in the main menu, where “multiplayer” has “join game” and “host game”, whereas “single-player” has “matches”, which, if clicked, goes to the game setup, which is titled “Match Setup” on top but has “Start Game!” at the bottom.
Also, strictly speaking using game is not incorrect; e.g. “a chess match” and “a game of chess” mean the same thing.
And given the usage of “save game” and “load game”, if consistency is desired, the easier change is probably replacing all occurrences of “match” with “game”, rather than vice versa.

Wed, Nov 18, 6:34 PM
Nescio removed a reviewer for D2737: [gameplay] Add a flaming status effect to iber champion cavalry: Restricted Owners Package.
Wed, Nov 18, 6:23 PM

Tue, Nov 17

Nescio added a comment to D2689: Update fmt to the most recent release.

Fedora 33 with gcc 10.2.1 and fmt-7.0.3-1.fc33.x86_64. I applied your patch, did a make clean and a clean-workspaces.sh, and ran update-workspaces.sh. However, when attempting to run make, I immediately got the following fatal error:

[gcc]$ make -j7
==== Building mocks_real (release) ====
==== Building network (release) ====
precompiled.h
In file included from ../../../source/lib/precompiled.h:111,
                 from ../../../source/pch/network/precompiled.h:19:
../../../source/ps/CLogger.h:28:10: fatal error: fmt/printf.h: No such file or directory
   28 | #include <fmt/printf.h>
      |          ^~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [network.make:138: obj/network_Release/precompiled.h.gch] Error 1
make: *** [Makefile:77: network] Error 2
Tue, Nov 17, 8:05 PM
Nescio added a comment to D3098: outpost → lookout.

Would you mind moving to watchtower?

The words “watchtower” and “lookout” are basically synonyms. As pointed out earlier, I opted for the latter to avoid association with towers. Another suitable word would be “platform”.

(You can read some discussion on IRC today.)

For the record: http://irclogs.wildfiregames.com/%230ad-dev/2020-11-16-QuakeNet-%230ad-dev.log

20:35 < wraitii> lookout suggest more looking and less "garrison me to fire arrows"
20:36 < wraitii> but I associate lookout more with photography (or hunting) than warfare

That's exactly the point. The “outpost” is functionally very different from towers in 0 A.D.: it's cheap and weak, can be built in neutral territory, and garrisoning it won't make it fire arrows.

20:44 < wraitii> so start at watch, then sentry, then guard
20:45 < Freagarach> Ah :)
20:45 < Freagarach> Yeah, same here.
20:45 < wraitii> because first you mostly watch, then you're a sentry, and then you guard the area

The words guard, sentinel, and sentry are equivalents. Stating one is “greater than” the other seems rather artificial.
Currently we have:

art/actors/structures/*/wooden_tower.xml
simulation/templates/template_structure_defensive_tower_sentry.xml
simulation/templates/structures/*_sentry_tower.xml

for the small one and for the large one:

art/actors/structures/*/scout_tower.xml
simulation/templates/template_structure_defensive_tower_stone.xml
simulation/templates/structures/*_defense_tower.xml

Which, to me, seems rather arbitrary and inconsistent. I believe “small tower” and “large tower” are more systematic, clearer, and less confusing names. However, that's a different discussion: see D2551 and D2552.

Tue, Nov 17, 10:02 AM
Nescio added a comment to D2886: [gameplay] introduce crossbowman templates.

The values do change (see summary), for good reason.
The current champion crossbowman was introduced in rP20690 and renamed in rP22731. The damage value was just copied from the archer, but its reload time is six times as high, thus the unit is six times as ineffective, which does not make a lot of sense. This patch keeps the reload time and increases the damage, to ensure a damage per second about the same as the archer; the non-champion crossbowman templates are proportional to that.
Likewise, D1355/rP23780, which introduced separate axeman templates, also assigned axemen different values from swordsmen.

Tue, Nov 17, 9:37 AM
Nescio added a comment to D2995: Introduce translatable attack names.

Thank you for the clarification.
I suppose there is no alternative approach possible that would not force such retranslations?

Tue, Nov 17, 9:29 AM

Mon, Nov 16

Nescio added a comment to D2815: [gameplay] give all civs rams.

After re-reading this entire discussion, I count @ValihrAnt, @Feldfeld, @badosu, and @genava55 in favour. @Imarok and @borg- pointed out this would make different civs more similar. @badosu and @wraitii would like to see weaker rams available in the town phase. I think that could be done in a future patch.

Mon, Nov 16, 10:17 AM
Nescio added a comment to D2841: [gameplay] split Celtic civ bonuses.

If you have any ideas for suitable brit or gaul civ bonuses, please do not hesitate to post them!
This patch is not ready to be merged as is, and ought to be redone from scratch (hence the “changes planned”). I'm holding that off until there is some opinion on what the new bonuses should be. Also, having D2950 committed would make things simpler too.

Mon, Nov 16, 10:10 AM
Nescio added a comment to D2995: Introduce translatable attack names.

That's a bit annoying. Also, if I understand correctly, those attack names without an explicitly defined context get a default context defined in the tooltip.js file. So if that string or line is edited, do all those attack names have to be retranslated then too?

Mon, Nov 16, 10:04 AM

Sun, Nov 15

Nescio added a comment to D3034: un-crowdify graphics options panel.

So I tried your patch; the good news is their is now indeed plenty of space for future additions under each tab. However, I'm not too happy you put water effects under one and shadows under another; to me they seem related. How about three graphics tabs?

  • general graphics: windowed mode, gui scale, and technical things I don't understand such as GLSL, postprocessing, or VSync.
  • aesthetics: sky, water effects, shadows, particles, smooth vision
  • functional graphics: unit silhouettes, range visualizations, status bars, diplomacy colours

That's just my two cents; I don't know if it makes sense for others.

Sun, Nov 15, 10:16 AM
Nescio retitled D2995: Introduce translatable attack names from Properly internationalize attack names/Generlize to arbitrary names in the GUI to Introduce translatable attack names.
Sun, Nov 15, 9:27 AM
Nescio added a comment to D2995: Introduce translatable attack names.

Another question: does a string have to be retranslated if the context is changed?

Sun, Nov 15, 9:26 AM

Sat, Nov 14

Nescio updated subscribers of D2992: [gameplay] remove structure <Loot/xp>.

@badosu, @borg-, @ValihrAnt, anyone else, opinions on this?
(Another approach would be to simply remove <Loot/xp> from all structures.)

Sat, Nov 14, 7:21 PM
Nescio added a comment to D2996: [gameplay] Move bireme to village phase and balance..

What I did was launch Atlas, generate a map with water, go to one end of the map, place two biremes of player two facing one trireme there, go to another part of the map, place three biremes of player three facing one trireme of player four, save the scenario, the open 0 A.D., launch the map, and observe the results. And yes, the ships are ungarrisoned.
I don't know how it will work out in larger numbers. Ships have <BuildingAI>, which means they shoot at all enemies within range, rather than concentrating their fire at one at a time.

the arrow count difference is 200%. When the ships are fully garrisoned the difference is 18%.

How did you arrive at those numbers? A bireme has a default arrow count of 2, which this patch lowers to 1, and a max arrow count of 10. A trireme has 3 and 13. That works out as 1:3 and 10:13 in an one-vs-one fight; in a two-vs-one, it's 2:3 at start; in three-vs-one, it's 3:3 at start.

Keep in mind that going up to Phase 2 costs the same as 10 soldiers.

Yes, I know, and a trireme costs the same as three basic infantry. I have no idea which strategy will be more successful in practice.

Basically I'm unsure how this would play out without some testing.

That's the case with practically all gameplay patches. One can look at a patch and judge whether it seems a good idea, verify the actual changes are correct and complete, and maybe do a bit of limited testing. However, one can only discover the effect of the patch, if any, on gameplay as whole if it's committed and feedback is received from people actually playing the development version. If something turns out to have unbalanced the game severely, then it can always be reverted.
For this patch speficially, my main concern is that not all civs have biremes, thus putting some at a disadvantage in the village phase. Nonetheless, I don't consider that a serious enough objection against having this patch in, therefore I've accepted it.

Sat, Nov 14, 5:08 PM
Nescio added a comment to D2972: [gameplay] Increase hack damage of pikemen.

This patch looks good to me. Small sanity check, this maintains the balance between pikemen and spearmen right (armor v damage)?

If you mean if spearmen best pikemen, yes, one-on-one a spearman always wins. For larger numbers the outcome is less predictable, due to units focussing on the nearest foe, and also promotion, therefore I wrote a scenario and did a bit of testing, with the +1 hack damage change:
10 pikemen vs 10 spearmen: repeated five times, spearmen always win, 1 survivor
20 pikemen vs 20 spearmen: repeated five times, spearmen always win, 9 survivors
100 pikemen vs 100 spearmen: repeated five times, spearmen always win, 27, 39, 31, 28, 26 survivors
I guess with different placements one might get different numbers, but the general picture seems clear.

Sat, Nov 14, 5:06 PM
Nescio added a comment to D2996: [gameplay] Move bireme to village phase and balance..

Triremes not being so much stronger than Biremes.

So I wrote a scenario and did a bit of testing:

  • without this patch, one trireme loses to two biremes
  • with this patch, one trireme defeats two biremes, but loses to three
  • with this patch and a small health tweak (bireme 800→700, trireme 1400→1500), one trireme defeats three biremes

Increasing your cost is also interesting.

Increasing the bireme cost? But then trireme cost should be increased too.

Sat, Nov 14, 2:57 PM
Nescio updated the summary of D3080: [gameplay] tweak melee infantry range.
Sat, Nov 14, 1:15 PM
Nescio added a comment to D2972: [gameplay] Increase hack damage of pikemen.

Pikemen have five additional resistance levels, yes, which is equivalent to c. +70% health, making them harder to kill. However, they have by far the lowest damage per second:

Swordsman:          (5.5 + 0)   / 0.75 = 7.3
Spearman:             (3 + 2.5) / 1    = 5.5
Pikeman (proposed):   (2 + 3)   / 2    = 2.5
Pikeman (current):    (1 + 3)   / 2    = 2

The change does not seem excessive; I'd actually favour increasing it by even more.
Also, D3080 is related.

What about giving them an attack bonus vs siege?

Hard bonus attacks are ugly and ought to be avoided, in my opinion.

Sat, Nov 14, 1:14 PM
Nescio added a comment to D2996: [gameplay] Move bireme to village phase and balance..

@ValihrAnt, if you're really opposed to a patch, you could consider clicking “Add Action...” → “Request Changes”, to make it clear it should not be merged as is.
In its defence, the reduction in default arrow count makes biremes significantly weaker. Moreover, I think having a small but weak warship-transport in the village phase, a decent one in town phase, and a powerful one in city phase makes sense (tech progression).
On the other hand, not all civs have biremes.
Anyway, additional playtesting is always welcome, also for other patches.

Sat, Nov 14, 1:04 PM
Nescio added a comment to D3034: un-crowdify graphics options panel.

You mean a name for a second graphics tab? I doubt the terms that spring to my mind are good:

  • Graphics (II)
  • Graphics (continued)
  • More graphics
  • Session graphics

Another thing, under “in game” there are several options that to me seem like graphics (e.g. range visualizations, diplomacy colours) and I would naively expect under the same tab as “unit silhouettes”.

Sat, Nov 14, 12:56 PM
Nescio added a comment to D2995: Introduce translatable attack names.

The proposed attack name contexts are a bit verbose; wouldn't just “A single-edged sword.” or “Attack using a single-edged sword.” instead of “Name of an attack using a single-edged sword.” be sufficiently clear?

Rhomphaia judging from the argument for specificnames, we should show the greek original in the context.

Though context isn't (yet) shown for specific names.

Sat, Nov 14, 12:51 PM
Nescio added a comment to D3098: outpost → lookout.

“Watchtower” is indeed also an appropiate English word, and I believe I mentioned it earlier, yes. The main reason why I opted for “lookout” here instead, is that in 0 A.D., towers fire arrows, which is not true for the current “outpost”.
By the way, there is actually already a watchtower in 0 A.D. (left), which looks like an old version of the outpost (right):


I'm not sure it's worth keeping in the public mod, but that's a different discussion (see D2740).

Sat, Nov 14, 12:28 PM
Nescio added a comment to D2886: [gameplay] introduce crossbowman templates.

Also, why introduce templates which are not used?

Whether something is used and whether it something is useful are not necessarily the same thing. For instance:

  • `template_unit_fauna.xml

I mean a mod that needs to introduce the template probably also needs different values?
And the templates can be added if units that are to use them are added, right?

Sat, Nov 14, 12:04 PM
Nescio added a comment to D2952: Move {civ}_*.xml → {civ}/*.xml in templates..

@Stan can we move the portraits as well?

While I fully agree that should be done, I strongly recommend doing it in a separate patch.

Moreover, I think icons ought to organized similarily to actors (see art/actors/units/), hence full civ names (e.g. britons, celts, gauls), instead of civ codes (e.g. brit, celt, gaul).

Sat, Nov 14, 12:02 PM
Nescio updated the diff for D2866: [gameplay] tweak human training times.
  • rebased
Sat, Nov 14, 11:43 AM
Nescio updated the diff for D2996: [gameplay] Move bireme to village phase and balance..
  • rebased
Sat, Nov 14, 11:27 AM
Nescio updated the diff for D2886: [gameplay] introduce crossbowman templates.
  • rebased
Sat, Nov 14, 11:24 AM