As a French person I feel like it's my duty to explain strikes to you. - AdrienIer

Create an account  

 
Caster of Magic Release thread : latest version 6.06!

(November 1st, 2015, 09:14)zitro1987 Wrote: I played a bit more. I attached all my comments.

I am really impressed by most of the changes, particularly in regards to how AI operates (minus seemingly lack of early aggression). I remained open-minded at the much different pace of the game (including the sawmills) and the high emphasis on large army sizes.

It's obvious game balance is still the biggest hurdle, though given your focus on mechanic changes and this being a beta ... I think game balance is at least better than original. It will take a long while to get spell/hero/unit/race/building balances right

Yep, balance will take a while to set perfectly. At the moment I still get swamped by discovering several new bugs per day in the game code. Today's findings, 3 severe bugs in AI spell trade offers. They add various modifiers twice, they select from a list of spells worth at least X to get a spell worth no more than X, thus only picking spells worth exactly X, and after all that they don't get the spell they traded for. Oh yeah!

About lack of early aggression, that was Kryub's new "feature". There were only three problems with it.
One : The AI is hardcoded not to declare war on the player before turn 100 and not to attack people unless attacked or already at war. This is reasonable, who would want to play a game where their fortress is overrun on turn 20 by 9 swordsmen? So that aggression did not work unless the player attacked first, or if a bug allowed the AI to attack without wanting to, by accident. The AI was only aggressive on other AI, neutral cities and lairs. Ofc no one noticed this ever because all the bugs caused it to attack anyway, and even if not, the players attacked first.
Two : The AI left their cities poorly defended. It was coded to take out their best units to build invasion forces. Problem with this is, if their cities fall, the invasion forces will disappear due to upkeep problems, especially if the fortress was taken. Not to mention the player gets extra resources and territory to control. Unless the player is so overwhelmed that they cannot even build one decent offensive stack, this tactic is suicidal. The greatest problem is, the AI is always inferior in organizing their troops and moving them towards a target then a human player, so ultimately, the player will reach and conquer more AI towns than the other way.
Three : The mod is way different than the original game, the AI can afford more units and will be able to still attack even if their towns are well defended. Defensive abilities are stronger (Fire Wall, Guardian, Cloud of Shadow, etc). The game develops faster, so early game is shorter. All of these make the aggressive strategy suboptimal.
After turn 100 however, if the AI does have the correct personality or objective for it, they will declare war and attack, ofc only with units not needed for self-defense.

By the way, this aggression change is only applied to turn 50 or later. Code for the first 50 turns is unchanged, the AI will split up town garrisons and send out units as originally. Maybe it could be extended to turn 60 or 70?

Now let's see that doc file.

Runemaster - This is 2 picks because the double dispel rate and double dispel resistance on spells is very good. Late game is often decided on who manages to keep their game winning enchantments in play. The arcane bonus is just a little "extra", not the major ability, although Spell of Mastery is Arcane so it's a very useful extra.
Shrine - it does add 1 power. I only posted a code on how to make it zero, I'm not using it in the mod.
Ranged - I usually move before using my ranged units, so no to the "no ranged attack after moving" one. I will reduce hero magical ammo, although not as drastically as suggested.
Flying units not attacking - Feature not bug. They do this if your total army is perceived to be much stronger, to avoid suicide. If you feel it happens when they have the advantage, do let me know.
Buildings - more expensive marketplace would hinder production of farmer's market, but a small increase is fair. Forester's Guild is mainly useful to produce food for your army without having to lose workers anywhere. I think it's good enough, and it is required by Animist's Guild, too. It even boosts production by a little, although I build it for the food usually.
Fighter's Guild - does nothing for barbarians only I think. They don't have Halberdiers to fill this gap, and Berserkers are too good to require only a Fighter's Guild, it has to be Armorer's. No other racial unit to use for it either.
Night Stalker - Gaze -3 is not that much better than what Cockatrices or Gorgons have.
Early wizard aggression - Not sure if declaring war too early is a smart move, the AI needs time to build up troops in their cities and build outposts first. Maybe I'll try turn 75 or 80, but 50 feels too early.
AI offering peace treaty - Peace treaty willingness increases the more they kill your units in their attacks and decreases the more you kill theirs when you are attacking. If you don't attack them, eventually they'll offer the peace. Need to test if that's really the case, also not sure what would be a good indicator if we want to change it but it really does not feel right. I think the default "+10 to all treaty willingness per turn" should not apply to peace, instead it should consider army sizes.
Reply

