> Entropy always increases (globally). There is, as far as I know, no known way to prevent this. There is. It's called life.
I wonder whether the existing textures look better on very steep, almost vertical map features with this proposal.
I might be useful to have a few criteria for when the game actually IS balanced. Looking back the forum's archive one might get the impression it never happened or that goal is kinda unachievable. Picking two random aspects and stating 'not balanced' is useful to point out rather huge issues. But somewhere there is a threshold balancing has to stop, because it's done, at least for a given template space. Otherwise the result is overshooting and starting over and over again. Regarding this release the rams caught me off guard and I'm looking for a counter strategy. Maybe all what's needed is a list saying: If you feel X is overpowered - try Z.
I always missed a list of used textures, so you can quickly swap the brush. Is is really hard to memorize the texture names.
@Stan, somehow yes, I use jsawk to find out what is available (best unit for task XYZ) off-game and then try to teach the AI to make a good decision. Adapting to special things is a whole topic for itself. I wish templates and technologies would be machine readable, so the AI knows to interpret e.g. health. But, that's the very far future, for now any property needs to be somehow (hard) coded. You can't expect the AI uses a unknown building properly to its advantage.
There is another dimension to this noise topic: Without "noise" the maps don't look natural or organic. Surely a hand trimmed English lawn looks perfect to the eye, but doesn't fit into the game's overall realism. When the goal is to create textures which always work visually a set of low noise textures is good. If the goal is to allow beautiful and realistic scenarios noise or better organic structures are essential. To my eyes the AoE shots above (both) look like cheap plastic. If you carefully work every single tile in a 0AD map, the result looks real and tiling is not an issue. So, I think, the issue is not noise versus no noise, but having textures which look good with maps build in a day and having textures for maps designed in a month.
I was looking for a simple method to query all templates and found jsawk quite capable. It is a command line tool and works on JSON files. I've exported the templates (6MB) and made a smaller file (10kB) to test it. Jsawk needs SpiderMonkey's jsshell, you'll get it here at Mozilla, or may have it somewhere in the build folder after compiling. For simplicity I've put jsshell, jsawk and the templates JSON in the same folder. > ./jsawk -j ./js -i templates.A18.json.small -a 'return this.length'10-j tells jsawk where jsshell is and -i the input file, the command returns the number of templates in the small file. Each template has an attribute 'name' which is the name of the template. > ./jsawk -j ./js -i templates.A18.json.small 'return this.name' -a 'return this.join("\n")'structures/athen_fortressskirmish/structures/iber_wall_longunits/mace_mechanical_siege_lithobolos_packedunits/gaul_support_female_citizenunits/pers_ship_biremestructures/iber_wall_shortunits/ptol_ship_quinqueremeunits/gaul_cavalry_swordsman_eunits/athen_hero_periclesunits/sele_ship_biremeIn 'return this.name' this refers to the template, which is a JS object. In the command -a, this refers to the full result set. One can run any JS expression in these commands and use the shell for sorting. Of course you can pipe a result like this into a csv file and continue with Excel or Calc. > ./jsawk -j ./js -i templates.A18.json.small 'return [this.Identity.Civ, this.name, this.Armour.Crush]' -a 'return this.join("\n")' | sortathen,structures/athen_fortress,2athen,units/athen_hero_pericles,25gaul,units/gaul_cavalry_swordsman_e,6gaul,units/gaul_support_female_citizen,15iber,structures/iber_wall_short,3.0mace,units/mace_mechanical_siege_lithobolos_packed,1pers,units/pers_ship_bireme,5ptol,units/ptol_ship_quinquereme,5sele,units/sele_ship_bireme,5skirm,skirmish/structures/iber_wall_long,3.0Jsawk supports JSONquery to filter results: > ./jsawk -j ./js -i templates.A18.json.small -q '.*[?Armour.Crush > 10]' 'return this.name'["units/gaul_support_female_citizen","units/athen_hero_pericles"]At first the syntax appears a bit, well, awkward, but it supports full automation. All the other tools I've checked are somewhat limited. Have fun!
Paper + code: http://people.cs.umass.edu/~kalo/papers/ShapeSynthesis/index.html Now same thing for textures, please.
Stan, I think, you got my point: Regardless of the size of the map there is an upper limit to polygon shown, at least as long the cam is restricted.