Jump to content

myou5e

Community Members
  • Posts

    164
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by myou5e

  1. Are Terrain auras currently something which is being thought about? For example, snow or dense forests negatively affecting walk speed, paved tiles or paths positively effecting walk speed? I know Delenda Est uses, what is kind of a dirty hack, by adding (invisible)markers to farmland in the map data, and those markers have an aura.

    Something I want to do is make constructable roads and pavements, and give those a speed bonus. I believe the guy making the City Building Mod wants to do the same thing and so just gives the CC a movespeed aura to simulate the effect of a paved area around the CC.

    Some uses I can think of.

    • Making Cavalry charges or chariots hard to drive in a forest
    • Lowering movement speed in a forest
    • Roads and tiles with movespeed bonus
    • Lava with a negative HP aura (very hot)
    • Snow with a negative HP aura (very cold)
    • Spread increase or armor bonus for forest, to simulate trees being used as protective barriers. This might make Javelinists more effective than archers in Forest, which might be the reason why the Celts never really used archery.
    • Britons getting a stealth bonus when in a swamp, as Cassius Dio claims they can live in a swamp for days with only their head above water:LOL:

     

    • Like 1
  2. Hi I am getting the same error when I try to edit the schema in a Component File. I'm trying to make a "Renewable" resource that regenerates slowly, and that doesn't become exhausted after it is used up.

    I used the ResourceSupply component from Borgs mod to get the "Change" and "Fattening" which makes berries slowly regrow. Then I edited the berry template. The "Renewable" part under "ResourceSupply" is from the Component file which schema I edited.
     

    <?xml version="1.0" encoding="utf-8"?>
    <Entity parent="template_gaia_flora_bush">
      <Identity>
        <Tooltip>Pick fruit for food.</Tooltip>
      </Identity>
      <Minimap>
        <Type>food</Type>
        <Color r="155" g="204" b="102"/>
      </Minimap>
      <Obstruction>
        <Static width="4.0" depth="4.0"/>
        <BlockMovement>false</BlockMovement>
        <BlockPathfinding>false</BlockPathfinding>
      </Obstruction>
      <ResourceSupply>
        <MaxAmount>200</MaxAmount>
        <Amount>200</Amount>
        <Type>food.fruit</Type>
        <Change>
          <Fattening>
            <Value>1</Value>
            <Interval>4000</Interval>
          </Fattening>
        </Change>
        <Renewable>true</Renewable>
      </ResourceSupply>
      <Sound>
        <SoundGroups>
          <select>interface/select/resource/sel_fruit.xml</select>
        </SoundGroups>
      </Sound>
    </Entity>

    The Schema in the Component File is like this(the Change part is from Borgs mod, the Renewable from my own):

     

    ResourceSupply.prototype.Schema =
    	"<a:help>Provides a supply of one particular type of resource.</a:help>" +
    	"<a:example>" +
    		"<Amount>1000</Amount>" +
    		"<MaxAmount>1500</MaxAmount>" +
    		"<Type>food.meat</Type>" +
    		"<KillBeforeGather>false</KillBeforeGather>" +
    		"<MaxGatherers>25</MaxGatherers>" +
    		"<DiminishingReturns>0.8</DiminishingReturns>" +
    		"<Change>" +
    			"<Growth>" +
    				"<Constraint>Alive</Constraint>" +
    				"<Value>2</Value>" +
    				"<Interval>1000</Interval>" +
    			"</Growth>" +
    			"<Decay>" +
    				"<Constraint>Dead</Constraint>" +
    				"<Value>-1</Value>" +
    				"<Interval>1000</Interval>" +
    				"<Delay>2000</Delay>" +
    			"</Decay>" +
    		"</Change>" +
            "<Renewable>false</Renewable>"+
    	"</a:example>" +
    	"<element name='KillBeforeGather' a:help='Whether this entity must be killed (health reduced to 0) before its resources can be gathered'>" +
    		"<data type='boolean'/>" +
    	"</element>" +
    	"<element name='Amount' a:help='Amount of resources available from this entity'>" +
    		"<choice><data type='nonNegativeInteger'/><value>Infinity</value></choice>" +
    	"</element>" +
    	"<optional>" +
    		"<element name='MaxAmount' a:help='The max amount of resource the entity can reach when growing'>" +
    			"<ref name='nonNegativeDecimal'/>" +
    		"</element>" +
    	"</optional>" +
        "<optional>" +
            "<element name='Renewable' a:help='Whether this resource is to be left alone(entity not removed) after it's resource supply is used up'>" +
                "<data type='boolean' />" +
            "</element>" +
        "</optional>" +
    	"<element name='Type' a:help='Type and Subtype of resource available from this entity'>" +
    		Resources.BuildChoicesSchema(true, true) +
    	"</element>" +
    	"<element name='MaxGatherers' a:help='Amount of gatherers who can gather resources from this entity at the same time'>" +
    		"<data type='nonNegativeInteger'/>" +
    	"</element>" +
    	"<optional>" +
    		"<element name='DiminishingReturns' a:help='The relative rate of any new gatherer compared to the previous one (geometric sequence). Leave the element out for no diminishing returns.'>" +
    			"<ref name='positiveDecimal'/>" +
    		"</element>" +
    	"</optional>" +
    	"<optional>" +
    		"<element name='Change' a:help='Optional element for defining whether a resource supply would regenerate when it&quot;s not gathered'>" +
    			"<zeroOrMore>" +
    				"<element a:help='Optional element for defining whether a resource supply would regenerate when it&quot;s not gathered'>" +
    					"<anyName />" +
    					"<interleave>" +
    						"<optional>" +
    							"<element name='Constraint' a:help='Specifies the terrain type restriction for this building.'>" +
    								"<choice>" +
    									"<value>Alive</value>" +
    									"<value>Dead</value>" +
    									"<value>Both</value>" +
    								"</choice>" +
    							"</element>" +
    						"</optional>" +
    						"<optional>" +
    							"<element name='Delay' a:help='Delay in milliseconds before the object starts growing or decaying'>" +
    								"<ref name='nonNegativeDecimal'/>" +
    							"</element>" +
    						"</optional>" +
    						"<element name='Value' a:help='The amount of resource added per interval'>" +
    							"<data type='decimal'/>" +
    						"</element>" +
    						"<element name='Interval' a:help='The interval in milliseconds'>" +
    							"<data type='nonNegativeInteger'/>" +
    						"</element>" +
    					"</interleave>" +
    				"</element>" +
    			"</zeroOrMore>" +
    		"</element>" +
    	"</optional>";

    The other JS Code is, for now, just

     

    ResourceSupply.prototype.GetRenewable = function()
    {
        return this.Renewable == "true";
    };

    I think the logic which actually uses this function is irrelevant, because when I don't call this function at all I still get the "attributes construct error".

     

    ERROR: CXeromyces: Parse error: (null):9: attributes construct error
    ERROR: CXeromyces: Parse error: (null):9: Couldn't find end of Start Tag element line 9
    ERROR: CXeromyces: Parse error: (null):9: Opening and ending tag mismatch: optional line 9 and element
    ERROR: CXeromyces: Parse error: (null):9: Opening and ending tag mismatch: interleave line 9 and optional
    ERROR: CXeromyces: Parse error: (null):9: Opening and ending tag mismatch: element line 9 and interleave
    ERROR: CXeromyces: Parse error: (null):9: Opening and ending tag mismatch: define line 9 and element
    ERROR: CXeromyces: Parse error: (null):9: Opening and ending tag mismatch: grammar line 1 and define
    ERROR: CXeromyces: Parse error: (null):9: Extra content at the end of the document
    ERROR: CXeromyces: Parse error: (null):0: xmlRelaxNGParse: could not parse schemas
    ERROR: RelaxNGValidator: Failed to compile schema
    

    I'm using version 23. I don't understand the logic of when to use <interleave> and <ref name='x'> vs <data type='x'>

  3. On 7/19/2020 at 8:07 PM, OptimusShepard said:

    Why don't have a third option? In my opinion, the more icons at once, the worse the clarity.

    So I would suggest to splitt them into sub panels like in Spellforce 3.

    Spellforce.png.2538562569026f4eba698c6f99944262.png

    I can think of three different variations. First possibility, splitting them into phases like Spellforce. Second possibility, splitting them into buildings and units. Or splitting them into civil and military.

    I think what you are saying is the same as with the Command & Conquer games which have a tab to click to move between different types of construction. There are 4 tabs. Main Buildings, Defensive Buildings, Infantry, Tanks.

     

    redalert.jpeg

  4. Here are some features I want to see/help improve:

     

    • Formations (formations give armor bonus, but require discipline to maintain, fighting in formation is important, weak points in formation can be created and exploited, such as an elephant charge followed up with an area focused arrow barrage)
    • Unit mechanics (weapon switching, charging, attack ground, stealth, block with shield, dodge)
    • City building

    These things will make the game significantly more complex, but will open the way up for MOBA style, and skirmish style battles such as in Company  of Heroes etc, as well as city building. The complexity for the RTS side can be minimized by having good unit AI or some kind of autobuilders where you let the AI control certain details while you control the larger picture. It would make RTS more interesting to worry less about economic micro, and more about meta economic/military strategy and allocation.

  5. 9 hours ago, Phalanx said:

    Personally, I'm against the idea of combining civs and against the idea of civ brackets/tiers.

     

    I think we are all thinking about this is the wrong way.  We don't need to be thinking about the factions as a group.  In fact, that's the one aspect of this game we should be ignoring.  

    Scenario

    Think of a matchup between Britons and Seleucids.  Each faction is quite different from one another.  However in this matchup, it is not very important to compare the two civilizations in terms of historical accuracy.  We should be comparing them based on the environment.  Each culture developed a style of warfare that best suited their environment In a heavy wooded map, the more flexible Britons have an advantage over the large and clumsy formations of the Seleucids, but in an grassland, the tables flip. Now the powerful Seleucid formations and cavalry would shred the Britons.

    Conclusion

    We need to be thinking more about the environment that we put the civilizations in.  More deliberate map design, with areas that all factions can excel in. Currently, our maps are based on locales, which is hindering balance by favoring the native culture.  Thinking about the scenario above, imagine a map with both heavily wooded areas, and open areas/ pathways.  Now the question doesn't become which faction is better, it becomes a question of how well can each player utilize the map!  How well can they force engagements on terrain that favors them?  Obviously we would still need to keep an eye on the exact stats of techs and units for each faction, but if we build the maps right, we can still allow these unique matchups that make this game great!  Open areas for the more formation focused civs, wooded areas/rough terrain for more flexible civs.  Flat areas for cavalry civs, and terrain height for ranged based civs. Most RTS titles focus on how well you can micro your economy and armies, but map utilization is rather minor.  Players usually play "on" the map instead of "with it!" This is what could give 0AD an identity and make it unique from other RTS titles!  As an added bonus, it would allow for more factions to be added without making balancing a nightmare!

    Addendum

    Now, we still need to consider the factions as individuals.  I'm of the opinion that we should make sure that each one feels unique.  We don't need Starcraft-ien levels of unique, but think AOEIII WOL mod levels of unique.  Each faction should have a preferred playstyle and a preferred unit roster, and it's out goal as balancers to make sure to emphasize these preferences.   Spartans should be a infantry heavy faction, Carthage should play defensively, Kush can build tall, and the Seleucids can build wide.  By emphasizing these preferences, players can really get a feel for the differences of each faction, and they can find the one that matches their playstyle.  This can be done through more unique techs, faction bonuses, and possibly with re-thought rosters.

     

    Combining all these thoughts would make this game a great game of tactical skill.  The player must not only take advantage of their civ's unique strengths and understand their weaknesses, but use the map and the environment to help make sure they fight on their terms.

    You are right in connecting the environment to balance. To some extent more game mechanics need to be built into the game to make this possible. For example, chariots and horses need to be able to charge, but they should be hindered, or break formation, or lose health, when attempting to charge through a forest. Stealth tactics, where units can become invisible in some areas, are also a feature that would help play to the environment.

    • Like 1
  6. 10 hours ago, Dakara said:

    Its still a base of the game lol

    For the next civ, why not a civ nomad without citizen-soldier ? only cavalry citizen, some light infantery, inscreased looting, hunt and some building on cart lol ? a lot of women and slaves for wood, berries

    2 units killed = 1 free slaves on camp

    But the hunt no farms :( ???

    a civ who puts the pressure on or dies afterwards 

     

    --just want to write.. but it seems very complicated without fields afterwards... go sleep lol--

     

    The Scythians, for example, should likely not have farms, they should rely on animal corral. Ancient authors seem to have said this about them.

    9 hours ago, m7600 said:

    For what it's worth, here are my 2 cents:

    Balancing has many aspects, and some of them can be reduced to number-crunching. Not all of them, but some. This being so, that could be done with a script.
    I'd like to quote an idea that @Wijitmaker had and that it would be really worth pursuing:

    This is a really cool idea. I would love to see this.

  7. 6 hours ago, Genava55 said:

    To be precise, I am personally against the idea to build groups based on history and general strategical guidelines and to stick with those to balance the civs.

    I understand that the civs belongs to the same conceptual groups due to their design, because in the way we design a faction we are constrained by historical evidences.

    So it is logical that the Iberians, the Britons and the Gauls have several similarities in their strategies. Because historically they had. It is logical that Macedonians, Seleucids and Ptolemies have several similarities as well.

    But I am against the idea to balance the civs only with their similar counterparts. If the Iberians, the Britons and the Gauls are only balanced in regard to each other, then it will probably result to unbalance when players of those civs will face other civs from other groups. Because let's face it, it would be the case regularly.

    So I suggest those grouping should be different according to their goals. I agree to group the civs between them according to their similarities and history when it is done with the purpose to draw the general kind of strategies and gameplay. Like in Wijitmaker proposal with thematic group.

    But when it is grouping in the purpose of balancing the civs, it should be mixed groups. Because it is not directly the civs that are unbalanced but some general strategies that are far better than others.

    As I said, I agree with your observation that 78 matchups to balance is too much. I agree with your idea to balance the civs only in their own group. I simply don't see the relevance to balance a civ only against a similar civ.

     

    The number of naive matchups between civilizations is Sumi(n-1)i, where n=number of civilizations.

    • with 3 civs, 2 + 1 = 3 matchups
    • with 4 civs, 3 + 2 + 1 = 6 matchups
    • with 5 civs, 4 + 3 + 2 + 1 = 10 matchups
    • with 13 civs(v24) = 78 Matchups

    However If you match up similar factions internally, then test only that "general faction" against the others. You will reduce this number significantly.

    • Celts(brit, gaul): 2 Matchups
    • Greeks(athen, mace, spart): 3 Matchups
    • Successor(sele + ptol):  1 Matchups
    • I'm not sure if we can group the following, so we may need to treat them separately: Carthaginian, Iberian, Kushites, Mauryans, Romans, Persians

    Because we can group some civs together, we have reduced the number of global matchups considerably. 6 Independent Civs, Plus 3 general cultures. That means 9 global matchups. 9 Global matchups results in 36 possible combinations, then we add the internal culture matchups, 36+2+3+1=42.

    So practically speaking we only need to worry about 42 possible matchups, not 72. If we can categorize two of the independent civs i mentioned together, there will only be 8 global matchups, and total will reduce to 34.

    • Like 1
  8. 4 minutes ago, wowgetoffyourcellphone said:

    Yass please. :D

    Garamantes and Numidians? That would basically cover Africa for our time period.

     

    I like this! I might experiement.

    Did you play Rise of Nations? I think they might have had this. Or maybe it was a civilization game. I remember seeing this somewhere. The city showed it was 70% Roman, 20% Celtic, 10% Germanic, or something similar to that.

  9. On 6/5/2019 at 5:23 PM, Wijitmaker said:

    Yeah, it all kind of started with Michael's dream to convert 0 A.D. into his dream game he was calling "Age of the Aegean".  I think the Hellenes were the first generic civ that was broken apart and split into multiple civs.  

    When you look at RTS games 15 years ago (I'm not sure what is out there these days) you usually find that they are either many civs/races that are slightly different from one another (Age of Kings), or few civs/races that are drastically different from one another (StarCraft).  

    Each Civ was supposed to have a general theme and favor a certain playing style...

    • Romans - Generic all purpose, Strength in siege
    • Hellenes - Generic all purpose, Strong fortifications
    • Persians - Cannon Fodder, Cheap infantry, Cavalry strong
    • Celts - Aggressive and Offensive, Cheap/weak structures
    • Carthaginians - Economy is based on metal/gold because of mercenaries, biggest variety of units, strong navy
    • Iberians - Defensive, Small numbers, Tactical

    New civs were created and I'm not sure how they fit in or how they are distinct but I would encourage there to be a distinction to give players a reason to use them.  For me - 0 A.D. was always a game first and wasn't ever intended to be a historical simulator.  That was for games like Total War.

    This is a helpful distinction

    "Many Civilizations, slightly different; few Civilizations, very different."

    Here's how I might suggest integrating different Civilizations. Every smaller Civilization has a larger category, for example, the "culture" mechanic already exists. "Hele" being Macedonian, Spartan, Athenian, etc. Within each such cultural group, use the phrase "Many Civilizations, slightly different". But when comparing to other cultures, such as the Persians, use the phrase "Fewer Civilizations, very different."

    There is another way, which is much more powerful long term as the number of mechanics and Civilizations multiplies so balancing becomes exponentially complex(balancing civs is at least an n2 problem). The bonuses that each Civilization, including build tree, are specified in a rating system. Example:
     

    • Cost Abilities
      • 10% decrease in Infantry Cost:  10 points
      • 20% decrease in Infantry Cost:  25 points
    • Build Tree Abilities
      • Spearmen Available in Village Phase: 5 points
      • Swordsmen Available in Village Phase:  7points
      • Champion Class Available in Town Phase: 10 points

    This way every Civilization will have a point rating. Ideally, unit stats will then be calculated algorithimically based on these bonuses. If time is spent on giving a cardinal(numerical) rating to every possible civilization statistic, we would have a powerful rating system to specify which civilizations are stronger or weaker. If we algorithimicaly generate the stat files, the players could even specify in a pregame option whether they want "realistic" or "playable" civilizations. Eg the "Nuba" minifaction in Delenda Est wont realistically be able to withstand the might of the Roman Imperial Army. But it might be fun to pretend that it can :-)

    • Like 1
  10. 11 minutes ago, wowgetoffyourcellphone said:

    I think there should be a "cultural" stat, like the Loyalty stat, for the Civic Center so that at first after capturing it you can't train or do anything with it. But at some point you "pacify" it which allows you to train the native citizen unit, and then you "assimilate" it after time and then you train your own citizen from it.

    That's a really good idea.I wonder if we could have the concept of a "mixed" population too? A conquered CC could produce partly units from one Civ, and partly units from another Civ.

    • Like 1
  11. 10 minutes ago, m7600 said:

    You might be interested in the African civs that I'm making: Ethiopians, Malians, Moroccans and Zimbabweans. I haven't released them yet, but you can check out some images in their respective threads. They're in the Game Modification subforum. They won't work for Delenda Est because of the timeline (they're from the Middle Ages), but I might make some African civs for Delenda Est in the near future (Garamantes civ, for example).

    I am interested in that actually :-) I have followed the development of your mod over the past month but only just got accepted into the forum :-) . I would be interested in play testing your mod if you like :-). I wonder if your mod would work with Millienium AD? The Vikings fought in Sicily and Jerusalem.
     

    Quote

    In 1035, Hardrada participated in the wars led by the Byzantine army, to force the Arabs out of Asia Minor. He led the army as far as Tigris River. He played a major role in capturing many of the Arab strongholds. Later, Hardrada fought in several wars in Jerusalem, and Sicily. During the reign of Emperor Michael IV, Hardrada remained a loyal member of the army, and fought in several battles, such as the ‘Battle of Olivento,’ and ‘Battle of Ostrovo,’ during this period."

    https://www.thefamouspeople.com/profiles/harald-hardrada-37576.php

    Haven't found a source other than Wiki, but Wiki does mention they raided  North Africa also.

  12. I know the Nubas are only a mini faction, but their villages look really nice and i could see them as becoming more important if they are left with some handicaps, perhaps. For example, they could have naturally stronger units(perhaps by 10%?), and cheaper CC's, but have far less upgrades available to them. Speaking of capturable tech trees, this could work well together, as the Nubas would be stronger, but the upgrades of your starting civ could apply to them, which would make them sought after mercenaries. It would be a consistent way to look at the capturable Nuba mercenary camps.

    PS. I'm glad to see you have added the military infantry trainable in their CC now :-) It was hard winning with just Scout Cavalry :-p

    • Like 1
    • Haha 1
  13. 12 minutes ago, wowgetoffyourcellphone said:

     

    https://github.com/JustusAvramenko/delenda_est/commit/3af13defe65b35e520d3842c92fbdab5fa46a9ad

    After the above commit, Citizens and Citizen Soldiers can now lay and construct all buildings available to that civ. I've playtested this and it's good.

    Furthermore, that commit and a previous one makes it so that if you capture an enemy Civic Center you can then train the enemy's citizens. So, if you are Sparta and you capture a Kushite CC, then you can train Kushite Citizens. Now, if you train that Kushite Citizen, most of the buildings they lay will by Spartan, except for Temples, Statues, and Wonders. Those will be Kushite. So, by capturing enemy CC's you can now mix and match some cultural structures. This is experimental for now. I may expand the list of native buildings the captured Citizens construct, or I might remove that completely. We'll see.

     

    That's good. I understand the main game now makes all buildings available to both Citizens and Citizen Soldiers. I think this is actually preferable as they can already help with construction, it's just a matter of selecting the right units, which is really just annoying micro. I actually like the concept of capturable tech trees. It's really fun, and also realistic, at least to some extent. If you conquer another civilization you can generally recruit soldiers from among their local population, etc.

     

×
×
  • Create New...