Jump to content
Game-Labs Forum

J & P Rebalance Mod by JonnyH13 and Pandakraut 05/06/2023 1.28.4


JonnyH13

Recommended Posts

On 5/11/2022 at 10:55 PM, pandakraut said:

This is already possible in the base game. In the main menu under options you can remap the standard controls.

ME>  Duh.  Saw the Options list but Didn't check for behavior
Useful Standard UI Design:

  • On-screen instructions ("Click button to re-map")
  • OnMouseOver behavior ("Click button to re-map")

Not your job to fix - and you probably can't, since it's in the base game.  Thanks for the clarification, PK.

  • Like 2
Link to comment
Share on other sites

On 5/31/2022 at 12:30 PM, OhioJack said:

Thank you Pandakraut for the AO info!  That really helped me tweak the mod for my play style.  I've run into another thing though as I'm digging around.  Do you happen to know how the timers are setup in the game?  Is it based on seconds, 20 ticks / second or something else? 

Sorry, missed the question here. The timers are using an internal value that is related to the current frame. I don't have anything exact on this though.

  • Like 1
Link to comment
Share on other sites

On 6/5/2022 at 7:35 AM, TFL117 said:

I have a few questions:
Is it possible to give Charge a higher percentage of speed than running?
Is it possible to adjust the speed of the cavalry?
What does spriteSpeedMultiplier mean?

I'm from China, and I like this mod very much. I have localized the weapon description part in this mod to share happiness, I hope to get your permission before sharing.

Charge speed would need to be changed in the dll. GOAP.Action.Move is the class, UpdateSpeed is the method.

Unit base speeds are in GOAP.UnitModel in the BaseSpeed method.

spriteSpeedMultiplier modifies the speed that the individual sprites move in certain scenarios. Basically they get accelerated to try to catch up with the unit center sometimes. I was experimenting with this to try to improve cavalry sprite behavior but it didn't end up working.

Feel free to post any localized files, I can include them in the next version and credit you if you would like. 

On 6/6/2022 at 11:06 AM, TFL117 said:

Weapon return didn't be higher for any surviving men in allied units in my game........

There are some bugs around how that is working currently. Will be fixed in the next version.

  • Like 1
Link to comment
Share on other sites

Hey Pandakraut,

Two questions:

- If you have zero in Training, do incoming recruits still get better with time? If so, does at which points of the game does this occur?

- This may already occur, but is it possible to cause the AI to be less aggressive when it is meant to hold a VP (defense). It seems like it is always on the offensive even when it should be defending.

  • Like 1
Link to comment
Share on other sites

9 hours ago, PaulD said:

- If you have zero in Training, do incoming recruits still get better with time? If so, does at which points of the game does this occur?

They will gradually get better throughout the campaign, exact stats change based on the current timeline.

9 hours ago, PaulD said:

- This may already occur, but is it possible to cause the AI to be less aggressive when it is meant to hold a VP (defense). It seems like it is always on the offensive even when it should be defending.

There are not good ways to achieve this currently. If the AI is significantly weaker in size and especially veterancy then it will get very passive. But both of those methods also result in the player being able to easily steamroll the AI without any tactics.

There are different general AI's assigned to different phases of battles. Unfortunately we currently can't assign those and only know which ones are used in certain places. So while something silly like making every single AI insanely aggressive(actively hunt for you if you are hidden no matter what) is possible, anything more granular is not. That accidentally got included in a patch once, no one could make it past the opening battles.

In general, I'm relatively opposed to making the AI more passive. While it does make certain attack battles easier, we have plenty examples of battles where the AI is completely passive. Those just turn into the player slowly picking the AI apart one unit at a time while the AI stares around blankly. The nuance in decision making that is needed just isn't really possible here.

Another option is to severely limit the player with timers to prevent the player having time to bait out the AI, but that approach doesn't tend to be well received. In the next version I'm trying to find a decent balance between enough time to do what is needed, but not enough to take a very low casualty approach. Though I'm also balancing that against legendary, so on lower difficulties better results will definitely be possible.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

12 hours ago, pandakraut said:

Sorry, missed the question here. The timers are using an internal value that is related to the current frame. I don't have anything exact on this though.

I see.  It is possible to setup the timers for the different battle phases in resources.assets though, right?  Is there a particular schema used there?

  • Like 2
Link to comment
Share on other sites

15 hours ago, pandakraut said:

There are not good ways to achieve this currently. If the AI is significantly weaker in size and especially veterancy then it will get very passive. But both of those methods also result in the player being able to easily steamroll the AI without any tactics.

Understood.  There are a handful of battles, like Secure River, where I'm thinking the AI should stay in the superior defensive position - yelling obscenities, flipping my guys off, mooning, and basically saying "come and get it sucker" rather than charging down hill into the open.

A couple more...

- Lets say that a unit has 2-stars. They get beat up a bit in a grand battle so you give them some rookie recruits and that pulls them down to 1-star.  During the next grand battle they gain enough XP to get back to 2-stars. My question is, will they function as 2-stars from the moment they get that experience back during the battle? Or, does it require going to camp to reset them back to 2-stars? On-screen during the battle I notice they display a 1-star but as soon as your back to camp they are 2 again.

- To what degree does weapon damage equate to more kills, or doesn't it?  I mean, if one small arm does 4 to 6.5 damage and another weapon with completely equal stats other than damage does 4.5 to 7, does it may any difference at all?  Does the game even consider the damage range, or does it just check for hits and a hit equals a kill?

Thanks for always educating us on the mechanics Pandakraut! Much appreciated.

  • Like 1
Link to comment
Share on other sites

19 hours ago, OhioJack said:

It is possible to setup the timers for the different battle phases in resources.assets though, right?  Is there a particular schema used there?

Theoretically possible yes, but I have no idea where they are or how to locate them. Any time adjustments I do are through the editing the dll where I can adjust them by phase of a battle.

So anything more specific than adjusting the config values as you go would require using dnspy or something similar.

  • Like 1
Link to comment
Share on other sites

6 hours ago, PaulD said:

Lets say that a unit has 2-stars. They get beat up a bit in a grand battle so you give them some rookie recruits and that pulls them down to 1-star.  During the next grand battle they gain enough XP to get back to 2-stars. My question is, will they function as 2-stars from the moment they get that experience back during the battle? Or, does it require going to camp to reset them back to 2-stars? On-screen during the battle I notice they display a 1-star but as soon as your back to camp they are 2 again.

Have to go through camp, between days in multiday battles works.

6 hours ago, PaulD said:

To what degree does weapon damage equate to more kills, or doesn't it?  I mean, if one small arm does 4 to 6.5 damage and another weapon with completely equal stats other than damage does 4.5 to 7, does it may any difference at all?  Does the game even consider the damage range, or does it just check for hits and a hit equals a kill?

It doesn't in any meaningful way because there are so many layers of modifiers between the base damage and final damage dealt in a given frame.

There is no miss chance. Base damage is rolled, modified by cover, stats, perks, distance to target, number of men, unit type, shot type, etc. If total damage dealt ends at > 0 you'll see hp go down.

All else being equal the 4.5-7 is always better because it will on average deal more damage.

  • Like 1
Link to comment
Share on other sites

On 6/10/2022 at 10:12 PM, pandakraut said:

Charge speed would need to be changed in the dll. GOAP.Action.Move is the class, UpdateSpeed is the method.

Unit base speeds are in GOAP.UnitModel in the BaseSpeed method.

spriteSpeedMultiplier modifies the speed that the individual sprites move in certain scenarios. Basically they get accelerated to try to catch up with the unit center sometimes. I was experimenting with this to try to improve cavalry sprite behavior but it didn't end up working.

Feel free to post any localized files, I can include them in the next version and credit you if you would like. 

There are some bugs around how that is working currently. Will be fixed in the next version.

I'm a game designer, but I don't have programming skills.So I can't find "GOAP.UnitModel" and "dll.GOAP.Action.Move" It should be my lack of programming ability that I can't understand what you mean correctly.I'll recheck and package my localization files with instructions later.

  • Like 2
Link to comment
Share on other sites

I believe this has been asked before, but I'll do it again:  The game behavior at mapEdge is really ... bad. 

You can trap units in the corner and take them apart

But at a straightedge my units can get bogged down, they inflict few casualties, and the ai unit can sometimes recover (!) and even defeat my superior unit.

 Isn't there a better way to do this?

I'm sure you've already looked at the situation and the possibilities, PK, but it seems to me that you might :

  • Rout the AI off the map
  • They might return to the same area of the map - after a delay
  • But also with penalties (troop loss, weakened morale)

Aside from that: Any suggestions on how to deal with the bad behavior?

Edited by dixiePig
clarity
  • Like 2
Link to comment
Share on other sites

10 hours ago, TFL117 said:

.So I can't find "GOAP.UnitModel" and "dll.GOAP.Action.Move" It should be my lack of programming ability that I can't understand what you mean correctly.I'll recheck and package my localization files with instructions later.

