I wonder if it's possible to calculate the balanced cost of parameters' increase for the card game.

Game rules:

Each player draw 7 cards at the beginning of the game and then one card each turn (player turn, opponent turn, player turn etc.). If he has more then 8 cards, he discard chosen cards to have 8 of them at hand.

Player can play 0-8 cards from hand each turn. Each card has four integer values: attack/defense/life/cost (e.g. 1/1/1/1).

After playing cards player can attack enemies' cards: he can assign any of his card to any of enemy's card (it's possible to assign more then one card to the same enemy as well as leave some cards unassigned).

The attack formula:

for each attacked enemy card (defender):
    for each attacking card (attacker):
        defender.defense = defender.defense - attacker.attack
        if(defender.defense < 0) then defender.life = defender.life - 1
    if defender.life <= 0 then defender DIES (is removed from the game)
    else defender cont-attack first of attackers (the same way, defense - attack, life check, but without contra-attack)

At the end of the turn, cards defense is restored (the life is not).

Some cards will also generate the mana each turn, for which player can pay the cards' cost. Player can generate no more then X mana each turn.

The sought cards types sequence:

The base card is 1/1/1/1. The next card type should be a1/d1/l1/2 and then a2/d2/l2/3, a3/d3/l3/4 etc. The cost of mana-generation feature of cards is not important now (do not take it into account in the cost problem).

The function:

How those a/d/l parameters should change as a function of cost to keep the game balanced? The balanced game means that higher cost card has similar impact on the game to more lower cost cards of the same summed cost. I know that at some point of the game player only draw one card per turn and even if 1/1/1/1 will be more effective then some ?/?/?/5 he will be losing with ?/?/?/5 because he won't use full mana (and his opponent will do so).

I guess there is more then one option and a, d and l are not equally useful. Would that function be an:

 function(cost) = (a,d,l)

or rather it depends on max mana generation per turn too:

 function(cost, X) = (a,d,l)

From some test games I know that the simplest solution does not work (#1: the card's effectiveness increases too dramatically with cost, #2: the opposite situation + card with cost of 5 is no more effective then card with the cost of 3):

function(cost) = (cost, cost, cost)
function(cost) = (cost, 1, 1)

I know that the problem is complicated, I appreciate two approaches:

  • determining how given factor (e.g. X) influence the function,
  • finding the solution for smaller problem (e.g. without the maximum mana per turn or with fixed life = 1 value),
  • pointing the ways of finding the solution (function's formula).
  • $\begingroup$ You probably want a function f(a,d,l)=cost - i.e. determining how much a given card should cost. Then you can work backwards. However, I suspect that you'd have more luck doing this by trial and error than mathematically - discrete problems like this can quickly become intractable. $\endgroup$ – Milo Brandt Mar 1 '15 at 0:18
  • $\begingroup$ Indeed, I could express it as f(a,d,l)=cost instead of f(cost)=(a,d,l). I have already found that establishing these values by trials and errors is extremely complicated and long processes (even if it doesn't look so). That's why I wonder if it could be calculated or estimated mathematically (or if math could help me here). $\endgroup$ – PolGraphic Mar 1 '15 at 9:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.