Elements the Game Forum - Free Online Fantasy Card Game
Elements the Game => General Discussion => Topic started by: jmdt on February 28, 2011, 11:22:21 pm
-
So I had an idea to make a program to optimally build a deck. Its easy to give it a set of cards and have it distribute pillars/pends. My next though was what if it could optimally find the balance of cards and pillars and essentially generate a deck based on a rush and or stall index given to a card. basically, you tell the program what cards you want to use and the type of deck you want and it finds the optimum number of each card and pillars. You'd give it a desired rush and or stall index and QI and it outputs a deck.
With that line of thinking, a rush index and stall index would have to be assigned to each card for a means of mathematically selecting between cards. So the question is, how we go about assigning a rush or stall index to cards. i.e. how would a Jade dragon relate to a frog mathematically.
-
It would be complex because you'd have to program in element synergy and such as well otherwise it could toss out a lycan with a vampire with a frog and give you like different pillars. Programming that aspect alone sounds like a big headache.
-
It would be complex because you'd have to program in element synergy and such as well otherwise it could toss out a lycan with a vampire with a frog and give you like different pillars. Programming that aspect alone sounds like a big headache.
Headache: yes
Big deal: no
If you're motivated enough, you can code the most complex program in a matter of weeks.
-
Well you'd have to make some limitations on what it can do for the sake of time. For example, it can work pretty easy for monos and duos the way pendulums work, but past that it would become a nightmare to program; trios 'Might' be possible if I felt like taking the time. I was planning on sticking to monos and duos for this exercise.
Ultimately, we need to find a way to 'value' cards to make it work.
-
Some factors:
- Damage:Quanta ratio is always something you can look at as a factor for rush index
- OldTrees's resilience study
- ratcharmer's stall study
So a frog would outclass the dragon in D:Q, but the dragon would win out in resilience.
-
Some factors:
- Damage:Quanta ratio is always something you can look at as a factor for rush index
- OldTrees's resilience study
- ratcharmer's stall study
So a frog would outclass the dragon in D:Q, but the dragon would win out in resilience.
Exactly my line of thinking, I'm trying to figure out a way to combine damage, speed and resiliency into 1 'smart' number for each card. I may be asking to much, and need several variables for each card, but we'll see what the more design oriented oriented folk have to say.
Ideally, I should select that 2-3 cards for a popular rush and desired QI and it come out exactly the same build (or close) to the accepted build.
-
Damage:Quanta+c [c=1-3 probably 3] would be a better ratio to represent the cost of drawing.
My resilience study will, with more input, be useful to determine relative and average lifespans of card effects.
Cards with higher (Effect x Resilience) over the relevant frame of reference [5-10turns for rush, 20+ for stall] will tend to be more effective subject of course to what the effect in question is.
I will be working on measuring the value of Effect x Resilience in the Design Theory section. I would love it if a more gameplay experienced player joined the project.
-
You deck helpers are awesome and whatnot, but I feel this is a little over the top. A program capable of building good decks? What would be next, one capable of playing them optimally? When humans are not needed anymore, what is the point for them to even
exist play?
This is awesome as a programming challenge, but IMO it is neither necessary nor more useful than a couple of test games against the AI. We all know you are very capable of doing it, but the question is: to what purpose?
Not that I am mad at you or anything, but this is what I think about the idea (I know it sounds like ranting, sorry for that).
-
@Falcon4415
Well the theory behind such a program would be useful in balancing the game.
The actual program could be useful at verifying the model.
-
Some factors:
- Damage:Quanta ratio is always something you can look at as a factor for rush index
- OldTrees's resilience study
- ratcharmer's stall study
So a frog would outclass the dragon in D:Q, but the dragon would win out in resilience.
Exactly my line of thinking, I'm trying to figure out a way to combine damage, speed and resiliency into 1 'smart' number for each card. I may be asking to much, and need several variables for each card, but we'll see what the more design oriented oriented folk have to say.
Ideally, I should select that 2-3 cards for a popular rush and desired QI and it come out exactly the same build (or close) to the accepted build.
I think each card should have more than 1 number. And that different numbers should be combined differently to make a Rush or a Stall.
Also, the amount of cards could be decided by the program, but I recommend that you can input a min/max(6) to it, it may simplify things.
You deck helpers are awesome and whatnot, but I feel this is a little over the top. A program capable of building good decks? What would be next, one capable of playing them optimally? When humans are not needed anymore, what is the point for them to even exist play?
Well, I don't think our understanding of the game/complex maths can be enough for that to happen after every update. This would be just a program capable of building a skeleton for a deck, or a mediocre/mid-range deck. I guess it would turn into another deckbuilding tool, and nothing else woops, as OT said, balance can be an use too.
As I see it, there are lots of index's going around and just starting to grow, and I think this should wait until some of them are ready-ish to be effective.
-
You deck helpers are awesome and whatnot, but I feel this is a little over the top. A program capable of building good decks? What would be next, one capable of playing them optimally? When humans are not needed anymore, what is the point for them to even exist play?
This is awesome as a programming challenge, but IMO it is neither necessary nor more useful than a couple of test games against the AI. We all know you are very capable of doing it, but the question is: to what purpose?
Not that I am mad at you or anything, but this is what I think about the idea (I know it sounds like ranting, sorry for that).
As I have said before, elements is all math. Once you understand the math you are one step ahead in card design, deck building, and even PvP. I started the ttw thread to mathematically calculate the speed differences under load of various decks as an attemp to better understand what makes deck faster to help in building increasingly faster decks..
I use a lot of complex math in my spreadsheet to build some of my decks. This thread is more of extention of my own curiosity on how my spreadsheet could be made into a program to automatically figure this out without me having to take the time to manually interpret the data and test. The program could help new players learn deck design by showing the optimal way to build a deck. I rarely use the spreadsheet anymore as I don't need to, but it could be a helpful tool IF I can make it work.
-
I once tried to quantify every single creature in the game to figure out what was worth playing and what wasn't. Here are my results, though they are a little dated. I haven't followed up much because no-one showed any interest at the time beyond a few scattered posts. Perhaps it can give you a ground for starting your own creature comparisons.
http://elementscommunity.org/forum/index.php/topic,6386.msg73038#msg73038
-
I might have gone a little too far with my thoughts, so I apologize for that. However, reducing the game to pure math is something I expect not to see (I wonder if this game, as chess, has too many possibilities for a computer to handle). Instead, I guess that having an incomplete, not 100% accurate theory about proper deckbuilding could be good (thinking about QI right now). I am willing to see whatever this turns into, be it for good or not.
-
Huh, I'd actually sort of toyed with the idea of a "deck-building algorithm" as well (not that I have the skills to execute something like that). Although I was thinking I'd do it with synergy tables rather than some sort of measure of a cards worth.
More along the lines of "build a random deck based on this card" than "build an ideal deck of this type"
I'm not sure if you can make any sort of truly universal statements about which cards are best for what . . . but perhaps a broader categorical classification could work? Just sort of "strong" "moderate" and "weak" ratings in the categories of "rush" and "stall".
-
More along the lines of "build a random deck based on this card" than "build an ideal deck of this type"
Done!
http://jumpoffduck.co.cc/elements/randdeck.htm (http://jumpoffduck.co.cc/elements/randdeck.htm)
Guaranteed to make you the most pwny* deck ever!
*"pwny" is highly subjective. Generated deck may not actually be pwny depending on the observer. Batteries not included.
-
More along the lines of "build a random deck based on this card" than "build an ideal deck of this type"
Done!
http://jumpoffduck.co.cc/elements/randdeck.htm (http://jumpoffduck.co.cc/elements/randdeck.htm)
Guaranteed to make you the most pwny* deck ever!
*"pwny" is highly subjective. Generated deck may not actually be pwny depending on the observer. Batteries not included.
I lol'ed
Look at this totally epic deck!
7ah 7ah 7ah 7ah 7ah 7ah 52k 58p 620 4sm 52u 7qd 7h1 592 58v 5l8 7k5 5rp 715 5lj 5fb 7ao 7n0 5ig 80a 61u 4vf 74o 7ai 7tc 5uo 80i 7qa 7h8 59c
-
^^
hm... looks epic
has protection and CC in nymphs, spells, and shields
pulvy provides the PC
damage comes from the ever-growing spectres and poison from scorpions that ignore shields
epic indeed
though it has a slight quanta problem...
perhaps add in one or two quantum towers
-
If you want to rank the creature with the variable lets say: cost/attack/ability, there is a way in mathematica to do that. It is called multicritiria analysis. You have an objective function which is the rank of this creature. You want this to be max. You have to decide how you rank its parameter, for example 35%cost, 35% abilities, 30% attack, and then you will decide the equation to calculate its parameter. For example the attack between 0-10 will be evaluated with more points then between 11-20 and so on. Like the damage of catapult which is given from the equation (75 * HP) / (75 + HP). With the same way you will rank every parameter. Finally you will find the creatures that maximize the started equation with the parameter 35%cost, 35% abilities, 30% attack lets say...
Of course this is subjective. The % you will give in its parameter is your opinion and will depend from the deck you are constructing. So this will be your rank for those creatures. Someone else would rank the creatures with different way. So in the equations you will use there is a fuzzy parameter. This would input fuzzy logic in your problem. Fuzzy logic is the mathematical way to solve subjective problems.
But in fact the human brain works with fuzzy way. (In math if someone is 1,79m is medium height and if he is 1,80 is height. Of course this is not correct. The mind understands this better than classic math.) It has nothing to do with the 0/1 way that works computer and classic math. So it is better with your brain to rank witch creatures are better than with multicritiria analysis, and of course the use of fuzzy logic is something difficult to find the exact number of fuzziness in your problem.
I think that the best someone can do is to make a program that calculates the pillars/towers a deck must have with standard cards. This is the real problem. If you make this program you have solve the problem.
-
If this could work, then neither MtG nor Elements nor all the other CCGs would exist anymore.
-
If this could work, then neither MtG nor Elements nor all the other CCGs would exist anymore.
Depends on the depth of a solution that it creates.
A Tic Tac Toe level of analysis (ie solved) would not be played. However ETG and other CCGs have sufficient variable to prevent this.
A Chess level of analysis would be played.
TTW/opening studies, tournaments, PvE ...
Chess seems like a decent model for the level of analysis possible.
-
So I was thinking about this a bit more.
At least for vanilla creatures, I think we could narrow things down to three variables:
Damage/quanta ratio, Damage/card ratio and how long a creature tends to survive (Oldtrees' study).
Now for a pure rush deck Damage/quanta is the most important consideration, followed by damage/card ratio (In the beginning of the game you have 7-8 cards so early on card usage is less important). Rush decks count on winning fast enough that survival time doesn't come into play very much.
In a stall deck damage/quanta ratio falls in importance since a longer game generally means there is more quanta available. Meanwhile card usage gains importance (late game -> 1 card/turn and you need to devote many cards to defense) as does survivability (game is longer so you need your creatures to last).
That being said, I still have no idea how to evaluate creature abilities, except where they influence survivability.
This does make a couple interesting predictions that concur with what I've seen as far as deck-making though:
-Dragons are generally the best vanilla creatures to use as a damage source in stall decks (GREAT damage/card ratio, good hp)
-In rush decks low-cost mid hitters are preferable due to their damage/cost ratios
-This also in part explains why graviton merc doesn't get much use. His survivability is good, but damage/cost and damage/card are both bad. Hence he doesn't work very well for stall OR rush.
-
Perhaps first you would find "neutral" cards that would work in both decs and make those 0. then cards that does work in both but tends to be better in one or the other, (if stall is negative and rush is positive) you would assign a +1/-1 to wards the direction it works. next cards that depend on other cards to work in their respective deck. They would get a +2/-2. Then cards that need to be in one or the other would get a +3/-3. Then Cards that rule such genders would get a +4/-4 Then combos that work well in a gender would get a +5/-5 And finally cards that don't fit in either would be removed from the program.
Then you just add your card/combo to the program and ask for the highest value to wards the gender you choose.
Not sure this would work, But it is how I would approach it.
I'm sure its not just this simple just because of the complexity elements has. But it would be my first attempt.
-
Here's my thoughts on how we could put together a deck building program that wouldn't be too impossibly complex, but could still yield decks that are at least passable:
--------------------------------------------------------------------------------------------------------------------
Step 1:
Condense each card down to two numbers, one for how good it is in short games, one for how good it is in long games. (rush index vs. stall index)
Then, give each card a set of synergy numbers, for how good it is in combination with each other card. (more on this later)
Step 2:
Either a human "feeds" the program one or more cards, or it picks a starting card at random.
Step 3:
The program then picks the next card based on three criteria:
-The rush & stall index. More weight would be given to one versus the other depending on the total rush and stall index of the deck so far. (i.e. the more rush cards in the deck, the more likely it is to pick another rush card)
-The synergy tables. Basically each card would give a bonus to the chance of picking cards that work well in conjunction with it, and a penalty to cards that work poorly with it. (i.e. the program is more likely to pick discord if you already have black hole, but less likely to pick sanctuary if you already have dissipation shield)
-Any card that would require the addition of a new type of quanta to the deck would be given a penalty. This penalty would increase based on how many elements are already in the deck.
These three things would be evaluated together to determine the % chance of picking any given card.
Step 4:
The program then evaluates the QI of the deck to determine how many pillars/towers/pendulums the deck currently needs.
Step 5:
Repeat steps 3 & 4 until the deck contains 30 or more cards.
--------------------------------------------------------------------------------------------------------------------
The decks produced wouldn't be perfect by any means, and there'd be several other flaws (it would never make a rainbow unless one of the starting cards was nova or a quantum tower or cremation, cremation would ALWAYS give a rainbow), but it should yield at least a semi-cohesive deck.
-
Some factors:
- Damage:Quanta ratio is always something you can look at as a factor for rush index
- OldTrees's resilience study
- ratcharmer's stall study
So a frog would outclass the dragon in D:Q, but the dragon would win out in resilience.
Can someone provide the links for the resilience and stall studies ?
-
Some factors:
- Damage:Quanta ratio is always something you can look at as a factor for rush index
- OldTrees's resilience study
- ratcharmer's stall study
So a frog would outclass the dragon in D:Q, but the dragon would win out in resilience.
Can someone provide the links for the resilience and stall studies ?
Stall rating study:
http://elementscommunity.org/forum/index.php/topic,21568.0.html
Resilience Study:
http://elementscommunity.org/forum/index.php/topic,21809.0.html
Either (or both) study would love to have any help anyone can offer.
blarg: