Desktop Forums Blog Support Patreon
Official Steam Group | Patreon Chat
jack1974
I'm going to TRY (the situation at home is a mess, lots of noise) to design/code the attributes and level up system of this game in next days.

I'm currently thinking to offer more variety than Loren. Why ? because I like to experiment 8)

So there will be the following attributes and they'll influence the following aspects of the battle:

Strength = base attack value and damage (though probably in this game the weapons will have a lot more impact on the attack)

Dexterity = base defense value and critical hit chance (though probably in this game the armors will have a lot more impact on the defense)

Endurance = amount of HP on each level up

Vitality = amount of HP regeneration during battle

Wisdom = amount of SP on each level up

Willpower = amount of SP regeneration during battle



having 6 attributes instead of the 3 present in Loren should make the level up more interesting. I am also thinking about another crazy idea... but I'm not sure if is simple to implement so for now is just an idea. Having "leveling" skills, so that you don't just unlock a skill once, but you can spend more skill points in it to make it more powerful.



For example you have Heal. You put one point and you can use it, and each subsequent point increases the power:

Heal 1/5 point= heal 5% of target HP

Heal 2/5 point= heal 10% of target HP

Heal 3/5 point= heal 15% of target HP

Heal 4/5 point= heal 20% of target HP

Heal 5/5 point= heal 25% of target HP



This obviously would mean that I can't have anymore different skills like Heal I,II,III since the power is defined by the number of skill points you'll add :) So will need to review the various skilltrees, and that's more extra work. I'll have to see, maybe will try with one and measure how long it takes to do that, because I really like this idea.
DunKalar
Nice ideas.



I'd suggest to add resistance to magic, stun, slow etc. for e.g. endurance and willpower. That makes them more interesting for the qualities of taking what your enemies throws at you.



Concerning the leveling skills:



You do not need to review the skill trees too much since you can just alter the effect or split the original effect up:



example:



Heal I: Heals the target for 5/10/15/20/25 % HP

Heal II: Increases target's health regeneration during the next 1/2/3/4/5 turns for 1/4/6/8/10 %

Heal III: removes 1/2/3/4/5 status effects from the target



or



Heal I: Heals the target for 2/4/6/8/10 % HP

Heal II: Heal I now activates again in the next 1/2/3/4/5 rounds (Buff for the caster that generates a healing buff on th etarget)

Heal III: Heal I now heals 1/(2/3/4/5 additional charakters clockwise from the target



am looking forward to this game and loren 2 man



can I increase your staff's working speed with cookies :) ?
jack1974
Cookies never hurts :lol:



About resistances: I can't really increase the resistance to stun, slow etc because of how the system was designed, not by a number/percentage but by a values from 0 to 5 defining the resistances. So for example I can have normal, resistant, immune. So there isn't a practical way to say every 10 endurance you get also a resistance, otherwise you'll get immunity to all attacks. It was badly designed and was my mistake, I should have used a numeric resistance like in most western RPG or use a different system.



Well what you say is basically to modify the existing skills and code new ones :lol: so that is the same amount of work as creating new skills from scratch. Each skill needs to be tested and is quite some work. I think will probably reduce the total number of skill each character has from 15 to 7-8 but each will be unique (right now, there are 5 unique skill with 3 power variants).
DunKalar
True, I do not now that coding software that you are coding your games with :-) so I just spawn random ideas ^^



having 6 charakters in your party with 8 different skills i a huge amount of balancing to do :-) If you can do that I will be impressed for sure ^^



good luck :-)
at-a-glance
This system would definitely make leveling more interesting, though at the same time I liked the system used in Loren. When Skill = Speed + Range Weapon Damage I could play as a Thief, pour all my points into Skill and get like 6 consecutive moves. :mrgreen: I would like to see you keep two stats for each class rather than breaking every class down like this. It would be weird if I played as a Thief with defense higher than any Warrior because I poured a bunch of points into Dexterity and Vitality thinking they were 'Thief stats'.
DunKalar
maybe you can split defense into dodge and armor like:



