I'm currently in the first stages of designing what I want to use as a battlesystem for my games.
It'll probably be a few month before I will look for a scripter to help with those parts that I can't do myself, but until then I would like some opinions about the ideas.
Especially I would like to get some scripter's opinion whether it would be easier to piece the parts together from existing scripts and add compatibility patches, or if it would be easier to make it a completely new and independent battlescript.
The reason for this is that I want to exchange several of the basic elements of the default engine, and going in and out of the default API might cause more problems than disabling default battle and designing something completely new - but I don't have enough specific experience with RGSS3 to quantify that suspection.
Overview of changes/ideas:
1) Pre-Battle processor/wrapper
2) Completely exchange HIT%/EVA% and Damage processing
3) four energy scales (LP/EP/SP/MP) instead of HP/MP/TP
4) ATB/CTB-Variant Battlescript
5) targeting options, attack patterns and AI
6) Front-view HUP with pictures for the actors (either busts or battlers, NOT faces)
Details:
1) Pre-Battle processor/wrapper
No matter how a battle is called (event command or random encounter), instead of going to the battlescreen this part of the script is called. It then processes the following steps:
Step 1: check troop for prebattle-event
If the troop contains a troop event marked as pre-battle, that event is processed first (no display!)
Basically this is to randomize the troop by appearing or transforming some of the enemies in that troop, but optionally other event commands or scripts for special enemies/logistics/quests would also be nice, as well as the option of calling a common event from this troop event.
Step 2: calculate and compare troop and party strength
Most probably by checking notetags on the enemies that exist after step 1, a total battlestrength of the troop is estimated and a similiar value calculated for the party as well.
Depending on the results the preprocessor script reacts differently in step 3.
Step 3: choosing battle
For "real" battles with stronger or equal enemies, the battlescript is called. For "lower" enemies there will only be a message "you encountered XY. Z damage received, loot gained" - or perhaps a call to a common event to give more options for the battleresults.
Basically a way to disable booring low-level enemies for high-level parties
Step 4: After-Battle checks - optional
Perhaps calling a common event with special data after each battle - not yet decided as I don't know if I need that
Tsukihime has a few scripts that might be modified for this, but most probably it'll need a new script. To be decided later
2) Completely exchange HIT%/EVA% and Damage processing
In most JRPG (and in the default Ace engine) the actor and enemies scale along damage, and HIT% is intentionally extremely high (and thereby not a usefull deciding number) while EVA% remains low.
Also see http://forums.rpgmakerweb.com/index.php?/topic/4219-rpg-maker-vxace-damage-flow/
As a result, fighting a higher enemy will show less damage done by the actor while higher damage is received from the enemy.
I would like to change that to an attack roll for attack quality and a similiar roll for defense quality. The scale/level would increase the values for both attack and defense, and a hit would only happen if the attack quality is higher.
As a result, fighting a stronger enemy will show a lot of misses from the actor while the enemy misses less often.
(I would create a flowchart for the new handling to help the scripter with the coding, but that are details for later)
OK, and here I need some special feedback from scripters:
I haven't seen a script that tries to change that basic part of the engine's damage flow. But I do not know if that is because no one had such an idea for it before, or because changes there are extremely difficult (in that case I'll have to rethink my options)
Also, what would players say to such a difference? It goes away from the JRPG-default of RM and approaches the game mechanics of western RPGs, especially PnP-RPG's. Would players see that as a refreshing change or as a disturbing need to learn a new way to estimate battles?
3) Four energy scales (LP/EP/SP/MP) instead of HP/MP/TP
MP and EP (endurance points) would be similiar to current MP/TP.
LP (life points) would be the same as HP, with LP=0 resulting in death state
SP (stability points or soul points) would be new, with SP=0 resulting in coma state
Death and Coma would be equal states, not affecting each other, and death would no longer remove all other states but only physical damage states, while Coma would remove all mental damage states. Both would require different, specific skills to remove the state.
In the editor skills can either be physical attack or magical attack, and the damage formula can either be targeted on HP or on MP.
Since the damage flow will be rewritten (see 2 above), I would use those settings for damage selection instead of working with tags:
If the skill is set to physical attack, HP setting will damage the lifepoints and MP setting will damage the endurance (HP/TP).
If the skill is set to magical attack, HP setting will damage stability points and MP setting will damage MP (SP/MP).
In the case that I have to forgo such a replacement for damage processing, I would need notetags for the other damage settings (SP-Damage, TP-Damage), but if possible the handling of the attack type and damage type combined would be easier for game development than using notetags...
There are some scripts that change TP-handlings, but none that introduce a fourth number or a new state equal to death.
Additionally there is no HUD for that in any existing battlescript - which means either a heavy modification of an existing script or a completely new script for the battledisplay
What are your opinions on this option? I would really like to use it, and it should not add too much if the damage flow can be rewritten - but if that is not rewritten and the battlesystem is combined from existing scripts, I might drop this part unless a lot of people find it interesting
4) ATB/CTB-Variant Battlescript
There are several CTB and/or ATB scripts already available and I could easily choose one of them - in fact I originally planned to do that. However, including 2) and 3) into an existing ATB-Script would require a lot of familiarity of the scripter with the ATB, and it might still be a lot of work. And possibly it's less work to code a new ATB directly with those two points in mind.
And designing a new ATB would allow me to change additional minor aspects compared to the existing ATBs, like using a dropping delay scale instead of a rising power scale for the time measurements.
This is basically the key to the decision whether to write an entirely new battlescript or to use several existing battlescripts and only write add-ons/compatibility patches, and I would like to hear opinions from experienced scripters of what they would do in such a case.
The changes in the damage flow are important to me and I would like to know if they would be easy to add to an ATB, or if it would be easier to write a new one for them.
5) targeting options, attack patterns and AI
The current enemy AI isn't exactly the optimum in selecting which skills to use, and the changes above will probably ruin what's left of it.
However, there are several scripts available to replace or improve the attack patterns, and I'll have to decide if I use one of those or have a new one written as part of a new battlescript.
Comments and ideas of what should be included in such a case are welcome, but don't bother looking for or linking existing targeting and AI-scripts. For compatibility reasons that can't be decided until the other parts above are more finished, and I probably know more about AI-logic and AI-design than 95% of the others here.
6) Front-view HUP with pictures for the actors (either busts or battlers, NOT faces)
That would still have to be designed and I would prefer to have it done with or compatible with the LUNA engine.
It will be done last and I only place this info here as a reminder not to forget it.
Additional comments:
I'm a professional programmer (equivalent of master's degree in computer sciences), but have zero experience with Ruby and it's been a while since I last coded in other languages. So I have no problem in providing a scripter with flowcharts for coding, and testing (including repairing code) everything myself. I just don't know where to even start replacing the default scripts, so the coding itself will require a lot of help (probably by a classified commission later).
In this topic I don't want any finished code or similiar results, I want comments to help me decide what is realistically doable in the later coding stage and to prevent me from making too many mistakes in the design of the flowcharts and data structures.
It'll probably be a few month before I will look for a scripter to help with those parts that I can't do myself, but until then I would like some opinions about the ideas.
Especially I would like to get some scripter's opinion whether it would be easier to piece the parts together from existing scripts and add compatibility patches, or if it would be easier to make it a completely new and independent battlescript.
The reason for this is that I want to exchange several of the basic elements of the default engine, and going in and out of the default API might cause more problems than disabling default battle and designing something completely new - but I don't have enough specific experience with RGSS3 to quantify that suspection.
Overview of changes/ideas:
1) Pre-Battle processor/wrapper
2) Completely exchange HIT%/EVA% and Damage processing
3) four energy scales (LP/EP/SP/MP) instead of HP/MP/TP
4) ATB/CTB-Variant Battlescript
5) targeting options, attack patterns and AI
6) Front-view HUP with pictures for the actors (either busts or battlers, NOT faces)
Details:
1) Pre-Battle processor/wrapper
No matter how a battle is called (event command or random encounter), instead of going to the battlescreen this part of the script is called. It then processes the following steps:
Step 1: check troop for prebattle-event
If the troop contains a troop event marked as pre-battle, that event is processed first (no display!)
Basically this is to randomize the troop by appearing or transforming some of the enemies in that troop, but optionally other event commands or scripts for special enemies/logistics/quests would also be nice, as well as the option of calling a common event from this troop event.
Step 2: calculate and compare troop and party strength
Most probably by checking notetags on the enemies that exist after step 1, a total battlestrength of the troop is estimated and a similiar value calculated for the party as well.
Depending on the results the preprocessor script reacts differently in step 3.
Step 3: choosing battle
For "real" battles with stronger or equal enemies, the battlescript is called. For "lower" enemies there will only be a message "you encountered XY. Z damage received, loot gained" - or perhaps a call to a common event to give more options for the battleresults.
Basically a way to disable booring low-level enemies for high-level parties
Step 4: After-Battle checks - optional
Perhaps calling a common event with special data after each battle - not yet decided as I don't know if I need that
Tsukihime has a few scripts that might be modified for this, but most probably it'll need a new script. To be decided later
2) Completely exchange HIT%/EVA% and Damage processing
In most JRPG (and in the default Ace engine) the actor and enemies scale along damage, and HIT% is intentionally extremely high (and thereby not a usefull deciding number) while EVA% remains low.
Also see http://forums.rpgmakerweb.com/index.php?/topic/4219-rpg-maker-vxace-damage-flow/
As a result, fighting a higher enemy will show less damage done by the actor while higher damage is received from the enemy.
I would like to change that to an attack roll for attack quality and a similiar roll for defense quality. The scale/level would increase the values for both attack and defense, and a hit would only happen if the attack quality is higher.
As a result, fighting a stronger enemy will show a lot of misses from the actor while the enemy misses less often.
(I would create a flowchart for the new handling to help the scripter with the coding, but that are details for later)
OK, and here I need some special feedback from scripters:
I haven't seen a script that tries to change that basic part of the engine's damage flow. But I do not know if that is because no one had such an idea for it before, or because changes there are extremely difficult (in that case I'll have to rethink my options)
Also, what would players say to such a difference? It goes away from the JRPG-default of RM and approaches the game mechanics of western RPGs, especially PnP-RPG's. Would players see that as a refreshing change or as a disturbing need to learn a new way to estimate battles?
3) Four energy scales (LP/EP/SP/MP) instead of HP/MP/TP
MP and EP (endurance points) would be similiar to current MP/TP.
LP (life points) would be the same as HP, with LP=0 resulting in death state
SP (stability points or soul points) would be new, with SP=0 resulting in coma state
Death and Coma would be equal states, not affecting each other, and death would no longer remove all other states but only physical damage states, while Coma would remove all mental damage states. Both would require different, specific skills to remove the state.
In the editor skills can either be physical attack or magical attack, and the damage formula can either be targeted on HP or on MP.
Since the damage flow will be rewritten (see 2 above), I would use those settings for damage selection instead of working with tags:
If the skill is set to physical attack, HP setting will damage the lifepoints and MP setting will damage the endurance (HP/TP).
If the skill is set to magical attack, HP setting will damage stability points and MP setting will damage MP (SP/MP).
In the case that I have to forgo such a replacement for damage processing, I would need notetags for the other damage settings (SP-Damage, TP-Damage), but if possible the handling of the attack type and damage type combined would be easier for game development than using notetags...
There are some scripts that change TP-handlings, but none that introduce a fourth number or a new state equal to death.
Additionally there is no HUD for that in any existing battlescript - which means either a heavy modification of an existing script or a completely new script for the battledisplay
What are your opinions on this option? I would really like to use it, and it should not add too much if the damage flow can be rewritten - but if that is not rewritten and the battlesystem is combined from existing scripts, I might drop this part unless a lot of people find it interesting
4) ATB/CTB-Variant Battlescript
There are several CTB and/or ATB scripts already available and I could easily choose one of them - in fact I originally planned to do that. However, including 2) and 3) into an existing ATB-Script would require a lot of familiarity of the scripter with the ATB, and it might still be a lot of work. And possibly it's less work to code a new ATB directly with those two points in mind.
And designing a new ATB would allow me to change additional minor aspects compared to the existing ATBs, like using a dropping delay scale instead of a rising power scale for the time measurements.
This is basically the key to the decision whether to write an entirely new battlescript or to use several existing battlescripts and only write add-ons/compatibility patches, and I would like to hear opinions from experienced scripters of what they would do in such a case.
The changes in the damage flow are important to me and I would like to know if they would be easy to add to an ATB, or if it would be easier to write a new one for them.
5) targeting options, attack patterns and AI
The current enemy AI isn't exactly the optimum in selecting which skills to use, and the changes above will probably ruin what's left of it.
However, there are several scripts available to replace or improve the attack patterns, and I'll have to decide if I use one of those or have a new one written as part of a new battlescript.
Comments and ideas of what should be included in such a case are welcome, but don't bother looking for or linking existing targeting and AI-scripts. For compatibility reasons that can't be decided until the other parts above are more finished, and I probably know more about AI-logic and AI-design than 95% of the others here.
6) Front-view HUP with pictures for the actors (either busts or battlers, NOT faces)
That would still have to be designed and I would prefer to have it done with or compatible with the LUNA engine.
It will be done last and I only place this info here as a reminder not to forget it.
Additional comments:
I'm a professional programmer (equivalent of master's degree in computer sciences), but have zero experience with Ruby and it's been a while since I last coded in other languages. So I have no problem in providing a scripter with flowcharts for coding, and testing (including repairing code) everything myself. I just don't know where to even start replacing the default scripts, so the coding itself will require a lot of help (probably by a classified commission later).
In this topic I don't want any finished code or similiar results, I want comments to help me decide what is realistically doable in the later coding stage and to prevent me from making too many mistakes in the design of the flowcharts and data structures.
Last edited by a moderator:

