Framework Sneak Peek

Discuss the sequel to Planet Stronghold here
Post Reply
Seloun
Young scout
Posts: 43
Joined: Sat Jan 19, 2013 9:37 pm

Re: Framework Sneak Peek

Post by Seloun » Sat Jan 26, 2013 11:17 pm

Anima_ wrote: I should have explained a bit more what I meant with internal and external keywords. In the example the ability would be bound to the accuracy attribute of the shooter. We then test if the internal keywords are a subset of the shooters state and if the external keywords are a subset of the targets state.
Ah, that makes sense. So the keywords within a segment have the 'and' semantic, while 'or' semantics can be replicated with multiple segments, and keyword lists are distinguished by actor/target.
We are planning to use a GUI based editor for that. That problem was a never ending source of bugs for Loren, even with the lesser use of keywords.
Very good idea.
Apart from execution speed, there will also be a measure how difficult it is to interrupt an action. But yes interrupts have the potential to become very powerful. That's a fact we will definitely keep in mind, but trying to balance it in vacuum will not yield many results.

Regarding the advantage of going last. It's true that it does give a certain planning potential to the slower characters. On the other hand it forces them to react to the faster characters, so the faster characters has control over the flow of battle.
Well, the observation was that actions intended interrupts necessarily need a shorter activation time in general than 'regular' actions (otherwise they would be unusable in that fashion, since they have to 'fit' within the delay of whatever they're interrupting; otherwise either you have to somehow start it before the action or it will not finish in time), which is why I mention them specifically. Exactly what the interrupt-type actions do will affect this issue, but if we assume the interrupts tend to be indirect (i.e. they don't work by stopping the activation of the other ability but by action more difficult/less effective), usable interrupts will likely help later actors more. If we think about the snipe/cover example, if you are in a situation where you can use cover reactively, it means that
a) sniper went before you
b) cover will go off before the snipe goes off
c) your next action choice occurs before your opponent's
This implies that you went from a situation where your opponent went first, to a situation where you have a counter to your opponent's action and you get a head start on the next action (since your opponent's previous action is still trying to catch up to your counter action). Depending on the amount of time left, this might merely mean that you swapped situations with your opponent (they get to react to what you do) but if you are in the right relative timing situation, you have a huge advantage. Any sort of short timing action can make it easier to get into that right timing situation, even if the action is otherwise useless (consider a short-activation delay action that does nothing but use up a little time), making it potentially very strong simply by what it can enable.
Having long actions be multipart reduces how much you can manipulate the timings since the other side has a limited ability to back out if you counter, which would maintain the value of initiative more. Alternatively, having a way to decouple activation time from the total time cost would let you have counters that are useful without having a faster loop time.

Seloun
Young scout
Posts: 43
Joined: Sat Jan 19, 2013 9:37 pm

Re: Framework Sneak Peek

Post by Seloun » Sat Jan 26, 2013 11:23 pm

jack1974 wrote: I'm the scarecrow 8)
Jokes apart I wanted to use this system so there could also be an auto-combat option for lazy players - or simply for battles that are almost won. I liked that feature in some games like Heroes Of Might & Magic, and I'm sure the more casual players would like it too. While the game is not real-time, the battles should be much more frantic than a classic turn-based game like Loren, I mean you will need to consider several values before making your move. More like a chess match. It's surely going to be harder to balance (at Hard mode in particular, easier modes shouldn't be a problem) but I think it has also the potential to be even more fun than Loren's combat which was already cool IMHO.
I have to admit I don't really understand this - can't you have auto-combat without the delayed activation? It's likely tougher to balance, for sure, but it's even more likely that the AI for it will be harder to build (which would seem to make autocombat somewhat less robust).

User avatar
jack1974
Pack leader
Posts: 14698
Joined: Thu Jun 16, 2005 4:43 pm

Re: Framework Sneak Peek

Post by jack1974 » Sun Jan 27, 2013 10:16 am

Yes sorry I posted in a hurry, but indeed is not the semi-realtime system that allows autobattles, but the whole new RPG framework by itself :) the new turn system is just a part of it, but probably autocombat could have been added even on Loren adding some delay between each move (but probably the big problem would have been to do the AI for the party members).

