I'm kind of curious, do you have a fork of the project, since the version I have doesn't support the options -name, -types, etc. I've also been wondering what people have found to be the best training parameters.
No, not a fork. What I sampled from was just a private version of mine where I've tinkered with incorporating neural stacks into the architecture. The main repo can be found here (and encoding repo here), and the sampling script "sample_hs_v3.lua" supports field-specific priming like what I've shown you.
I'm trying to rebuild my card generation NN now that VirtualBox seems to be working for me again. Unfortunately, I'm running into an error when installing Torch.
I'm following the directions at http://torch.ch/docs/getting-started.html on an Ubuntu VM (the version packaged with VirtualBox). Cloning the git repo works fine, as does "cd ~/torch; bash install-deps;" When I attempt "./install.sh", however, I get this output:
Prefix set to /home/sabrecat/torch/install
No submodule mapping found in .gitmodules for path 'extra/iTorch'
Installing Lua version: LUAJIT21
CMake Error at exe/CMakeLists.txt:1 (ADD_SUBDIRECTORY):
The source directory
/home/sabrecat/torch/exe/luajit-rocks
does not contain a CMakeLists.txt file.
For better or worse, I've added RoboRosewater to http://dr4ft.com where you can Draft or Sealed vs humans or bots. Select it from the very bottom of the set dropdowns, create, then either share the URL, or Start to play vs bots.
Thanks to MaximumC for putting it all in to MSE. Currently the card arts have all been removed due to attribution concerns.
I managed to fix my problem by running through the tutorial using an Amazon EC2 instance instead of a local VM. No idea what the difference between Ubuntu environments is there, but it did the trick.
Is the tutorial at https://github.com/billzorn/mtgencode still the state of the art for card generation, or are there tweaks worth incorporating for the latest greatest output?
Hi everybody, I figured I should stick my head up again since I've started to work on more things related to this. I've been very busy, but one of my current research projects is converging towards some technology that I think will be able to improve card generation.
Is the tutorial at https://github.com/billzorn/mtgencode still the state of the art for card generation, or are there tweaks worth incorporating for the latest greatest output?
The short answer is yes, the tutorial still describes the most up to date generation process that I know of. There are a few options you might want to play around with, like the neural network size and the dropout, but that's easy to change in the commands. I don't know if Talcos or anyone else has come up with new generation techniques, but I haven't seen any issues / pull requests on github.
That said, the library is getting out of date. I haven't updated it to include the latest sets, so the encoding algorithm probably breaks with the new colorless-only mana symbol. Maplesmall has assured me this is easy to fix, and I'd like to push a major overhaul when I have some time, but I don't know when that will be.
The biggest change is that char-rnn is no longer state of the art as a character-level language model backend. There is a full rewrite of it called torch-rnn that offers significant performance improvements and greatly reduced memory usage, which should make it possible to train much large networks. I've worked extensively with the codebase, and I'm currently in the process of adding much more powerful training and sampling interfaces to my own fork. It's a terrible mess of lua and python, but once I've got it working for my research project it should be easy to come back and do some clever things to improve magic card generation, like experimenting curriculum learning and other techniques to mix up the format during training to get as much out of the limited data as we can with a larger neural net.
You could try using torch-rnn as it is right now, by following their tutorial and just substituting a card corpus encoded with mtgencode for their example data file, but I suspect you'll run into some issues with not having enough data because by default they do very silly things to split the data up into training epochs. I intend to solve those problems, and I'll be sure to update the tutorial when I do, and share any new results.
That said, the library is getting out of date. I haven't updated it to include the latest sets, so the encoding algorithm probably breaks with the new colorless-only mana symbol.
Aha! I'd wondered why so many cards from AllSets.json were rejected as invalid. That could be at least part of it!
Because things were quiet here, I bulled ahead with the existing process. I had hoped to pull off a size 768, 3 layer network, but that ran out the memory on an EC2 g2.2xlarge instance. I fell back to size 512, which worked fine. Quirks of this net (at least at temperature 0.8+) included lands with mana costs and a mysterious card type "Rander" that showed up once, ha.
The biggest change is that char-rnn is no longer state of the art as a character-level language model backend. There is a full rewrite of it called torch-rnn that offers significant performance improvements and greatly reduced memory usage, which should make it possible to train much large networks. I've worked extensively with the codebase, and I'm currently in the process of adding much more powerful training and sampling interfaces to my own fork. It's a terrible mess of lua and python, but once I've got it working for my research project it should be easy to come back and do some clever things to improve magic card generation, like experimenting curriculum learning and other techniques to mix up the format during training to get as much out of the limited data as we can with a larger neural net.
For the folks who watch this thread for the sole purpose of seeing more generated cards, a random selection from my latest. No cherry-picking, no edits beyond capitalization/filling in "@"s/forum formatting.
Commander PhalanxR
Creature ~ Elf Shaman (common) 2R: Target white creature gets +1/+1 until end of turn.
(1/1)
Springform Cavalier2B
Creature ~ Zombie Wizard (common)
Reach R: Springform Cavalier gets +1/-1 until end of turn.
(1/1)
Centaur Sun Bars2
Artifact (rare) 5, T: Return target permanent to its owner's hand.
Reritial Legionnaire2
Artifact (uncommon) T, Sacrifice Reritial Legionnaire: return target instant or sorcery card from your graveyard to your hand.
Borderwood Drake2R
Creature ~ Spirit (common)
Whenever a player casts an instant or sorcery spell, you may tap target nonland permanent you control and Borderwood Drake deals 2 damage to that player.
(1/1)
Dryad Spike2UB
Enchantment ~ Aura (common)
Enchant creature
Enchanted creature has shroud.
Enchanted creature gets +1/+1 for each card in your hand.
Whenever you cast a noncreature spell, target player discards a card."
Golgari ElderBB
Creature ~ Vampire Warrior (common)
When Golgari Elder enters the battlefield, all creatures get -1/-1 until end of turn.
(2/2)
Dream Fiend3UB
Instant (common)
Target creature gets -8/-8 until end of turn.
Doomborn Aurochs3W
Creature ~ Human Soldier (rare)
Whenever another target blue creature you control attacks, creatures you control get +2/+2 until end of turn.
(3/1)
Spire Speaker2R
Creature ~ Pild (common)
Flying R: Spire Speaker gets +1/+0 until end of turn.
(2/1)
Opaline Sun's Storm3
Artifact (uncommon)
Whenever a creature dies, Opaline Sun's Storm deals 1 damage to target creature.
Blast of Death2W
Instant (common)
Flashback 2G
Put four 1/1 white Spirit creature tokens with flying onto the battlefield.
Maggot Chosen3G
Sorcery (uncommon)
As an additional cost to cast Maggot Chosen, sacrifice a creature.
Destroy target artifact or enchantment and all other permanents with the same name as that creature.
Enllader of Lunact3WW
Enchantment (rare)
At the beginning of your upkeep, if there are four or more card types among cards in your graveyard, put a 3/3 white Centaur creature token with defender onto the battlefield.
Sleep Spears2U
Enchantment (rare)
Whenever you cast a blue spell, exile target nonland permanent you don't control.
Mumbraad Repurion4
Artifact (rare)
When Mumbraad Repurion enters the battlefield, exile target Merfolk card from a graveyard.
Arbiter, Assassin Wild3WW
Creature ~ Human Shaman (rare) T, prevent all combat damage that would be dealt to and dealt by target artifact card this turn.
(7/6)
Prodal Monnarce1G
Creature ~ Insect (common)
Prodal Monnarce enters the battlefield with a +1/+1 counter on it.
At the beginning of your upkeep, put two +1/+1 counters on Prodal Monnarce.
(0/0)
Enllader of Lunact3WW
Enchantment (rare)
At the beginning of your upkeep, if there are four or more card types among cards in your graveyard, put a 3/3 white Centaur creature token with defender onto the battlefield.
Paracoshu, Wirror's Changeling2W
Creature ~ Serpent (common)
Defender
Flying
When Paracoshu, Wirror's Changeling becomes the target of a spell or ability, investigate.
(3/3)
There were also a ton of cards that said to transform them in different circumstances, but alas, none of them had associated flip sides.
For the folks who watch this thread for the sole purpose of seeing more generated cards, a random selection from my latest. No cherry-picking, no edits beyond capitalization/filling in "@"s/forum formatting.
Creature ~ Elf Shaman (common) 2R: Target white creature gets +1/+1 until end of turn.
(1/1)
A monored elf? I don't think we've had that before.
1G
Creature ~ Insect (common)
Prodal Monnarce enters the battlefield with a +1/+1 counter on it.
At the beginning of your upkeep, put two +1/+1 counters on Prodal Monnarce.
(0/0)[/spoiler]
Paracoshu, Wirror's Changeling2W
Creature ~ Serpent (common)
Defender
Flying
When Paracoshu, Wirror's Changeling becomes the target of a spell or ability, investigate.
(3/3)
I suppose that's an ok blocker, it might be really good in limited if you can draft some equipment with low equip costs.
I was reading through the thread again and stumbled upon an amusing experiment I thought I might try-- namely, interleaving shakespeare and the MTG corpus and training a network on it to see if it makes some shakespeare-inspired cards. I'll post a dump of results soonish, but until then, here's a pretty cool card it spat out:
mights of the experted
{^^^}
creature, human warrior
flying
whenever mights of the experted becomes blocked, you may put a charge counter on mights of the experted.
{WWWW}, remove a charge counter from mights of the experted: uncast target spell unless its controller pays X, where X is the number of charge counters on mights of the experted.
4/4
I've been building a robocube myself, and unfortunately "mights of the experted" is way too good. Been trying to follow two straightforward guidelines:
1: Only use cards that work in the rules as produced by the neural network, no touch ups or fixes. Didn't want there to be arguments as to how a given card functioned.
2: No cards blatantly overpowered (Such as the 1/1 for 1u that made 3/2 Wurms for each card in your graveyard)
It started by trying to go through the RoboRosewater twitter to try to find working cards, and then searching through this thread for cards to fill in the gaps.
Here are some renders so far of some of the cards I've found artwork for:
Consume the meek meets Impending Disaster
Abstract art fits the strange nature of this card perfectly.
It's really difficult to find art of flying trees or treefolk... and I still have more I need to find art for
Symmetrical effects are always fair
This isn't a very good card, why would you pick...
Oh, that's a good reason to pick it.
Perfect art for a revelation
There's no rules limiting what types of counters you can have in the game.
Does shattering destruction make things worse by spreading out the destruction, or does it just stop the destruction?
Only eldrazi currently in the cube.
Silly art.
Bonus, current distribution of cards in the set. I wish the networks were batter at making planeswalkers, walkers with only one ability are really boring.
Those are amazing! I love that the Eldrazi got Devoid even though it doesn't require colored mana to begin with.
I find myself equally interested in "where did this art come from?" and "whose RNN spawned this?"
All artist credit is on the cards. Some of the art came from an art pack from a custom magic group, specifically the custom magic subreddit, others came from searching.
Most of the cards in the cube I think are from the roborosewater twitter, such as the flying treefolk I posted, which is why I just have mythic for the rarity of everything.
Quite a of the others came from Talcos' posts such as the Eldrazi and Helloworld cards I posted.
How's your RNN coming along with its learning? Is it able to produce working planeswalkers?
Well, here's a big, unedited dump. Unfortunately, the shakespeare makes it annoying (not too difficult, but annoying) to extract cards from it automatically.
It seems to just be pretty much the same as before, but a bit stupider, because the network has devoted some neurons to Shakespeare, though the names do seem a bit more creative maybe.
How's your RNN coming along with its learning? Is it able to produce working planeswalkers?
I'm at a satisfactory spot with it, pending any new developments that would let me train something bigger and better on the architecture I have access to. I can whip up new cards of a quality similar to the ones from my last couple posts on demand, which is good enough to keep my cube supplied for as infrequently as I get to play it!
Planeswalkers, well. Working yes, resembling anything in print, no. I get about one planeswalker or leveler per 300 cards I generate, and they always have only one loyalty ability or level up line. Four examples:
Geeler's Mivily3B
Planeswalker ~ Gilt (common)
+2: Target player loses 2 life and you gain 1 life.
((4))
Voldering Vouggant4B
Planeswalker ~ Dispersat (common)
+2: Voldering Vouggant deals 2 damage to target creature with flying and target creature or player. You lose 3 life.
((3))
Long of Jeggant3BB
Legendary Creature ~ Faerie Rogue (rare)
Flying
Level Up 1B
Level 1~3
4/4
Pay 3 life: Return target nonlegendary creature card from your graveyard to your hand.
(3/3)
The Spike Wood 3W
Creature ~ Elf Wizard (common)
Level Up 2
Level 1~2
4/3
Lifelink
Mountainwalk
(1/1)
I'm throwing a couple into the cube as novelties, but it would be nice to get something more complete! I guess this is all one can expect from common rarity planeswalkers, though...
Well, here's a big, unedited dump. Unfortunately, the shakespeare makes it annoying (not too difficult, but annoying) to extract cards from it automatically.
It seems to just be pretty much the same as before, but a bit stupider, because the network has devoted some neurons to Shakespeare, though the names do seem a bit more creative maybe.
Uh...
I think it tried to write a play with magic cards. Or the other way around. There are random snippets of verse mixed in with the cards...
Private Mod Note
():
Rollback Post to RevisionRollBack
Vorthos Cartography - Check out my completed maps of Zendikar and Innistrad!
"You say 'learn from history,' but that does not mean 'learn the same bull***** the people in history learned alongside phrenology and alchemy.'" - The Blinking Spirit
Uh...
I think it tried to write a play with magic cards. Or the other way around. There are random snippets of verse mixed in with the cards...
Yup-- that's the idea. The dataset was the MTG corpus concatenated with an equal number of lines of shakespeare, and shuffled randomly. It was kinda silly, in retrospect, but fun, nonetheless.
Yup-- that's the idea. The dataset was the MTG corpus concatenated with an equal number of lines of shakespeare, and shuffled randomly. It was kinda silly, in retrospect, but fun, nonetheless.
It's quite entertaining. There's a card in there called 'Sorin's Marsh,' with the rules text 'So shall use me answer?'
Private Mod Note
():
Rollback Post to RevisionRollBack
Vorthos Cartography - Check out my completed maps of Zendikar and Innistrad!
"You say 'learn from history,' but that does not mean 'learn the same bull***** the people in history learned alongside phrenology and alchemy.'" - The Blinking Spirit
I feel like I gave my network an aneurysm by forcing it to generate a ton of cards with the name forced as "gruul " to see what it'd add to it and if it knew it should be red/green (mine doesn't at least) because I eventually got this card.
The Shakespeareian card set seems to have great naming skills; Mistform Pirates, Dread for Path, Soul of the Triumph... all very evocative names. I wonder if we could make the flavour text generator style-specific? So 'generate flavour text, but in Shakespeare's style' could be an option? That would be awesome.
Oh, speaking of awesome, Hunter now has comments! For the first time since Gatherer broke itself, there's a MtG database search site with comments enabled (that I know of, anyway). There's no comments been added yet, so the title of 'first commenter' is still available.
The Shakespeareian card set seems to have great naming skills; Mistform Pirates, Dread for Path, Soul of the Triumph... all very evocative names. I wonder if we could make the flavour text generator style-specific? So 'generate flavour text, but in Shakespeare's style' could be an option? That would be awesome.
Oh, speaking of awesome, Hunter now has comments! For the first time since Gatherer broke itself, there's a MtG database search site with comments enabled (that I know of, anyway). There's no comments been added yet, so the title of 'first commenter' is still available.
I love the sound of "Jedit, the Noble Elemental." It hints at such wonderful flavor. Not to mention the others like "Skyshroud Replicant" and "Guilty Charm." I might have to use some of these.
Private Mod Note
():
Rollback Post to RevisionRollBack
Vorthos Cartography - Check out my completed maps of Zendikar and Innistrad!
"You say 'learn from history,' but that does not mean 'learn the same bull***** the people in history learned alongside phrenology and alchemy.'" - The Blinking Spirit
To post a comment, please login or register a new account.
No, not a fork. What I sampled from was just a private version of mine where I've tinkered with incorporating neural stacks into the architecture. The main repo can be found here (and encoding repo here), and the sampling script "sample_hs_v3.lua" supports field-specific priming like what I've shown 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.
I'm following the directions at http://torch.ch/docs/getting-started.html on an Ubuntu VM (the version packaged with VirtualBox). Cloning the git repo works fine, as does "cd ~/torch; bash install-deps;" When I attempt "./install.sh", however, I get this output:
Any ideas what's going on there?
Thanks to MaximumC for putting it all in to MSE. Currently the card arts have all been removed due to attribution concerns.
Is the tutorial at https://github.com/billzorn/mtgencode still the state of the art for card generation, or are there tweaks worth incorporating for the latest greatest output?
That said, the library is getting out of date. I haven't updated it to include the latest sets, so the encoding algorithm probably breaks with the new colorless-only mana symbol. Maplesmall has assured me this is easy to fix, and I'd like to push a major overhaul when I have some time, but I don't know when that will be.
The biggest change is that char-rnn is no longer state of the art as a character-level language model backend. There is a full rewrite of it called torch-rnn that offers significant performance improvements and greatly reduced memory usage, which should make it possible to train much large networks. I've worked extensively with the codebase, and I'm currently in the process of adding much more powerful training and sampling interfaces to my own fork. It's a terrible mess of lua and python, but once I've got it working for my research project it should be easy to come back and do some clever things to improve magic card generation, like experimenting curriculum learning and other techniques to mix up the format during training to get as much out of the limited data as we can with a larger neural net.
You could try using torch-rnn as it is right now, by following their tutorial and just substituting a card corpus encoded with mtgencode for their example data file, but I suspect you'll run into some issues with not having enough data because by default they do very silly things to split the data up into training epochs. I intend to solve those problems, and I'll be sure to update the tutorial when I do, and share any new results.
Because things were quiet here, I bulled ahead with the existing process. I had hoped to pull off a size 768, 3 layer network, but that ran out the memory on an EC2 g2.2xlarge instance. I fell back to size 512, which worked fine. Quirks of this net (at least at temperature 0.8+) included lands with mana costs and a mysterious card type "Rander" that showed up once, ha.
Exciting! I will stay tuned here as always.
Creature ~ Elf Shaman (common)
2R: Target white creature gets +1/+1 until end of turn.
(1/1)
Springform Cavalier 2B
Creature ~ Zombie Wizard (common)
Reach
R: Springform Cavalier gets +1/-1 until end of turn.
(1/1)
Centaur Sun Bars 2
Artifact (rare)
5, T: Return target permanent to its owner's hand.
Reritial Legionnaire 2
Artifact (uncommon)
T, Sacrifice Reritial Legionnaire: return target instant or sorcery card from your graveyard to your hand.
Borderwood Drake 2R
Creature ~ Spirit (common)
Whenever a player casts an instant or sorcery spell, you may tap target nonland permanent you control and Borderwood Drake deals 2 damage to that player.
(1/1)
Enchantment ~ Aura (common)
Enchant creature
Enchanted creature has shroud.
Enchanted creature gets +1/+1 for each card in your hand.
Whenever you cast a noncreature spell, target player discards a card."
Late Fill 3
Artifact ~ Equipment (uncommon)
Equip 2
Equipped creature gets +1/+0.
Golgari Elder BB
Creature ~ Vampire Warrior (common)
When Golgari Elder enters the battlefield, all creatures get -1/-1 until end of turn.
(2/2)
Dream Fiend 3UB
Instant (common)
Target creature gets -8/-8 until end of turn.
Doomborn Aurochs 3W
Creature ~ Human Soldier (rare)
Whenever another target blue creature you control attacks, creatures you control get +2/+2 until end of turn.
(3/1)
Creature ~ Bird (common)
Flying
2W: regenerate Yowic Congoltut.
(2/1)
Spire Speaker 2R
Creature ~ Pild (common)
Flying
R: Spire Speaker gets +1/+0 until end of turn.
(2/1)
Opaline Sun's Storm 3
Artifact (uncommon)
Whenever a creature dies, Opaline Sun's Storm deals 1 damage to target creature.
Blast of Death 2W
Instant (common)
Flashback 2G
Put four 1/1 white Spirit creature tokens with flying onto the battlefield.
Maggot Chosen 3G
Sorcery (uncommon)
As an additional cost to cast Maggot Chosen, sacrifice a creature.
Destroy target artifact or enchantment and all other permanents with the same name as that creature.
Enchantment (rare)
At the beginning of your upkeep, if there are four or more card types among cards in your graveyard, put a 3/3 white Centaur creature token with defender onto the battlefield.
Sleep Spears 2U
Enchantment (rare)
Whenever you cast a blue spell, exile target nonland permanent you don't control.
Mumbraad Repurion 4
Artifact (rare)
When Mumbraad Repurion enters the battlefield, exile target Merfolk card from a graveyard.
Arbiter, Assassin Wild 3WW
Creature ~ Human Shaman (rare)
T, prevent all combat damage that would be dealt to and dealt by target artifact card this turn.
(7/6)
Prodal Monnarce 1G
Creature ~ Insect (common)
Prodal Monnarce enters the battlefield with a +1/+1 counter on it.
At the beginning of your upkeep, put two +1/+1 counters on Prodal Monnarce.
(0/0)
Oh look, your RNN made a delirium card.
Yeah! I also had one Investigate:
Paracoshu, Wirror's Changeling 2W
Creature ~ Serpent (common)
Defender
Flying
When Paracoshu, Wirror's Changeling becomes the target of a spell or ability, investigate.
(3/3)
There were also a ton of cards that said to transform them in different circumstances, but alas, none of them had associated flip sides.
A monored elf? I don't think we've had that before.
I like it! At such an activation it doesn't seem broken, but it still looks fun. perhaps a control finisher or combo piece?
Seems like decent limited removal, I'd draft it.
As if lingering souls wasn't good enough.
It's primordial hydra! Except possibly really broken
I suppose that's an ok blocker, it might be really good in limited if you can draft some equipment with low equip costs.
1: Only use cards that work in the rules as produced by the neural network, no touch ups or fixes. Didn't want there to be arguments as to how a given card functioned.
2: No cards blatantly overpowered (Such as the 1/1 for 1u that made 3/2 Wurms for each card in your graveyard)
It started by trying to go through the RoboRosewater twitter to try to find working cards, and then searching through this thread for cards to fill in the gaps.
Here are some renders so far of some of the cards I've found artwork for:
Consume the meek meets Impending Disaster
Abstract art fits the strange nature of this card perfectly.
It's really difficult to find art of flying trees or treefolk... and I still have more I need to find art for
Symmetrical effects are always fair
This isn't a very good card, why would you pick...
Oh, that's a good reason to pick it.
Perfect art for a revelation
There's no rules limiting what types of counters you can have in the game.
Does shattering destruction make things worse by spreading out the destruction, or does it just stop the destruction?
Only eldrazi currently in the cube.
Silly art.
Bonus, current distribution of cards in the set. I wish the networks were batter at making planeswalkers, walkers with only one ability are really boring.
I find myself equally interested in "where did this art come from?" and "whose RNN spawned this?"
All artist credit is on the cards. Some of the art came from an art pack from a custom magic group, specifically the custom magic subreddit, others came from searching.
Most of the cards in the cube I think are from the roborosewater twitter, such as the flying treefolk I posted, which is why I just have mythic for the rarity of everything.
Quite a of the others came from Talcos' posts such as the Eldrazi and Helloworld cards I posted.
How's your RNN coming along with its learning? Is it able to produce working planeswalkers?
It seems to just be pretty much the same as before, but a bit stupider, because the network has devoted some neurons to Shakespeare, though the names do seem a bit more creative maybe.
Planeswalkers, well. Working yes, resembling anything in print, no. I get about one planeswalker or leveler per 300 cards I generate, and they always have only one loyalty ability or level up line. Four examples:
Geeler's Mivily 3B
Planeswalker ~ Gilt (common)
+2: Target player loses 2 life and you gain 1 life.
((4))
Voldering Vouggant 4B
Planeswalker ~ Dispersat (common)
+2: Voldering Vouggant deals 2 damage to target creature with flying and target creature or player. You lose 3 life.
((3))
Long of Jeggant 3BB
Legendary Creature ~ Faerie Rogue (rare)
Flying
Level Up 1B
Level 1~3
4/4
Pay 3 life: Return target nonlegendary creature card from your graveyard to your hand.
(3/3)
The Spike Wood 3W
Creature ~ Elf Wizard (common)
Level Up 2
Level 1~2
4/3
Lifelink
Mountainwalk
(1/1)
I'm throwing a couple into the cube as novelties, but it would be nice to get something more complete! I guess this is all one can expect from common rarity planeswalkers, though...
Uh...
I think it tried to write a play with magic cards. Or the other way around. There are random snippets of verse mixed in with the cards...
"You say 'learn from history,' but that does not mean 'learn the same bull***** the people in history learned alongside phrenology and alchemy.'" - The Blinking Spirit
Yup-- that's the idea. The dataset was the MTG corpus concatenated with an equal number of lines of shakespeare, and shuffled randomly. It was kinda silly, in retrospect, but fun, nonetheless.
It's quite entertaining. There's a card in there called 'Sorin's Marsh,' with the rules text 'So shall use me answer?'
"You say 'learn from history,' but that does not mean 'learn the same bull***** the people in history learned alongside phrenology and alchemy.'" - The Blinking Spirit
Oh, speaking of awesome, Hunter now has comments! For the first time since Gatherer broke itself, there's a MtG database search site with comments enabled (that I know of, anyway). There's no comments been added yet, so the title of 'first commenter' is still available.
I love the sound of "Jedit, the Noble Elemental." It hints at such wonderful flavor. Not to mention the others like "Skyshroud Replicant" and "Guilty Charm." I might have to use some of these.
"You say 'learn from history,' but that does not mean 'learn the same bull***** the people in history learned alongside phrenology and alchemy.'" - The Blinking Spirit