devolution

Author Topic: General Discussion  (Read 3788268 times)

0 Members and 9 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9315 on: January 12, 2017, 09:12:30 AM »
True... damage is really weird in some battle scenarios and fights are often too drawn out, especially at higher levels.

On sidenote, timings for some skills are off, it's ok for the most part but we'll have to take another look at skills after the beta.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9316 on: January 13, 2017, 07:21:13 AM »
I found a promising yet simple damage formula. But I now I have major difficulties with testing and implementing it because hero is irreplaceable part of hero.team inside BE and because he seems to ignore base traits.

Quote
label dev_testing_menu:
    if config.developer:
        menu:
            "Debug Mode":
                $ hero.apply_trait("Mage")
                $ initial_levelup(hero, 100, max_out_stats=True)
This is the code we run before launching debug mode. I added the orange line to make MC mage, in order to test how well he'll resist spells compared to warriors-characters. But his stats are the same with and without this line.

Maybe I should add base traits using some another function, but that's how you add them in mc_setup.rpy too.

So either MC ignores base traits, or another function is needed. In any case, it's very difficult to test BE balance with classless MC.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9317 on: January 13, 2017, 08:02:41 AM »
No... that's not how we do it, at least I don't think so. There is a basetraits set, they need to be added there first and later applied (at least that's how I remember it).
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9318 on: January 13, 2017, 08:10:30 AM »
Yeah.. you basically do this:

Code: [Select]
hero.traits.basetraits.add(traits["Mage"])
first. Maximum two traits in total. Then you apply them just like you did.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9319 on: January 13, 2017, 12:28:03 PM »
Here is an experiment, after my last push of course.
I made MC a pure mage of 50 lvl with maxed stats and without items equipped. Then I created a team of mobs, also pure mages, with 50 lvls and maxed stats, ie
Code: [Select]

    {
        "name": "Electrificator",
        "desc": "An ancient defensive mechanism.",
        "front_row": 0,
        "battle_sprite": "content/npc/mobs/dv.png",
        "portrait": "content/npc/mobs/dv1.png",
        "race": "Droid",
        "locations": [],
        "min_lvl": 45,
        "basetraits": [
            "Mage"
        ],
        "stats": {
            "attack": 100,
            "defence":100,
            "magic": 100,
            "agility": 100,
            "luck":-50,
            "charisma":100,
            "constitution": 100,
            "intelligence": 100
        },
        "skills": {},
        "traits": ["Android", "Electricity"],
        "attack_skills": [
           
        ],
        "magic_skills": ["Ion Storm", "Electromagnetism", "Thunderstorm", "Arcane Field"
        ]
    },
Then I launched BE and used the Cataclysm spell.
Mobs dealt 55-146 damage, depending on character class.
MC, a pure mage 50 lvl just like mobs, dealt 450(!) dmg.

Either BE does something incorrectly, or mobs stats are messed up. We cannot balance BE like that, it should be fixed.
« Last Edit: January 13, 2017, 12:30:37 PM by DarkTl »

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9320 on: January 14, 2017, 09:47:51 AM »
Another experiment.

This is the Mage class.
Code: [Select]
    {
        "id": "Mage",
        "occupations": [
            "Warrior", "Caster"
        ],
        "desc": "A little spark of magic within one's soul gives the ability to manipulate arcane energies.",
        "basetrait": true,
        "mod_stats": {"magic": [1, 1], "intelligence": [1, 1]
        },
        "init_lvlmax": {
            "magic": 50,
            "intelligence": 50,
            "mp": 75
        },
        "init_max": {
            "magic": 25,
            "mp": 50
        },
        "init_mod": {
            "magic": 15
        },
        "init_skills": {},
        "leveling_stats": {
            "attack": [
                -1,
                -1
            ],
            "magic": [
                3,
                3
            ],
            "mp": [
                3,
                3
            ]
        }
    }
If I create MC as mage of lvl 1, he'll have 30 maximum mp. Even though mage class has init_max mp+50 and init_lvlmax mp+75, there is no way to have 30 mp even at level 1.



Looking at the code, it's not surprising.
Code: [Select]
            if trait in self.basetraits:
                multiplier = 2 if len(self.basetraits) == 1 else 1
                for stat in trait.init_lvlmax: # Mod value setting
                    if stat in stats:
                        stats.lvl_max[stat] += trait.init_lvlmax[stat] * multiplier
                    else:
                        msg = "'%s' trait tried to apply unknown init lvl max stat: %s!"
                        devlog.warning(str(msg % (trait.id, stat)))
This is the part which implements init_lvlmax. It's a part of apply function. So the only way to make init_lvlmax work is to apply trait AND add it to basetraits. Ie

Code: [Select]
            hero.traits.basetraits.add(traits[t])
            hero.apply_trait(traits[t])
Without any of these lines base traits don't give all stats they have to give.
But with them base traits are visible in traits list - not surprising, since we added them as base traits and then as normal traits, so we kinda have four traits now.

Conclusion: base traits are afk, just like mobs stats. Balancing BE is impossible until it will be fixed properly.
« Last Edit: January 15, 2017, 02:48:20 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9321 on: January 15, 2017, 03:32:53 AM »
Conclusion: base traits are afk, just like mobs stats. Balancing BE is impossible until it will be fixed properly.

I'll investigate this tonight...
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9322 on: January 15, 2017, 05:23:47 AM »
Ok, you have to be a tad more precise where your investigations took your and what can be done to fix it. Basetraits are not applied twice, they are first added to a simple set, that action does not carry any logic and them applied. If, when applied, they are in the set, extra logic is triggered. I said that you had to do both in my post.

Knowing that, what's the problem right now?
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9323 on: January 15, 2017, 06:06:46 AM »
Wait a sec. I thought stats were wrong because base traits weren't applied properly.

But the problem was in init_max/init_lvlmax themselves. You never mentioned here that init stats also multiplied by two if the class is one. You only said so for leveling_stats, as a result init stats don't work properly for single class, they are not balanced to do so  :o

That aside, explain how pure MC mage of 50 level with no equipment deals three times more damage than pure mob mage of 50 level, both with maxed stats. With no meaning elemental traits involved.
It's in the testing BE at the moment, I tested it on cataclysm spell.
« Last Edit: January 15, 2017, 06:16:12 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9324 on: January 15, 2017, 07:30:38 AM »

That aside, explain how pure MC mage of 50 level with no equipment deals three times more damage than pure mob mage of 50 level, both with maxed stats. With no meaning elemental traits involved.
It's in the testing BE at the moment, I tested it on cataclysm spell.

Both with max stats? MCs stats are maxed due to dev mode, mobs stats are basically default leveling, there is nothing that maxes them out. Try it now...
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9325 on: January 15, 2017, 07:40:01 AM »
It looks better now.
But these mobs have
Code: [Select]
        "stats": {
            "attack": 100,
            "defence":100,
            "magic": 100,
            "agility": 100,
            "luck":-50,
            "charisma":100,
            "constitution": 100,
            "intelligence": 100
        },
in the json. It should mean maxed out stats anywhere.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9326 on: January 15, 2017, 08:10:37 AM »
Fair enough, try it now, DO NOT USE: max_out_stats if you want this functionality! Just level the mob up normally.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9327 on: January 15, 2017, 08:48:10 AM »
I don't know how to explain what I see. So I'll just write down a log.

1) Started a new game, went to BE. Hero deals 105 dmg with cataclysm. Mobs deal 550 dmg. Party is quickly destroyed.
2) Run BE test again. This time MC deals ~318 dmg. Mobs are destroyed.
3) Run BE test again. Mobs deal ~ 110 dmg. Hero deals about 105 damage. Terminated BE mode.
4) Run BE again. Hero deals about 105 damage. Mobs deal about 500 dmg. Party destroyed.

I removed all randomness from damage calculations to test damage. It shouldn't be possible to have such huge damage leaps.

Besides, the damage stays the same every turn. So it's not a random BE factor.
« Last Edit: January 15, 2017, 08:52:14 AM by DarkTl »

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #9328 on: January 15, 2017, 09:07:55 AM »
It's odd indeed. I think it's a bug in BE somewhere, but it's a shot in the dark atm :(
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #9329 on: January 15, 2017, 09:18:10 AM »
What I did now:
- replaced mobs by Nami from the usual be testing mode. She's still 50 lvl, but her class is mage now.
- ran BE multiple times in a row. Every time I skipped everyone but MC, casted cataclysm on her, then terminated BE.

Results are astonishing. Every attempt is a bit weaker than before. I started from 50 dmg, after ten or so tries MC deals 28 damage. Every round, so it's not damage randomness.

Then I did the same for her. After every test she becomes stronger, dealing more damage.

All stats are the same, they are maxed out after all. So looks like part of BE data remains between fights and somehow changes the outcome.
« Last Edit: January 15, 2017, 09:29:39 AM by DarkTl »