devolution

Author Topic: General Discussion  (Read 3821423 times)

0 Members and 51 Guests are viewing this topic.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8235 on: August 24, 2016, 12:56:22 PM »
Code: [Select]
- Minor changes to reports
- We now allow multiple elemental multipliers

Ok, multiple elements should now work.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8236 on: August 24, 2016, 12:58:19 PM »
Code: [Select]
            if "melee" in self.attributes: # TODO: ADD WEAPONS EFFECTS IF THIS IS A WEAPON SKILLS
                attack = (a.attack*0.8 + a.agility*0.25 + self.effect) * self.multiplier
            elif "ranged" in self.attributes:
                attack = (a.attack*0.9 + (a.luck+50)*0.5 + self.effect) * self.multiplier # luck bonus is far more limited than agility bonus from melee, but ranged attacks should have drawbacks too

Did you remove agility from ranged as well? Why do you hate that stat this much? :D
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8237 on: August 24, 2016, 12:58:58 PM »
I forgot who came up with desc for elements but we need to change that... they're weird.
One of temporary writers, probably a year ago or so. I can only replace it by direct descriptions of strong and weak sides of elements, without vague artistical parts.

You keep saying that it's a bad thing that a much higher characters dodges a lot vs some nub, while it is NOT!
Too frequent evasions are often irritating when done by enemies, and make a game too easy when done by your team. How do you propose to calculate it? A.agility/t.agility or something?

I've never seen a game that has f*cking AGILITY STAT which was not used to evade in favor of a static evasion stat.
http://finalfantasy.wikia.com/wiki/Evasion
Final Fantasy 10, pure (but hidden) evasion stat.

Normal attacks do not consume anything, I don't even like that they consume VP.
0 vitality = inability to do anything outside BE. Of course you shouldn't be able to fight too.

And the way they were coded initially, they dished out very good amount of damage.
There will be weapons skills to deal more damage. With free and powerful simple attacks what's the point of them? None, just spam normal attacks.

There was balance... there can be again.
Yeah, when people wrote guides how to beat the second monsters team at arena. Out of 10 teams iirc.

You still haven't explained why:

"melee", "fire"

is not good enough? Idea behind magical weapons is usually so non magical characters can do elemental damage.
In this case the game will use the formula developed for physical attacks to calculate fire damage. Isn't it illogical?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8238 on: August 24, 2016, 01:01:13 PM »
Code: [Select]
            if "melee" in self.attributes: # TODO: ADD WEAPONS EFFECTS IF THIS IS A WEAPON SKILLS
                attack = (a.attack*0.8 + a.agility*0.25 + self.effect) * self.multiplier
            elif "ranged" in self.attributes:
                attack = (a.attack*0.9 + (a.luck+50)*0.5 + self.effect) * self.multiplier # luck bonus is far more limited than agility bonus from melee, but ranged attacks should have drawbacks too

Did you remove agility from ranged as well? Why do you hate that stat this much? :D
Because ranged characters are in less danger than melee ones.
But I'm thinking about using the melee formula for ranged attacks too, they are not so different.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8239 on: August 24, 2016, 01:35:31 PM »
If we're going to add "attack" of some kind to items, effect field is pointless for non-magical attacks as they would do the exact same thing, so it should be removed.
It depends. Do you want to add stuff like "physical damage 10-15 fire damage 2-6" to weapons? And then to all mobs? And then make sure that all npcs at arena have some weapons equipped to make sure they have proper attack range? (I don't  :) )

Also, this is more like elemental resistance, magical resistance might look something like:

Code: [Select]
    {
    "id": "Magic Immunity",
    "desc": "No damage from any magic.",
    "resist": ["magic"]
    },
Will it actually work with your code? Or it's just a general theoretical example?  :D

Also, "Healing" might not belong there cause it can be status oriented, without involving magic (technically speaking), like some chars use faith based healing or tech based healing that might not be magical in nature. Healing doesn't belong here...
Lack of healing should balance such powerful trait.

Edit: There should not be items in the game to allow this other than for testing purposes... this is so overpowering that it's game breaking. Could be a nice for Mobs though...
Only a few mobs have it in the whole game.
« Last Edit: August 24, 2016, 01:59:58 PM by DarkTl »

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8240 on: August 24, 2016, 01:58:06 PM »
Ok, multiple elements should now work.
Define multiple elements. I have Northern Flow spell for testing which has air and ice. Atm only air works, as far as I can tell based on numbers color.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8241 on: August 24, 2016, 02:24:05 PM »
One of temporary writers, probably a year ago or so. I can only replace it by direct descriptions of strong and weak sides of elements, without vague artistical parts.

Prolly a better bet... right now they are plainly confusing.

Too frequent evasions are often irritating when done by enemies, and make a game too easy when done by your team. How do you propose to calculate it? A.agility/t.agility or something?

How was it done before the stat? Agility/Luck/Item Mods, something like:

ev =  min(t.agility*.1-a.agility*.1, 20) + max(1, t.luck-a.luck) + item.mods
if dice(ev):
    # evade...

http://finalfantasy.wikia.com/wiki/Evasion
Final Fantasy 10, pure (but hidden) evasion stat.

Code: [Select]
Final Fantasy X

Evasion is increased by use of the Sphere Grid, and Evasion nodes are activated by using Speed Spheres. Out of all the characters in the party, Lulu has the highest overall Evasion in her section of the Sphere Grid, however, many do not use Evasion nodes, and instead use Luck as it performs this function and more.

In addition, the most accurate attack in the game (belonging to Dark Ixion) requires a combined total of 290 points of evasion to ensure dodge any evadable attack. To accomplish this, add the points of evasion together to the luck stat.

The ability Evade & Counter is the improved version of Counterattack ability, and mostly renders Evasion redundant as it guarantees evading; although Evade & Counter does not trigger on whole party attacks or attacks which themselves are a counter. The maximum Evasion stat matches the other stat maximums at 255. Magic is unaffected by Evasion as most Magic has a 100% hit rate; those spells which don't still have a fixed hit rate that is unaffected by stats.

For more information on the mechanics of Evasion in Final Fantasy X, please see the page on Accuracy.

??? But those are very combat oriented anyhow...

0 vitality = inability to do anything outside BE. Of course you shouldn't be able to fight too.

You shouldn't be able to start BE either. But this is fine, I don't really mind. One issue is that vitality is static so it should not matter on a level (of importance) that is anywhere near MP. Minor VP cost is a bit annoying but not enough so to make a case against :D

There will be weapons skills to deal more damage. With free and powerful simple attacks what's the point of them? None, just spam normal attacks.

Very true... a lot of games have a free attack + many attacks that consume SP (which we don't have). Vitality is fine, the only issue is that it's static.

Yeah, when people wrote guides how to beat the second monsters team at arena. Out of 10 teams iirc.

Yeap... but many steal beat the entire arena after a lot of grinding and buying items :)

In this case the game will use the formula developed for physical attacks to calculate fire damage. Isn't it illogical?

Matter of perspective I guess. Perceiving elemental weapons as shifting kinetic damage to elemental, it makes perfect sense. From coding perspective as well. But you can look at it differently, it all depends on the formula you propose, there might be a point at which some mixed class between a mage and a warrior will be able to use such weapons against almost everyone (except when element(s) align to enemies) at the same (or almost same) power as pure Warrior could use normal weapons or these elemental weapons. That would make Warrior/Archer classes trully peaces of shit.

So there is a danger when creating a weapon that consumes MP and VP and uses magic and attack stats. It might make such weapons a fair deal to mages as well. This needs to be decided, a lot in code depends on this, like absorption/resistance. In my concept, damage from these weapons would be impossible to absorb/resist.


We might want to switch to something like this: http://opengameart.org/content/multi-elemental-attacks-rpgs-there-cool-way-do-it

Might be easier to work with than absorption and resistance. Everything in one single mod from -1 to 1 (or from 0 - 200 like he suggests).
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8242 on: August 24, 2016, 02:38:11 PM »
Define multiple elements. I have Northern Flow spell for testing which has air and ice. Atm only air works, as far as I can tell based on numbers color.

First element you've specify in the attack will be used for color. That's another thing with multi-elemental attack that is shitty...

If you're talking number, don't forget that we have decided to use a mean of all elements, instead of stacking multiplier effects. Same with defense. It's not the best solution but it was a solution, otherwise stacked damage bonuses would make single elements idiotic to use. Not mentioning Neutral will become the shittiest thing ever.
Like what we're doing?

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8243 on: August 24, 2016, 02:46:03 PM »
Because ranged characters are in less danger than melee ones.
But I'm thinking about using the melee formula for ranged attacks too, they are not so different.

I'd make agility 50%+ of the ranged attack, somehow that stuck with me from some game I've played...

It depends. Do you want to add stuff like "physical damage 10-15 fire damage 2-6" to weapons? And then to all mobs? And then make sure that all npcs at arena have some weapons equipped to make sure they have proper attack range? (I don't  :) )

You're right. I forgot about mobs, we'll use both.

Will it actually work with your code? Or it's just a general theoretical example?  :D

Yes.

Even with very old code, resistance was and is still absolute. If ANY of the skill attributes are resisted, we don't even bother doing doing calculations... We will now prolly have to do something else, with ME attacks and sh!t. I just don't know what.

Lack of healing should balance such powerful trait.
Only a few mobs have it in the whole game.

Oki.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8244 on: August 24, 2016, 02:58:10 PM »
How was it done before the stat?
evasion_chance = (t.luck-a.luck)*0.1 + 0.005*(t.level-a.level) + (t.agility - a.agility)*0.01

Might be easier to work with than absorption and resistance. Everything in one single mod from -1 to 1 (or from 0 - 200 like he suggests).
Not everything. Our elements also provide bonuses and penalties to spells damage.
    "el_damage": {"electricity": -0.5, "water": 0.5},
    "el_defence": {"water": 0.2, "fire": 0.3, "ice": -0.6},

We don't force lowercase letters with code so your Magic Immunity prolly doesn't work properly cause most elements are capitalized:
No. I changed them all to not start with capital letters, same result.

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8245 on: August 24, 2016, 03:05:05 PM »
No. I changed them all to not start with capital letters, same result.
Nevermind, forced recompile fixed that  :)

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8246 on: August 24, 2016, 03:15:17 PM »
Nevermind, forced recompile fixed that  :)

Well... this goes into: Sick, Random Crap pile :D Ren'Py doesn't do anything to jsons.
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8247 on: August 24, 2016, 03:21:39 PM »
First element you've specify in the attack will be used for color. That's another thing with multi-elemental attack that is shitty...

If you're talking number, don't forget that we have decided to use a mean of all elements, instead of stacking multiplier effects. Same with defense. It's not the best solution but it was a solution, otherwise stacked damage bonuses would make single elements idiotic to use. Not mentioning Neutral will become the shittiest thing ever.
Let's say we have air and ice spell.
We:
1) Calculate attacking and defending levels for spell, as usual.
2) Divide it by two because we have 2 elements (3 for 3 elements, etc)
3) Calculate elemental bonuses for them separately. With divided by 2 elemental multipliers. (3 for 3 elements, etc)
4) Treat resulting two numbers of damage as two independent damages, with different colors, one after another.

Offline Xela

  • Global Moderator
  • *****
  • Posts: 6893
  • "It's like hunting cows"
Re: General Discussion
« Reply #8248 on: August 24, 2016, 03:50:05 PM »
Let's say we have air and ice spell.
We:
1) Calculate attacking and defending levels for spell, as usual.
2) Divide it by two because we have 2 elements (3 for 3 elements, etc)
3) Calculate elemental bonuses for them separately. With divided by 2 elemental multipliers. (3 for 3 elements, etc)
4) Treat resulting two numbers of damage as two independent damages, with different colors, one after another.

This is a rewrite and a bunch of messy code. I want a cleaner solution, like on that site...

And you're oversimplifying! It would go something like this:

1) ATT/DEF base.
2) Get per elements damage fraction. We however NEVER do it like this, we do everything else first and calculate damage last :( And there are a number of reasons for that...
3) You forgot resistance and absorption... per element...

for element in elements:
    multi = 1.0

    - check for resistance and skip the next item in loop, subtracting damage fraction from total damage (OR adding it to a dict, if we want reports with different colors).

in case of no resistance:
    - apply bonus and penalty to the damage fraction.
    - check for absorption and if it's applicable, reduce the damage fraction by absorption ratio and subtract from total damage. Go to next item in loop.

if no absorption:
    - add the resulting damage fraction to the total damage.

4) Easier said than done. And even if done, it will look absurd with 5 or 6 elements and we have like 8 total...

==============>>>
This is not all. This can no longer be a part of a method that calculates and account for other modifiers. We also need somehow to check for total resistance vs partial resistance because if all elements had been resisted, we want the attack to result in 0 as it does now, however that will not happen if we add other multipliers as well (like from your new resistance stat or item bonuses) while we do want to use them if at least one element went through... so it also means a complex and messy resistance_check method instead of a oneliner we have now (that doesn't even calc the damage if anything in skill's attrs was resisted).

You want more? We'd have to check defense on every step of that loop if we still wanted character "not to resist" element that can be absorbed.

There may be even more issues. On top of that, we'd have to keep all of this in mind and be able to work with the resulting code somehow... and all that to add a couple of ME skills that will either be stupidly overpowered if we allow stacking of bonuses like on that site or just the same as other attacks mean is drawn as we do now.

This feels like a really, really bad idea... especially without simplification of elemental system or moving part of variables from code to content somehow.
« Last Edit: August 24, 2016, 07:12:06 PM by Xela »
Like what we're doing?

Offline DarkTl

  • Hero Member
  • *****
  • Posts: 4737
Re: General Discussion
« Reply #8249 on: August 25, 2016, 02:30:58 AM »
I really hate that we cannot show many elements for multielemental attacks. Look here for example, I mean the battle log. It tells you total damage and then all its parts, in different colors.

Even if it's not possible without deep rewriting, showing one element for ME spell is stupid. At least let's show it like" damage 130 (air+ice)".
« Last Edit: August 25, 2016, 02:39:12 AM by DarkTl »