User avatar
Anima_
Druid
Posts: 345
Joined: Fri Mar 02, 2012 2:44 pm
Location: Germany
Contact:

Re: Framework Sneak Peek

Post by Anima_ » Mon Jan 28, 2013 12:05 am

Ah, that makes sense. So the keywords within a segment have the 'and' semantic, while 'or' semantics can be replicated with multiple segments, and keyword lists are distinguished by actor/target.
Actually they can also have the 'or' connection, but the 'end' is standard.
Any sort of short timing action can make it easier to get into that right timing situation, even if the action is otherwise useless (consider a short-activation delay action that does nothing but use up a little time), making it potentially very strong simply by what it can enable.
That's actually desirable. It means that tactic will play an active role in the battle.

If we do our job right there will always be opportunity costs for choosing an action. While for example you can simply dive for cover against the sniper, you're now in cover and you can't leave it until the sniper is finished. Should a different enemy choose that chance to throw a grenade into cover you could leave it to avoid the grenade, but then you risk the sniper critical...
Actions like sniping an enemy should require a proper set up beforehand.

User avatar
Anima_
Druid
Posts: 345
Joined: Fri Mar 02, 2012 2:44 pm
Location: Germany
Contact:

Re: Framework Sneak Peek

Post by Anima_ » Sun Mar 24, 2013 5:27 pm

Seloun wrote: Well, the observation was that actions intended interrupts necessarily need a shorter activation time in general than 'regular' actions (otherwise they would be unusable in that fashion, since they have to 'fit' within the delay of whatever they're interrupting; otherwise either you have to somehow start it before the action or it will not finish in time), which is why I mention them specifically. Exactly what the interrupt-type actions do will affect this issue, but if we assume the interrupts tend to be indirect (i.e. they don't work by stopping the activation of the other ability but by action more difficult/less effective), usable interrupts will likely help later actors more. If we think about the snipe/cover example, if you are in a situation where you can use cover reactively, it means that
a) sniper went before you
b) cover will go off before the snipe goes off
c) your next action choice occurs before your opponent's
This implies that you went from a situation where your opponent went first, to a situation where you have a counter to your opponent's action and you get a head start on the next action (since your opponent's previous action is still trying to catch up to your counter action). Depending on the amount of time left, this might merely mean that you swapped situations with your opponent (they get to react to what you do) but if you are in the right relative timing situation, you have a huge advantage. Any sort of short timing action can make it easier to get into that right timing situation, even if the action is otherwise useless (consider a short-activation delay action that does nothing but use up a little time), making it potentially very strong simply by what it can enable.
Having long actions be multipart reduces how much you can manipulate the timings since the other side has a limited ability to back out if you counter, which would maintain the value of initiative more. Alternatively, having a way to decouple activation time from the total time cost would let you have counters that are useful without having a faster loop time.
Your observation is certainly true in general. There are problems with introducing exceptions to an already complex system though. That complexity would not only potentially confuse the player, it would also mean much more work for the AI. Since that is already the most resource demanding system I'm hesitant to add even more load.
So if at all possible I'd like to keep the action sequence as is.

We've also worked on a way to include a pressure mechanic that forces characters into cover after a time without making combat in the open suicidal. Here's what we came up with:
Fortitude (Working name)
Fortitude acts as a safety valve that protects characters by lowering the accuracy of hostile actions. This works by decreasing the level of an attack by one. So a critical hit becomes a direct hit, a direct hit a clean hit, a clean hit a glancing hit and a glancing hit a miss. Nothing happens if the action was a miss to begin with.
By doing this Fortitude is reduced by the difference in accuracy of the original action and the reduced action. Fortitude refreshes under cover by time and at the end of an encounter.

So we have three in combat resources at the moment. Hitpoints, Psionic Points and Fortitude Points.
RPG Programmer for Winterwolves, currently working on: Amber's Magic Shop
Part-time emotionless AI

Seloun
Young scout
Posts: 43
Joined: Sat Jan 19, 2013 9:37 pm

Re: Framework Sneak Peek

Post by Seloun » Mon Mar 25, 2013 5:31 am