dodge (dex-based) decreases your chance to get hit

armor (item based) reduces the amount of damage taken



that works fine in several p&p games.
jack1974
Sorry forgot to say that I plan to put class restrictions or tweaks, for example if you picked warrior your attack would be strength *5 + level *5, while if was a thief would be strength *3 + level *3 (something like that). I obviously need to make some tests to avoid the situation you just described :)
maybe you can split defense into dodge and armor like:



dodge (dex-based) decreases your chance to get hit

armor (item based) reduces the amount of damage taken



that works fine in several p&p games.

Yes that too, I put the "block" feature in the game, so that you can block or avoid attacks, and the chance is higher as the gap between attacker Attack value and defender's Defend value is higher.
peregrin
Hi,



Apologies for the terseness. Some suggestions below:



Direct and indirect attributes

Definitions:

An attribute is `derived' iff (a) the player cannot modify it on level-up, and (b) its value is determined by other attributes (derived or not derived).

An attribute is `direct' iff its current value is used in "die rolls" that determine random outcome in the game.

An attribute is `indirect' iff its current value is used in the computation of another derived attribute (such as HP, SP).



Claim: Mixing direct and indirect attributes makes the game less fun.

Consider a scenario in which STR is direct (it affects damage rolls) and CON is indirect (it affects the HP increase at each level-up).



Players Kali and Mero start with identical attributes (including derived attributes) at level 0.

Kali raises CON exclusively for 10 levels, then STR exclusively for 10 levels.

Mero raises STR exclusively for 10 levels, then CON exclusively for 10 levels.



Kali and Mero will now no longer have identical attributes. While their non-derived attributes are identical, Kali will have significantly higher HP. Thus, the attribute system not only allows for but also makes it very easy to experience wasted opportunities. Once Mero's player realises their mistake, they will probably choose to restart the game (which is "not fun").



Two suggestions:
[list]
  • [*] Make all non-derived attributes direct attributes (e.g., HP = Level + CON). At level 20, Kali and Mero will now be exactly equal again.

  • [*] Make all non-derived attributes indirect attributes (e.g., STR only indirectly affects (raises) MUSCLE-MASS, which in turn affects combat damage). At level 20, Kali and Mero will have different derived attributes, but Mero's reduced HP will be offset by her significantly higher damage rating.
  • [/list]


    Raising attributes is not that exciting

    At least when you do it for lots of characters. (I found it a bit tedious in Loren.) Also, let's take a "story" perspective here: why should you be able to tell others who have joined your party what attributes they should focus on? (Okay, you could ask the same question for skills... I won't quite go that far, though it's a valid point).



    Here's an alternative suggestion: everyone but the twins raises their own stats. This can be affected by three sources:
    [list]
  • [*] The character's preferences.

  • [*] Story-level reasons. Or, perhaps more simply, the protagonist(s) asking the character in a repeatable dialogue option to focus on practicing their `fighting' or `archery' or `magic'.

  • [*] Automatically optimise characters for their observed roles.
  • [/list]


    The third point is particularly interesting: the idea here is that the character will find out how they fit into the party and focus on attributes that are more beneficial towards their role. Here's a rough algorithm:
    [list]
  • [*] Each character tracks how often their attributes are checked for/used, and how often they were found insufficient. If your code already implements methods of the form `char.testAttribute(attr_name, difficulty_class)', this is trivial to implement (for direct attributes). Otherwise (or if you use lots of indirect attributes), refactoring would be needed.

  • [*] Each character has a method that provides an attribute usage table (a map or `dict' in Python parlance that maps attribute names to their (normalised) relative frequency, such as `5% of the time this character interacts with the game world by chance', they use STR') and an attribute failure table that maps attribute names to their failure chances (e.g., `whenever the character uses STR, there is a 30% chance of failure').

  • [*] The attribute usage table can then be normalised against the average of all other characters. In the normalised usage table, attributes > 1 are attributes that that character uses more frequently than others, and attributes < 1 are attributes that they use less frequently.

  • [*] The normalised attribute usage table and the attribute failure table together tell us what attributes are most worth investing in.

  • [*] Usage/failure frequencies should be computed both in `grand total' and in `since last level' form. A character deciding their next step will use `since last level' for themselves, and `grand total' for everyone else.
  • [/list]




    Merging skill levels

    In principle, merging Heal I and Heal II and Heal III sounds great. In practice, there are situations where Heal I (using fewer SP) is preferable. Three suggestions:


    [list]
  • [*] Continuous power grade: left click = max power level, right click = power level chosen based on your position on the button. On tablets, swiping distance can be used instead.

  • [*] Integrate into battle system: higher level skills need preparation/meditation/aiming. This takes some extra time, during which preparation can be interrupted by critical hits. To compensate, upgrading Heal I to Heal II should increase the base Heal I power a little also.

  • [*] All versions of the skill (at all power levels) use the same number of SP. To compensate, SP increases more slowly than in Loren.
  • [/list]




    Final suggestions
    [list]
  • [*] It would be great to have the ability to auto-use `buffs' before battles (except for ambushes and chain battles). In later stages, there is a tendency to develop a ritual of `Loren uses Rally and Apulimesho uses Regenerate and Dora uses Camouflage, and now let's see what battle we have in front of us here...', which doesn't add to the excitement; having auto-casting as a configuration option on the party setup screen would be great.

  • [*] Quest skills are the best skills, because you earned them through a story. :-)

  • [*] In case there's another map planned for this game: A more active travel screen that displays the current location would be a nice touch. At least if moving around is fast enough. This would also make it more plausible for the PCs to `discover' locations, if you want to go that route.

  • [*] Fewer items, please. You tend to have plenty of story; you don't need to hide behind manual statistical optimisation.
  • [/list]


    -- peregrin
    jack1974
    Great post, thanks. I'll be making various test to see how the design impact the actual battles but your suggestions are very good :)
    Lonestar51
    I am amazed when reading peregrins post - very detailed suggestions and analysis.



    My suggestion is a bit simplerand shorter:

    Lets take the example of jack with heal, where using 1 point heals 5% of target HP and higher points heals more in proportion. If we want HEAL I to be "weaker" than HEAL III, it would be simple to say that if char has HEAL I, (s)he can use 1 Point, 2 Point or 3 Point (max 15%). If HEAL II is unlocked it allows 4 Point and 5 Point (max 25%). HEAL III allows 6 Point and 7 Point (max 35%). Though possibly this would work better with number of hitpoints than percent of max, as then the maximum percentage of healed HP could be roughly the same throughout the game. (better playtest this...)
    Anima_
    That was an interesting post peregrin. Please forgive me if my reply might sound a bit rough, I still have trouble hitting the right tone in English.



    My definition for attributes is a bit different then yours.

    An attribute is a numerical value characteristic for a specific character that measures her ability to alter the gamestate.



    A primary attributes value is inherent to the attribute, so it does not depend on other attributes.

    A secondary attributes values is derived from one or several primary attributes.



    A comperative attribute is used in attribute comparisons. It's value only has meaning in relation to the opposite attributes value. (Damage for example, 40 Damage is nice against an 100 HP enemy, but pretty insignificant against an 1.000.000 HP enemy.)

    An absolute attribute on the other hand has inherent meaning. (Number of attacks for example.)



    A path dependent attributes value depends on the way it has been raised. So the same number of points invested in the attribute can lead to different values. The opposite are of course path independent attributes.



    Mixing a path dependent attribute in a group of otherwise path independent attributes can make sense if the former has low desirability in the beginning. That way you can increase the incentive for spending resources on the attribute even if the short term return is low. So in other words path dependent attributes make sense if the character advancement itself is path dependent.

    Though it does increase the advancement systems complexity, which may not be desirable.


    Raising attributes is not that exciting

    Agreed, that's why I like selecting abilities on level up more.



    Your third point sounds interesting but I'm not convinced that it will result in that much of a difference to the other two approaches most of the time. And in the instances where it will it might be quite frustrating for the player since she has to indirectly steer the character in the required direction.

    It would also requite a fair bit of refactoring, while we do have a common interface for all attribute requests it's also used for predictions. Though that's only a minor problem.

    The actual questions is how to reach a conclusion from that data, since the accumulated information lacks context.

    While I think that the idea sounds interesting in theory, I'm not convinced that it will work that well in practice.


    Merging skill levels

    Just some comments.

    Right click is reserved by the engine we use. A different way would of course be possible. It's a pain for the AI though.

    We're doing interruptible actions in the new framework.


    Final suggestions

    [list]
  • [*]Autocast is a good idea, might be a bit difficult in the details.

  • [*]Agreed

  • [*]

  • [*]Agreed, though my rationale is that fewer item slots will make item choice more interesting.
  • [/list]
    P_Tigras
    Sorry forgot to say that I plan to put class restrictions or tweaks, for example if you picked warrior your attack would be strength *5 + level *5, while if was a thief would be strength *3 + level *3 (something like that). I obviously need to make some tests to avoid the situation you just described :)


    Whatever formulas you decide to use in the end, please be sure to publish them somewhere that's easy to find.
    Jaeger
    I didn't think raising attributes was much of an issue, especially in Loren since there were not many to begin with. Personally, I like having control/choices over the growth of my party.
    jack1974

    Whatever formulas you decide to use in the end, please be sure to publish them somewhere that's easy to find.

    Well they were in Loren tooltips :) But I forgot to update them when I released the game and that caused some confusion. This time I'm going to keep the text updated!
    I didn't think raising attributes was much of an issue, especially in Loren since there were not many to begin with. Personally, I like having control/choices over the growth of my party.

    Yes that's the problem, some people like it and others not. I think the best solution is to have an "auto" button where you can let the CPU do auto-level up (not just the attributes but also the skills). I like to assign the attributes too but when you are testing or replaying the game for the 10th time, it does get a bit tedious indeed :lol:
    peregrin
    Hi again,



    Whatever formulas you decide to use in the end, please be sure to publish them somewhere that's easy to find.

    Well they were in Loren tooltips :) But I forgot to update them when I released the game and that caused some confusion. This time I'm going to keep the text updated!


    There's actually a technical solution to this (which you may or may not be aware of; people coming from a static language background tend to consider this to be a more obscure language feature): if the tooltip is in a Python string, you can use Python's `eval' function to make sure that you use the exact same formula that you display as the one you use to compute:


    [code]
    >>> formula = 'Level + Strength * 2'
    >>> eval(formula, {'Level': 7, 'Strength': 2})
    11
    [/code]


    Hope that helps,



    -- peregrin



    PS: Only just learned (or inferred, rather) that Anima is again doing the statistical bits. This is very good to hear. :-)
    jack1974
    Ah yes true! I was indeed thinking as I typed the response if there was a way to show the code directly :lol:

    And yes Anima is doing it for Planet Stronghold 2, since I think he'll do a better job than me with numbers. I'll be busy anyway designing all the battle encounters, testing, balancing, etc. To each one his own :wink:
    jack1974
    Did the class selection screen today:

    http://24.media.tumblr.com/07c0c85e7ecbf40dd4cb3f58f2408b26/tumblr_mpx4rjnJ2T1qhts2bo1_1280.jpg" style="max-width:100%">

    you can choose also the "other twin" class as long as is not the same of your main character, and in the next screen you'll be able to automatically assign his / her skills or pick them yourself :)

    You might notice I reused Loren class icons, I plan to have new ones done, but for now they'll be enough!
    SerTabris
    It's looking good so far. I think that second line should be "You can also change your twin brother's class but his can't be the same as yours." (The part at the bottom should say "twins' classes".)
    jack1974
    Thanks will correct the texts :)
    Sylrissa
    Looking good!, really looking forward to being able to play this