Jump to content

Sidi

Community Members
  • Posts

    8
  • Joined

  • Last visited

Posts posted by Sidi

  1. 6 hours ago, sanderd17 said:

    Most often, you don't need to read from the map XML, but you can read from the game state. The map is loaded to the game state anyway.

    All data should be available in the game state, with the exception of the ground texture used (as that falls under graphical data, and thus isn't available in the simulation runtime, but this should become available in some way in the future). What data do you want exactly? Entities can be found through RangeManager calls and further filters. Terrain elevation can be found from the terrain component or from the position component. Or do you want something else?

    I want to add custom options. Basically, it would make sense to have siege maps in e.g. Gaul with regular small groups of units (e.g. ~30-50 naked fanatics) spawning in random locations when a Gaul is besegied by Romans. But in some other maps (specifically historical battles, let's say Alesia to stay on the Gaul example) you might want one very large wave of reinforcement that takes an hour to arrive. So, I want to set some default values for wave size / duration between waves / wave count in the map XML directly.

  2. Thanks. I've set up a Siege victory condition which basically just announces reinforcements on a timer, with different messages for the attacking and defending teams.

    I'll look at the regicide code to find out how to spawn troops. Might use some in-game actors to define spawn points in the way regicide spawns heroes at set locations.

    Currently what I'm trying to figure out is how do I read custom parameters from the map's XML. I want to use that to define what troops and resources are sent at reinforcements, how often, how many times, and to whom.

  3. I'll first try to implement a siege victory condition directly in C++ (will look up the ceasefire code and the conquest gameType for timing handling), I'm way better at that than JS. And I suppose C++ code runs much faster than JS triggers?

    Edit: ehm, I feel like I'm missing something, looking at the source code. So if I understand, the CPP code provides libraries, does rendering, and runs a JS engine, and the whole game simulation is JS?

    Edit 2: found the JS files.

  4. 2 minutes ago, sanderd17 said:

    The initial behaviour is aggressive for all units, but the AI likes to set its units to defensive unless it's attacking or gets attacked.

    Changing the stance is possible through trigger scripts, but it's quite likely that the AI will change it back to defensive rather soon.

    Maybe you should develop your map to work with triggers instead of relying on the AI?

    I'm not familiar with triggers at all. Having a look at the documentation now. How far can I go with triggers? Can I implement any form of AI I want, e.g. make the AI manage small units and make each unit perform a set of tasks? This map is sort of a siege map, so playing on the defensive side, this map kinda requires you to use the same troops for resource production and defence, and to anticipate enemy breaches to relocate behind the next line of defence.

    But first things first. Right now I'd just like my opponent to not slack off and to attempt to kill me. Can I force specific units to stay aggressive / keep them moving around?

  5. Hi everyone,

    I've made a map where the AI starts with a solid 300 troops, but for some reason, it seems the AI is refusing to move them. They are all stuck in a "defensive" setting, attacking on sight and then returning to their spot. No attacks, no resource gathering, etc.

    Is there a way to revert those units' initial behaviour back to normal?

  6. On 27/07/2014 at 3:05 PM, Lion.Kanzen said:

    Don't forget banners ;) ( rally point and garrison banner)

     

    On 11/05/2015 at 5:44 PM, wolflance said:

    Sorry to barge in.

    IMO the Francisca could be a secondary ranged attack a.l.a. pilum, from a realism point of view. It gradually fell out of use during Carolingian times anyway. For other ranged, they could also have longbow and javelin?

    Not an expert, but francisques were used systematically, and as you say, were a secondary means of attack. Wikipedia cites a history book that claims the francisque is used to break shields and morale, and inflict minor injuries, just before melee. Therefore, it could be a weapon that causes crushing damage (to damage shield bearing units), with a short range (12m is quoted) and a *very long* reloading time.

    The French wikipedia makes additional claims but with no source. Roughly, that elite troops commonly had francisques, but not basic units. Also, that throwing axes were less accurate and travelled less far than javelins. Their advantage over them might be heavier weight and the systematic presence of barbs (the axe head).

    I don't think 0ad has mechanisms for debuffs yet? If so, then it could apply debuffs to enemy shielded units whilst the francisque bearer is in proximity?

    Also, there is no mechanism for switching between weapon types?

     

    Javelins were not used very often any more, apparently with the exception of Norse troops (https://en.wikipedia.org/wiki/Angon). The interesting bit is the description of barbs, which turns javelins into pretty much the same thing as throwing axes: shield breaking and general-incapacitating devices. Length differences between angons and axes could allow some differentiation between factions in terms of range, damage [and debuff]. It seems to me that javelins fell out of use before axes, too?

     

    As for longbows, there are few historical records of their use on the continent. Some 4th century viking longbows were found, so researching viking archery might yield results. The Welsh had them in the 6th century (following https://www.wpi.edu/Pubs/E-project/Available/E-project-050814-204326/unrestricted/Longbow_vs._Crossbow.pdf), but the English did not generalise them until the 13th century. So longbows could be a faction-specific weapon for Vikings and Welsh, if you have equivalents in 1,000 AD?

     

    Crossbows appeared in antiquity China and Greece (gastrephetes, 400BC) before the Franks, and in fact the Romans, even existed. I think 0ad accounts for them very well with scorpions, as giant crossbows. It seems the early models were rather inconvenient and did not take up.

     

    What's interesting is comparing crossbows and longbows. Crossbows were common in Frankia at least in the 12th century when the Church forbade its usage, because it was a "coward's weapon" which did not require training to be used. Both weapons could penetrate armour, but crossbows were easier to use and possibly widespread up to 200 years before English longbows (but long after Welsh longbows). In terms of game mechanics, this could be translated in terms of unit availability (city phase for ELB, town for WLB and CB), training time (ELB longer, but probably leading to better troops). Also, crossbow units eventually became elite units for both Franks and English, so there could be a cheap-@#$% crossbow-using citizen-soldier and a champion crossbowman with better armour, health and damage.

    Another difference is that crossbows are much, much slower to operate. It takes 5 times more to reload a crossbow than a long bow. Projectiles have equivalent speed, but bolts are heavier. This seems to be a difference that is shadowed by speed of use and troop training. In a skirmish setting, it would make sense for longbow archers to beat crossbowmen, and it could (but maybe would not) make sense for crossbows to deal higher pierce damage to armour, or some additional crush damage to account for their weight and size.

    Further details of that historical report on the economics of both weapons: bows were cheaper to make (mostly wood of course). As I've discussed, troop training required a lot of time. Crossbows required forge skills (so there could be blacksmith techs for moving from the peasant crossbow to the elite one, e.g. a +50% attack / +20% cost and training time type of tech), but a regiment could be trained in two weeks according to that report. So the individual troop should be available early, train fast, but cost both metal and wood.

    • Like 1
  7. Hi everyone,

    So, I just kind of modified the Alpine Valley map (which I really like, being a defensive player) in order to militarise it a bit. In this scenario, you can either root for a local farmer/hunter village, supported by a local Gaulish militia, or for a stray Roman legion that lost its way in the Alps and is camping for winter. There's also a mad ermit in a corner but he doesn't seem to be interested in listening to you.

     

    Topological changes from the original map

    • The tiny valley south of the Lake (which has excellent natural defences but is delicate for expending) is now inhabited by Gauls
    • The Player 1 position is much more defensible, with the main path sealed by a mountain, which has a plateau accessible only from the Gaul side
    • Wolves. So many wolves. And goats. And wolves. Did I mention wolves?
    • I also closed another section in the Northern area, to make it easier for players to settle there

     

    Faction 1: the Arvernes
    The original dwellers of this land run a small farming village in the Player 1 position, south of the map. They have a small cavalry troop they use for hunting the numerous predators around. This faction is in a privileged position to collect tons of food and wood, and to mass-produce new units. It's also the faction with the smallest starting military. This is by far the easier side to pick.

    Tips:

    Spoiler
    • You can rely on your cavalry skirmishers to kite most (but not all!) enemy units, which are slower than yours.
    • You need to catch up with the other players in terms of troops, but if you survive the start of the map, you will be able to dominate easily.
    • Be discrete, don't let the Romans find you until you're ready. You're vulnerable on the Northern side so consider a fort or stone walls.
    • The Southern side is super defensible. Look at your mountain carefully, and find pathways to a plateau where you can build a fortress by the lake, and a small path for a very, very high tower that will shoot anywhere in the valley north of you
    • If you're desperate for stone, you can destroy the sanctuary of the Old Gods for stone. The Children of the forest might begrudge you, though. And winter is coming.

    Screenshots:

    Spoiler

    Nice home!X5feoZ4.jpg

    Proper wolf management
    2mBu6gT.jpg

     

    Faction 2: the Namnetes
    The Gaul is already unified in this scenario, and the Namnetes have a military presence in the Alps to help against Roman invaders. I have not played this faction, but they are basically able to resist the Roman invasion. They're basically a buffer state for player 1, but they can end up with very good defences as the path to their base is narrow. Ideal for forts.

    Screenshots:

    Spoiler

    3U3U3im.jpg

     

    Faction 3: the Romans
    This is the invading force, and the hardest player to play. They start with about 60 military, but they have not yet finished setting camp! I went for a traditional double-walled Roman camp. Unfortunately, a section of the siege wall is not built yet, and most tents are not up. Whilst this faction has a strong starting army, they will struggle to catch up economically and collect resources. So, the starting advantage isn't really one that will allow you to win. You will need to be clever about turning each confrontation to your advantage until you can catch up.

    Tips:

    Spoiler
    • Clearly, the double walled Roman camp is a strategic tool that you must use. Gauls (especially when played by the AI) are not keen on thinking and coordinating and will just rush. Let them in, close the gates behind them and let your towers do the rest.
    • Once the Gauls have stronger units and siege units, and once your base can no longer be contained in the starting area, you'll need additional towers and walls to keep trapping your enemies. The South is easy to defend. The East is a bit harder but you can rely on very heavy arrow firepower with a manned fortress.
    • Keep in mind that the enemy will breach your defences, so you need to be ready to re-position your workers for combat and garrison your civilians at any time.
    • Don't neglect the outposts, and make sure to clear wolves in your own woods. Good visibility and a safe retreat are useful when the enemy storms in.
    • Extending beyond your wall will prove difficult, as enemies won't let you build there. Establish a large presence with sturdy units at the front and lots of firepower at the back. You need to get your workers to build a fort in the central area, and hold it.
    • As the Gauls will be quicker than you, you'll certainly face local towers in the central area when you arrive. Steal them, man them, and build next to them to strengthen your hold, rather than attempt to build alone in a corner.
    • Spare your units. As you develop slower and will capture less land than others, you'll run out of everything first. Build many temples near your expected defensive positions and micro-manage your wounded units back to safety.

     

    Screenshots:

    Spoiler

    Nice camp, too bad it's not finished
    7B9DeBK.jpg

    If you man the outpost and need to pee, hold it, soldier!
    bCY0Azu.jpg


    Download (current version: 0.1)
    Mirror 1: https://wildfiregames.com/forum/applications/core/interface/file/attachment.php?id=11982
    Mirror 2: http://www.filedropper.com/alpinesettlement01

    I apologise for the crappy file host, the forum won't let me upload attachments. It thinks every single file is above 5MB. If someone knows a way to fix that, hosting it on wildfiregames.com would be much appreciated!
     

     

     

×
×
  • Create New...