You would need to use a program like dnspy to open the assembly-csharp.dll included with the mod download. That program decompiles the dll so you can search for the class names.

  • Like 1
Link to comment
Share on other sites

1 hour ago, dixiePig said:

Rout the AI off the map

Unfortunately, I have not been able to figure out how to get ai units to do this. Seems like it should be trivial given that routing and shattered units can, but has proven a difficult technical challenge.

Easiest way to deal with units at the map edge is to give them more space and not go into melee. This lets them bounce around a bit which avoids the worst of the issues.

As we are reworking battles we're removing many of the instances where catching units at the map edge comes up.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

5 hours ago, PaulD said:

If you don't have it already, please add to the To-Do List

2nd Bull Run, ensure that 4th division in 1st Corps deploys. Currently that division never takes the field.

Thanks

Which day? I think the full first corps only shows up on day 3.

Edited by pandakraut
  • Like 1
Link to comment
Share on other sites

Ah, I don't usually get to day 3. I try to end it on day 2 because the complete reset on day 3 is just an inconvenience.

On day 2 you have all of 2nd and 3rd corps, then the first 3 divisions of 1st corps.  Since all of 2nd and 3rd corps are on the field I assumed all of 1st would be there.

 

Link to comment
Share on other sites

Does cover have a cap, or can it be over 100%?  Or, in other words, if a unit is already in a 100% coverage area of the game, do their cover perk bonuses apply above the area coverage?

Is there a set order in which modifiers are applied during combat? Is there somewhere else where that may already be published?

Thank you

Link to comment
Share on other sites

12 hours ago, PaulD said:

Does cover have a cap, or can it be over 100%?  Or, in other words, if a unit is already in a 100% coverage area of the game, do their cover perk bonuses apply above the area coverage?

Is there a set order in which modifiers are applied during combat? Is there somewhere else where that may already be published?

Thank you

A units cover is capped at 100%. Modifiers to a unit's cover stat can go above 100% because those apply to the base amount of cover provided by terrain. So if you had +150% to cover this would do little to nothing in dense woods, but would be very useful on open ground.

Cover values will be getting changed up in the next version so that cover perks are more generally useful.

Modifiers do have a set order, but I can't think of any case where the order matters to any decision making. I haven't written those up anywhere as it's spread across multiple areas so it'd be somewhat time intensive to put together.

Is there something in particular you were concerned about with the calculation?

  • Like 1
Link to comment
Share on other sites

11 hours ago, pandakraut said:

Is there something in particular you were concerned about with the calculation?

Nothing in particular. I was deep into Diablo II in the first decade after it was released and understanding how and when various modifiers were applied mathematically changed the value of the bonus. For example, -5% to X damage vs -10% to Y damage, one would naturally think that the latter is of more value since it is bigger, but once you see the math formula for how the game damage reduction works you would discover the first to be more valuable because X is applied early in the formula (so it reduces a big number) and Y is applied at the end of the formula (reduces a smaller number).

I've been taking Sharpshooters at Tier 3 for my Infantry for the cover and accuracy, but with cover being capped at 100% and I use a corps commander with the cover aura, I may switch my INF over to Elite instead.

Basically, if something stacks (say accuracy or reload) then having more is always a benefit, but if something is capped, then once you are comfortable that you can hit the cap frequently, then taking more is wasted.

  • Like 1
Link to comment
Share on other sites

In general the damage modifiers are all ordered such that there is no particular benefit to one or the other. 

In the current version the only advantage of stacking an excess of cover is it allows you to turn far more of the map into 100% cover. I'm not sure if it's possible to stack enough to turn open ground into 100% though. This should be a more relevant stat in the next version.

  • Like 1
Link to comment
Share on other sites

Concerning morale degradation, it seems true that taking any volley of fire from a unit causes degradation regardless of the amount of damage done. So, although smaller units might do less damage, they can cause the enemy to rout just as easy.  Is this correct, or am I missing something?

If this is true, I may play around with stacking reload and fire rate vs just going for accuracy.  

  • Like 1
Link to comment
Share on other sites

6 hours ago, PaulD said:

Concerning morale degradation, it seems true that taking any volley of fire from a unit causes degradation regardless of the amount of damage done. So, although smaller units might do less damage, they can cause the enemy to rout just as easy.  Is this correct, or am I missing something?

If this is true, I may play around with stacking reload and fire rate vs just going for accuracy.  

