Question: Why is it that most of the card text appears to be perfectly legible, and often even syntactically correct, yet the names seem to be made up almost entirely by random mish-mashes of nonsense syllables?
Private Mod Note
():
Rollback Post to RevisionRollBack
My Moderator Helpdesk
Currently Playing:
Legacy: Something U/W Controlish EDH Cube
Hypercube! A New EDH Deck Every Week(ish)!
Unlike keywords, types, and text a card's names rarely/never repeats.
The NN can't establish a pattern. The names that make sense will be parts of common card names (blood, war, fire, etc). Of course it should pick up english spacing and syllables .
I could see some of the later ones like Legan of Echince being printable (minus the flying maybe). I wonder if it gets better learning about the color wheel. Again as suggested, perhaps only newer modern sets would help. I personally want the Anaboth Cubblue land that creates 4/4 Angels instead.
Great job, this is hillariously awesome.
Question: Why is it that most of the card text appears to be perfectly legible, and often even syntactically correct, yet the names seem to be made up almost entirely by random mish-mashes of nonsense syllables?
Good question. That's because Magic English is very precise and well-defined and is used repeatedly in all of the cards. The network learns that there are very specific ways to use words like "creature", "draw", and "card". Card names, on the other hand, don't really work like that. There are virtually no guaranteed rules when it comes to how names should be written, other than general trends like "X-ing Y-r" or "[Something] of [Place Name]" or "[Person]'s [Something]". So the rule it learns is "fill in the space for the name with some random combination of syllables".
EDIT: By the way, I should mention that in the bodies of cards, for the ease of training, it outputs the word $THIS instead of the card name. I realized that the network had a habit of forgetting what it named a card about halfway through the card body.
Also, I'll warn you that I had to reorganize the data to allow for effective training. The cards in json format have most of the important information occurring at the end of the record. In my first experiment, I realized that the network interpreted the data to mean that the text in the body of the card determined the type, mana cost, and name, instead of the other way around.
Inaader Cyclion 4B
Creature Creature - Spirit G, sacrifice a creature: You gain life equal to its converted mana cost 4 or less from your graveyard to your hand.
2/2
Pirefila Shield 1B
Creature - Elgren
Haste
When Pirefila Shield leaves the battlefield, sacrifice it and each opponent discards a card.
1/1
Slethward Bestroh 2
Artifact W: Return target creature card from your graveyard to your hand.
Anaboth Cubblue 3
Artifact 2,T: Target land becomes a 4/4 white Spirit creature with flying until end of turn.
Rakile Volan B
Creature - Human Knight
Whenever Rakile Volan blocks or becomes blocked, you may pay 1B. If you do, you gain 2 life.
1/1
These are actually getting somewhere...
Private Mod Note
():
Rollback Post to RevisionRollBack
Known as Inanimate at Goblin Artisans, and TyrRev at /r/custommagic!
Lead Tesla, a community set designed by everyone and led by me, over at Goblin Artisans. Index of articles here!
Also, I'll warn you that I had to reorganize the data to allow for effective training. The cards in json format have most of the important information occurring at the end of the record. In my first experiment, I realized that the network interpreted the data to mean that the text in the body of the card determined the type, mana cost, and name, instead of the other way around.
How did you reorganize the json file?
For the network that's producing the output you see, I extracted all but the information I was interested in seeing it generate, and, using a Python script, I put it into a format that was easier for me to read as raw text. The cards it learns from look like this:
S|| Creature Cat Wizard | {3}{W} | 2/3 | {T}: Target creature gets +1/+1 until end of turn.
Whenever you cast a spell, you may untap $THIS. | Leonin Battlemage ||E
For the network that's producing the output you see, I extracted all but the information I was interested in seeing it generate, and, using a Python script, I put it into a format that was easier for me to read as raw text. The cards it learns from look like this:
S|| Creature Cat Wizard | {3}{W} | 2/3 | {T}: Target creature gets +1/+1 until end of turn.
Whenever you cast a spell, you may untap $THIS. | Leonin Battlemage ||E
Did you use a script to parse the JSON data into that format?
Private Mod Note
():
Rollback Post to RevisionRollBack
My Moderator Helpdesk
Currently Playing:
Legacy: Something U/W Controlish EDH Cube
Hypercube! A New EDH Deck Every Week(ish)!
For the network that's producing the output you see, I extracted all but the information I was interested in seeing it generate, and, using a Python script, I put it into a format that was easier for me to read as raw text. The cards it learns from look like this:
S|| Creature Cat Wizard | {3}{W} | 2/3 | {T}: Target creature gets +1/+1 until end of turn.
Whenever you cast a spell, you may untap $THIS. | Leonin Battlemage ||E
Did you use a script to parse the JSON data into that format?
Yes, I wrote my own little script for that in Python.
I'm still trying to figure out what happens when you prevent an end step. Do you skip it? Does the game just stall there forever?
Think of it like casting Time Stop or activating Sundial of the Infinite during the 2nd Main Phase. You just go directly to the Cleanup Step, and completely bypass the End Step.
Do you mind sharing your methods and scripts for those of us who want to experiment at home?
Sure, not a problem! It might be a bit before I do (need to collect all the code I used, document it for ease of use, etc.), but I could certainly do that.
This is the greatest thing I've seen in a long time. Please, give us more of your AI's concoctions!
Also, you should write an article about this for one of the Magic websites. They'd pick it up, these are awesome. I also like Roon War Medoma and Arnoftuee!
I wonder what happens if you cannot think of a card to name when Roon War Medoma resolves?
I'm still trying to figure out what happens when you prevent an end step. Do you skip it? Does the game just stall there forever?
Think of it like casting Time Stop or activating Sundial of the Infinite during the 2nd Main Phase. You just go directly to the Cleanup Step, and completely bypass the End Step.
Yeah, I think it would work in a similar manner, but not exactly the same. Effects that last "Until end of turn" will still end, but triggers at the beginning of of the end step will never hit the stack...
Can we just delete this entire forum and only have this thread? This is amazing.
Khrat Sellglade looks interesting as well . . . to clean it up a bit:
Khrat Sellglade 2WW
Creature - Human Knight
Vigilance
At the beginning of your upkeep, you may reveal the top card of your library until you reveal a creature card, then put all cards revealed this way on the bottom of your library in any order.
3/3
It lessens the chances of drawing a creature card - or if it's the only creature you run it can allow you to rearrange your entire library? I don't know still seems interesting.
My favorite thing about all this is we can speculate and try to come up with cards based on what the computer is trying to do.
Sort of like Modern computer chess instead of just playing against the computer we can use the computer alongside the designers own skill to make new interesting cards.
Private Mod Note
():
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
These are amazing.
Remaking Magic - A Podcast for those that love MTG and Game Design
The Dungeon Master's Guide - A Podcast for those that love RPGs and Game Design
Sig-Heroes of the Plane
Question: Why is it that most of the card text appears to be perfectly legible, and often even syntactically correct, yet the names seem to be made up almost entirely by random mish-mashes of nonsense syllables?
Currently Playing:
Legacy: Something U/W Controlish
EDH Cube
Hypercube! A New EDH Deck Every Week(ish)!
The NN can't establish a pattern. The names that make sense will be parts of common card names (blood, war, fire, etc). Of course it should pick up english spacing and syllables .
Great job, this is hillariously awesome.
Good question. That's because Magic English is very precise and well-defined and is used repeatedly in all of the cards. The network learns that there are very specific ways to use words like "creature", "draw", and "card". Card names, on the other hand, don't really work like that. There are virtually no guaranteed rules when it comes to how names should be written, other than general trends like "X-ing Y-r" or "[Something] of [Place Name]" or "[Person]'s [Something]". So the rule it learns is "fill in the space for the name with some random combination of syllables".
EDIT: By the way, I should mention that in the bodies of cards, for the ease of training, it outputs the word $THIS instead of the card name. I realized that the network had a habit of forgetting what it named a card about halfway through the card body.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
There's a way to Johnny this card. I know there is.
How did you reorganize the json file?
Handso, the Man of Fate!
So close to being an interesting card...
These are actually getting somewhere...
Lead Tesla, a community set designed by everyone and led by me, over at Goblin Artisans. Index of articles here!
For the network that's producing the output you see, I extracted all but the information I was interested in seeing it generate, and, using a Python script, I put it into a format that was easier for me to read as raw text. The cards it learns from look like this:
S|| Creature Cat Wizard | {3}{W} | 2/3 | {T}: Target creature gets +1/+1 until end of turn.
Whenever you cast a spell, you may untap $THIS. | Leonin Battlemage ||E
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Spend this mana only to cast cards named Empyrial Archangel. Angel's Snack.
Did you use a script to parse the JSON data into that format?
Currently Playing:
Legacy: Something U/W Controlish
EDH Cube
Hypercube! A New EDH Deck Every Week(ish)!
Yes, I wrote my own little script for that in Python.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Do you mind sharing your methods and scripts for those of us who want to experiment at home?
Currently Playing:
Legacy: Something U/W Controlish
EDH Cube
Hypercube! A New EDH Deck Every Week(ish)!
Think of it like casting Time Stop or activating Sundial of the Infinite during the 2nd Main Phase. You just go directly to the Cleanup Step, and completely bypass the End Step.
Sure, not a problem! It might be a bit before I do (need to collect all the code I used, document it for ease of use, etc.), but I could certainly do that.
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Not gonna lie. I just snorted coffee at this. Like... yay, you named a card! Have a cookie.
Also, you should write an article about this for one of the Magic websites. They'd pick it up, these are awesome. I also like Roon War Medoma and Arnoftuee!
I wonder what happens if you cannot think of a card to name when Roon War Medoma resolves?
Yeah, that looks like an Un-set card that's self aware about how weak lifegain is. It's also much more interesting as an instant
Yeah, I think it would work in a similar manner, but not exactly the same. Effects that last "Until end of turn" will still end, but triggers at the beginning of of the end step will never hit the stack...
This card is neat, and actually kind of makes sense as something that could exist! Pretty cool.
I'd be all over that card!
Sir, I do believe that's broken.
No, wait, THAT's broken! And not even Legendary! Hahaha.
Haha. I love this topic.
Yes! Oh god, my sides. This is amazing. Thank you!
My LinkedIn profile... thing (I have one of those now!).
My research team's webpage.
The mtg-rnn repo and the mtg-encode repo.
Khrat Sellglade looks interesting as well . . . to clean it up a bit:
Khrat Sellglade 2WW
Creature - Human Knight
Vigilance
At the beginning of your upkeep, you may reveal the top card of your library until you reveal a creature card, then put all cards revealed this way on the bottom of your library in any order.
3/3
It lessens the chances of drawing a creature card - or if it's the only creature you run it can allow you to rearrange your entire library? I don't know still seems interesting.
My favorite thing about all this is we can speculate and try to come up with cards based on what the computer is trying to do.
Sort of like Modern computer chess instead of just playing against the computer we can use the computer alongside the designers own skill to make new interesting cards.