The Fortitude mechanic is quite a good one - it's vaguely reminiscent of the old Star Wars vitality points, Bioware's solution in Dragon Age, and cover-based shooters (e.g. Halo) without quite being a copy of any of them. It does quite a lot of alleviate the randomness issue, though I'd probably still suggest having it always try to reduce to something relatively low (e.g. always reduces to glancing or clean hit if you have enough points), possibly with a character-specific cap on how many Fortitude points can be spent per hit. Another possibility would be to simply have the value be the number of reductions you have rather than the amount of accuracy you reduce, e.g. fortitude 4 means you get a total of 4 decreases in level; this is a lot more intuitive to use than the accuracy figure (partial values could always be kept if finer gradations was important). I personally like a greater reduction through the Fortitude mechanic better - e.g. a Fortitude point might reduce an attack by 2 levels to a minimum of glancing (with glancing going to a miss) as it better moderates the effects of randomness.

As for name, the mechanic most intuitively sounds like 'cover points' - you generate it in cover, and it provides resistance like you're in cover; having both cover and cover points as mechanics could get confusing though. Concealment, Vitality, Evasion, Dodge, Alertness, Maneuver, Advantage, Balance, Equilibrium might be options for synonyms.

The mechanic also opens up a lot of design space, which is both good and bad, but is probably mostly good in this case. Something like smoke grenades which provide Fortitude points to a friendly would be interesting; it could also be used to represent another 'initiative' concept (high initiative means you start with higher % of your maximum fortitude, as you are more prepared for combat; low initiative would force you to be defensive early) without messing with speed or turn order. Scouts could generally start with lot of Fortitude, and have abilities to boost other characters' fortitude (they can get an early jump on the enemy, or can prepare their allies). It also provides design space for abilities that remove Fortitude points, as well (marking laser? suppressive fire?) or abilities that interact in a unique way with Fortitude points (perhaps an attack that consumes Fortitude points for greater effect).

With respect to the action sequence thing, my main point was that short activation actions are disproportionately strong. An action that takes 1 TU is way more than double the effectiveness of an action that takes 2 TU because it's harder to interrupt, is better at interrupting, is easier to use to set up favorable timings in the future, and you don't have to decide what you're going to do until later - all very strong traits in the delay->action system. This seems like it would make wide variety of timings difficult to balance (a somewhat longer delay ability has to be a lot stronger - or just have no alternatives - to be really viable); one solution is to make all abilities roughly comparable in time cost by breaking up the longer delay actions into smaller pieces (e.g. setup sniper shot -> sniper shot instead of just s-n-i-p-e-r s-h-o-t) unless they're specifically meant to be interruptible (e.g. boss ability that wipes the party). Alternatively, with the Fortitude mechanic, you could potentially introduce implied time costs by adding a Fortitude code (e.g. sniper shot takes 3 levels worth of Fortitude as well as the time cost for a typical shot, making the effective opportunity cost the cover time + shot time); the downside of this is that it makes balancing Fortitude interactions a fair bit more difficult as there are more factors to consider.

User avatar
Anima_
Druid
Posts: 345
Joined: Fri Mar 02, 2012 2:44 pm
Location: Germany
Contact:

Re: Framework Sneak Peek

Post by Anima_ » Tue Mar 26, 2013 11:04 am

Seloun wrote:The Fortitude mechanic is quite a good one - it's vaguely reminiscent of the old Star Wars vitality points, Bioware's solution in Dragon Age, and cover-based shooters (e.g. Halo) without quite being a copy of any of them. It does quite a lot of alleviate the randomness issue, though I'd probably still suggest having it always try to reduce to something relatively low (e.g. always reduces to glancing or clean hit if you have enough points), possibly with a character-specific cap on how many Fortitude points can be spent per hit. Another possibility would be to simply have the value be the number of reductions you have rather than the amount of accuracy you reduce, e.g. fortitude 4 means you get a total of 4 decreases in level; this is a lot more intuitive to use than the accuracy figure (partial values could always be kept if finer gradations was important). I personally like a greater reduction through the Fortitude mechanic better - e.g. a Fortitude point might reduce an attack by 2 levels to a minimum of glancing (with glancing going to a miss) as it better moderates the effects of randomness.
In the first draft I actually had it as always reducing hits to glancing, but changed it after sleeping over it. The problem would be the invulnerability of characters who still have enough Fortitude. Instead of modifying how combat works we would simply introduce two different combat phases per enemy. First strip him of Fortitude, then of Health. That's not my intention with this mechanic.
Changing the depletion from delta Accuracy to delta AccuracyLevel on the other hand is something I can agree on. Probably with costs depending on the level that is reduced. So reducing a crit to direct would be more expensive then reducing a glancing to miss. That way higher accuracy is still more effective against Fortitude and we have a cleaner depletion progression. (The problem was the step to the next level where Fortitude depletion was reset.)
As for name, the mechanic most intuitively sounds like 'cover points' - you generate it in cover, and it provides resistance like you're in cover; having both cover and cover points as mechanics could get confusing though. Concealment, Vitality, Evasion, Dodge, Alertness, Maneuver, Advantage, Balance, Equilibrium might be options for synonyms.
I like Alertness, maybe Concentration as an other option. Though that would depend on what else we stuff into the resource.
The mechanic also opens up a lot of design space, which is both good and bad, but is probably mostly good in this case. Something like smoke grenades which provide Fortitude points to a friendly would be interesting; it could also be used to represent another 'initiative' concept (high initiative means you start with higher % of your maximum fortitude, as you are more prepared for combat; low initiative would force you to be defensive early) without messing with speed or turn order.
That's an interesting idea, it wouldn't be that difficult to implement as well. The more I think about it the more I like it actually. It would also play neatly with an ambush mechanic for encounters.
Scouts could generally start with lot of Fortitude, and have abilities to boost other characters' fortitude (they can get an early jump on the enemy, or can prepare their allies). It also provides design space for abilities that remove Fortitude points, as well (marking laser? suppressive fire?) or abilities that interact in a unique way with Fortitude points (perhaps an attack that consumes Fortitude points for greater effect).
I'd rather not have Scouts with a lot of Fortitude. They shouldn't be long on the frontline, which Fortitude helps to regulate. But having a way to actively spend Fortitude is a good idea in general. That would probably be more the domain of soldiers though.
With respect to the action sequence thing, my main point was that short activation actions are disproportionately strong. An action that takes 1 TU is way more than double the effectiveness of an action that takes 2 TU because it's harder to interrupt, is better at interrupting, is easier to use to set up favorable timings in the future, and you don't have to decide what you're going to do until later - all very strong traits in the delay->action system. This seems like it would make wide variety of timings difficult to balance (a somewhat longer delay ability has to be a lot stronger - or just have no alternatives - to be really viable); one solution is to make all abilities roughly comparable in time cost by breaking up the longer delay actions into smaller pieces (e.g. setup sniper shot -> sniper shot instead of just s-n-i-p-e-r s-h-o-t) unless they're specifically meant to be interruptible (e.g. boss ability that wipes the party). Alternatively, with the Fortitude mechanic, you could potentially introduce implied time costs by adding a Fortitude code (e.g. sniper shot takes 3 levels worth of Fortitude as well as the time cost for a typical shot, making the effective opportunity cost the cover time + shot time); the downside of this is that it makes balancing Fortitude interactions a fair bit more difficult as there are more factors to consider.
Yes execution time strength does not grow 1 to 1 with power. That's something we've already seen in Loren and also something well known from it's inspiration FFX or SMT DS.
The growth is probably not even linear, maybe quadratic. So an action that takes double the time should be 4 times more effective. And of course an action that takes three times as long needs to be 9 times more effective. So the best course of action would be to have the action delay vary between n and 2n in general cases and up to 3n - 4n in exceptional cases. Where n ist the lowest delay for a comparable action. (All actions that cause damage for example are comporable. As are all actions that prevent damage for an additional example.)
That is of course only if the actions should be equally strong. Some classes for example would have better options then a different class in some fields.
Using additional downsides like the Fortitude point cost or a state requirement (If an action could only be used under cover for example or only when a more then 50% of Fortitude remains.) can be used to regulate the actions effectivness as well like you said.

I do share your concerns in this, but for the reasons detailed in my last post (Complexity for human and AI) this solution would be somewhat a last resort for me.
RPG Programmer for Winterwolves, currently working on: Amber's Magic Shop
Part-time emotionless AI

User avatar
jack1974
Pack leader
Posts: 14698
Joined: Thu Jun 16, 2005 4:43 pm

Re: Framework Sneak Peek

Post by jack1974 » Tue Mar 26, 2013 11:13 am

Anima_ wrote: Changing the depletion from delta Accuracy to delta AccuracyLevel on the other hand is something I can agree on. Probably with costs depending on the level that is reduced. So reducing a crit to direct would be more expensive then reducing a glancing to miss. That way higher accuracy is still more effective against Fortitude and we have a cleaner depletion progression. (The problem was the step to the next level where Fortitude depletion was reset.)
Yes I agree, it should mitigate the damage/risk but not too much, that seems the best solution :)
Anima_ wrote:I like Alertness, maybe Concentration as an other option. Though that would depend on what else we stuff into the resource.
I like also cover points, if the only way to regenerate them is through the Cover stance. If can be regenerated other way then yes I like Alertness/Concentration too.
Anima_ wrote:That's an interesting idea, it wouldn't be that difficult to implement as well. The more I think about it the more I like it actually. It would also play neatly with an ambush mechanic for encounters.
Agreed it can be integrated well into the plot writing, and if an ambush reduces the value by a certain %, the scouts would still have more alertness than the other as it's to be expected. I like the idea a lot too, in the first game in several scenes you could scout ahead a cave / place with a Scout class and have a chance of failure (non-combat skill Survival check) but this way is even more immersive :)
Anima_ wrote: I'd rather not have Scouts with a lot of Fortitude. They shouldn't be long on the frontline, which Fortitude helps to regulate. But having a way to actively spend Fortitude is a good idea in general. That would probably be more the domain of soldiers though.
Oops I just read this after writing the above :lol: OK then definitely we shouldn't call it Alertness then! It's not a problem for me as long as it works in the game (Scouts can't be the "uber class", they need to have weak points too).
Anima_ wrote:Yes execution time strength does not grow 1 to 1 with power. That's something we've already seen in Loren and also something well known from it's inspiration FFX or SMT DS.
Yes I realize now how unbalanced some skill were. Though in Loren they were somewhat balanced because we had front/back row mechanics and also bigger parties. In a 4 vs 4 game it would be much more noticeable :) But the best is to do some testing and see how it work in practice I think (I am more for the "empirical approach" as you might have noticed :lol:).

User avatar
Anima_
Druid
Posts: 345
Joined: Fri Mar 02, 2012 2:44 pm
Location: Germany
Contact:

Re: Framework Sneak Peek

Post by Anima_ » Tue Mar 26, 2013 1:33 pm

Agreed it can be integrated well into the plot writing, and if an ambush reduces the value by a certain %, the scouts would still have more alertness than the other as it's to be expected. I like the idea a lot too, in the first game in several scenes you could scout ahead a cave / place with a Scout class and have a chance of failure (non-combat skill Survival check) but this way is even more immersive :)
Actually an ambush would not affect the Fortitude resource directly. It would increase the Speed for the ambushers instead, which in turn would affect the Fortitude resource.
Example wrote: Anima (Speed 20) and Jack (Speed 40) against alien A(Speed 30) and robot R(Speed 10).
The lists tell you when the character can choose her first action.
  • Normal Battle [0 : Jack, 10 : A, 20 : Anima, 30 : R]
  • Ambushed(Enemy Speed +20) [0 : A, 10 : Jack, 20 : R, 30 : Anima]
  • Ambushing(Party Speed +20) [0 : Jack, 20 : Anima, 30 : A, 50 : R]
As you can see the fastest character F always starts at time index t = 0. All other characters N start at F.Speed - N.Speed.
It would be similar for the Fortitude calculations. F is the fastest character on the opponents team.
So the fortitude for character N would be max(1.0, N.Fortitude * (N.Speed / F.Speed))
RPG Programmer for Winterwolves, currently working on: Amber's Magic Shop
Part-time emotionless AI

User avatar
jack1974
Pack leader
Posts: 14698
Joined: Thu Jun 16, 2005 4:43 pm

Re: Framework Sneak Peek

Post by jack1974 » Tue Mar 26, 2013 2:16 pm

Yes that is a good solution too :)

Post Reply