'm back! Last time I told you all about implementing Born of the Gods on Magic Online. Today I’m going to take you through the Journey Into Nyx process, which made substantial strides for Magic Online.
For the last year since I joined Wizards, we’ve been heavily focused on improving the set-implementation process. Teams have worked closely with each other to establish needs and timelines for a multi-year schedule, detailing every handoff, deadline, iteration loop, and acceptance process. We improved and defined our documentation so that each team will have the information they need for each set. This took a lot of time, energy, and cooperation from every team involved.
Thanks to these efforts, feature requests are now strictly defined, purposefully estimated, explicitly accepted, and extensively tested. We can now plan ahead for features to ensure we lay the necessary groundwork in the meantime. Journey Into Nyx marks the first set that has been fully implemented under this process. I’m proud of this release, and what it represents for the improved quality of all future Magic Online releases!
Let me start by showing you the results of our improvements, and then I’ll dive into how we got there and why these are important steps.
The Power of Change
For the lifetime of the Wide Beta Client, creatures in Modern frames have had black power and toughness at all times. On the current client, however, a creature’s power or toughness turns blue if it is different than its printed power or toughness. This feature has now been carried over to the Wide Beta Client, making it easier to tell if something about your creature has changed.
Magic players memorize cards fairly quickly through play, so being able to tell at a glance that something is different is really helpful. We do the same thing with blue text in the rules box to indicate change. These kinds of features help a lot when trying to digest the board state, and will lead to faster play with fewer mistakes.
Along with this change came another important and related upgrade: noncreatures with power and toughness now show that power and toughness in gray text. This was particularly timely with the God cards of Theros block. It’s now easier to tell at-a-glance if the gods are in creature mode or noncreature mode, instead of having to do mental calculations based on position and context.
The Suspends is Killing Me
Being able to temporarily cast cards from exile has shown up a lot recently. We saw this with Chandra, Pyromaster, then Daxos of Meletis, and now Prophetic Flamespeaker. Unfortunately, the cards you can cast often get lost in the exile zone. It usually takes some hunting on the part of the player to track down the castable cards, especially in long games with full exile zones.
We wanted to bring castable cards in exile to the forefront, making them easily accessible to the player. These cards are often as important as a card in your hand, and we want to treat them that way. Now, if a card in exile can be cast, it will be promoted to top-level importance in the UI through the use of a temporary window.
One of my goals with features and improvements is to design solutions that a variety of cards and mechanics can use, and this is no exception. Two notoriously clunky mechanics on Magic Online are Cascade and Suspend. When it was time to “cast the spell if able,” the spell was usually hidden in the exile zone, and it was unclear to a lot of players what they had to do to cast the spell. Since these mechanics make the spells castable from exile—even if momentarily—we can bring them to the forefront using this temporary window.
Part of creating a new feature requires time to become familiar with its use, from both the design and technology perspective. I’m sure that over time we’ll find even more opportunities to use this feature, and that’s part of the power of new functionality.
I also want to address one of the tradeoffs of this new feature, to provide some insight into the design process. One of the consequences of this implementation is the addition of a third potential location for cards in exile, the other two being the exile zone and behind a card on the battlefield (like you see with Banishing Light). Ultimately, we decided that the usability of individual cards in exile should trump the corner cases where a player might want to view all the cards in exile in one place. It’s also fairly easy to keep track of the three possible states of an exile card: related to a permanent, castable, and other. In face-to-face Magic, players tend to make these distinctions through similar card placement anyway, and I love features that bring Magic Online closer to how players intuitively play face-to-face.
Building a Better Button
For as long as I’ve played Magic Online, it has largely stuck to a small handful of button options in the prompt box: Ok, Cancel, Yes, and No. While functional enough, this small range of buttons leads to some unintuitive results. For example, the Wide Beta Client has already implemented two new buttons, Keep and Mulligan, instead of the unintuitive Yes and No buttons.
Adding new buttons was not a trivial task. (Why? It has to do with server-to-client communication that I just have to trust our programmers on.) Journey Into Nyx only introduces a few new buttons, but it has laid the groundwork necessary for making new buttons easier to create.
Journey introduces an important set of new buttons: Heads and Tails. While largely a cosmetic change, it was a bit silly that the game asked “Would you like to choose heads?” Now when the player flips a coin they simply click the button for the side they want to choose.
Dakra Mystic is a good example of the type of functional button treatments you should expect in the future. In the past, the prompt box would have said something like “Put these cards into their owner’s graveyards?” with a “Yes” button and a “No” button. As a user, even if I know what Dakra Mystic does, they don’t intuitively know if “Yes” corresponds to the graveyard option or the draw option, so they would have to read the prompt box text every time. Instead, we present two buttons: Graveyards and Draw. Now the player knows exactly which button corresponds with which result.
Better buttons will allow players to act faster and with more confidence. We can start moving towards a world where the same button doesn’t correspond to many different actions. For example, right now the “Ok” button is overworked, serving as the “I pass priority” button, and the “I’m done choosing targets” button, and the “I’m done looking at these cards” button. This can lead to misclicks where the player thought they were resolving an effect, but instead passed priority—especially if they’re using hotkeys. We’re moving towards a future where there’s one button for pass priority, so you’ll never accidentally skip the resolution of an effect by hitting ‘F2’ again. Thanks to the development work surrounding Journey Into Nyx, we’re on our way.
Strive to Improve
I remember Erik Lauer pitching the Strive mechanic on my first or second day at Wizards. It’s cool to see a mechanic go all the way from brain to print!
All spells with Strive can target any number of targets. Previously, cards that could target any number of targets had strange prompt box text and a slow flow. For example, if you target all three creatures on the board with Gridlock, it would say something like “No targets to select, click OK to cast anyway.” Not only was this misleading, but requiring the player to click “Ok” to continue is largely unnecessary if all the legal targets have been chosen. With the Strive mechanic bringing a lot of “any number of targets” into the forefront, we knew we should improve the multi-targeting flow.
The prompt box text for these types of spells should now make more sense. The player will only see “no targets to choose” text when there are literally no targets to choose. Also, once the player has selected all legal targets, the spell will automatically move to the cost payment step. This is similar to how our other targeting spells work, like Lightning Bolt. This speeds up gameplay by removing unnecessary confirmation clicks, something the design team has been on the hunt for.
One of the goals with our improved process is to focus on making the newest cards as good as possible. We recognize that we can’t improve every old card with every release, and we try not to let the weight of history stop us from making impactful improvements today. That said, we also try to pick up easy improvements—“low hanging fruit” as they’re often called—along the way. Part of the set spec process now includes detailing older cards and mechanics that may be easy to improve using the implementations of the new set. Improving Strive was not only best for Journey Into Nyx, but it improved many other “any number of target” spells of the past, such as Gridlock.
When people play Magic Online, I want them to spend as much time making interesting decisions as possible, while minimizing the amount of time players spend purely interfacing with the UI. One way to do this is to minimize the amount of counting and memorizing that players have to do, which is an area where Magic Online can be even better than face-to-face Magic. For example, we show the actual power and toughness of a Tarmogoyf at any given moment. This leads to faster and more accurate play, which equates to more time spent playing Magic instead of doing rules accounting.
Devotion is a mechanic that involves a lot of counting, and it returns with Journey Into Nyx!
Players often care about their devotion to a color, yet they have to repeatedly count it up for themselves. We wanted to mitigate this for Theros, but it proved to be a more complicated problem than we thought, and we chose to wait until we could implement the right answer. Doing nothing at least mirrored the face-to-face experience, whereas implementing a halfway solution could end up being worse.
How do you communicate the state of a card without being confusing, or misleading, or taking up too much space? For example, an idea we rejected was showing a devotion counter on the battlefield with an option to turn it on/off. While clear, it’s not a very forward-thinking solution. It creates UI bloat that will be around for a long time, especially if each color of devotion has its own counter, and there was no clean solution to help the multicolor gods that wasn’t also bloated or misleading. (For example, a U/W hybrid symbol counts for your devotion to white, and your devotion to blue, but only once for your devotion to white and blue.)
The next pitch for devotion looked a lot like how we communicate the value of X in an X spell on the stack. Take my Mistcutter Hydra (please!):
Using this same type of approach, we could write something like “devotion to black is 3” on a Gray Merchant of Asphodel. Unfortunately, we found the approach took up too much space. It placed too much importance on the devotion number. The tools we had at the time weren’t able to contextually and subtly deliver devotion information. We also wanted a solution that we could use with other mechanics; we knew that devotion wouldn’t be the only time we wanted to communicate information like this. This issue was important enough that I brought it in front of greater R&D during one of the weekly “cardcrafting” meetings, a time R&D uses to discuss thorny and often nitty-gritty issues.
Ultimately, we went with a design pitched by Joe Huber, a digital designer that has since left Wizards. His design places the current devotion number in the actual rules text of the card so that it can be read in context and take up a minimal amount of space. Here’s how a Gray Merchant of Asphodel will look in your hand:
The number is showing up a second time in the reminder text, but we’re hoping to remove that redundancy.
One of the big topics of discussion was whether or not this number was lying to players. If my Gray Merchant of Asphodel says “…devotion to black (3)…” in my hand, my devotion to black is actually going to be 5 once it’s on the table. This is a common rules question with devotion on permanents anyway. We decided that this number actually helps teach the player about the change, since it will say “…devotion to black (3)…” in the player’s hand, update to “…devotion to black (5)…” once it’s on the table, and update again if any black mana symbols leave the battlefield before the effect resolves. I believe that rules interaction is communicated more clearly with the feature than without.
The ability to splice dynamic text into the rules text of a card didn’t exist before devotion, and now we’ve created a useful, multi-purpose tool. As both the technology team and the design team become more familiar with this feature, I’m hoping we can get more helpful text spliced into the rules text of a card. For example, it’s currently difficult to tell what the exact power of a creature sacrificed to Fling was, especially if it was different than the power printed on the creature in the graveyard. This tool gives us the means to communicate that kind information, so look for improvements in this vein going forward.
Delayed Trigger Happy
You may have noticed in the Wide Beta Client that the “Shields” area on the right has recently been renamed to “Effects”. This change makes that area a lot more flexible, and we intend to use the space for more than just damage shields. With Journey Into Nyx, we started using this as a space to store delayed triggers.
In addition to the delayed triggers from Journey Into Nyx, you’ll also see effects for delayed triggers in the rest of Theros block, like Gift of Immortality and Rescue from the Underworld. As I mentioned with Strive, we try to fix older cards when we can. Unfortunately, in this case each delayed trigger is somewhat hand crafted. Since we can’t easily fix all delayed triggers through Magic’s history, we started by focusing on Theros block. Over time we’ll continue to implement new delayed triggers in this way, and we’ll try to pick up older delayed triggers when we can. (For example, if a card with a delayed trigger is in the Magic Online Cube it’s a good candidate for improvement.)
We’re also working to improve associations between cards, which should help delayed triggers in the future. Right now, Twinflame has the somewhat ambiguous text, “Return them at the beginning of the next end step.” The intent is that at some point in the future this delayed trigger is associated to the tokens it creates through a mouse over highlight. Creating the delayed triggers in the first place was the first big step, and now we can start iterating towards the ideal.
Sins of the Past
Sometimes a card is implemented at a lower quality than we’d like. This is inevitable. Sometimes design misses an interaction, or a card like Whims of the Fates requires a lot of extra attention from the programmers, or a new mechanic introduces problems, or a new tool presents a better solution. One of the changes I made in our cardset process was to recognize this inevitability, and focus on improving our newest cards as if they were in the most recent set. For example, check out Heroes' Podium:
One of the use cases we didn’t have time to address with Born of the Gods was activating Heroes' Podium for 0, or activating it with no cards in your deck. It would ask the player to look at 0 cards and required an unnecessary confirmation click to continue the game.
In the old world, once Born of the Gods had shipped, this polish request would be treated much like any other. As a low-impact corner case, it may have never been fixed because it never would have been the highest priority. In the new world, we treat these issues as if they’re a part of the very next set. Part of delivering Journey Into Nyx at a high quality includes cleaning up any lingering Born of the Gods issues.
We polished Hero’s Podium with the release of Journey Into Nyx – it will no longer force the player to look at zero cards. While not a common scenario, it speaks to the quality bar our most recent sets are being held to. While this philosophy change led to a small fix today, it paves the way for more important changes in the future.
As I mentioned earlier, not all cards are implemented perfectly the first time. To improve the quality of our reprint releases, the set spec document has also grown to include important Magic Online Cube fixes. It now also includes improvements for cards in reprint products, such as the Duel Decks: Jace vs Vraska released alongside Journey Into Nyx.
Here’s a quick list of some of the improvements generated by this new strategy:
- Fixed the bug that caused zoomed transform cards to appear small.
- Made Balance a lot easier to resolve. The player that controls the fewest of an object no longer has to click on every one of those objects, since they have no actual choices to make. (In the case of a tie, neither player has to click anything.)
Liliana of the Veil’s +1 has been improved. The player no longer has to both select a card and click ‘Ok’ even though they can’t change their selection. This ability now works like most other modern discard effects, with no confirmation click. (We’re aware that discard effects in general are prone to misclicks, and there’s a feature in the works to address this. It’s a little too early for me to want to go into detail, though.)
- You may remember me talking about storm improvements in a previous article . Now it’s here! The storm count has been moved out of the game log and onto cards with storm.
- Suspend and Cascade have been greatly improved by the new can be cast from exile window.
Arc Trail’s prompt box text has been made more helpful.
- Fixed a nasty bug with All Suns' Dawn where the player was forced to select each card in WUBRG order and couldn’t skip any colors.
- While no coin flip cards were in Journey Into Nyx, the presence of Tavern Swindler in Duel Decks: Jace vs Vraska helped push the coin flip improvements through.
Journey to the Odds and Ends of the Earth
A lot of what I’ve been talking about were big sweeping improvements. However, our new process also made it possible to do more small-scale improvements. Here’s a list of some of those improvements, each of which was spurred on by a card in Journey Into Nyx.
- We added blue text to cards that can be cast using any color of mana. This better supports Daxos of Meletis and the can be cast from exile window.
- Fixed a bug with how naming cards (like with Pithing Needle) was being written to the game log. Also polished the blue text that was added to the card.
- Fixed an inconsistency with how we highlighted the chosen options on model spells that could choose multiple options (like Reviving Melody).
- Polished the blue text added to cards that have been “frozen” (like from Sudden Storm). The R&D team, with recent help from Allison Medwin as a digital editing resource, is taking a much closer look at our text conventions for blue text. Expect to see tighter blue text wording over time.
- Fixed a discrepancy between how illegal attacks and illegal blocks were being treated. If a player tried to make an illegal block (such as only blocking with one Mogg Flunkies), they would get a popup alert. However, if a player tried to make an illegal attack (such as attacking with just a Sightless Brawler), there was no alert. If the player had the game log closed, they would have no idea why the attack was illegal. The addition of the illegal attack alert is a good short-term fix, though I expect more improvements in this area going forward.
- Fixed a bug where some damage prevention effects were incorrectly showing up in both players’ zones.
- Fixed a bug where mana created from basic lands and other sources were being listed in different piles in the mana pool. While theoretically this could have been a feature to support Imperiosaur, the pools weren’t labelled and the splitting of mana wasn’t even helping the dinosaur lovers. Imperiosaur still works, and if the difference between basic and nonbasic mana were to become more important, we would figure out a better way to support that mechanic.
Better Loucks Tomorrow
There you have it – the story of our Journey Into Nyx, via computers and stuff. I hope you like the improvements, and I can’t wait for you to see what we’ve done with Magic 2015, a set that took an equally large step forward in process.
Also, here’s my usual disclaimer: The forward-looking ideas presented here are not a promise of things to come. Instead, they serve to illustrate the design direction the team is working towards. We're always trying new ideas, iterating on them, and reprioritizing the things we implement. Consider this a behind-the-scenes look into that process, not a preview of the end result. As is always true in game development, any feature we implement means another feature that we don't implement. It's all about priority.
Before I go, I wanted to let you know that I moved onto the Duels of the Planeswalkers team after Journey Into Nyx design ended for Magic Online. This means I won’t be the one walking you through the design process for upcoming Magic Online sets, but stay tuned; someone from the talented team carrying the process forward will continue to share the design stories that every new set creates. I’m also still around! Hit me up in the forums, via email, or on Twitter. I appreciate feedback, and I hope this isn’t the last article you’ll see from me.
Thanks for reading,
Jonathon Loucks is a digital designer in Wizards R&D. As a civilian, he enjoyed playing and writing about rogue decks. Later, he co-hosted the Limited Resources podcast. Now he works on the many facets of Magic Online.