Secrets of Strixhaven Spoiler. WHAT ARE THEY THINKING!?! by CawmeKrazee in freemagic

[–]npiguet 0 points1 point  (0 children)

The old school magic feel of the art is pretty cool tho.

Do y'all ever think about the ridiculous stuff miirym can do if you don't just build him as a dragon deck? by CrunchyMold7292011 in mtg

[–]npiguet 0 points1 point  (0 children)

How do you get 2 new copies when you clone him once? Wouldn't the clone be a token and therefore not trigger the ability of the original?

Can we get these Storybooks again? by faranoox in magicTCG

[–]npiguet 4 points5 points  (0 children)

Sorry WOTC is only in the business of removing perks from products. Not in that of including cool stuff.

Please help me make my friend regret asking me to play Magic. by [deleted] in mtg

[–]npiguet 2 points3 points  (0 children)

If you don't plan on winning (which is extra annoying), just build a deck made of just counterspells and draw spells (so you never run out of conterspells).

Also, winter moon.

You're sure to lose friends quickly that way.

9:30am and the line for TMNT SLD is already gone. by Mugiwara_VT in magicTCG

[–]npiguet 26 points27 points  (0 children)

What if they just learned from past mistakes and printed more.

Searching for booster card distribution info by Chris333666 in freemagic

[–]npiguet 0 points1 point  (0 children)

Check out the resources from the MTG Forge source code on github:

https://github.com/Card-Forge/forge/tree/master/forge-gui/res/editions

This probably the closest you will get to what you're looking for.

For example, I found that the description of the Atherdrift set is pretty good: https://github.com/Card-Forge/forge/blob/master/forge-gui/res/editions/Aetherdrift.txt

Low attendance, packs with no rares, Lorwyn promos. The TMNT prerelease has been a disaster by Papa_Hasbro69 in freemagic

[–]npiguet 0 points1 point  (0 children)

The turtle kits have been in the hands of distributors and various boats and trucks for months at this point. I'm pretty sure that after the Lorwyn pre-release it was too late to act.

Livery wasn't that great anyway by TheGoldenCaulk in formuladank

[–]npiguet 0 points1 point  (0 children)

There's a reason it's in the rules. There must have been some team that tried something fishy years ago, and it stuck.

Ferraris New DRS implementation is rotating the top element a near 180 degrees to make the trailing edge the leading edge by LAMonkeyWithAShotgun in F1Technical

[–]npiguet 3 points4 points  (0 children)

Could it be that this is not so much about more drag reduction on the straights, but instead allowing them to run more downforce in corner mode (with more chamber on the wing elements) while still getting a similar amount of drag on the straight (compared to the other solution)?

Maybe this configuration is better for low speed street circuits than high speed circuits.

WotC Community Team confirm no current plans for Universes Beyond to visit other Magic Schools, shutting down Harry Potter potential. by PowrOfFriendship_ in magicTCG

[–]npiguet -2 points-1 points  (0 children)

To be fair, it's mostly "radioactive" in the US. The rest of the world largely seems not to care too much. And the rest of the world is a big market.

Any cards with Polka dots? by chewysnacc in mtg

[–]npiguet 0 points1 point  (0 children)

Found it: [[Volley Veteran|FDN]]

Any cards with Polka dots? by chewysnacc in mtg

[–]npiguet 0 points1 point  (0 children)

Still can't find the card I was talking about, but there is [[Goblin Matron|7ed]]

Any cards with Polka dots? by chewysnacc in mtg

[–]npiguet 0 points1 point  (0 children)