Made the end of turn diplomacy variable adjusting procedure to adjust "peace desire" based on military strength. Peace desire towards 25% stronger enemies increases per turn, and towards 25% or more weaker it decreases. In other words, the stronger side will almost always have the "peace willingness" at the lowest value, so peace treaties will not get offered from that side. This modifier only applies during war.
The default 10+random(5)+random(5) increase per turn is reduced to a smaller 4 points, and this still works if there is no war, not that it matters at all then, during pace, this variable is only used to determine which greeting the wizard says out of the normal or the impatient one. Actually it doesn't even do that anymore, it's pointless. Any diplomatic offer, including the Peace Treaty decreases all 3 "willingness" variables evenly, so the original function can be retained through "Treaty willingness" and "Trade willingness" instead.

However, AI to AI diplomacy works on a one-sided basis. If one side makes the roll to want a treaty of any kind, it gets formed. No check to see if the other party cares at all. Normally, relations are roughly the same on each side, so this isn't something that matters, but in case of peace, the weaker wizard will offer it and the strong one will accept even if they don't need to. I don't intend to change this however, if the AI is at war with itself too much, the game is too easy.
Reply

0.85 is up!

0.85
-AI summoning priority : Fire Giant is now 20 instead of 15.
-AI combatspell priority : Animate Dead now gains “E” type priority and -100 if no valid target is available just like Raise Dead, instead of these adjustments missing. Animate Dead also receives and extra 10 priority for each available dead to choose from (Raise Dead does not receive this bonus).
-High elf Magicians no longer have Magic Immunity and their cost is restored to default.
-Restored AI Create Artifact casting to turn 180+, turn 120 is too early for investing into several thousand mana spells.
-For AI trade offers, a roll of 50 or more has to be made instead of 25 or more (formula is relation+hidden relation+personality+random(100)>=X, so this still allows trade offers from maniacal wizards at -50 relation or higher, at least not at -75)
-Replaced nonsensical trade spell quality formula with a more reasonable one, this should allow trade to pop up more often.
-Fixed bug : AI spell trade offers fail to happen due to contradicting conditions : A spell with a value <= the expected amount is selected from a list of spells having a value >= to that amount, so only spells having the exact same “trade value” are eligible which is a rather rare occurance. This was why you only ever got one spell to select from when the game supports up to 4.
-Implemented missing feature : When the AI trades for a spell with the player, now they'll actually receive the spell.
-Marketplace now costs 90 to build.
-Dark Elf Spearmen now have only 1 strength ranged attack.
-Fantastic Stables cost 500 to build.
-Slightly reduced the amount of magical ammo on heroes. Values available are 6-10 now instead of 8-12 depending on hero. Might adjust further if necessary.
-Reduced Bank and Merchant's Guild maintenance by 1
-”Peace Willingness” no longer increases by a flat +10+random(5)+random(5) every turn for every wizard. Instead, it increases by +4 every turn, and an additional amount during war, which depends on the relative military strength of the two sides : If Wizard B is 25% or more stronger than Wizard A, Wizard A receives +10, if 25% weaker then -15, and if 50% weaker then -25 “Peace Willingness” total. This should prevent the AI from offering peace to people considerably weaker than them.
-”Peace willingness” is now ignored when deciding how much the AI wants to continue the audience going.
-AI will no longer automatically dismiss below average units purely based on their cost being below average, and instead will keep using them. It's already able to select the better units for defending towns, so weak units should get used up in offensive armies meanwhile instead of getting disbanded. It also has a dedicated procedure to dismissing units if low on gold, mana or food, which selects the weakest units anyway.
-Increased the chance for the AI positive diplomatic offer procedure to run. Now it is 1:7 if no event happened, (event strength+1)/7 otherwise. (original was ~1:133, not considering other bugs, and previous modification improved it to ~1:20. It was still too low.)
-Fixed contradiction : AI is dropping “grudge” over a negative event, or offering a treaty at a chance of 0/x if it has a “grudge” and 2/x otherwise, unless a positive event happened that turn (those don't exist except for the one I added). This way dropping the grudge was impossible without a positive event. Now the roll is 1/7 in all cases.
-Experimental : AI becomes aggressive on turn 70.

-AI should not offer peace when they are much stronger
-Fixed all the bugs in AI spell trade offers, and made offers in general more frequent.
-No more Magic Immunity on Elf Magicians, and other, smaller balance changes.
Reply

Quote:0.85a
-AI is allowed to distribute their power more freely. Only 20% mana is required, the other 80% can be used on anything as needed
-AI is allowed to take mana instead of research if low on mana instead of only replacing skill choices with it. Research is available from buildings anyway, even if none is made, the AI can still progress, and slow research is better than losing due to being unable to cast spells all the time. In fact, when AI is low on mana, it will only produce mana and nothing else now.
-AI will always adjust their power distribution every turn as needed instead of only every Xth turn.

Quote:0.85b
-Fixed bug : AI spell trade offers scale the opposite direction as intended (better relations result in worse offers)
This last one was my mistake, sorry about it, I added neg ax instead of neg dx when fixing the problem the first time.
Reply

0.86!

0.86
-Spells not available for research gain a +5 priority to their value (half of a rarity rank) instead of the value being multiplied by 1.5 in trades. This should make it easier to do trades with 10 book wizards, who can research everything, as the spells the player mainly want will only be worth a flat +5 more not +50% more if the player wants a spell he can't research in the future.
-Spells that already are available on the research list of a player get reduced trade value by 5 instead of being cut in half. Again, this should help in trading with 10 book wizards, who most likely already have the spells you could offer available for research even if you managed to get ahead in research and have a spell they don't.
These two effects together basically meant that a trade could use a 3x multiplier on value if the spell given was available for immediate research and the spell received was unavailable even for the future, which actually was the most likely scenario when trading with 10 book AI wizards.
-The AI preference value now adds +5 to the spell value per point instead of +10 to allow more fine-grained weighting. Values for spells readjusted.
-The AI is no longer unable to build towns after turn 100 in the presence of another wizard's units. (Reversal of insecticide change, and also a fix over original behavior which allowed it only at a 20% chance)
This restrictions is harmful. Assuming the wizard with the units is an ally, this causes both wizards to be unable to settle the spot until the other withdraws all the units in the area, slowing down both AI. It also allows the player to always take free spots before the allied AI does. In case the unit is an actual enemy, they will kill the settlers anyway, building a town at least increases the chance to pull in defenders before the attack.
-When the AI asks you to break an Alliance and you refuse, relationship drops by 50+random(30) points instead of instantly being set to the lowest possible (-100).
-Spell Binding now costs 1200.
-The Haste item power now costs 1500.
-The Haste spell costs twice as much to research (but same to cast)
-AI will now dismiss below average units again, but only if the total number of units in game is nearing the limit. However, in that case, it will do so regardless the turn count, every turn. Only the generic half of the procedure is used, which does not dismiss heroes, settlers, engineers, spirits or other valuable units. The other half, which is intended to thin town defenses, is skipped because it's not “hero safe”, in fact, heroes have a rather high chance to get sent away as their cost is low compared to summoned units. However, condition is stricter, instead of units below ¼ the average army strength, now 1/3 is checked.
-Casting Aura of Majesty now only adds a +4 one time event instead of +10, but +2 per turn is unchanged. Spamming the enchantment was too easy to abuse for gaining lots of relation points in a short amount of time.
-Experimental : AI is allowed to take out 1 unit from non-fortress towns having 9 units to build stacks again, however, only 1 unit at a time instead of 4, and never from the fortress. This should help the AI build better offensive armies that can contain summoned units and better heroes, instead of those getting stuck on defense duty 100% of the time.
-Scoring : Spell of Mastery is worth +250 again because it is now harder to cast

Most important change : AI can now send out units from towns to build armies again, however, only one at a time instead of five and never from the fortress. This should help the AI build better armies and should keep summoned units and heroes active instead of damned to eternal town guarding duty.
Previous versions confirmed that the defense goal can be achieved by the applied changes, however, the offense was completely neglected to make sure the defense goal is reached and the difference is obviously visible. Now that we confirmed the AI does work as intended, it's time to try going for a more balanced strategy.
This change is experimental, and hopes to achieve a fair balance between defense and offense. Defense should be still a priority in general, but top units should be used mainly to attack or in the fortress instead, while mass produced units handle garrison duty.

2nd important change : AI is allowed to dismiss weak units again but only when the global unit cap is about to be reached instead of periodically every 25th turn. You most likely won't see "Too many units : Summon failed" nearly as much as before, if at all. However, this function is now "hero-safe", it won't disband cheaper heroes anymore. In peaceful games, AI would use up all unit slots without a way to spend the units otherwise.

3rd important change : AI will now use their settlers as intended instead of never building a town near units of another player. There is no guarantee the nearby player is an enemy, and even if they are, the settlers is just as easy to kill as the town would be. In fact, building the town s better because an attack on it ensures war will break out, while the settlers might be possible to kill without a war. The most harmful part of this behavior was that when multiple AI wanted to settle the same area, and they were not enemies, they were both unable to.
This is both a reversal of an insecticide update, and a further step in the right direction, as the 1.31 version only allowed building at a 20% chance when units were nearby, which insecticide brought down to zero.
Reply

Quote:0.86b
-Forester's Guild maintenance is now 1.
-Lizardmen Growth is increased significantly.
-Lizardmen Settlers is cheaper.
-Fixed the invisibility bugfix from 0.7 as it was not working at all. I'm pretty sure I tested and it worked, but for some odd reason the file contained an obviously wrong code instead.
-AI will only offer a Wizard's Pact based on military strength if the player is at least 50% stronger than them, instead of just stronger by any little amount. Relationship based offers are unchanged. One of the main War/Break Pact triggers is having close to equal strength, so a slightly stronger army would have a high chance of triggering both, possible causing the AI to oscillate between offering then breaking the pact. That would look silly. Also, it's way too easy to have just that 1-2 extra spearmen over the AI at the beginning if the difficulty isn't set too high.

ehhh...more bugs, I'm starting to get sick of this.

Quote:0.86c
-Adjusted roll for relationship based Wizard's Pact and Alliance offer.
Original was (relation+pact willingness+hidden relation+personality+random(100))>50. Out of these pact willingness is usually 100, making this a guaranteed success no matter what.
New roll is (relation*2+pact willingness+hidden relation+personality-random(100))>=120 for Pact and 200 for Alliance.
-Fixed BUG : AI peace offers use the player's “peace desire” variable instead of their own, so peace will be offered in exactly the opposite situation as it should. To make room for this, the additional random 25% chance check had to be removed, it was unnecessary anyway.

Oh yeah, another one. Bugs, bugs everywhere arrrgh!

Quote:0.86d
-Fixed bug : Breaking a treaty ADDS to the hidden diplomacy modifier instead of reducing it.

Thanks to the let's play video, here is another :

Quote:0.86e
-Reduced chance of book/retort treasure to 55% of the prevous versions.
-Myrran is no longer greyed out when you have exactly 2 picks remaining on the Custom Wizard screen.
-You are now able to select Famous for 1 pick if you have exactly 1 pick left
-You are now able to select Myrran for 2 picks if you have exactly 2 picks left
Reply

0.87
-Fixed : “Peace desire” is not adjusted by military strength for the AI's relation towards the player, only the other way.
-Further reduced hero magical ammo
-The player's ally can now declare war on the player's enemy even if not requested, the same way it happens between AI allies.
-AI combat targeting : AI is not able to target Cold Immune units with Cold Bolt and Fairy Dust
-Experimental : Conquering an outpost now runs the regular “conquer city” process instead of skipping it. I expect this to
1. When the AI fails to notice the player attacking their empty outpost, no penalty was given and no war started, now it results in a war as attacking normal cities do.
2. When the wizard had his fortess in an outpost, the “banish” procedure was not ran and this caused a crash (according to the wiki anyway, I never encountered this situation, but the code did skip checking for a fortress.)
3. Have no effect on the fact that outposts always get razed after an attack.
-The difficulty level modifier is only applied to declaration of war rolls if the human player is the target.
-Adjusted roll on militartist/expansionist declaration of war : When [Relation+Hidden Relation+Personality-150*(percentage of relative army weakness)-10*Difficulty)<=-75, war is declared. Was -100 before.
-Fixed bug : AI declares war on anyone if “player wars<difficulty” and relation is bad, instead of only on the player.
-Adjusted Difficulty level food modifier to be lower, this should make Famine and Corruption more useful in stalling city growth. The maintenance modifier is more than enough to make sure AI units don't starve to death so excess food production is not that important. Adjusted a few other difficulty modifiers slightly, normal should be a bit easier now.
-Great Drakes now move 4, and cost 20 to upkeep.
-Threatening formula changed, weight of random element is less. You can expect about 50% chance of success if you own an equal strength army and the target has an average personality. This should make it much less likely to succeed with threats while being weaker than the target. The original provided about 50% chance when your army was 40% weaker than theirs.
-AI combat unit targeting : All units will now prefer to attack units affected by Black Sleep instead of only ranged units doing so.
-AI combat spell selection priority : Reaper Slash now has a +10 priority.
-AI combat spell selection priority : Syphon Life now has a +8 priority.
-Psionic Blast is now strength 16 for 24 mana. Illusion damage is too powerful to have a common with strength 20, which would mean an average of 6 defense-ignoring damage, 60% as good as Doom Bolt. Strength 16 still yields an average of 4.8 damage, making this superior, but riskier to use than Psionic Spark.
-Experimental : Fire bolt is now strength 20 instead of 18.

0.87 fixes a remaining problem with peace variables. The rest of the changes are mostly minor balancing to AI formulas, spells, units etc, and some AI combat improvements.

A question. Should I rename "Metal Fires"? The effect is still the same, but it's 3 times stronger and affects fantastic units, so "metal" no longer feels appropriate. Not sure which is more important, to keep the spell easy to recognize, or to imply it has been seriously buffed through a new name?
Reply

0.88 fixes various bugs and problems, especially focusing on the Death realm.

0.88
-Created zombies and raised undead now add +7 to the total diplomatic penalty at end of battle instead of not being considered “killed” units due to being alive again by the time that is calculated.
-Fixed bug : Trying to talk to the AI when they have a “reward X gold for attacking” event queued up will crash the game instead of showing the event message.
-Banishing or defeating a wizard will now use event code “0E” instead of “07” because the text seems more approprite (“stop taking over the world” instead of “leave my territory”)
-Fixed bug : Animate Dead allows keeping enemy units after battle. (I thought 1.31 already fixed this, or at least insecticide? Seems I was wrong....)
-Fixed bug : Zombies and raised dead retreat with the attacker when the defender's side wins, ending up on the same map cell.
-Fixed Wrack not having the intended +0 spell save and still using +1 instead.
-Fixed bug : units drained by Mana Leak out of ammo do not lose their shooting ability.
-Fixed bug : Entering combat does not initialize City Wall status if no town is present, causing the variable to have an invalid value (neither 0 nor 1). This was responsible for the (already fixed) invisibile city walls bug, but it can also cause other weird effects, like the AI pretending to defend a city where there is none, or units leaving the place of towers empty, so eliminating the root of the problem was needed.
-AI disjuction targeting : adjusted priority of dispelling Eternal Night. It now gains extra priority if the disenchanter has no Death books instead of when they have Life books.
-Fixed bug : When a raised undead or zombie has nowhere to go on the map and the stack is full, it keeps dying due to no space then getting raised again because race is not changed to “Death”, resulting in a “128 units have been raised” message and a stack with over 9 units.
-When threatening, if the higher roll for a spell offer is passed, but the wizard has no spell to offer, the offer will be downgraded to gold instead of nothing at all.
Reply

0.9 Is now available for download, however, NOT at the usual download place.
The site host has some server problem and I can't upload to my site right now, so download it here :

http://www.filedropper.com/caster


0.9 is the first step of getting ready for a non-beta 1.0 release, by adjusting various things for even better balance.
This includes some fine-tuning for diplomacy, and as usual, to some spells and units.

However, it also includes a pretty huge new feature :
The building list in towns can now display 2 more items!
This does not mean that the problem is fixed, as it's still possible to have more than this many buildings available for production at the same time, but it should significantly help with the problem. You can now actually access every building when starting a new game even on races that have no building restrictions at all!
Unfortunately, this is as much as the screen space allows.
I'll see if I can make the options appear closer to each other to make more room for the next version.

Detailed list of changes :
0.9
-AI to AI diplomatic event strength modifier now activates on turn 150 instead of 200.
-Relations will now gravitate towards the starting value at a speed of 1-2 points every 3 turns if the relation is above the starting value and needs to be lowered, instead of only once every 10 turns.
-The “thanks for hurting my enemy” event, both the one rewarding gold and the one that does not, requires killing a minimum of 30 diplomatic points worth of army in one battle. (That's either one hero, or a larger number of other units) Both the relation awarded and the gold is now directly calcualted from the event strength, ignoring all modifiers that would alter the relationship effect of the event.
-The event has a 25% chance of triggering instead of 100%, when the required amount of enemy units have been killed off.
-Wraith form costs 10/50 mana instead of 20/100. It simply isn't powerful enough to cost more, and the effects are only useful when the entire stack has it.
-Berserk costs 20/100.
-Wraiths have -2 Life Steal instead of -1 (or the original -3). They are not available as a starting spell anymore so the nerf is not needed to be that big.
-Neutral towns have a 100% chance to be any race, instead of 25% chance of any race, 75% chance of same race. There are fewer neutral towns, so more races should appear in them.
-Nomad Horsebowmen requires an Armory like all other cavalry and bowmen unit.
-Nomad Rangers require a Fighter's Guild because they are quite superior to horsebowmen
-Nomad Rangers now have 3 health per figure to make up for the low amount of figures.
-Generic war/treaty break needed check is done at a 1/7 chance instead of 1/20 every turn.
-Generic war/treaty break needed check now has a -10/difficulty level modifer instead of -20
-Generic war/treaty break needed check now requires a +20 total score to not trigger instead of 0.
-Wizard's Pacts now improve relations at a 1/3 chance per turn instead of ½. An average of +1.5 points a turn was way too fast.
-Alliance now improves relations at a 1/3 chance per turn instead of ½. Points improved are only random(4) instead of random(6). An average of +3 points a turn was way too fast.
-Pikemen maintenance reduced to 2.
-Doom Drake resistance lowered to 8, Cost raised to 240.
-Diplomatic events during war now add 100% of the base effect strength to the target's peace willingness value, but have no effect on the performer. In other words, negative events, like killing their stuff, will make them less willing to offer or accept peace, while positive events make it more likely. If you are actively blowing up their stuff, they won't offer (or accept) a peace anymore, even if they are weaker than you.
-Casting Call of the Void now generates a strength -40 diplomatic event instead of -20.
-End of turn peace willingness adjustment values have been changed :
No war or even military strength : +4/turn
25% or more weaker military : +7/turn (instead of +14)
25% or more stronger military : -3/turn (instead of -11)
50% or more stronger military : -8/turn (instead of -21)
-When the AI offers a peace treaty, regardless of your response, their peace willingness is reduced by 50. This should stop the AI from spamming peace offers too much, it takes 6-10 turns to regain this amount on average.
-Warp Lightning is restored to default strength, even the +1 strength felt way too good.
-Fixed : Possession does not have “death immunity” flag set in the spell tables so the AI can cast it on immune units. (Untested)
-Fixed bug : On the New Game screen, wizards with more than 2 book types have the wrong books displayed for the first two screens.
-Available building list now displays up to 12 items instead of 10 to make use of all space on screen. However, it's possible to unlock more than 12 in which case you still can't select some. Be careful when building Library or Builder's Hall as those can unlock a lot of stuff. At the very least, you can now build anything when starting the game, prior to unlocking more.
-Unit list will no longer appear grey when the town is full.
Reply

Oh, and in the next version, can you take a look at the problem that makes those unexplored bits of the map appear? You know, you've explored the tiles but there is still a bit of darkness clinging there. So annoying, and makes me waste so much magic spirit movement cleaning them up.
Reply



Forum Jump: