lancer -> ERM - Plans for Stage 2 (1/15/2013 3:21:02 AM)
Second Stage Mod Design
As mentioned, this part of the mod hasn’t yet been written. I’ve done a lot of prototyping to test out various ideas. As such it’s still fluid.
When is it going to be done? Who knows? There is a fair bit of work involved and I have, like most people, competing priorities. It’s the Summer Holidays here in Australia and my family would rather I took them camping or to the beach than sit in front of a computer. On the up side I’m keen to get it up and running for my own personal use.
Will the second stage of the mod be multiplayer enabled? Probably not. Can’t see that anyone (MP) would be interested.
Here’s a brief overview of the design I’ve come up with to date and the parts I’ve yet to resolve.
I’ve split the effects into a Maritime side and a Land side. One deals with all matters ocean and the other with all matters land.
The Maritime side is all scoped out and ready to go. The AI’s weakest aspect is dealing with ocean heavy maps. I happen to like playing on these maps as they throw all kinds of fun stuff at you such as having to make amphibious landings and extended supply routes.
So I’ve developed a comprehensive AI run, submarine campaign in order to make it less of a cake walk and more of an uphill challenge. Works a bit like this.
There are pools. The mod keeps track of each individual AI sub (these are submarines that aren’t on the map) and which pool they are currently in. There is a base probability of a sub moving from one pool to the next appropriate one. Every turn each sub is checked.
A sub in the ‘preparation pool’ is undergoing resupply and repairs. A sub in the ‘operational zone’ can only stay there for so long before it runs short of torpedoes and fuel and has to return to base. Rather than getting all anal about tracking torpedo useage, fuel and damage levels I’ve set it up so there is a base probability, each turn, of the sub moving onto the next ‘pool’.
You’ll notice the pools are set up in a circuit such that the subs keep recirculating until sunk. Each complete circuit, or patrol, an individual sub conducts ramps up its experience levels making it more effective in the future.
The number of subs within the system is controlled by the enemy ports. Each enemy port has a base chance of generating a new sub per turn which then has to go through a ‘work-up’ period before it becomes operational. There is a cap on the maximum number of subs that can be in play at any one time which is determined, once again, by the number of ports the enemy AI control.
The only really effective means of shutting down the AI’s submarine campaign is to capture his ports.
The idea of the ‘work-up’ period is to place a lag into the system. The AI will slowly start building subs and working them up from the get go but it will take a while before the subs store up and transit to the operational zone in any meaningful numbers. So in the early game the AI will be laying down the foundations of its submarine campaign but it probably won’t come to full fruition until towards the later part of the early game.
All enemy AI’s are, for mod purposes, combined as one. They hate you. They are all busy hammering together subs out of scrap iron and nails. All enemy AI ports are considered the same by the mod. In effect the partial efforts of each enemy AI are combined together to attack your trade routes. That’s ‘cause they hate you. Might have mentioned it.
Only subs in the ‘operational zone’ are able to attack your cargo ships. If I’ve got my model (the percentages shown above are indicative only, they aren’t the actual ones) correct it should work out to only one third of all available subs are on combat patrol at any one time.
Each sub in the operational zone has to pass a search test and then, assuming it’s located a target, an attack test. If you’ve got destroyers present then there would also be a ‘counterattack ASW test’.
A fair number of factors go into both (including winter weather conditions) and all three tests can be flowed through to any ‘on-map’ cargo ships.
All of which is pretty straightforward. A simple, flexible mechanic to generate and circulate AI submarines through successive patrol cycles.
The interesting bit is that all the basic probabilities can be tweaked by allowing the AI to evolve their submarine campaign. For example the AI may choose to follow a mass production strategy in which case I raise the chances of each enemy port generating a new submarine. Or it may focus on developing better torpedoes in which case I tweak the attack algorithm. Alternatively it may develop subs with bigger fuel tanks (eg. U-Boat type 9’s) to allow longer loiter time ‘on-station’.
There are lots of things I can do here. Initially the AI in every game would commence a basic, stock standard, submarine campaign but they would then evolve along separate paths such that each submarine campaign is different. It’s not hard to program the AI to give it a choice of random strategies. The strategies would each have a range of possible improvements, grouped in a coherent manner, with probabilities determining which specific improvements are developed within the framework of each individual strategic path.
The idea behind this is to present the player with a nimble opponent that is actively evolving their level of threat.
The player would have a range of options available, eg. develop radar, instigate convoys, etc., each designed to tweak various probabilities back in their direction.
The tricky bit is that you aren’t going to know which strategy the AI is following unless you put some resources into stuff like, perhaps, ‘establish a Direction Finding Listening Network’ (gives you a rough estimate of how many subs are in transit) or ‘Instigate an Operational Research department’ (takes an educated guess at what tactics the enemy are using). Maybe even ‘Attempt to crack the Enigma code’. These were, historically, important aspects to getting a grip on what the enemy was up to.
They will give you a better idea, but not the full picture. Lot of fuzzy information and inspired guesswork involved in submarine warfare.
The aiming point with this part of the mod is an AI that will, if left to its own devices, clamp down fiercely on your ability to transport your overseas resources as well as being a threat to any on-map cargo ships that venture out to sea.
There’s a big temptation to throw everything but the kitchen sink into this part of the mod. Important to draw the line somewhere.
I’m aiming for a series of possible decisions (via action cards), probably no more than a smorgasbord of ten and have them priced (PP’s) such that you are only ever able to afford half of them (or I’ll simply restrict the number of choices you can make).
Another angle I’d like to work in here is that of ‘implementation time’. You select an action card option, say ‘Establish an Escort training program’ to improve your commander’s ability to defend a convoy. Perhaps you’d pay 100 PP for this card. It shouldn’t be that it’s instantly available. There should be, instead, a period when your improved training and doctrines gradually flow through your available escorts. How long? Three months – 12 turns?
If I lock it down such that you can only have one action card in play, or being implemented, at a time, then decisions become weightier.
You’ll have to build destroyers, both to protect your pool and your on-map cargo ships and you’ll probably have to set up a ‘liberty ship crash construction program’ if it all goes pear shaped. Additionally if any pool based ships get torpedoed then there’s a chance you’ll lose an appropriate amount of resources along with your cargo ship.
There will be a cat and mouse aspect in that you’re having to put together a picture of what the AI is up to from limited information and carefully consider which counter measures you’ll take (which, as mentioned above, will be restricted, you won’t be able to do everything).
So, overall, fairly streamlined but with difficult decisions. Get it wrong or ignore the AI’s submarine campaign and you’ll be hurting badly. You’ll also be dealing with an AI that is shifting gears on you. What works now might not work so well next game year.
This isn’t as straightforward. Originally I was going with a design that had the AI infiltrating commando teams into the player’s territory and establishing partisan bands that, once up and running, attacked their rail networks.
Didn’t work, or rather, it did but it was too similar to the submarine campaign. Too much of a good thing doesn’t make a tastier omelette.
So I read a book, “Engines at War” which is a history of railways in military conflicts. Excellent read. Turns out that it’s very difficult to destroy an enemy’s railway infrastructure. Engineers are very competent at putting humpty dumpty back together again.
The bigger problem, apart from differing rail gauges which are beyond the scope of ATG, is inefficiency.
There was an especially smart bloke on the Union side in the American Civil War (Herman Huapt) who formulated some basic rules for efficient military rail operations. Everybody, ever after, subsequently ignored them and had to relearn these very same rules, to varying degrees of success.
So the biggest threat to your rail network actually comes from within. The larger your network grows the more inefficient it is liable to become. Unless, of course, some pretty stern, and difficult to implement, measures are taken.
Having a centralised railway command run by professional rail operators who have authority over the military is the key. Imagine how likely it is that General ‘Rip-a-new-one’ is going to pay any attention to a lowly station master?
Inefficiency doesn’t sound like much of a fun game mechanic but I’ve figured out a way to dress it up with a smile on its face. Although a smiling horse is still a horse. You aren’t going to want to kiss it.
I’m not entirely convinced on tackling the land side this way but it has the advantage of being a different game mechanic to the maritime side, being easy to comprehend, requires no micromanagement (your only decision is when to pay for and implement measures such as ‘more rolling stock’, ‘double track key section of line’, etc.), can be programmed to use up some RAW (you’ve got too much in the middle game anyway) and is easy to program.
It’s also historically accurate. But still, inefficiencies…
With the two different aspects, Maritime and Land, comes the issue of how does the AI deal with them both from a strategic perspective? Does it go all out on a submarine campaign or does it sit back and wait for you to tangle your rail network into untie able knots all on your lonesome?
My solution is to figure out how much of the map is ocean. Roll a percentile dice each turn and if it is equal too or less than the map ocean percentage then the AI’s submarine campaign gains a ‘campaign point’. Otherwise the player’s rail network gains a ‘friction point’.
Keep a running tally of both campaign and friction points. Roll percentile dice for each every turn. If it’s less than the tally then stuff happens.
In the case of the campaign points the AI would have the opportunity to ‘evolve’ to the next stage of its strategy, eg. ‘Develop Better Torpedoes’. For the friction points the efficiency of the player’s rail network might drop by a set amount.
Bit more to it than that but the gist is that, on an ocean map, the AI is going to, on average, push its submarine campaign hard while on a land map, the player is going to find his rail network starting to choke up.
This is something that I’d like to toss into the mix but I haven’t yet been able to pin down a means of doing so that I’m happy with.
The thinking is that your cities need food. A lot of that food would have to be imported from off-map areas to your capital and then distributed to your cities.
The amount of food you’d need would be proportional to the number of cities you have. This would act as a braking mechanism on your ability to steamroll the AI. The more cities you capture, the bigger your food problems become.
What happens if you haven’t got enough food to feed your civilian population? There are strikes and riots. Either your production drops or your cities get damaged.
To tie it into the Land aspect I’d have a random number of trains being destroyed every time there were riots. If I had an empty stomach and couldn’t feed my family I’d be down protesting at the food distribution centre – the local rail yard. Give me my quota of baked beans and rice or I’ll torch another train.
So far so good. But how to do it without getting bogged down in micromanagement h*ll?
Keep it simple for starters. The food only has to make it to your capital. You can assume it is automatically distributed outward from there. No need to keep a record of how much food you have. Either you ship or rail in enough each turn to your capital or you don’t.
For every turn that you don’t the risk of civil unrest increases, say +1% per city, maybe +2% for each foreign city. Every turn of adequate food decreases the risk but at a much slower rate, say -1%. Roll a percentile dice and see if the risk eventuates into riots.
Might be a bit arbitrary. What if you managed, say 99% of your food requirements? You might still get riots which is a bit rough. Perhaps I could adjust the chance of civil unrest in proportion to the amount of food delivered (if less than the required amount). This would allow a graduated scale of risk without the hassle of having to keep track of food levels in your cities.
All good but the tricky bits are how to import food to your capital and how to allocate transport resources to the task.
My approach is to designate 4 hexes as import sources, one each on every map side, probably in the middle. The player then has to create a connection between one of these and their capital. The number of hexes in length and the amount of food (in tonnes) would then determine the transport capacity required to make your weekly ‘food’ nut. Same as for resources.
You’d then have to allocate enough trains and ships (depending on what was required) to meet that capacity. Your trains and ships are both vulnerable to enemy action (submarine campaign) and your overall rail inefficiencies.
But there are issues. With four possible import hexes, one halfway along each map border, it’s still feasible that your capital can’t access any of them due to them all being enemy controlled, or having to transit through enemy territory.
Additionally some capitals are going to be right next to an import location and others are going to be in the centre of the map and miles away. Would that be a problem in a single player game?
Maybe I could avoid putting an import source on the same map edge as your capital?
I could, instead, make the import connection abstract, say a set distance that scales with map size, away from your capital but then the whole process risks disappearing down the abstraction toilet and there isn’t any geographical reason to connect to a specific point on the map and protect your food convoys.
Perhaps the food imports aren’t necessary until you start conquering cities that aren’t your own culture? Or maybe you have enough stockpiled in your capital to last until a certain point into the game. This would give you a chance to crack open a route to an import location. You could even risk it and run the gamut of the occasional riot and general strike until you bust through. Maybe.
The second problem is allocating transport assets (trains and ships) to the task of importing your food. Do you do this through a separate pool of assets? A ‘Civilian’ pool? Easy to program and implement but it’s a little messy and adds greatly to the micromanagement.
Another option is to toss the additional pool idea and instead say that only left over transport capacity, after all resources and reserves have been moved, will be used for the task. Throw in a few action cards that allow you to shift the priority. For instance you could make food your second priority after resources (but before reserves) or you could make it your first such that no resources are moved until your food situation is taken care off.
Might work. It’s simple and avoids micromanagement. It also creates some interesting tension. Do I need my resources more than I want to risk a general strike? Either way it greatly increases the importance of getting enough ships through safely and having your trains running on time which both feed into the Land and Maritime aspects of the mod.
So now you’ve got a Civilian Market that increases its demands with each city that you capture and one that competes for precious transport assets with your need for resources. Simple and streamlined.
Still, I’m not entirely sold on the idea. Might be a bridge too far.
There isn't one apart from a strong desire to improve the middle game performance of the single player experience in a fun and enjoyable manner. Feel free to kick around any ideas you have as I'm all ears.