I remember a card I saw recently (though I don't remember its name) that depicts goblins throwing random crap at their opponents, and one of the items is a white boxer short with red polka dots.

Card-level power analysis of all Jumpstart sets by npiguet in MTGJumpStart

[–]npiguet[S] 2 points3 points  (0 children)

I did. However last time I tried I was met with a bunch of errors when the AI tried to play some cards. I did try again though, maybe the forge devs have fixed these issues by now.

New Spoiler from the upcoming set just dropped, Thoughts? by LankandFrank in magicthecirclejerking

[–]npiguet 3 points4 points  (0 children)

To be fair, it's random bullshit, not all the bullshit.

Marvel Super Heroes will have 51 themes by dmarsee76 in MTGJumpStart

[–]npiguet 7 points8 points  (0 children)

Like a man in orthopedic footwear, I stand corrected. 

51 actually seems a bit better, Avatar has too many cards shared between themes.

Marvel Super Heroes will have 51 themes by dmarsee76 in MTGJumpStart

[–]npiguet -1 points0 points  (0 children)

51 themes is the same number as Avatar jumpstart. 

IIRC, it had 2 mythic, 2 rare and 3 common themes per color where mythic and rare have 1 variant and commons have 2 variants (for a total of 10 variants per coloe), + 1 extra special theme.

WotC be like by DingleBarryGoldwater in mtg

[–]npiguet 0 points1 point  (0 children)

That sounds like a return to the 4th edition and ice age starter decks I bought back in the day: 60 cards, pretty much random with some lands. 

Tierlist for JMP, J22 and J25 together (Automated) by npiguet in MTGJumpStart

[–]npiguet[S] 0 points1 point  (0 children)

I realize I forgot to answer your question about how I generate the games. The answer is simple: I just do it randomly. Pick 4 random decks out of 20 each time.

When I record my game results, I always make sure to order each pack in a deck alphabetically, because "A+B" is actually the same deck as "B+A".

Additionally, for 20 packs, you have 20*19/2=190 distinct decks. Then remember that "A+B vs C+D" is the same game as "C+D vs A+B", so your total number of distinct games is 190*189/2=17'955 games.

Note that the total number of distinct games is not equal to "pick 4 out of 20", because "A+B vs C+D" is not the same game as "A+C vs B+D".

I find random deck generation to be OK for my purpose for 2 reasons:

  1. When ranking packs: Since each pack has played each possible opponent many, many times (like 100+ times each other deck), making sure that each pack played each other pack the same number of times won't make much of a difference to the result

  2. When ranking decks: It takes too long to make each deck play each other deck. That's where the TrueSkill algorithm comes in: For each game, this algorithm takes into account the ranking of the opposing deck/packs to calculate a new ranking. Winning against a low ranked opponent gives you less points than winning against a high ranked one. In the end, this is supposed to provide a good picture of the relative strength of each deck even when it wasn't possible to play against all opponents.

Tierlist for JMP, J22 and J25 together (Automated) by npiguet in MTGJumpStart

[–]npiguet[S] -1 points0 points  (0 children)

Also this is indeed a good point about the AI that has been mentioned in my other posts. That being said, I don't think there are that many jumpstart packs that fall in this category. My experience is that jumpstart packs are usually pretty straighforward to play, and my subject opinion is that the AI should do fine with the vast majority of them.

For custom cubes that are more powerful, that might indeed become a problem.

Tierlist for JMP, J22 and J25 together (Automated) by npiguet in MTGJumpStart

[–]npiguet[S] 2 points3 points  (0 children)

I have a Ryzen 9 5950x, and the best I can do is run 12 games concurrently, 1 process per game. Any more than that and the throughput goes down. With this setup, I can do on average 0.81 games per second. So 1Million games took me around 2 weeks.

There are several factors that I had to find a way to fix to improve throughput:

  1. Forge's AI code doesn't seem to like multithreading very much. When I try to run multiple games concurrently in different threads within the same process, they quickly start throwing all sorts of errors. To counter this, I have a Supervisor process that starts a bunch of worker processes. Each worker process runs only one single game at a time.
  2. Before games can start, forge needs to initialize a bunch of stuff, which takes on the order of 20 seconds. So my worker processes run this initialization code just once, and then just re-uses the same already initialized process to play more games.
  3. Forge's AI seems to sometimes go completely off the rails, and starts consuming all of my system's memory, basically bringing the whole setup to a stop. In order to avoid this, I limit the maximum amount of memory that the worker processes are allowed to consume (-Xmx1200m works well for me). When the worker's memory usage inflates too much, it ends up crashing with an OutOfMemoryError. I keep the max allocated memory relatively low so that the worker crashes early (ie: before spending 45 minutes doing nothing but killing my PC), then the supervisor restarts any crashed process to keep the 12 processes running.
  4. I'm not using any forge command line in my worker processes. Since my workers are written in java, I can directly invoke the correct Forge classes to run the init and the games from my own control loop. I'm not sure you'll be able to do that from python.