Die Errungenschaft, Errungenschaften bereitzustellen

Ich möchte mich erst einmal kurz vorstellen: Ich bin Ben Elliott, ein Softwareentwickler im Features-Team für MTG Arena. Falls es dir genauso geht wie mir, langweilst du dich schnell, wenn du immer nur dasselbe tust. Du springst lieber zwischen Formaten hin und her. Du suchst nach Abwechslung, indem du an rotierenden Events teilnimmst. Vielleicht hast du auch schon einmal ein Deck gebaut, nur um … na ja, Sparky auf verschiedene kreative Arten und Weisen zu drangsalieren.
Mit anderen Worten: Vielleicht hast du beim Spielen gerne viele Ziele.
MTG Arena hat schon lange zum Ziel, zum Erkunden anzuregen, und mehrere Spielsysteme sind genau darauf ausgelegt. Der Einstieg für Neulinge ist das erste bedeutende Beispiel dafür. MTG Arena versucht, dir den Einstieg in den Koloss Magic: The Gathering zu erleichtern, eine Farbe, ein Deck nach dem anderen, bis du dich sicher genug fühlst, gegen andere Menschen anzutreten. Sobald du etwas mehr Erfahrung gesammelt hast, ermuntern wir dich durch die täglichen Quests, deine Fühler weiter auszustrecken. Du kannst wahrscheinlich nicht jeden Tag die täglichen Quests verlässlich mit demselben Deck absolvieren (wobei es durchaus sein kann, dass du wie Spaß an der Herausforderung hast, ein einziges Deck zu bauen, das die meisten täglichen Quests im Alleingang abschließen kann), daher siehst du dich nach Techniken, Strategien und Karten um, die du sonst nicht in Betracht ziehen würdest.
Natürlich können der Einstieg für Neulinge und die täglichen Quests nur begrenzt viel leisten (und du merkst sicher schon, worauf ich hinauswill). Seit MTG Arena existiert, fordern die Spielenden ein umfangreiches System für Errungenschaften. Eine Möglichkeit, zu erkunden, neue Dinge auszuprobieren, kreativ zu werden und am Ende des Tages ein schönes, glänzendes Abzeichen zu erhalten, das zur Schau stellt, was du geschafft hast. Wie du dir vielleicht denken kannst, haben die Design- und Entwicklungsteams von MTG Arena bereits ebenso lang über Errungenschaften nachgedacht. Dabei haben sie die Vorteile und Tücken, die technischen Herausforderungen und natürlich Ideen für glorreiche, schwierige, äußerst anspruchsvolle, einzigartige Errungenschaften abgewogen. Und mit dem Release von Ätherdrift, freuen wir uns, anzukündigen, dass Errungenschaften endlich eingeführt wurden!
Aber der Weg dorthin war steinig.
Wir dachten, es wäre vielleicht interessant, dir einen Blick hinter die Kulissen zu gewähren, wie wir das umgesetzt haben. Also, genug der Vorrede, hier erfährst du, wie das alles zustande gekommen ist …
Fundament und Prototypen
Zwar haben wir schon seit Ewigkeiten über Errungenschaften nachgedacht, aber die tatsächliche Arbeit daran nahm das Features-Team von MTG Arena im Frühjahr 2024 auf.
Unser Team begann mit einer ersten Design-Phase, in der wir sowohl die übergeordneten Ziele eines Features wie Errungenschaften erarbeiteten als auch eine erste Liste der Errungenschaften zusammenstellten, die wir gerne aufnehmen wollten (interessantes Detail: Ursprünglich umfasste die Liste 126 Errungenschaften). Zu den wichtigen Erkenntnissen dieser Designphase gehörten:
- Einbindung: Es sollte Spaß machen, auf die Errungenschaften hinzuarbeiten, und sie sollten die Magic-Reise der Spielenden bestimmen.
- Vielfalt: Verschiedene Errungenschaften sollten auf verschiedene Spielertypen zugeschnitten sein und die gesamte Bandbreite dessen abdecken, was MTG Arena zu bieten hat.
- Flexibilität: Das Team wollte die Möglichkeit haben, Errungenschaften hinzuzufügen, zu ändern und zu entfernen, ohne dass dies Auswirkungen auf andere, nicht damit verbundene Errungenschaften hat, damit denjenigen, die sie entwickeln, völlig freie Hand haben können.
Darüber hinaus war unser Entwicklungsteam stets sehr auf den Umfang dieses Features bedacht; wenn wir uns zu viel vorgenommen hätten, hätten wir schließlich den Erfolg seiner Umsetzung nie erringen können.
Während all dies lief, begannen wir auch, verschiedene Prototypen dazu zu entwickeln, wie wir den Spielenden die Errungenschaften präsentieren können. Wir haben Entwürfe für die UI entwickelt, Vor- und Nachteile besprochen und mit unserem Spiel-Client auf bislang ungeahnte Weise experimentiert.
Ein Beispiel: Pop-up-Benachrichtigungen mussten immer genau dann erscheinen, wenn du eine Errungenschaft erlangst. Wir mussten daher sicherstellen, dass sie auf jedem Bildschirm erscheinen konnten, ohne zu sehr abzulenken, aber die Spielenden sehr wohl darüber zu informieren, dass sie etwas Großartiges vollbracht haben. Das Team für UX-Design entwickelte mehrere Prototypen für das Aussehen dieser Benachrichtigungen und musste entscheiden, wo auf dem Bildschirm sie erscheinen würden, was vielleicht noch wichtiger war. (Wir haben uns für die obere rechte Ecke entschieden und dafür gesorgt, dass sie dort nicht zu lange animiert bleiben.)

