An Apology, an Update, and some DS1 Mod Talk.
Submitted by Araknuum on Wed, 2016-07-20 15:47 | ||
I left here abruptly, with work I'd volunteered for standing unfinished, and for that, I'm sorry. I want to apologize mainly to Iryan for having agreed to work on his mod before I vanished. Please forgive me. I moved shortly after I started helping on ds2 Yesterhaven, and my priorities moved in turn, so that it is only now that I can make my way back to dungeon siege and modding the hell out of it. I no longer have DS2 installed, and I doubt I will be working with it at all going forward. I found that modding DS1/LOA is more my flavor, and that there is still a ton of untapped potential in that old gem. I've had DS installed for about 2 weeks now, and finally began modding items and monsters for it last week. I've aped a dexterity staff template, added it to pcontent/Elddim, and I've broken the balance of Ehb completely a couple times now by editing formulas.gas. I changed the base templates for Krug, Skrubb, and Krug Dog, as well as made a few tweaks in templates.gas/actor_evil. I untanked all the mods I could find and compared them to their vanilla counterparts, and I'm constantly cross referencing how things were done with what I'm trying to do. Seriously more fun than just playing ever was. My latest playthrough, up until I started modding, was in LoU. Not having played through the Utrae map before (not even once!), I don't know what all is different, but I quickly started examining how battles took place, and what I, as Player, was being asked to accomplish in order to not die. This line of inquiry led me to drop all the new party members in favor of my hero and some mules. I've played through both Ehb and Arrana as a single member party, and it is the best way to play, in my opinion, even if the AI can be duped and mobs taken apart at leisure. I found out something tho, something that has me eager to mod DS1 again. I found out that I am a master of the vanilla campaign modes. Hard, is just not hard enough, and I've never leveled a char to play through vet/elite/etc, so I'm not sure if that's what I'm missing; how Elite Ehb feels as a game... I just know for sure that I'm better at this game than this game is at challenging me. I have to do something to change that, and I'm not satisfied with the mods I've found which attempt to re-balance the combat. My current project palette is something on the order of eXpertAIv06 or the AI changes in Adepts. I will attempt to balance combat in favor of a single character party playthrough of The Kingdom Of Ehb. Currently, a single character can get all the way through Ehb on Hard Difficulty by drawing single enemies away from groups or danger zones with Explosive Powder. Another tactic I rely heavily on is running after drawing aggro on a group until they stop chasing and are spread out for easy pickings. I Have completed Ehb at least 2 full times this way as just me. The experience slows the game down a ton, while making some very boring tactics too common and mostly still Over Powered. The challenge is in being aware of mob locations and running enough.... been there. What I love about a single char play of Ehb is that spells matter. Buffs and debuffs, as well as leveling all your skills and attributes, are vital to surviving those encounters that you are forced (or that you decide) to just bully through. I spent time at every Mana Shrine in Ehb, casting buffs on my character, and I had a donkey laden with mana potions to rebuff between shrines if needed. I had specific items for when I was casting Nature or Combat spells that I changed into, sometimes in the middle of battle. I also love that Death matters, and quick save is my second most frequently pressed key, right after pause. What I really want is a fresh perspective on my favorite game. I want the systems that govern the game and grant abilities to the player (like pause to give orders) to mean something in every fight. I want gear that changes my options and tactics. I want to speed up the single char playthrough, while making it more challenging than vanilla. I want enemies that don't let me get away with cheap tricks, and are generally more unpredictable. My last attempt at these goals rendered a mixed result. I changed the difficulty damage modifier in formulas.gas, making go's hit much harder: // Difficulty level multipliers - damage done from attackers perspective difficulty_easy_player = 1.25; difficulty_easy_computer = 1.93; difficulty_medium_player = 5.05; difficulty_medium_computer = 6.15; difficulty_hard_player = 13.42; difficulty_hard_computer = 12.15; This set of values is the 3rd attempt. Constant since I started, Hero Life and Mana regen is doubled, armor_scalar is 0.33 (every ~3 points of defense blocks 1 dmg), and chance to hit for all go's is increased slightly (cuz whiff!): // Variables related to determining whether or not one go was successful in // landing a hit on a defending go hit_chance = 70.0; attacker_diff_scalar = 2.3; victim_diff_scalar = 1.5; attacker_hit_cap = 95.0; defender_hit_cap = 5.0; // Death threshold is used to determine how far below zero character life can // go before the character goes from being unconscious to dead death_threshold = 1.0; // Radius of sphere check for when a character is unconscious and has healed // through natural recovery - if there is an enemy within this sphere then // the character will continue to lie on the ground until threat is gone enemy_near_sphere = 4.0; // Minimum amount of time that a character will stay unconscious regardless of // how close to zero the character is when he went unconscious min_unconscious_duration= 3.0; // Armor scalar is used for tuning amount of damage that is done with regard // to the amount of armor the victim has armor_scalar = 0.33 The result of these changes, as well as AI changes to most mobs from the Farmhouse to the Crypt, was a damn enjoyable, tense, and more player skill oriented playthrough, all the way to the first trapped box in the Crypt, which one-shot killed me. I avoided traps up until then, but this box was a chest type and the arrow in it did massive damage. My thought is that, of course, the damage modifier is excessive. I plan to look at trap templates to see if I can reduce their base damage to a survivable level. I plan to consider scrapping most of my changes to formulas.gas and instead, edit the life total and damage output of each evil go and trap. This presents the problem of damage based in spells that mobs use, and having to edit those too. Each mob will be revised, so damage/health/defense/AI can be edited or at least noted simultaneously. I could use some help, mainly in basic mod best practices and useful reference material. I haven't opened or tried to use DSLOAMod.exe, mainly out of sheer ignorance, and partly because I'm still fiddling with templates.gas and formulas.gas, which I'm assuming require a restart to test. I'm likely wrong, but so far a custom shortcut res_path and restarting from scratch between edits has been my way. The mod I intend to create will hopefully change the way Dungeon Siege is played, and add some new life to the campaign that started it all. If you have questions/comments/suggestions, please comment here, and thank you for reading this if you did.... here's a cookie! :spider: blogs: |
||
Comments
I scrapped all my changes to templates and formulas dot gases... My rebalancing is going to (have to) take place on a monster by monster basis for the vast majority of [mind] altering formulas. I understand that by altering base templates, I can achieve most of the mob alert level goals I have. Most mob behavior formulas seem to reside in base template [mind]'s, with exceptions usually being made for ranged/magic mob variants.
Revived/Adepts existence has simplified my task immensely when referencing how to edit [mind]s this way. eXpertAI too, but only for a good comparison of mob behavior variables. Adepts man, why you make hard so hard?
On hard Ehb, no forms or temps mods, the first group of Krug act in concert thanks to increased com range and job distance, also I made Krug not give up when they reach their job distance limit. They sometimes flee at low health, then forget you were there 5 seconds later, but if they see you or still remember where to look for you, they will keep coming. Not a one seems interested in sitting out that first battle, as soon as one sees you, they all start heading your way.
This led to being surrounded and swarmed if I didn't avoid them. One Krug hacking at me as I hack at it is really no threat, they take 2-3 more damage than weapons and spells say they will... and that's right off the bat. I want all enemies to feel dangerous, so I'm thinking these [krug_scavenger]'s need a little more life, and possibly movement speed. Being swarmed, and not either running or potion chugging (impractical at start of game right?) is fatal in a very few seconds, but parting shots that land as I flee don't kill me until I'm very VERY low on health, making it possible to flee AFTER being overwhelmed, if I'm quick enough.
I want you to be quicker. Not your character, YOU. If you are running low on health, I want you to react, and I want monsters to revel in causing your death as their only reason for existing. I want there to be meaningful decisions in every moment of combat, and I want those decisions to matter when you make them. I think these few changes I've made to the Krug so far go a ways toward that, and all without my forms_and_temps.dsres, just a new set of [mind] variables... so far.
Current play through notes: Legends of Utrae is AWESOME!
:spider:
Current state of [base_krug] [mind] in my SM_Krug_AI.dsres (SM=Solo Mode):
Most interesting to note is what on_enemy_entered_icz_abort_flee = true; does. The behavior I've noted is from the first few fights in Ehb, based solely on battles with [krug_scavenger] and [krug_grouse]. IF they are attacking you, and you remain in their inner comfort zone (icz), they won't flee at low health. If you get them to low health from outside of their icz, they will likely flee.
?run_chance = 0.63; seems to reduce their chance to flee, but when I had it plugged into [actor_evil]s [mind], it seemed to possibly be slowing mob movement speed while fleeing. Wolves seemed to stumble away hurt at very slow speed, which was kinda dope, actually. With SM_Krug_AI.dsres only, I can't discern a difference in krug flee speed, just a decrease in whether they will flee or not.
Another interesting note is that I can only get sight_fov to make some krug with their back turned ignore you until you are in their icz. MOST Krug from your farm to the next, phrak infested one, will attack and "spot" you no matter their facing, and often you will be spotted by one of their friends who will alert the dumb one. Sometimes, none of that applies and a Krug will just stand there, fidgeting until you hit it. Not a desirable trait, but kind of unpredictable and certainly not "broken", but I'll have to experiment to see about making Krug Alert and Relentless, but also realistically Idiotic.
:spider:
So, I'm pretty ignorant still and I can't figure out why adding a new formulas.gas to my mod should so consistently break things. I'm mad at me for this, but not too worried.
I changed the life and mana regen formulas to regain life at 0.01 every 1 second and mana at 1.5 every 3 seconds. I also, at first, changed the difficulty of hard computer damage to 1.85 from the default 1.45. Testing rendered 1 damage to everything, from everything. 1 damage for every hit landed. So, I reset the default difficulty and tried again.... Same thing. SO, I removed the global file from SM_Krug_AI.dsres, made some changes to Krug child life totals, and it worked! Krug are more apt to overwhelm you if you let them, but can be handled without excessive running or potion chugging. Running happens, but Krug die quick enough so far. Chugging can still work, which is why I wanted to nerf life regen, to make potions matter more. Spell healing can start out pretty excessive, but balances as your max life goes up.
Did you try setting the priority of your mod higher than the default game. In both tank creator(DS1) and tank creator 2 (DS2) Under the Advanced button you will find Misc. and when you click on that you will see at the bottom of the menu Priority. The Maximum you can set priority at is 35767. If you set it there it will for sure place your mod and the formulas contained there in at a higher priority than DS1. I use that level for testing my modifications then reduce the number until something crashes or my changes no longer work.
AHA!
I was just thinking that, thank you SO much for the confirm! I didn't want to mess with priority until I knew what it was. Does setting a formulas.gas mod priority require the step down process, or could it be left at 35767 without harming the game?
I often leave my armor and weapon mods set at 35767, It is just when I intend to use it with some other mod I might step it down.
hmm... still not working. Took out my custom formulas and tried a default formulas.gas tanked both with SM_Krug_AI.dsres and as a separate .dsres. The changes I made to Krug AI might still be present, but all hits both ways only do 1 damage. Priority is either not working in TankCreator2, or something I changed in Krug templates breaks any formulas changes, or even the presence of a mod containing formulas.gas maybe?
list of stuff "to try":
1. I'll first put in a mod I know has worked before that contains a custom formulas.gas. If that works I can reasonably deduce that it is somehow MY attempts to mod formulas.gas which are faulty. I'll then move on to a new DL/install of TankCreator and go from there.
2. If that fails, I will remove a line of code from my [base_krug] [mind] and test each iteration with a default formulas.gas until it works or [base_krug] and its children are also default... At which point I'll likely start learning a different aspect of modding, to gain some distance and time away from the topic of how Krug treat themselves and others.
:spider:
MASSIVE EDIT: It's these discoveries that I love to make and hate to have not made until I do.
So what had happened was the "default" formulas.gas that I was editing and including in my mod, is the the one from the Resources folder, not the DSLOA/Expansion.dsres. . . :construction: :construction: :construction:
Commencing testing with this nifty new formulas.gas I just found, which, surprise surprise, matches in many ways the forms I found in Adepts and Revived and every mod that works and edits formulas.gas.
:oops:
Side note: if I'm flooding da blogs or in general displaying undesirable siegetheday behavior by posting these, lemme know and I will save up a few and only release blog posts for major updates, utilizing the rest of the forum as it was intended. ThankS!
In my humble opinion you are a LONG way from undesirable behavior :thumbup:
Quite educational for me
your questions, comments and the process you are going through is very interesting. I wish I could help more.
ahhhhh... thx ya'll! I hope this process is worth as much to document as it's been to go through. You have to admit Elf, so much of how you are helping me is in how you've helped others here. I'm only learning because so much is available to learn from. I'm still very new to the back end of DS, so I can maybe pose the kind of questions that other new modders might also learn from?
The question of, "was that the right formulas.gas?" is answered with, HoORRAY! Krug AI is the same as from last night, but now including SM_FormsDEFAULT.dsres with only *cosmetic changes for rapid reference,
I match the indents of all equal signs and values in the document. Looks like this:
So, this file, included as a separate .dsres Makes no changes to my Krug buddies (I call them that now), which is EXACTLY PERFECT! My Krug do strange things sometimes still, but that's all in their [mind]'s. Damage is pretty dangerous, and to be avoided, hopefully by both sides of the bloodshed now. Combat speed is fast and full of stuff you could do wrong, but manageable by a single character with skill. Think Path Of Exile, which immediately reminded me of DS2. "Right Near De BEACH! BOYEE!"
Current SM_Krug_AI.dsres
I suspect that on_enemy_entered_icz_abort_flee = true; currently does nothing. Reading (skimming) about skrit indicates I will have to create a custom job for this to do anything.
I further suspect that sight_fov either doesn't do what I think it should, OR is broken by the inclusion or omission of something else that affects whether field of view can be used for AI changes. I think it should make Krug only attack if they spot you, or are alerted by others about you. Currently, Krug still alert and engage with their backs turned and no friends nearby to warn them. Variables in engage_range might be too blame? Do they engage at those ranges (ranged/melee) despite not being able to see you? hmm...
:spider: