Web Tool to simply combat
Web Tool to simply combat
I started a tool (http://www.rsolutionsnc.com/auto_battle_resolver/) to make it easier for CMs to run combat. However I am uncertain where to take it next and would like some guidance/suggestions..
There appear to me to be three levels of player interaction in a VBAM combat. In the first the players give the CM very gross guidance and the CM does it all, this allows for a quicker battle (in real time because of the lack of synchronization required). In the second the players are given mid-battle reports (not every round) and can make more tactical decisions. In the third the players make all of the decisions all of the time. The third takes the longest wall time and depending on the number of players in the overall game slow down the overall game flow.
So we are left with which of these three situations do we want to solve.
From a design point of view the third is most complex because of the number of interaction points. Players submit fleet org to a impartial 3rd party, impartial 3rd party (when all received) sends out fleet orgs and requests assignments (flights, target scout functions), players submit those to 3rd party. 3rd party resolves AS on SHIP damage, each player has option of directed damage, then each player assigns any remaining damage..
The other two are fairly close from a programming and design point and indeed can share much of the same code (Whole battle just uses single round logic)
As a side note other threads on this forum have pointed out that some of the tactical options available to the players in the third option are unbalancing (flighter swarms, scouts etc) (in the first two options the CM can just not choose the "unbalanced options).
I wrote the current tool targeted at the first option.
I am going to post a poll asking people what they want to see.
Thanks
Mike
There appear to me to be three levels of player interaction in a VBAM combat. In the first the players give the CM very gross guidance and the CM does it all, this allows for a quicker battle (in real time because of the lack of synchronization required). In the second the players are given mid-battle reports (not every round) and can make more tactical decisions. In the third the players make all of the decisions all of the time. The third takes the longest wall time and depending on the number of players in the overall game slow down the overall game flow.
So we are left with which of these three situations do we want to solve.
From a design point of view the third is most complex because of the number of interaction points. Players submit fleet org to a impartial 3rd party, impartial 3rd party (when all received) sends out fleet orgs and requests assignments (flights, target scout functions), players submit those to 3rd party. 3rd party resolves AS on SHIP damage, each player has option of directed damage, then each player assigns any remaining damage..
The other two are fairly close from a programming and design point and indeed can share much of the same code (Whole battle just uses single round logic)
As a side note other threads on this forum have pointed out that some of the tactical options available to the players in the third option are unbalancing (flighter swarms, scouts etc) (in the first two options the CM can just not choose the "unbalanced options).
I wrote the current tool targeted at the first option.
I am going to post a poll asking people what they want to see.
Thanks
Mike
- andstrauss
- Lieutenant
- Posts: 46
- Joined: Tue Nov 06, 2007 4:39 pm
- Location: São Paulo, SP, Brazil
- Contact:
-
- Captain
- Posts: 242
- Joined: Wed Oct 10, 2007 11:39 am
- Location: Exeter; UK
Off the top of my head:
- Target a specific ship
Target a specific class of ships (broadsword class destroyers, etc)
Target a specific size-class (frigates, destroyers, carriers, etc)
Target a broad class of ships (escorts, cruisers, battleships, carriers, etc)
Fighter Defence
Target a specific squadron
Cripple ships (ignore crippled ships in favour of crippling more ships)
Take damage to escorts/cruisers/battleships/carriers/civilian ships first
When taking damage destroying ships takes priority over crippling more ships
When taking damage cripple ships takes priority over destroying ships
Gareth Lazelle
- andstrauss
- Lieutenant
- Posts: 46
- Joined: Tue Nov 06, 2007 4:39 pm
- Location: São Paulo, SP, Brazil
- Contact:
I meant tactic choices.
I'm very, very new at VBAM combat. So I don't know what are basic/classic maneuvers.
Specific targeting needs a lot of input of the players, or maybe a inverse value usage. But that's cheating, because in a real game you would not know the value. But I think that carrier/supply/scout/flagships may be common choices of preference target.
Mines, mines...I'll use them sooner or later.
What about bases? How do I use them in the current system?
Cheers,
I'm very, very new at VBAM combat. So I don't know what are basic/classic maneuvers.
Specific targeting needs a lot of input of the players, or maybe a inverse value usage. But that's cheating, because in a real game you would not know the value. But I think that carrier/supply/scout/flagships may be common choices of preference target.
Mines, mines...I'll use them sooner or later.
What about bases? How do I use them in the current system?
Cheers,
Would the following be a valid/usable implementation?Gareth_Perkins wrote:Off the top of my head:
- Target a specific ship
Target a specific class of ships (broadsword class destroyers, etc)
Target a specific size-class (frigates, destroyers, carriers, etc)
Target a broad class of ships (escorts, cruisers, battleships, carriers, etc)
Fighter Defence
Target a specific squadron
Cripple ships (ignore crippled ships in favour of crippling more ships)
Take damage to escorts/cruisers/battleships/carriers/civilian ships first
When taking damage destroying ships takes priority over crippling more ships
When taking damage cripple ships takes priority over destroying ships
To handle the Target (ship, class)
Each ship class would have an defender value and attack value (what it is worth to each side, defender to keep, attacker to destroy) Individual ships could over ride this..
To handle Target size/ broad classification:
with one "instruction" user can raise/lower attack and or defender value for any number of ship classes.. ie.. if FED_CA, FED_DD are classes, something like
ADJ_VALUE, ATT_VAL=+4, FED_CA:FED_DD
would add 4 to the attacker value of all FED_CAD, FED_DD, (ie attacker is going to focus on these..)
to handle cripple vs destroy..
for each side enter percent modifier to the attack and defend value when a ship is damaged.. so
if the defender want to cripple more ships the modifier would be positive (crippled ships are worth more, ie take damage later)
if the attack wants to cripple more ships the modifier would be negative(cripple ship would worth less to kill)
if the defend wants to take the damage in cripples modifier would be negative
if the attacker wants to damage the cripples modifier would positive.
each side would give 2 values (one when they are the attack and one for when they are the defender)
Logic for assigning damage within a squadron
Attacker finds the ship with the highest ratio of attacker value to number of hits to cripple or destroy (if all ready crippled) that the delivered damage can hit. (ie if a CA has attacker value of 10 and an effective DV of 5, and a DD has an attacker value of 5 and an effective DV of 2), the DD will be the possible directed damage target. Now defender select the ship with the lowest ratio of defender value to DV. If the attacker ratio is greater than defender ratio, attacker ship is damaged via directed damage, other wise defender 's ship is damaged (non directed)
target Squadron X:
add a definition line for squadrons
optional argument for target to squadron line
Fighter defence:
each side has a ratio of number of flights to keep on defense.. ie a ratio of 100 means that for every fighter the enemy has, the defender keeps 1.. and the excess are assigned to offensive action..
each side has a minimum percentage to make an attack ..
example
side a has 15 flights and side b has 25
(note side a has better fighters)
side A sets defense ratio at 50% Att Min 30%
means defense = 50% of side b or 12
min attack size is 30% of side a or 4
that means A can not attack this round. (it has 3 over the defense limit but that does not make a big enough attack wing..)
side B sets 70% defense and att min 30%
side B will defend with 10 flights and attack with 15 flights
flights will sorted by ratio of AF vs AS so high AF/ low AS flights will be assigned to defense first.
Mike
- andstrauss
- Lieutenant
- Posts: 46
- Joined: Tue Nov 06, 2007 4:39 pm
- Location: São Paulo, SP, Brazil
- Contact:
-
- Captain
- Posts: 242
- Joined: Wed Oct 10, 2007 11:39 am
- Location: Exeter; UK
Possibly,mriddle wrote: Would the following be a valid/usable implementation?
To handle the Target (ship, class)
Each ship class would have an defender value and attack value (what it is worth to each side, defender to keep, attacker to destroy) Individual ships could over ride this..
To handle Target size/ broad classification:
with one "instruction" user can raise/lower attack and or defender value for any number of ship classes.. ie.. if FED_CA, FED_DD are classes, something like
ADJ_VALUE, ATT_VAL=+4, FED_CA:FED_DD
would add 4 to the attacker value of all FED_CAD, FED_DD, (ie attacker is going to focus on these..)
I'm wondering if perhaps you need to think in terms of 'default' value scores,
If you assigned escorts value 1, cruisers value 2, battleships value 3, carriers value 4 and civilian ships value 5, (you could set these up in the header for each side, or simply code the values in and make them over-ridable, but ideally with a similar spread of values),
Then a specific assignment could have specific effects:
For Directed Damage (what ships I want to hurt):
Target Ship: +6 value to ship only
Target Class: +2 value to each ship in the target class
Target Hull Class: +2 value to entire hull class
Target Broad Class: +1 value to each ship in the broad class
Target Squadron: +1 value to each ship in the squadron
Target Cripples: +3 value to cripples
Target Undamaged Ships: -3 value to cripples
For General Damage (How much I value my ships):
Defend Ship: -6 value to ship only
etc...
(the numbers are off-the-top-of-my-head, and may need tweaking)
And just calculate the specific values when the program begins processing. You could even use it for squadron assignments (sum the squadrons value to get a total value for comparative purposes),
Of course, some values might change on the fly (like the crippled ship effects), but this sort of mechanism might be simpler than your suggestion of entering in values for each ship individually for both the attacker and defender,
Gareth Lazelle
If I add default values per ship categories I still need to link a given ship class to a ship category, so I think values need to put on ship classes.. but I now see (I think) what you are saying is to separate the targeting instruction from the target definition itself.
so Example time.. (ignoring flights for the moment..
define the ship types/classes
SHIP_TYPE, SORYU, DV=7,AS=0,AF=2,VAL=8
SHIP_TYPE, EXETER, DV=3,AS=4,AF=0,VAL=4
SHIP_TYPE, KDD,DV=3,AS=3,AF=1,VAL=4
SHIP_TYPE, KCA,DV=6,AS=6,AF=2,VAL=8
SHIP_TYPE, KBC, DV=8,AS=10,AF=3,VAL=10
define the ships
<tag><side><squadron><name>, <type>, [mods]
SHIP, CONFED, CV1.1, EX 1, EXETER
SHIP, CONFED, CV1.1, EX 2, EXETER
SHIP, CONFED, CV1.1, EX 3, EXETER
SHIP, CONFED, CV1.1, EX 4, EXETER
SHIP, CONFED, CV1.1, CVL 1, SORYU, DV=+1
SHIP, CONFED, CV1.2, EX 21, EXETER
SHIP, CONFED, CV1.2, EX 22, EXETER,
SHIP, CONFED, CV1.2, EX 23, EXETER
SHIP, CONFED, CV1.2, EX 24, EXETER
SHIP, CONFED, CV1.2, CVL 2, SORYU
SHIP, KITTIES, BC1.1, DD 1, KDD
SHIP, KITTIES, BC1.1, DD 2, KDD
SHIP, KITTIES, BC1.1, DD 3, KDD
SHIP, KITTIES, BC1.1, CA 1, KCA
SHIP, KITTIES, BC1.1, BC 1, KBC
SHIP, KITTIES, BC1.2, DD 21, KDD
SHIP, KITTIES, BC1.2, DD 21, KDD
SHIP, KITTIES, BC1.2, DD 21, KDD,CRIPPLED, DAM=1
SHIP, KITTIES, BC1.2, CA 21, KCA
#tactics .
<Tag><side><Tactic Type><target info/argument>
Target_SHIP_TYPE by default would add +4
Crippled/non crippled is +3
TACTIC, CONFED, TARGET_SHIP_TYPE, KBC, VAL+=8
TACTIC, CONFED, TARGET_SHIP_TYPE, KCA
TACTIC, KITTIES, TARGET_SQUAD, CV1.1
TACTIC, KITTIES, TARGET_CRIPPLES
TACTIC, KITTIES, DEFEND_CRIPPLES
TACTIC, CONFED, TARGET_UNDAMAGED
so when CONFED is attacking the undamaged BC has a value of 21 (10+8+3) and the undamaged CA 15(8+4+3)
Mike.
so Example time.. (ignoring flights for the moment..
define the ship types/classes
SHIP_TYPE, SORYU, DV=7,AS=0,AF=2,VAL=8
SHIP_TYPE, EXETER, DV=3,AS=4,AF=0,VAL=4
SHIP_TYPE, KDD,DV=3,AS=3,AF=1,VAL=4
SHIP_TYPE, KCA,DV=6,AS=6,AF=2,VAL=8
SHIP_TYPE, KBC, DV=8,AS=10,AF=3,VAL=10
define the ships
<tag><side><squadron><name>, <type>, [mods]
SHIP, CONFED, CV1.1, EX 1, EXETER
SHIP, CONFED, CV1.1, EX 2, EXETER
SHIP, CONFED, CV1.1, EX 3, EXETER
SHIP, CONFED, CV1.1, EX 4, EXETER
SHIP, CONFED, CV1.1, CVL 1, SORYU, DV=+1
SHIP, CONFED, CV1.2, EX 21, EXETER
SHIP, CONFED, CV1.2, EX 22, EXETER,
SHIP, CONFED, CV1.2, EX 23, EXETER
SHIP, CONFED, CV1.2, EX 24, EXETER
SHIP, CONFED, CV1.2, CVL 2, SORYU
SHIP, KITTIES, BC1.1, DD 1, KDD
SHIP, KITTIES, BC1.1, DD 2, KDD
SHIP, KITTIES, BC1.1, DD 3, KDD
SHIP, KITTIES, BC1.1, CA 1, KCA
SHIP, KITTIES, BC1.1, BC 1, KBC
SHIP, KITTIES, BC1.2, DD 21, KDD
SHIP, KITTIES, BC1.2, DD 21, KDD
SHIP, KITTIES, BC1.2, DD 21, KDD,CRIPPLED, DAM=1
SHIP, KITTIES, BC1.2, CA 21, KCA
#tactics .
<Tag><side><Tactic Type><target info/argument>
Target_SHIP_TYPE by default would add +4
Crippled/non crippled is +3
TACTIC, CONFED, TARGET_SHIP_TYPE, KBC, VAL+=8
TACTIC, CONFED, TARGET_SHIP_TYPE, KCA
TACTIC, KITTIES, TARGET_SQUAD, CV1.1
TACTIC, KITTIES, TARGET_CRIPPLES
TACTIC, KITTIES, DEFEND_CRIPPLES
TACTIC, CONFED, TARGET_UNDAMAGED
so when CONFED is attacking the undamaged BC has a value of 21 (10+8+3) and the undamaged CA 15(8+4+3)
Mike.
Personally, I like the idea that you type all the information into the program and it just runs through the entire battle. The reason I like this is that, in the chaos of battle, things just don't go the way you want it.
You can tell your squadrons what they 'should' be targeting as a commander, but once the battle is joined, your ships take any shot that you can get.
In that respects, I like that the commander can assign values to what they want squadrons to attack, but in the end, it's all random what happens as a final result.
I really enjoyed the battle simulator for "Fire on the Suns" for that reason.
-Bren
You can tell your squadrons what they 'should' be targeting as a commander, but once the battle is joined, your ships take any shot that you can get.
In that respects, I like that the commander can assign values to what they want squadrons to attack, but in the end, it's all random what happens as a final result.
I really enjoyed the battle simulator for "Fire on the Suns" for that reason.
-Bren
I hope that is what is going to happen from the squadron point of view..jygro wrote:Personally, I like the idea that you type all the information into the program and it just runs through the entire battle. The reason I like this is that, in the chaos of battle, things just don't go the way you want it.
You can tell your squadrons what they 'should' be targeting as a commander, but once the battle is joined, your ships take any shot that you can get.
In that respects, I like that the commander can assign values to what they want squadrons to attack, but in the end, it's all random what happens as a final result.
I really enjoyed the battle simulator for "Fire on the Suns" for that reason.
-Bren
The program will total the "value" of the ships in each squadron and then each round assign targets randomly weighted (ie if one squadron has a value of 20 and one 10, the first is gets targeted 2 out of three times). Each squadron will roll individually for targets. So over the course of the battle the "targeted stuff" will be attacked more, but not exclusively.. (ie we will hopefully avoid the "pile everything on one squadron" because I agree that that seems unrealistic (odd word in a Sci Fi game))
Mike
- mwaschak
- Rear Admiral
- Posts: 854
- Joined: Thu Oct 04, 2007 3:43 am
- Location: The data mines of VBAM
- Contact:
Re: Updated
Thank you Mike! I think you are going to save us a lot of time.mriddle wrote:Tool updated, Target by Squadron was not working.
Tool updated again.. (just cosmetic changes..)
per Garth's request...
Breaks in output between each turn and between each squadron
It is slightly easier for me in one text box, but it has been suggested to split into 3. One for each side and 1 for the battle settings..
Would it be easier for the user with 3 boxes ? If so I will change it
Mike
per Garth's request...
Breaks in output between each turn and between each squadron
It is slightly easier for me in one text box, but it has been suggested to split into 3. One for each side and 1 for the battle settings..
Would it be easier for the user with 3 boxes ? If so I will change it
Mike