This is the place to post general stuff concerning the game. Want to express your love for hoplites or find people to play the game with? Want to share your stories about matches you have played or discuss historical connections to the game? These and any other topics which are related to the game, but don't have their own forums belong in this forum.
Do you have any questions about modifying the game? What will you need to do what you want to? What are the best techniques? Discuss Modifications, Map Making, AI scripting and Random Map Scripting here.
Forums for decision-making on issues where a consensus can't be reached or isn't sufficient. The committees are chosen from among the official team members, but to ensure an open and transparent decision process it's publically viewable.
alpha 22 rmgen code was changed for alpha 23, but that can be changed quickly when we're done with that
HeightArray.prototype.createAltitudes has some duplication, that should be unified with a for-loop (or array-function)
(Math.random() * off) besides the unneeded parentheses, we usually use the random helper functions from random.js, it could be randFloat(0, off)
TileObjectMap.prototype.paintMap receiving arguments is much better than before, but it still hardcodes meaning and limits what random map scripts can do. Is it true that this function does what paintTerrainBasedOnHeight does? then it could just be moved to each random map script.
this fills an area with 'terrain' adding actors from 'actorList'. This sounds a lot like what the Terrain prototype in rmgen does. Take a look at how forests are created on most maps, for instance on mainland.js: const pForest1 = [tForestFloor2 + TERRAIN_SEPARATOR + oTree1, tForestFloor2 + TERRAIN_SEPARATOR + oTree2, tForestFloor2]; https://code.wildfiregames.com/source/0ad/browse/ps/trunk/binaries/data/mods/public/maps/random/rmgen/gaia_entities.js
This means that one of the array items is picked at random in each tile of the given area. Some of the items are only a ground texture, other tiles additionally contain a tree entity.
If that Terrain is passed to a LayeredPainter, one can create forests where the outer 2-3 tiles are only forest-border-like ground texture and all the inner part this semi-randomized forest.
This way stuff could be deleted from your library while gaining more features :-) The magic key to placing anything is the createArea and createAreas call. You should really look into the SVN code, it had been cleaned for the past 5 months. I suggest to read the few prototype names and descriptions linked here, to find the capabilities and limitations of rmgen. Basically there are createArea calls which create exactly one area at fixed coordinates passed to a non-centered placer, painted by a painter in areas that meet the given constraint. createAreas creates multiple areas with randomized coordinates. By being able to combine these things arbitrarily, one has a very powerful tool at hand to create entities.
What we really want is your core heightmap generation algorithm I believe. Maybe it could implement a Placer or Constraint and then the map could use createArea calls with fully arbitrary terrain modification and constraints. If it totally can't fit into that scheme, we might think about adding it to that heightmap library, which is about the diamond-square algorithm.
Definitely not, sorry if I was unclear, I was purely talking about the attire. Indeed small round shield is perfect for tier 1 and 2, I think. Then tier 3 get's the Egyptian style cowhide shield stanislass made (same one as the Apedemak's temple guard). Just remember it's attached to the shoulder...
tier 1: medium length loincloth, bare torso, small round shield
tier 2: medium length loincloth, cloth armour for torso, small round shield (or Egyptian style cow-hide shield)
tier 3: ankle-lenght loincloth/robe, quilted cotton vest, Egyptian style cow-hide shield, quilted cotton skullcap
The small round shield could be a scaled down version of the current Ptolemaic placeholders used. Perhaps a simpler, different shield texture is in order?
Hi everyone (and happy new year !)
Here come the code changes asked by @elexis Please note there is no new functionality and this library version works not with previous posted scripts. This is not an update !!!
So, I created two new object definitions: one dedicated to the height map creation, another one for map decoration, each one can be used independently. There are no more simple functions in the library (except a private one), only members functions. Similarly, I removed all global variable uses in the function and replaced them with parameters. I think the code is now fully encapsulated, but it is not final yet: I have to set default parameters and rework fully the comments.
Please tell me if this fits your requirements...
@Nescio I agree with you that mods deserve a much wider public. This could be done by making it easier to install mods into the game. For example, by having mod manager which can download and install mods with a single click. However, I disagree with you about including all those civilizations into the main mod. Mods are a good way extend the main game or introduce completely new ideas. The [Pony Ascendant](http://www.moddb.com/mods/0-ad-ponies-ascendant) mod by LoordGood is a good example for such a mod.
#1- @stanislas69, @LordGood, @Enrique: Long tunic meshes, both male and female, need their UV mapping fixed, for they mirror the bottom half of the long tunic, which is not desired. m_armor_dress's UV map looks to be even more scrwey:
#2 - @Sundiata: Surely the pikeman shouldn't have a shield that large. I remember seeing one of your references [a temple painting/sculpt?] where the pikeman depicted had a small round shield, almost Hellenistic in nature, though the image was rather basic and low detail.