Magic The Gathering: Arena

Magic The Gathering: Arena Dev Tracker

22 Mar


Originally posted by Chapmenez

Thank you for the response - I didn't cast him game 1 but played Emrakul in game 2 via Aetherworks Marvel, opponent resolved spell and effect on cast. It went to opponent's turn (under my control), then while I was looking through his cards and devising my sabotage of his board, he conceded. I had maybe 20 seconds of control at that point. Immediately after conceding, game did not transition to sideboard screen and was stuck on the battlefield as if the game hadn't ended yet. 2 minutes or so goes by and I got an orange fuse, and when the fuse expired I lost the match. Honestly I just laughed since it was kind of funny but definitely still should be fixed, I was able to use his ability in a later game as well without any issues but opponent didn't concede that time.

Great description, thanks so much! That will really help us try to narrow down what went wrong here.


Thanks for the report!
QA's been trying to reproduce this, but can't get it to happen. Do you have any other details about what happened here so we can get closer? What exactly was happening as your opponent conceded in game 1? Where in game 2 did you get stuck? Do you think it's possible you disconnected anywhere in there?

Has anyone else had/not had this happen to them?


Originally posted by agtk

Turns out, they said on another post that implementing [[Gutter Grime]] changed the way the game checks names. This must mean that Crowbar's activation tells the game to sacrifice (name) and for some reason the game thinks the name is everything you control!

Yeah, that's pretty much it. Because of a bug (introduced by Gutter Grime), the sacrifice part of: Equipped creature gets +1/+1 and has “{W}, {T}, Sacrifice Citizen’s Crowbar: Destroy target artifact or enchantment.” Lost its reference to Citizen's Crowbar, and the rules engine decided it meant sacrifice All The Things.

The Arena rules backend works by basically reading the cards (natural language parsing), and we have to regularly adjust that reading process to make sure it understands new cards properly. In some cases, like this one, that can lead to older cards getting new (and improper) behaviors. We have a lot of automated and manual testing to check for this, but with ~8k cards there's always the possibility that something sneaks through.

In any case, we're working to get a fix out soon. Until then, I wouldn't recommend sacrificing Citizen's Crowbar (and your whole board).


Originally posted by HairyKraken

curious to see how it looks then

Do you not have phones? Wait...

When you tap on the opponent's hand it opens a browser (like you were searching your library), and you pick from that.


Originally posted by MTGCardFetcher

Intrepid Adversary - (G) (SF) (txt)
[[cardname]] or [[cardname|SET]] to call

I wouldn't say Intrepid Adversary is THAT related; all kinds of cards reference their own titles. Gutter Grime and Citizen's Crowbar are of a much rarer category of cards that self-reference in abilities they confer to other objects. Most times a self-reference simply means "the object that has this ability", but for Gutter Grime and Citizen's Crowbar, they actually mean "the object that conferred this ability". Note that such references need to work even if that object stops having that name. #wotc_staff


Sorry I didn't post here, y'all are still my favorite. #wotc_staff


Originally posted by WonderedFidelity

Anyone got a link to this thread?

Here. #wotc_staff

21 Mar


Originally posted by HairyKraken

so many incoming missclick from the mobile players...

Mobile has a different interface for selecting opponent cards when casting Emrakul. Our data shows most mobile players are not ants, so the cards were too small to keep the desktop interface.

    on News - Thread - Direct

Mar 21, 19:00 UTC
Completed - The scheduled maintenance has been completed.

Mar 21, 16:01 UTC
In progress - Scheduled maintenance is currently in progress. We will provide updates as necessary.

Mar 15, 23:04 UTC
Scheduled - @MTG_Arena maintenance will occur to deploy the 2023.24.30 game update.

⏲️ Full deployment estimated at ~3 hours.
🛠️ No downtime is expected.
💻 Restart required.
📝 Patch notes available soon after.


Originally posted by LeeSharpe

There is a bug causing it to be ranked. We will be deploying a fix shortly.

Note that the bug does not affect matchmaking which is still record-based, but until the fix is made, the outcome of matches will change your rank.

Update: This bug is now fixed.


There is a bug causing it to be ranked. We will be deploying a fix shortly.

Note that the bug does not affect matchmaking which is still record-based, but until the fix is made, the outcome of matches will change your rank.


Originally posted by Norm_Standart

How does the UI work for cards like Nullhide Ferrox?

Can you clarify your question? In a normal game situation, the way [[Nullhide Ferox]] works is: when either player has priority, that player sees the Ferox glowing, indicating you can activate it. You then click it, confirm that you want to activate it, then the ability goes on the stack.

Nothing in particular changes if you're in control of another player; you should probably be careful that you're making the correct player activate the ability. #wotc_staff


Originally posted by arotenberg

I saw someone on YouTube suggesting using [[Gutmorn, Pactbound Servant]] to gift an Emrakul into Sparky's hand and see what happens when Sparky takes over the player.

And this comment pointing out that, per the rules, you shouldn't be able to make the opponent start venturing into a dungeon while controlling them, because you can't make them fetch the dungeon card from outside the game to put into the command zone.

Nothing like a whole community of us hyper-literal, game-incentivized nerds to find out how good the test suite is on your new feature.

From our discussions with the rules management, both Companion and Venture into the Dungeon should work with player-control effects. #wotc_staff


Originally posted by WotC_Jay

So, I used to be an engineer many years ago, but I don't really handle engineering on this project. So I can't speak to the tradeoffs well there. But, for use cases:
Python is used most for parsing the cards and understanding which behaviors we need to bundle together to make them work. A lot of this is processing text/xml/json, which python makes quite easy. Python also has a lot of libraries for natural language parsing, which we use to determine, basically, what a card does.

CLIPS is a rules-based language for designing expert systems, and that's where a lot of the "managing the rules of Magic" code exists. This is what's mostly driving the logic while you're playing a game.

C++ is largely used for handoff with other systems (the matchmaker giving a paired set of players the the CLIPS code that manages their gameplay) and, of course, performance-intensive areas like calculating auto-tap options.

At a super high level, the python code gets card info f...

Read more

Pretty good summary. I'll supplement a bit:

  • Python is used for the offline process of parsing the cards. Its advantages are: access to the Natural Language Toolkit library, simplicity in input/output interfaces, and familiarity for most of the team.

  • Our usage of CLIPS is akin to many games' usage of scripting languages like LUA: it is the primary environment in which content-specific code is run. Its main advantages are that expert systems are a good model for the vast interconnectedness of MTG rules and that it's a language that's very amenable to on-the-fly loading of code.

  • C++ has more of a role in the rules engine than you give it credit for: I'd say it's the skeleton of our game, with CLIPS as its flesh. C++ manages the fundamentals of the game, such as its state machines; it manages message traffic to and from the client, including game state redaction and response validation; and yeah it handles performance and/or algorithmica...

Read more

Originally posted by Televangelis

Wait, you weren't at Turbine, were you?

No, not me. Some people from the team were, but I’ve never done MMOs.