Die4Ever / deus-ex-randomizer

Randomizer for Deus Ex
https://mods4ever.com
GNU General Public License v3.0
105 stars 12 forks source link

v3.1 general balance (augs, weapons, skills, etc) #842

Closed Die4Ever closed 1 week ago

Die4Ever commented 2 months ago
Die4Ever commented 2 months ago

for heavy weapon skill and microfibral muscle affecting movement speed, in DeusExPlayer.uc

state PlayerWalking
{
    // lets us affect the player's movement
    function ProcessMove ( float DeltaTime, vector newAccel, eDodgeDir DodgeMove, rotator DeltaRot)
    {
        // don't slow the player down if he's skilled at the corresponding weapon skill  
        else if ((DeusExWeapon(Weapon) != None) && (Weapon.Mass > 30) && (DeusExWeapon(Weapon).GetWeaponSkill() > -0.25) && (Level.NetMode==NM_Standalone))
        {
            bIsWalking = True;
            newSpeed = defSpeed;
        }
Die4Ever commented 2 months ago

for aug level 5, we could either definte a new values array with a different name? or make the level 5 value its own standalone value?

Anvoker commented 2 months ago

Going to share my reactions! I have a few proposals. Some could be used in combination, some are radical enough that they would be reworks. I am primarily concerned with speedrun balance, but I'm trying to not make proposals that would negatively affect the regular game, and will prefer proposals that can improve both speedrun and regular game.

Since I'm going to be making some proposals, but don't want to waste your time responding to all of them, I'm going to color code them. A lot of these are meant to give you ideas rather than argue for a specific thing, unless I explicitly say otherwise.

Legend: 🟒 - I think this proposal would be good. 🟑 - I think this proposal has potential but sounds either hard to implement or is a risky change (could either mess up balance or have unintended consequences), or it simply doesn't address the core problem. 🟠 - I think this proposal is either likely harmful or pointless. πŸ”΄ - I think this proposal is very likely harmful.

EMP Shield

emp shield and energy shield might be underpowered? maybe make them stronger and use less energy?

EMP Shield has some marginal utility, but it's just not a very exciting mod. Making EMP shield consume less energy is good, so making it stronger and have less energy usage can't hurt. But I think doesn't address the fundamental design issue -- EMP damage is rare and you want to avoid it entirely. I think EMP Shield also suffers from having very weak reasons to upgrade.

Reaction:

Proposals:

Energy Shield

emp shield and energy shield might be underpowered? maybe make them stronger and use less energy

I'm unsure whether Energy Shield is underpowered or just underutilized. Energy Shield is already significantly better than it is in vanilla just by virtue of more enemies having access to energy attacks. It's just people being too focused on other stuff to actually micromanage their defenses during speedruns. I think Energy Shield also suffers from having weak reasons to upgrade, less so than EMP Shield though.

Reaction:

Aqualung

aqualung is of course underpowered, maybe make it give you infinite air, and use 0 energy?

Reaction:

Proposals:

Synthetic Heart

synth heart? could boost past level 4, but would need rewriting a few things (maybe we can improve merges in the compiler to help?)

Generally the reason Synthetic Heart is undesirable in speedruns is that you focus your upgrade canisters on Speed and Recirculator. This gives you a very lopsided distribution of upgrades, you're often maxed out, most of the time you don't have many other augs, so Synthetic Heart does little for you. Once a blue moon it might improve your targeting or combat strength to put you over the 50 damage threshold. That's basically the only time I'd ever think to use it.

Reaction:

Heavy Weapon Skill

heavy weapon skill speed bonus is too "binary", maybe make it a smooth progression from 125% to 150%? or a nerf for advanced by doing it from 125% to 175%?

Reaction:

Microfibral Muscle

microfibral muscle could give you running speed while holding a heavy weapon (see comments for code)

Reaction:

Proposals:

Range Mod

reduce range (and max range?) for pistols and assault rifle, make range mod +30% instead of +10%?

Reaction:

Pistols

maybe increase base accuracy for pistols slightly, even the assault rifle has higher accuracy

Reaction:

revert pistol master back to 200% instead of 180%

Reaction:

I have a LOT more to say about pistol balancing, but I'll put that in a separate post when I have time.

Sword

buff regular sword (longer range like DTS, 12 damage instead of 10)

Reaction:

The main issue with the sword is that it's unclear what niche it covers. Most of the time you don't have inventory slots to spare. With 12 damage it's unlikely to help you break containers unless you stack both low tech and combat strength. If you have high low tech and combat strength, you'll probably prefer the DTS anyway because you can one-shot commandos. Making the sowrd any stronger in terms of damage is just going to invade the design space of DTS. The only thing that seems like could be boosted would be to give it a higher base attack speed -- then it could have comparable DPS with the DTS but inferior container breaking capabilities. This justifies why DTS occupies one more slot. So in terms of design, I am of the strong opinion that the sword should have similar DPS to the DTS.

Proposal:

MQDuck commented 2 months ago

Make EMP shield provide full immunity to EMP. Make it have a high default cost like 120 or something, make upgrades reduce cost.

I rather like this idea, personally. Although the default max energy is 100 so 120 definitely wouldn't be the right number.

Making Synthetic Heart capable of boosting to level 5. This is a REALLY exciting change! It adequately addresses the main problem with Synthetic Heart! From there on, you just might need to play with numbers a little. It might give rise to a meta where you try to aim for max level Speed, Recirculator and Synthetic Heart.

I agree that it would be exciting. It might increase the difference between a good seed and a bad seed though, which is the opposite of what we sort of want. Still, it might be a good change.

Seems like a decent attempt to make the Range Mod more useful. But I'm unsure how much it will impact things.

You don't think decreasing max range with the assault rifle would impact things? I've seen speedrunners practically snipe with it under the best circumstances.

Die4Ever commented 2 months ago

I rather like this idea, personally. Although the default max energy is 100 so 120 definitely wouldn't be the right number.

that would be 120 energy per minute, not per second

Die4Ever commented 1 month ago

for EMP Shield aug, I made levels 1 to 3 slightly stronger (level 4 was already 100% resistance), and all levels also make you immune to scramble grenades

for Energy Shield aug, I made it cost 25 energy per minute instead of 40, like multiplayer does

the changes for movement speed I'm testing right now...

Die4Ever commented 1 month ago

all the commits of allowing aug boosting past level 5 together: https://github.com/Die4Ever/deus-ex-randomizer/compare/cea7b90c90150875ebcf1a832a63c62cae9419d0...4309a3d99b4b

Die4Ever commented 1 month ago

image

image

image

image

image

image

and speed aug doesn't show it, but it's 120%, 135%, 150%, 170%, 180%

Anvoker commented 1 month ago

for EMP Shield aug, I made levels 1 to 3 slightly stronger (level 4 was already 100% resistance), and all levels also make you immune to scramble grenades

Seems like a good change. I think the fundamental issue is that this aug is too situational. It's possible to go a whole run without receiving EMP damage, but this seems really hard to address, so just buffing the numbers seems like a good idea meanwhile.

for Energy Shield aug, I made it cost 25 energy per minute instead of 40, like multiplayer does

In my runs, I've skipped the Energy Shield often because the first two levels either can or did get randomized to pretty low values. I didn't find the cost to be the main issue. I once had an Energy Shield that started at around 50% and it was worth every bit of that 40 epm. Reducing the energy cost is also good though and it allows the randomized values to stay wide.

made microfibral muscle help

I didn't know Microfibral didn't help with carrying corpses in vanilla!

from skill of 125% to 175% your movement speed smoothly gradients from one third up to full speed

I'm really curious what effect this is going to have on the meta. I kept debating in my head what percentage range would be best. I also know the this percentage was picked for how it affects non-randomized effectiveness values in Zero Rando and Randomizer Lite, right?

I feel like Heavy is necessary for me to go fast and I try to aim for combined Heavy/Rifle builds. The GEP gun is simply too useful, faster than demolition and more generally useful. It ensures you won't run out of explosives because grenades are still usable with low demolition, but the GEP is much less usable with low heavy. If you don't have Heavy, reloading the GEP is extremely painful unless you do it at pre-planned points (e.g. taking the elevator up to airfield).

Will this change make more seeds viable for me, or will it incentivize going deeper into Heavy as a result of requiring higher effectiveness to get full speed? It could strongly buff builds that go deep into heavy, which I think is not needed in the current meta. I'm not 100% sure of my analysis here and I have my own biases. But if we conclude it does end up buffing going deep into heavy too much, one way to adjust that would be to make the spread 100% to 175% or 110% to 175%. This would make lower % more tolerable in terms of speed while still giving extra benefit for going higher. The potential downside of a wider spread is that it would make untrained heavy somewhat stronger, therefore make heavy more ubiquitous -- but heavy is already ubiquitous, so I'm not sure how much of a downside it is in practice.

I also think widening the spread is compatible with Zero Rando having 100/120/150/200. It would mean that the player will receive a small speed boost while wielding Heavy even at Trained, which I actually like. I'm not sure if I'm advocating for the wider spread as of yet, it's tempting, but this stuff is hard to model! Use your judgement and later adjustments can be made after seeing us play.

One thing I know this change in general, regardless of the chosen spread, is likely to do is to help incentivize presetting your weapon skills a bit less and looking at the weapon randomization before investing, especially in races. Because now 150% isn't a hard binary anymore, so it increases the number of potentially viable combinations. I think this would be a very good effect.

if you have 125% skill and Microfibral Muscle Level 1, then that adds up to 175% so you get full speed

This is such a good aug change. Endorsed!!! I'm excited to have to make decisions between this and Combat Strength.

Anvoker commented 1 month ago

I'm so excited for the Synthetic Heart change!! This is one of the coolest aug changes.

It's going to take several seeds, but I can't wait to get a situation where it's actually viable to use.

I think making the speed aug only improve from 170 to 180% is a bit disappointing but also very wise. Synthetic Heart is very dangerous augmentation to balance. Speed Aug already is 100% priority for upg cans, then Power Recirculator is 100% priority for upg cans. If Synthetic Heart becomes a third 100% priority, then this can have a bad effect on meaningful upg can distribution choices.

Die4Ever commented 1 month ago

for EMP Shield aug, I made levels 1 to 3 slightly stronger (level 4 was already 100% resistance), and all levels also make you immune to scramble grenades

Seems like a good change. I think the fundamental issue is that this aug is too situational. It's possible to go a whole run without receiving EMP damage, but this seems really hard to address, so just buffing the numbers seems like a good idea meanwhile.

for Energy Shield aug, I made it cost 25 energy per minute instead of 40, like multiplayer does

In my runs, I've skipped the Energy Shield often because the first two levels either can or did get randomized to pretty low values. I didn't find the cost to be the main issue. I once had an Energy Shield that started at around 50% and it was worth every bit of that 40 epm. Reducing the energy cost is also good though and it allows the randomized values to stay wide.

I think EMP shield and energy shield are at least worth installing, like if they're the first augs you find. Probably not for speedruns but at least for casual runs. So slight buffs here are probably good.

Energy shield's defaults are 20%, 40%, 60%, and 80%, and the new level 5 is 100%. I could probably ditch the level 5, and just make it like 30%, 60%, 80%, 100% or something.

EMP Shield obviously doesn't have a level 5 since the level 4 is already 100% resistance. EMP Shield is 30%, 60%, 80%, 100% now. In vanilla EMP Shield is 25%, 50%, 75%, 100%.

So I guess Energy Shield could copy one of those lineups from EMP Shield.

Here's a question about aug scaling. If you want every upgrade to be just as valuable, do you...

  1. Scale linearly, like +20% each level: 20%, 40%, 60%, 80%
    • receiving a 100 damage blast this means each upgrade saves you 20 more health
  2. Scale exponentially, like x2 each level: 15%, 30%, 60%, 100%
    • receiving a 100 damage blast, each upgrade saves you twice as much health
  3. Scale logarithmically, like: 50%, 75%, 88%, 95%
    • receiving a 100 damage blast, each upgrade cuts the damage in half

But also, do you want every upgrade to have the same value for the player? Or should max level be extra juicy? Or should the first upgrade be the most valuable?

Anvoker commented 1 month ago

If you want every upgrade to be just as valuable

To be clear, I think this design goal trades off against other design goals, so I don't think it should be followed blindly, probably not even prioritized. But I'd keep it in mind as something we can try to preserve when possible.

If we were to maximize this specific design goal, then we need to consider the effect of that aug strength has for that specific aug. The answer also varies a lot with how many free aug upg cans you have available. The last part is really different between speedrunning and regular play. Not only because you can find many more aug upg cans in regular play, but also you're not obligated to sink all of them into speed and power recirculator.

In regular play, before getting to Area 51 you can have as many as 15 upg cans. In speedrunning you'll have at most 10, with 7 probably being the most likely. 3 of your upg cans go directly into speed, and if you get power recirculator, another 3 go there. This just doesn't leave many cans free and it requires that subsequent levels be amazingly good to justify being used. Most of the time, it doesn't matter how good the last level of an aug is, you just won't get to it.

I think we (or I in particular) might need to accept that because of how limited aug upg cans are in speedrunning, that some levels just cannot be made attractive unless something else about how speedrun mode is balanced changes.

I don't actually understand how much damage a Plasma Rifle from an enemy can do and how Energy Shield interacts with that. I have only a vague understanding. The actual damage breakpoints are really important. To give a different example, you generally want enough targeting to get your Sniper Rifle over 50 damage, and any additional targeting, even if it brings quite a lot of damage, is generally not worth the upgrade. The damage scales linearly per level, but you're interested in a specific breakpoint.

Similarly for Energy Shield, the breakpoints that matter are:

Besides that there's a linear health save to consider, but I'd actually say the effect of the breakpoints is bigger in speedrun because it reduces the amount of time wasted during combat. This comes in handy in chaotic situations like Cathedral and Silo.

The closest I could get for speedrun mode would be something like: 30 / 50 / 75 / 90 / 100 for the old energy usage. I'm not sure how I would adjust this if the cost is reduced to 25 epm. Maybe you don't need to.

One thing that might throw off my estimations of the impact of the aug in practice is how Environmental Training factors in. Since the damage reduction is multiplicative and not additive, the improvement an Energy Shield brings on top of a high Environmental Training might be less impactful than expected.

For non-speedrun rando this is maybe a little strong, but then again when you're not speedrunning, a lot of augs are very powerful - we talked about Spy Drone. So I wouldn't be too worried.

Also in speedrun mode, sometimes you get the second level just because it happened to be randomized high and the first level was randomized really low.

Anyway, I generally think it's going to be difficult to simultaneously:

I think we should not set the first level too low just to make more room for the subsequent levels being good. If we leave room to make the max level extra juicy, it's most likely that this will just result in the aug not getting installed.

Reducing the cost raises the incentive to install the aug at all, without needing to play with the per-level strength numbers. So that's neat. But also weak and cheap augs are somewhat less exciting gameplay-wise.

I don't know how much of this helps. Deus Ex is a difficult design space to deal with!

Die4Ever commented 1 month ago

a couple more general balance changes I just did

hopefully enviro skill is still worth upgrading, and maybe we see more use of hazmats

Die4Ever commented 1 month ago

Is flamethrower ammo too plentiful? Or flamethrower enemies too common?

Anvoker commented 1 month ago

I'm not sure. Why do you ask?

Sometimes they are extremely common per run. I run into 3 of them in the subway. Other times I don't find one for a while. Subjectively it feels like the flamethrower is more common than the Plasma Rifle. I have had situations where I don't have enough flamethrower ammo.

If you think the weapon is too good, it might be worth slightly increasing the number of shielded enemies among non-MJ12 factions (MJ12 already has the Commando). Though one beef I have with the shielded enemies is that I do not find them visually distinct enough from regular enemies.


Also some update on my experiences with the pistol.

I've had numerous runs now where the pistol is an amazing addition to my heavy-centric run. This happens when the pistol rolls 14-18 damage. I'm not actually sure what the breakpoints are in terms of number of headshots required to eliminate an MJ12 commando. But even when the damage is a bit lower, the pistol still doubles as mini-sniper rifle. This is all made possible by the fact that pistol is extremely fertile grounds for a laser mod.

The crossbow cannot benefit from the laser mod, so it will always go unused until pistol training receives a buff rather than pistols. Crossbow is difficult to buff because this indirectly buffs all crossbow enemies which are sufficiently dangerous at the moment.

When I used the pistol in a true sidearm role, I tended to not run out of ammo.

I've never had a single run where the stealth pistol was an attractive option. Its damage is lower, so it will inevitably eat up more ammo, making its higher base fire rate a very minor benefit. I have no idea what one could do to make it more attractive in speedrun mode. I've always been a stealth pistol hater for normal mode, I think the regular pistol eclipses it there too. But I know there are differing opinions. I'd consider raising its base damage by 1 maybe.

Overall, my opinion is that the regular pistol is actually sufficiently strong in this sidearm role. It's the crossbow, pistol training and to a lesser extent the stealth pistol that need to be stronger.

I don't have any good ideas currently about how these could be made stronger without inadvertently affecting normal mode. Pistol training is still very strong in normal mode, as it gives you access to a weapon with plentiful ammunition and high ammunition efficiency if you can do headshots. One maybe-decent idea is to make the crossbow be affected by the laser mod.

Increasing the base accuracy of the pistol is a good idea. It does not buff its lasered sidearm role at all, but makes it otherwise more viable. If you buff it for the regular pistol, you should buff it for the stealth pistol, as has an even more abysmal starting accuracy.

We also have to keep in mind it's incredibly easy to accidentally make pistols too good in speedrun mode simply because their inventory space is so small, so their opportunity cost is also very small. If an item is on average pretty good and has very small opportunity cost, you will start seeing it in every run, which is probably not what we want. Then again, the fact that the pistols randomize with crap stats half of the time should take care of that.

Die4Ever commented 1 month ago

Small change I made. Robots now have 25% damage resistance to plasma, we had it at 0% before. Vanilla has it at 75% but I think that's because the intended damage of the plasma rifle seems to be 40 (but it is bugged and only does 8 damage lol), so they would've intended it to do 10 damage to robots. Now we have it at 18 damage as a base, and robots are now reducing it down to 13. This will maybe be compensated by people having motivation to further upgrade heavy skill anyways.

I need to play with pistols more, I have already slightly buffed their accuracy to match the assault rifle, but they could maybe use a little more. +1 damage for stealth pistol probably makes sense, so it will more frequently be better than the regular pistol. I'll look into what it would take to make the laser work with the crossbow, this would probably also fix laser on plasma.

Another option could be making accuracy mods help more? I think they're maybe slightly underwhelming right now.

Die4Ever commented 1 month ago

some ideas to MAYBE do before closing this

MQDuck commented 1 month ago

I quite like making the heavy speed improvement start at 100%. Both for the reasons you said, and because it's a lot more intuitive in my opinion.

Die4Ever commented 2 weeks ago

also slightly buffed level 1 and 2 of AugVision

https://github.com/Die4Ever/deus-ex-randomizer/commit/c14a98545181bae7d2158d45bb5cf0437406f96e