Im Rahmen dieser Prototypentwicklung haben wir uns entschlossen, Errungenschaften in Gruppen einzuordnen, damit sie thematisch kohärenter und in einer stetig wachsenden Liste einfacher zu finden sind. Das bedeutete, dass wir auch diese Kategorien entwickeln mussten. Das Aussehen dieser Gruppen veränderte sich mehrmals während der Prototyp- und Entwicklungsphase, wobei jede Version Verbesserungen im Vergleich zu ihren Vorgängern mit sich brachte. Im Rahmen dieses iterativen Prozesses kamen wir auf die schnell allseits beliebte Idee, eine „Lieblingserrungenschaft“, an der man gerade arbeitet, im Tracker für tägliche Quests anzuzeigen. Das hatten wir nicht von Anfang an geplant, zeigt aber die Vorteile von mehreren gemeinsamen Prototyp-Runden – so sind wir auf Dinge gekommen, von denen wir gar nicht wussten, dass wir sie wollten, und haben uns der Herausforderung gestellt, neue Features innerhalb eines seinerseits neuen Features zu implementieren, ohne uns zu viel vorzunehmen.

Das Programmierteam musste sich außerdem Gedanken darüber machen, wie es die Errungenschaften reibungslos in unsere existierenden Systeme einbinden konnte. Wir haben einige Techniken wiederverwendet, die wir während der Verbesserung des Einstiegs für Neulinge eingesetzt hatten, damit Errungenschaften einheitlich erschaffen werden können, und Unterstützung bereitgestellt, damit einige neue Anforderungen umgesetzt werden konnten, die für bestimmte Errungenschaften erforderlich sind. Wir wollten außerdem sicherstellen, dass dieses Feature auch im großen Maßstab funktionieren würde – diese Einschränkung wird bei Spielen wie MTG Arena oft außer Acht gelassen, besonders wenn man es gewohnt ist, an kleineren und/oder unabhängigen Projekten zu arbeiten. Wie würde sich die Einführung von Errungenschaften auf ein Spiel mit Abertausenden von Spielenden aus aller Welt auswirken, die über verschiedenste Geräte und Software-Typen mit deinem Spiel interagieren? Es war wichtig, dass wir mit unserem Code sehr vorsichtig in das ganze System eingriffen, um die negativen Folgen für die Server und das Gameplay so weit wie möglich einzuschränken.
Zu guter Letzt war uns auch klar, dass die Errungenschaften erhebliche teamübergreifende Anstrengungen bedeuten würden, obwohl sie auf Initiative des Features-Teams hin ins Leben gerufen wurden. Die meisten Errungenschaften werden im Laufe einer Magic-Partie erlangt und wir wollten sicherstellen, dass wir uns Errungenschaften ausdenken konnten, die genauso sehr mit den Regeln von Magic interagieren wie die Karten selbst.
Wir begannen, die Architektur dieser Errungenschaften gemeinsam mit unserem Kartenset-Team zu planen, da jegliche Errungenschaften, die mit dem Gameplay zusammenhingen, grundlegende und einzigartige technische Anforderungen mit sich brachten, die sich von den Errungenschaften außerhalb von Matches unterschieden. Wir haben außerdem mit unserem Content-Team zusammengearbeitet, um sicherzustellen, dass die ganzen neuen Errungenschaften umsetzbar sein würden, insbesondere der neue Kosmetik-Typ, der mit diesem Feature einherging (d. h. Titel!). Alle, die schon einmal ein Errungenschaftssystem entwickelt haben, wissen, dass es mit allen Facetten eines Spiels interagiert. Für MTG Arena bedeutet das alles von Interaktionen während der Partie, bis hin zum Öffnen von Boosterpackungen, Deckbau, Spielen verschiedener Formate … die Liste nimmt kein Ende.
Das Programmieren von Software ist am einfachsten, wenn alle komplexen Teile nicht im Auge haben müssen, was die anderen komplexen Teile gerade so anstellen. Ein Feature wie Errungenschaften lässt diesen Grundsatz absurd erscheinen; es muss schließlich alles im Auge haben.
Diese Phase hat uns mit zum Sommer 2024 beschäftigt. An dessen Ende hatten wir mehrere Teile des Puzzles in einer Form, sodass sie unabhängig voneinander funktionierten. Wir hatten eine rudimentäre Seite für die Errungenschaften (wobei diese nur Platzhalter verwendete und nicht die echten Errungenschaftsdaten), manche Errungenschaften waren auf dem Server implementiert (wobei sie noch nicht so eingerichtet waren, dass sie im Klienten angezeigt wurden) und jede Menge kleinere Baustellen und Verbindungselemente, die letztendlich alles zusammenschnüren würden (wie eine Seite, auf der man sich Titel ansehen und aussuchen konnte).
Eine Sommernachtsodyssee
Zu Beginn des Sommers legte ein Großteil des Features-Teams eine Pause bei der Arbeit an den Errungenschaften ein.
Das erfordert vielleicht Erläuterung … oder vielleicht auch nicht, je nachdem, wie gut du dich an letztes Jahr erinnerst; 2024 war ein einzigartiges Jahr für MTG Arena dank einiger hochkomplexer Vorzeige-Sets wie Modern Horizons 3. Dies verschaffte uns einzigartige Gelegenheiten, Funktionen zu entwickeln, die zu solchen Sets passten. Gleichzeitig stellten wir fest, dass wir bei der Arbeit an den Errungenschaften an der Frage feststeckten, wie wir Errungenschaften während der Partie effektiv und nachhaltig umsetzen konnten (da dies eine ungleich schwierigere Aufgabe war als Errungenschaften außerhalb von Partien). Unsere Lösung war Folgende:
- Wir beauftragten einen Teil des Teams damit, die richtig schwierigen Aspekte der Errungenschaften während der Partien anzugehen und
- ließen den Rest des Features-Teams an Funktionen arbeiten, die nichts mit Errungenschaften zu tun hatten.
Der Teil des Features-Teams, der an Dingen außer Errungenschaften arbeitete, brachte ein paar nette Funktionen hervor. Wir haben die Fähigkeit, vorgefertigte Decks im Store zu verkaufen, hinzugefügt, und ein gewisses Emporium (namens Psychofroschs Horizon-Refugium) wurde eingeführt. Zu jedem Zeitpunkt war etwa die Hälfte des Features-Teams mit kleineren Funktionen, Verbesserungen der Benutzerfreundlichkeit und Fehlerbehebungen beschäftigt. Dieser Teil des Teams hat seine Zeit wirklich gut genutzt; darauf kannst du dich verlassen!
Gleichzeitig nahm die Implementierung von Errungenschaften während Partien so richtig Gestalt an. Das Team kam zu dem Entschluss, dass die Errungenschaften während Partien in der tatsächlichen Sprache der Fähigkeiten von Magic: The Gathering implementiert werden würden. Sowie man eine Partie beginnt, überprüfen wir, welche Errungenschaften in jener Partie relevant sein könnten und weisen das Regelsystem an, jene Errungenschaft ähnlich wie eine Fähigkeit zu laden. (Hinweis: Es handelt sich nicht um eine tatsächliche Fähigkeit, damit die Errungenschaften selbst während einer Partie nicht mit anderen Effekten interagieren, die auf das Auftreten von Fähigkeiten prüfen – ja, darum mussten wir uns bei der Implementierung dieses Systems Gedanken machen.) Wenn die Bedingungen für die Errungenschaften erfüllt sind oder Fortschritt bezüglich der Errungenschaft eintritt, zeichnet das Spiel diese Tatsache auf. Das Signal der Errungenschaft aktualisiert den Errungenschaftsfortschritt des Spielenden ähnlich wie bei täglichen Quests: Damit das Entwicklungsteam dieselben Entwicklungssignale wiederverwenden und leichter neue Errungenschaften einführen konnten, fügten wir außerdem die Möglichkeit hinzu, den Errungenschaftsauslösern Parameter mitzugeben: Teile von Regeltext, die wir nach Bedarf austauschen konnten, um den Auslöser als Vorlage zu nutzen.
Sehen wir uns beispielsweise die Errungenschaft „Wachstum und Stärke“, die von dir fordert: „Wirke 250 Elf- oder Hydra-Zaubersprüche in einer beliebigen Anzahl an Partien.“ Der Regeltext des Auslösers dieser Errungenschaft sieht folgendermaßen aus:
Immer wenn du einen {UntertypParameter 1}-Zauberspruch oder {UntertypParameter 2}-Zauberspruch wirkst, {ErrungenschaftAktualisieren}.
Für unser Beispiel ersetzen wir UntertypParameter # jeweils durch die Untertypen Elf und Hydra. Diese heißen neuen Schlüsselwörter, UntertypParameter # und ErrungenschaftAktualisieren sind nicht wirklich Teil der Sprache von Magic: The Gathering, aber was zählt, ist, dass die Spiel-Engine sie versteht. Die Spiel-Engine kann diese Errungenschaftsauslöser nun ordnungsgemäß laden und gleichzeitig mit anderen ausgelösten Fähigkeiten und Spielzuständen überprüfen. Ein Bonus dieser Herangehensweise ist, dass die Regel-Engine auch auslösende Ereignisse von Karten zählt, die diese Parameter nur auf regelspezifische Weise erfüllen – zum Beispiel zählt ein Wandelwicht für den Fortschritt der Errungenschaft „Wachstum und Stärke“, da ein Wandelwicht alle Kreaturentypen hat (darunter Elf und Hydra).
Als der Sommer zu Ende ging, war die Technologie für Errungenschaften während Partien ausgereift, Modern Horizons 3 war erschienen und wir waren bereit, uns wieder voll auf Errungenschaften zu konzentrieren.
Die Zielgerade
Im Spätsommer und Herbst widmeten wir uns voll und ganz der gemeinsamen Integration der einzelnen Teile, der Implementierung der verbleibenden Errungenschaften und dem Feinschliff von UI/UX des Features. Wir haben unsere Errungenschaften in zwei „Sätze“ aufgeteilt: einen für grundlegende Errungenschaften mit allgemeinem Bezug und einen für Errungenschaften, die mit den Magic-Farben zusammenhängen. Nach und nach kamen die endgültigen Illustrationen, Symbole und Texte für all unsere vielen Errungenschaften zusammen. Wir stellten sicher, dass alle Bildschirme auch auf mobilen Geräten und Layouts funktionierten. Wir fügten Hilfsmittel für das Team für Qualitätssicherung hinzu, damit es bestimmte Errungenschaften einfacher testen konnte. Damals hatten wir die Hoffnung, dass das Feature mit dem Erscheinen von Magic: The Gathering Grundstein eingeführt werden konnte und nur an der Arbeit gemessen, die uns noch bevorstand, erschien uns das realistisch.
Zwar war das Programmierteam vorsichtig optimistisch, aber wir mussten unumstößlich wissen, dass das Feature auch bei einer großen Anzahl gleichzeitiger Spielenden gut funktionieren würde. Also simulierten wir das. Wir erstellten jede Menge automatisierte „Spielende“, die sich in etwa wie echte Menschen verhielten, schalteten die Errungenschaften ein und lehnten uns zurück, um das Geschehen zu beobachten. Und zum Glück lief alles sehr gut! Die Server hielten wie erwartet der Belastung stand.
Trotzdem bekamen wir im Laufe des Entwicklungs- und Testprozesse den Eindruck, dass etwas fehlte. Wir hatten das Gefühl, dass das Feature nur „gut genug“ und nicht „hervorragend“ war. So ziemlich jeder Aspekt des Features konnte etwas mehr Feinschliff nicht nur vertragen, sondern bettelte förmlich darum. Wir wollten einige der kreativeren geplanten Errungenschaften nicht einfach nur deswegen außen vor lassen, weil sie sich vielleicht mit den verbleibenden kleinen Unzulänglichkeiten des Systems bissen. Wir wollten das Feature außerdem nicht ohne die bereits erwähnte Komponente einführen, mit der man eine Lieblingserrungenschaft im Tracker für tägliche Quests anzeigen konnte. Schließlich war das eine so großartige Idee! Und wir fanden auch immer wieder Fehler, die zwar keine Totalkatastrophe waren, uns aber doch jedes Mal zusammenzucken ließen. Daher wollten wir sicherstellen, dass das Team für Qualitätssicherung genug Zeit hatte, alles zu testen! Außerdem rückte ein zentrales Versprechen des MTG Arena Teams immer mehr in den Vordergrund: keine übermäßigen Überstunden vor Releases.
Als der Stichtag für Magic: The Gathering Grundstein immer näher rückte, mussten wir uns entscheiden, ob wir die Errungenschaften mitliefern würden oder nicht. Obwohl wir uns einig waren, dass wir das Feature mit Magic: The Gathering Grundstein einführen könnten, entschlossen wir uns letztendlich, ihm die Liebe zu schenken, die es verdiente. Daher verschoben wir die Einführung des Features. Angesichts der Feiertage und unseres Release-Zeitplans fassten wir ein weiteres großes Set für die Einführung ins Auge: Ätherdrift. Zum Glück haben wir das Feature, wie alle unsere Features, so entwickelt, dass wir es auch einfach für ein späteres Release bereitstellen konnten (das ist in der Software-Branche allgemein eine gute Idee), und wir ergriffen die notwendigen Maßnahmen, um es zu verschieben.
In den darauf folgenden Wochen wurden wir immer überzeugter davon, dass wir die richtige Entscheidung getroffen hatten. Wir fanden weitere Fehler, Grenzfälle und Probleme bei der Benutzerfreundlichkeit des Features. Die Errungenschaften frühzeitig einzuführen wäre zwar möglich gewesen, aber es hätte nicht unseren Standards und den Standards unserer Spielenden entsprochen. In der zusätzlichen Zeit konnten wir diese Fehler beheben und bitter nötigen Feinschliff vornehmen. Wir veränderten die Errungenschaften, sodass sie im Klienten leichter lesbar waren, und fügten sogar diese coolen Umdreh-Animationen hinzu. Wir haben den Errungenschaftsbenachrichtigungen mehr Flair verliehen. Das Feature wuchs nicht nur, sondern blühte förmlich auf, wie das Team erwartet hatte.

Errungenschaft abgeschlossen!
In der Version von Errungenschaften, die mit Ätherdrift eingeführt wurde, gibt es 63 „wichtige“ Errungenschaften und 50 Errungenschaften, die mit einer Farbe von Magic verbunden sind (zehn pro Farbe), also insgesamt 113. Zugegeben, das sind etwas weniger als unsere ursprüngliche Liste mit 126, aber das Team hat einige Errungenschaften in der Entwicklungsphase gestrichen, weil wir dachten, dass sie zu unerwünschtem Spielerverhalten führen könnten oder einfach nur keinen Spaß machen würden. Es hatte nichts damit zu tun, dass wir sie nicht umsetzen konnten! Einige andere wurden im Vergleich zum ersten Konzept geändert, aber fast alle ursprünglich geplanten Errungenschaften haben es ins fertige Feature geschafft. Wir sind sehr zufrieden mit der Anzahl und Vielfalt der Errungenschaften. Sie decken eine breite Palette an Schwierigkeit, Farbbalance und Spielstilen ab.
Wir wollten außerdem haufenweise Belohnungen für die Errungenschaften bereitstellen: neue Avatare, Emotes, Kartenhüllen und sogar den neuen Kosmetik-Typ, Titel – eine neue Art und Weise, deine Konkurrenz wissen zu lassen, was für ein zäher Brocken du bist.

Wir sind sehr stolz auf all die Arbeit, die in die Bereitstellung von Errungenschaften geflossen ist. Wie bei all unserer Arbeit hat das Team keine Mühen gescheut, dies verantwortungsvoll, nachhaltig und gut durchdacht umzusetzen. Es handelt sich dabei nicht um schnöde Checklisten; es sind ausgewählte, von Hand gefertigte Errungenschaften, die mit Liebe gemacht wurden!
Wie immer wird das Team von MTG Arena das Feedback der Community zu dem Feature im Auge behalten und auch noch die letzten Ecken und Kanten beseitigen, sowie wir auf sie stoßen. Zögere bitte nicht, dich mit deinen Gedanken an uns zu wenden – wir sind ganz Ohr!
Vielen Dank für deine Aufmerksamkeit und viel Spaß bei der Jagd!