Results 1 to 1 of 1

Thread: Recruitment Times

  1. #1
    Harbinger of... saliva Member alpaca's Avatar
    Join Date
    Aug 2003
    Location
    Germany
    Posts
    2,767

    Default Recruitment Times

    Hey guys,
    I decided to give you some other piece of info from the "odd-job feature" category - this time it's about the recruitment process in general and recruitment times in particular.

    Some amount of text has already been written on this in earlier posts but I thought it might be nice to go into a bit more detailed about where this key component of the mod is right now, and where it's supposed to go (and of course in which state it'll likely be in the first release we branch out of our version tree). So let's get rolling.

    First of all I have to stress this point again: I don't intend to create an easy mod that can be beaten by a mongrel with diarrhoea (for those of you not in the know, mongrels with diarrhoea tend to spend most of their time on the toilet instead of behind keyboard and mouse). So, the primary aim of the recruitment system is to present the player with a challenge and interesting choices (the AI gets fewer choices and less of a challenge of course). My main means of achieving this is to severely reduce the speed of recruitment, but I'll talk about this in more detail later. Let me instead present the necessary pieces to understand the system again:


    The rural/urban split

    I think it might make sense to mention this again. In Italia Invicta, the castles and cities of the vanilla game are interpreted as a decision of the province's liege to focus either on the city (urban) or the countryside (rural) of the province.

    This decision has a huge impact on how the province will crop up. Rural provinces will be able to recruit more units more quickly but won't get any free upkeep slots and are therefore not too prone to field a standing army. Furthermore, if you go for that route, you won't get access to more advanced structures like cathedrals, palaces, banks, and so on.
    Conversely, if you choose to live in an urban environment, you'll get all the trade benefits, a well-trained militia army and a larger population. However, it will also mean that you have to import food to grow your city - and not all provinces support a large city at all!

    In general you will therefore want to have a good measure of both rural and urban cities because each type has benefits and drawbacks. It'll probably be possible to go "all-urban" or "all-rural" especially for smaller factions but you'll most likely not get the full bang for your buck if you do that.


    Staying Focused

    Another important consideration for each city is to choose an appropriate focus building. These come in four primary flavors: one for each unit category (infantry, missile, cavalry) and a training focus.
    The unit focuses then further branch out into e.g. archery and crossbow focus.

    The general benefits of the unit focuses should be pretty much apparent from the name: You get more and more experienced troops of your focus type at the cost of somewhat neglecting the other unit types. In the end you'll also get access to more advanced units only by focusing your city (right now I'm only using a few generic unit types, see below)

    The training focus works a bit differently. It doesn't increase or decrease troop numbers but instead provides a meaningful experience boost for all units that you can recruit - think of this as an emphasis on drill like in the Prussian armies centuries later or in the Byzantine army of the time.


    Unit types

    Right now, I'm working with a few generic unit types only. I don't have the time to implement the features I want to work on so I'm surely not spending any on giving the mod a tiny flavor boost by adding a ton of different unit types that are essentially the same.

    That said, the current unit types are:
    - Spearmen/Spear Militia (representing infantry in general right now)
    - Archers/Bow Militia
    - Crossbowmen/Crossbow Militia
    - Light Cavalry/Cavalry Militia

    Yep, there's only four units in the game right now. We'll probably want to add a few before making a release (heavy cavalry like knights and maybe one or two specialist infantry units like axemen or swordsmen come to mind) but the number will probably stay well below 20 for quite a while.

    Let me tell you that this is not necessarily a disadvantage. Only having access to few unit types makes it much easier to remember the role of each unit, makes settlements more compatible with each other and prevents the "duh, yet another unit that does the same as xyz" effect that I frequently had in vanilla and have in a lot of mods. You might argue that it's more realistic to have different units but frankly medieval armies worked very similar in such an area as Italy (exceptions will probably made to some level for the Byzantines and the Muslims who would rely more heavily on light units because of their environment in Ifriqiya and Sicily)


    Ok, we're ready to go into the real point of this post:

    Recruitment Times

    As I mentioned in the opening paragraph, recruitment times will be seriously slowed down when compared to vanilla. Normally, having to wait five turns for a new unit of a certain type is pretty much the maximum that CA went for (they probably feared the player would have nothing to do) - add to that the large redundancy in a lot of units (i.e. it doesn't matter that much whether you use feudal knights or mailed knights) and the comparatively low upkeep cost, you arrive at a situation where you can recruit an army out of a single previously drained large castle within 15-20 turns

    My opinion on this is: Well I'd rather not tell you because swear words are against the forum rules but you can imagine what I mean when you consider how ruinous for gameplay it is to be able to pull out a new army within a few turns after having lost all of your previous fighting force in a large-scale battle.
    It makes an attack decision pretty much a no-brainer, you don't have to decide when to commit and when to hold back and defend because the losses would be too high. Sacrificing units is no problem because you can cheaply get replacement, standing armies with a high soldier throughput are the norm and not too expensive to sustain, either.

    In II, I'll therefore take a different route. A waiting time of five turns from recruiting a unit to recruiting another one of that type will be pretty much as low as it gets - usually you'll have to wait significantly longer, especially for militia armies (because militias are designed to be standing armies). This makes it much more important to plan ahead how many soldiers you'll need to attack and overextending yourself bears the risk of disaster - so it'll be important to consider quite a few things before deciding to attack.

    Furthermore, recruitment will be much more complex. There is a large number of variables that have an influence on the number of units generated each turn: City size, focus, control level and so on will all have an influence on the amount of soldiers you can recruit. Unfortunately, this also means that you don't have an easy overview about how long exactly it'll take in a particular settlement until you can recruit a new unit but that's a price I'm willing to pay (and I'll probably write some kind of calculator where you can enter your city details to get this information at a later point).

    Last but not least: The AI will mostly be able to recruit at a capacity that is quite a bit higher than that of the player. This is done because a) The AI won't be able to handle more complex concepts like the control buildings and b) to increase the difficulty level. The player is so much better at managing stuff than the AI that this only goes a small way to even the odds a bit.


    For the code buffs among you I'll give an example of a current (slightly) simplified version for spearmen recruitment so you can see what I mean exactly:

    Spoiler Alert, click show to read: 
    Code:
    				recruit_pool "spearmen" 3.0 0.1 3.0 1.0 requires factions { all, } and building_present core_castle_building
    				recruit_pool "spearmen" -1.0 -0.03 -1.0 1.0 requires factions { all, } and building_present core_castle_building and not building_present_min_level control_level control2 or building_present ai_control
    				recruit_pool "spearmen" -1.0 -0.02 -1.0 1.0 requires factions { all, } and building_present core_castle_building and not building_present_min_level control_level control3 or building_present ai_control
    				recruit_pool "spearmen" 1.0 0.02 1.5 2.0 requires factions { all, } and building_present core_castle_building and building_present_min_level control_level control3 or building_present ai_control
    				recruit_pool "spearmen" 1.0 0.05 1.5 1.0 requires factions { all, } and building_present core_castle_building and building_present_min_level control_level control4 or building_present ai_control
    				recruit_pool "spearmen" -1.0 -0.05 -1.0 1.0 requires factions { all, } and building_present core_castle_building and not building_present_min_level core_castle_building wooden_castle and not building_present ai_control
    				recruit_pool "spearmen" 0.0 -0.02 -1.0 1.0 requires factions { all, } and building_present core_castle_building and not building_present_min_level core_castle_building castle and not building_present ai_control
    				recruit_pool "spearmen" 0.0 0.03 1.0 2.0 requires factions { all, } and building_present core_castle_building and building_present_min_level core_castle_building fortress or building_present ai_control
    				recruit_pool "spearmen" 0.0 0.07 2.0 1.0 requires factions { all, } and building_present core_castle_building and building_present_min_level core_castle_building citadel or building_present ai_control
    				recruit_pool "spearmen" 0.0 -0.025 -1.0 0.0 requires factions { all, } and building_present core_castle_building and building_present_min_level focus_missile focus_missile and not building_present ai_control
    				recruit_pool "spearmen" 0.0 -0.025 -1.0 0.0 requires factions { all, } and building_present core_castle_building and building_present_min_level focus_cavalry focus_cavalry and not building_present ai_control
    It was generated with an automaton (I tend to write small python scripts to save a lot of work with stuff that often changes) which is fed with an input file that looks like this - and I wouldn't recommend doing something like this by hand, either:
    Code:
    # Format (relative entries are always relative to the appropriate base value):
    # (unit	primary recruit pool line)
    # unit	<unit name>	<initial value>	<base pool increase> <base pool cap> <base exp> <requirements>
    # (additionally conditioned recruit pool lines)
    # <absolute initial value increase>	<relative increase increase>	<absolute pool cap increase>	<absolute exp increase>	<requirements>
    # ...
    # (unit)
    
    # Spearmen (base)
    unit	spearmen	3	0.1	3	1	factions { all, } and building_present core_castle_building
    
    # Control level modifiers
    -1	-0.3	-1	0	+and not building_present_min_level control_level control2 or building_present ai_control
    -1	-0.2	-1	0	+and not building_present_min_level control_level control3 or building_present ai_control
    1	0.2	1.5	1	+and building_present_min_level control_level control3 or building_present ai_control
    1	0.5	1.5	0	+and building_present_min_level control_level control4 or building_present ai_control
    
    # City size modifiers
    -1	-0.5	-1	0	+and not building_present_min_level core_castle_building wooden_castle and not building_present ai_control
    0	-0.2	-1	0	+and not building_present_min_level core_castle_building castle and not building_present ai_control
    0	0.3	1	1	+and building_present_min_level core_castle_building fortress or building_present ai_control
    0	0.7	2	0	+and building_present_min_level core_castle_building citadel or building_present ai_control
    
    # Competing focuses
    0	-0.25	-1	-1	+and building_present_min_level focus_missile focus_missile and not building_present ai_control
    0	-0.25	-1	-1	+and building_present_min_level focus_cavalry focus_cavalry and not building_present ai_control


    I hope you enjoyed this kind of preview. Until next time

    alpaca
    Last edited by alpaca; 02-15-2008 at 17:55.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Single Sign On provided by vBSSO