Morale damage is directly related to damage dealt to the unit. If you are flanking or rear flanking the damage increases slightly and the morale damage increases significantly, but the base amount of damage still matters. The easiest example I can think of is putting a detached skirmisher on an enemy flank compared to a full unit. The detached will slowly degrade the morale, but an actual unit will deal significantly more.

Stacking reload potentially improves your sustained dps if you can get off extra volleys, but in terms of spike damage accuracy nearly always wins. Higher spike damage also becomes important in terms of bypassing the morale damage resistance to actually force a unit to rout as well. 

One of the problems with stacking reload speed is you eventually come up against the limitation of aiming and volley time, as those can't be reduced and the only way to increase the damage dealt during the volley is through accuracy.

  • Like 1
Link to comment
Share on other sites

21 hours ago, PaulD said:

Just FYI, in case you haven't noted it yet, Parker's Crossroads says 12 units, but 13 will actually deploy.  8 in the deploy box, then 5 more when reinforcements come in.

Thanks for the report, will fix once I get to that one in the battle rework.

  • Like 1
Link to comment
Share on other sites

After our conversation about using the AI Scaling in the AIConfig to indirectly boost XP and weapons harvests, and how that snowballs, I decided to go back and do a quick run up to Shiloh to see if I could get 12 2-star units for Shiloh "naturally".

- The only changes in the mod files were using the bypass recon setting to allow me to see AI Army size prior to battles, and having the arty limber set at 1 to force limbering when they move.

- I did NOT buy any vets for Walton, or any of the existing units prior to disbanding in the camp before Distress Call like I do in my YouTube series.

The result? 14 2-star units sitting in camp prior to Shiloh!

I didn't record the battles, but I have the before and after camps of all battles to show what I did. I know the mod is changing soon, but I thought I'd but together a brief YT synopsis of how I did it with this version. For timing sake I just reused one of my post-Philippi saves rather than fighting that battle over again - didn't seem like there would be any benefit other than I may consciously try to get my core units more kills in that battle.

What makes it possible currently:

- Obviously, you need to take all the Training selections in the campaign set up, and disband all the units after Philippi. Those are a given.

- Distress Call and 1st BR allow 12 units (though Distress Call says 10, 12 will actually deploy). River Crossing and Logans Crossroads can take 14 units.

- Mid-level Colonels and above can get a new unit to 2-stars in just 3 battles. So, Loomis, Walton, Scales, and Woods will all get their new units to 2-star with no problem. If one of the battles is 1st BR it is easier than doing 3 minor battles, but it is doable and you just have to ensure those guys are right in the middle of the fighting racking up kills. After Distress Call I bought Brewster and Brooks (some combo of them, Franklin, Willcox, and Heintzelman are nearly always in the starting academy).  I made 2 more INF with Brewster and Brooks and sent them to Bull Run and left Loomis and Scales on the bench. 

- Assigning captains to SKM and CAV will more than likely require that they fight in all 4 battles leading up to Shiloh. One of my skirmishers made it in 3, but the rest needed 4.

- Assigning captains to ART can get to 2-star in 3 battles if they have NAP and/or ORD. The small 6pd Field guns can't quite get there.  I had 17 NAP to start out and bought one more to make 3x6 batteries. I had 4 ORD and bought two to  get them to 6 for Distress Call.

- You can only take 12 units to Distress Call by putting both Career Points into AO after Philippi.  If you then put your point from Distress Call into AO, you can make divisions of 6 units and thus the player can determine which units deploy at 1st BR because the game will take the 12 in the first 2 divisions and not take any from 3rd - if you can only make divisions of 5 the AI will pick whomever it wants from 3rd. This also allows you to build ballast units with whatever extra weapons you have laying around in 3rd Div - I made 1 INF with Muskets and 2 artillery with the extra guns in my armory.  HOWEVER, putting the point in AO rather than Training results in not being able to make new 1-star units in the camp prior to Shiloh, because the large influx of new recruits you get after BR will all be 2 points less in every stat.  You could put the point into Training to get 8 before BR, but it will be hard to get the AI to deploy the units you want from 3rd division. 

- To offset not creating larger armies with the AIConfig file, I moved all the allied units at Distress Call and 1st BR into areas where they could support me and I could use them if my units got into trouble, but I tried to use them as little as possible. Basically, I let my units "hog" up all the XP they could.  Also, rather than building INF at 1,200 troops like I normally do to start, I built as big as I could get.

- Finally, getting the battles led bonus at levels 3 and 4 is a big help to the units that start as Captains. Unit progression is noticeable with each battle. Obviously, keeping officers intact goes a long way to success in this aspect.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...