La nascita degli obiettivi di navigazione

Lasciate che mi presenti: sono Ben Elliott, un ingegnere informatico del team Funzionalità di MTG Arena. Se sei uno come me, sei quel tipo di giocatore che si annoia a fare sempre la stessa cosa. Forse ti piace di più passare da un formato a un altro. Oppure preferisci movimentare un po’ le cose introducendo eventi che si alternano. Potresti voler creare un mazzo specificamente per… beh, tormentare Scintilla in modi sempre più creativi.
Insomma, potresti essere il tipo di giocatore che ama avere molti obiettivi.
MTG Arena si è sempre proposto di incoraggiare l’esplorazione e molti schemi di gioco sono stati creati appositamente per questo. L’esperienza per i nuovi giocatori ne è il primo esempio lampante. MTG Arena ti accompagna gradualmente nel mondo titanico di Magic: The Gathering, un colore e un mazzo alla volta, fino a quando non sarai pronto ad affrontare altri giocatori in carne ed ossa. Dopo aver fatto un po’ di pratica, ti consigliamo di dedicarti all’esplorazione attraverso le missioni giornaliere. Probabilmente non puoi completare in modo affidabile le missioni giornaliere usando ogni volta lo stesso mazzo (anche se, come me, potresti trovare stimolante il tentativo di creare un unico mazzo capace di completare la maggior parte delle sfide), e questo ti porterà a scoprire tecniche, strategie e carte che altrimenti non avresti mai preso in considerazione.
Naturalmente, l’esperienza per i nuovi giocatori e le missioni giornaliere hanno i loro limiti (e immagino tu già sappia dove voglio arrivare). Da quando esiste MTG Arena, i giocatori hanno richiesto a gran voce un vero e proprio sistema di obiettivi. Un modo per esplorare, sperimentare cose nuove, dare spazio alla creatività e, alla fine, ottenere un bel distintivo luccicante che dimostra di aver raggiunto l’obiettivo. A quanto pare, i designer e gli sviluppatori di MTG Arena hanno riflettuto sugli obiettivi da altrettanto tempo. Hanno pensato ai pro e contro, alle sfide tecniche e, ovviamente, hanno pensato a quegli obiettivi unici, gloriosi e incredibilmente impegnativi. E con l’uscita di Aetherdrift, siamo felici che la funzione degli obiettivi sia stata finalmente lanciata!
Ma arrivare a questo punto non è stato per niente facile.
Abbiamo pensato che ti sarebbe piaciuto dare una sbirciatina dietro le quinte per vedere come ci siamo arrivati. Quindi, senza ulteriori indugi, ecco come sono andate le cose…
Attività preliminari e prototipazione
Sebbene si parli di obiettivi da tempo immemore, il team Funzionalità di MTG Arena ha iniziato a lavorarci seriamente solo nella primavera del 2024.
Il nostro team è partito da una fase di progettazione preliminare, stabilendo gli obiettivi generali di una funzione come gli obiettivi e stilando un primo elenco di obiettivi desiderati (piccola curiosità: la lista iniziale ne prevedeva 126). Alcuni aspetti chiave del progetto emersi fin dall’inizio sono stati:
- Coinvolgimento: gli obiettivi dovevano essere divertenti da raggiungere e accompagnare il percorso dei giocatori in Magic.
- Diversità: gli obiettivi, nelle loro diverse tipologie, avrebbero dovuto adattarsi ai vari tipi di giocatori, esplorando ogni aspetto di MTG Arena.
- Flessibilità: il team desiderava poter aggiungere, perfezionare e rimuovere gli obiettivi senza compromettere quelli non correlati, assicurando totale autonomia ai designer incaricati di svilupparli.
È importante sottolineare che i nostri designer hanno valutato attentamente la portata della funzione. Se avessimo preteso troppo, la funzionalità sarebbe stata difficilmente attuabile, non credi?
Nel frattempo, abbiamo anche iniziato a prototipare diversi modi per presentare gli obiettivi ai giocatori. Abbiamo creato prototipi dell’interfaccia utente, valutato i pro e i contro e sperimentato modi innovativi di utilizzare il nostro client di gioco.
Un esempio pratico: le notifiche pop-up devono apparire ogni volta che si raggiunge un obiettivo. Dovevamo assicurarci che fossero visibili su qualsiasi schermo senza risultare troppo invasive ma permettendo ai giocatori di sapere quando avevano realizzato qualcosa di straordinario. I designer UX hanno creato vari prototipi per l’aspetto di queste notifiche e, cosa ancora più importante, hanno dovuto decidere dove posizionarle sullo schermo. (Abbiamo deciso di posizionarle nell’angolo in alto a destra dello schermo, evitando animazioni prolungate.)

Durante questa fase di prototipazione abbiamo deciso di raggruppare i risultati per categorie, così da renderli tematici e più facili da individuare in un elenco sempre più ampio. Di conseguenza, abbiamo dovuto pianificare anche come organizzarli. L’aspetto di questi gruppi ha subito diverse evoluzioni durante la fase di prototipazione e sviluppo, e ogni iterazione ha portato miglioramenti rispetto ai primi tentativi. Durante questo processo iterativo abbiamo discusso e convenuto sull’utilità di mostrare un obiettivo “preferito” tra quelli in corso nel tracker delle missioni giornaliere della homepage. Non era qualcosa che avevamo inizialmente pianificato, ma questo è uno dei vantaggi di attraversare più cicli di prototipazione collaborativa: ci ha permesso di scoprire cose che non sapevamo di desiderare e ci ha spinto a trovare modi per implementare nuove funzionalità all’interno di una funzionalità già nuova senza strafare.

Gli ingegneri hanno anche iniziato a pensare a come integrare i risultati nei nostri sistemi esistenti. Alcune tecniche sviluppate per migliorare l’esperienza dei nuovi giocatori sono state riutilizzate per creare un sistema uniforme di obiettivi e supportare i nuovi requisiti necessari per alcuni di essi. Dovevamo anche garantire che la funzione fosse scalabile, un requisito spesso sottovalutato per giochi come MTG Arena, in particolare per chi è abituato a sviluppare progetti più piccoli o indipendenti. Con migliaia e migliaia di giocatori connessi da tutto il mondo su diversi dispositivi e software, quale impatto avrebbero le prestazioni del gioco attivando gli obiettivi? È stato uno degli aspetti che abbiamo dovuto pianificare meticolosamente sin dall’inizio per minimizzare l’impatto negativo sui server e sulla prestazioni del gioco.
Infine, pur avendo affidato il progetto degli obiettivi principalmente al team Funzionalità, sapevamo che sarebbe stata fondamentale una solida collaborazione tra team. La maggior parte degli obiettivi si ottiene nel corso di una partita di Magic, e volevamo essere certi di poter creare obiettivi che fossero fedeli alle regole di Magic quanto lo sono le carte stesse.
Insieme al nostro team Carte, abbiamo iniziato a progettare l’architettura di questi obiettivi, poiché quelli legati al gioco avrebbero richiesto requisiti tecnici sostanzialmente diversi rispetto a quelli ottenibili al di fuori delle partite. Abbiamo collaborato anche con il team Contenuti per assicurare la sostenibilità di tutti i nuovi obiettivi in fase di sviluppo, incluso il nuovo tipo di elemento estetico associato alla funzionalità (ovvero i titoli). Chiunque abbia sviluppato un sistema di obiettivi sa bene che questi influenzano ogni singolo aspetto del gioco. In MTG Arena, tutto questo si traduce nelle interazioni durante le partite, nell’apertura delle buste, nella costruzione dei mazzi, nel gioco in vari formati… e molto altro ancora.
Lo sviluppo e la manutenzione del software sono più semplici quando i vari componenti complessi non devono preoccuparsi delle operazioni degli altri componenti. Una funzionalità come quella degli obiettivi si prende gioco di questo ideale: tiene conto di ogni cosa.
Questa fase si è protratta fino all’estate del 2024 e, al suo termine, avevamo diversi tasselli del puzzle che funzionavano autonomamente. Avevamo implementato una pagina basilare degli obiettivi (usando però dei segnaposto al posto dei dati effettivi), alcuni obiettivi sul server (non ancora collegati all’interfaccia utente) e vari elementi work-in-progress che avrebbero aiutato a completare il quadro (inclusa una pagina per la visualizzazione e selezione dei titoli).
Un’odissea di mezza estate
All’inizio dell’estate, gran parte del team Funzionalità ha rallentato il lavoro sugli obiettivi.
Lascia che mi spieghi meglio … o forse già lo sai, dipende da quanto ti ricordi dell’anno scorso. Il 2024 è stato un anno speciale per MTG Arena, caratterizzato da espansioni molto complesse e importanti come Orizzonti di Modern 3. Questo ci ha permesso di creare funzionalità uniche che potessero essere associate a questo genere di espansioni. Nel frattempo, abbiamo realizzato che lo sviluppo degli obiettivi si era fermato nel tentativo di capire come implementare efficacemente e in modo sostenibile i progressi durante le partite (un compito naturalmente più arduo rispetto agli obiettivi conseguibili fuori dal gioco). La nostra soluzione è stata quella di:
- scegliere alcuni membri del team Funzionalità per elaborare gli aspetti più critici degli obiettivi durante le partite;
- fare in modo che il resto del team si concentrasse sulle funzionalità non legate agli obiettivi.
I membri del team Funzionalità che si sono dedicati ad aspetti diversi dagli obiettivi hanno realizzato alcune interessanti funzionalità. Abbiamo aggiunto la possibilità di vendere mazzi precostruiti nel Negozio e ha fatto il suo debutto un certo emporio chiamato il Nascondiglio all’orizzonte della Rana Psichica. Circa metà del team Funzionalità ha lavorato senza sosta su funzionalità secondarie, miglioramenti dell’esperienza utente e correzioni di bug. Tranquillo, è stato tempo ben speso!
Nel frattempo, l’implementazione degli obiettivi durante le partite ha iniziato a prendere forma. Il team ha optato per implementare gli obiettivi in partita usando lo stesso linguaggio delle abilità di Magic: The Gathering. Quando un giocatore inizia una partita, verifichiamo quali obiettivi sono pertinenti per quella partita e indichiamo al motore delle regole di caricare tale obiettivo come se fosse un’abilità. (Nota: non si tratta di un’abilità vera e propria per evitare che gli obiettivi stessi interagiscano con altri effetti in partita che verificano le abilità... Sì, abbiamo dovuto tenerne conto quando abbiamo implementato il sistema in questo modo.) Quando si verificano le circostanze che determinano l’ottenimento o il progresso di un obiettivo, il gioco lo registra. Il segnale dell’obiettivo aggiorna i progressi del giocatore in modo simile alle metriche delle missioni giornaliere. Per permettere ai designer di riutilizzare gli stessi segnali degli obiettivi e creare nuovi obiettivi più facilmente, abbiamo aggiunto la possibilità per i trigger degli obiettivi di accettare parametri: parti del testo delle regole che possono essere sostituite secondo necessità per standardizzare il trigger.
Ad esempio, consideriamo l’obiettivo “Crescita e forza”, che consiste nel “lanciare 250 magie Elfo o Idra nel corso di più partite”. Il testo che attiva questo obiettivo dice:
Ogniqualvolta lanci una magia {SubtypeParameter 1} o {SubtypeParameter 2}, {UpdateAchievement}.
In questo caso, sostituiamo i SubtypeParameters # rispettivamente con i sottotipi Elfo e Idra. Queste nuove parole chiave, SubtypeParameter # e UpdateAchievement, non fanno realmente parte del linguaggio di Magic: The Gathering, ma ciò che conta è che il motore di gioco le riconosca e le comprenda. Il motore di gioco è ora in grado di caricare correttamente i trigger degli obiettivi e di controllarli insieme a tutti gli altri trigger e stati del gioco. Un vantaggio di questo modo di procedere è che il motore delle regole conta anche le abilità innescate dalle carte che soddisfano questi parametri in modi specifici per le regole: ad esempio, un Cangiante può progredire verso l’obiettivo “Crescita e forza” dato che possiede tutti i tipi di creatura (Elfo e Idra inclusi).
Alla fine dell’estate, la tecnologia per gli obiettivi in partita era a buon punto, Orizzonti di Modern 3 era stato completato e noi eravamo pronti a riprendere gli obiettivi con entusiasmo.
Verso il traguardo
Tra la fine dell’estate e l’autunno, ci siamo dedicati intensamente all’integrazione delle diverse parti della funzionalità, implementando gli obiettivi mancanti e ottimizzando l’interfaccia e l’esperienza utente. Abbiamo diviso i nostri obiettivi in due “tipi”: uno per gli obiettivi principali di carattere generale e uno per gli obiettivi specifici di ogni colore di Magic. Abbiamo iniziato a preparare le immagini, le icone e i testi definitivi per tutti i nostri numerosi obiettivi. Ci siamo assicurati che ogni schermata funzionasse per i dispositivi mobili e i diversi layout. Abbiamo aggiunto strumenti per permettere al team QA di testare più facilmente gli obiettivi specifici. All’epoca speravamo che la funzione fosse pronta per il lancio di Fondamenti di Magic: The Gathering e, considerando solo la mole di lavoro che sapevamo di dover ancora completare, sembrava un traguardo raggiungibile.
Nonostante gli ingegneri fossero moderatamente ottimisti, dovevamo assicurarci che la funzionalità reggesse con un elevato numero di giocatori simultanei. Quindi, abbiamo fatto una simulazione. Abbiamo creato una serie di “giocatori” automatizzati che agivano in modo simile a quelli reali, abbiamo attivato gli obiettivi, ci siamo messi comodi e abbiamo osservato come andava. E fortunatamente, è andata molto bene! I server sono partiti e hanno retto come previsto.
Col passare del tempo però, durante le fasi di sviluppo e testing, ci siamo resi conto che qualcosa non andava. Ci è sembrato che la funzione fosse più “discreta” che “eccellente”. Ogni singolo aspetto della funzionalità non richiedeva semplicemente più rifinitura, la esigeva proprio. Non volevamo rinunciare ad alcuni degli obiettivi più creativi che avevamo pianificato, dato che potevano incontrare difficoltà a causa delle imperfezioni ancora presenti nel sistema. Non volevamo nemmeno lanciare la funzione prima di avere il già citato componente per tenere traccia di un obiettivo preferito nel tracker delle missioni! L’idea si è rivelata vincente! Abbiamo comunque continuato a trovare bug che, pur non essendo particolarmente problematici, ci davano da fare. Volevamo assicurarci che il team QA avesse abbastanza tempo per testare tutto. Tra i valori più importanti promossi dal team di MTG Arena spiccava questo: nessun difetto.
All’avvicinarsi della scadenza per Fondamenti di Magic: The Gathering, ci siamo trovati di fronte a una decisione cruciale. Alla fine, sebbene avessimo concordato di rilasciare la funzione con Fondamenti di Magic: The Gathering, abbiamo deciso di dedicarle tutte le attenzioni che meritava, posticipandone quindi il lancio rispetto a quanto inizialmente previsto. Visto l’avvicinarsi delle festività e il piano delle uscite, abbiamo deciso di spostare la funzionalità a un’uscita principale successiva: Aetherdrift. Per fortuna, come facciamo con tutte le funzionalità, l’abbiamo progettata in modo che fosse facilmente trasferibile a un’uscita futura (prassi sempre raccomandata nel mondo del software) e abbiamo compiuto i rituali necessari per effettuare lo spostamento.
Nelle settimane successive, la nostra sicurezza di aver fatto la scelta giusta è aumentata sempre più. Abbiamo continuato a riscontrare bug, casi limite ed esperienze utente problematiche nella funzionalità. Il lancio anticipato degli obiettivi avrebbe tecnicamente funzionato, ma non sarebbe stato all’altezza né dei nostri standard né di quelli dei nostri giocatori. Il tempo supplementare ci ha consentito di sistemare i problemi tecnici e perfezionare diversi aspetti che necessitavano miglioramenti. Gli obiettivi sbloccabili nel client sono stati resi più leggibili e ora includono anche quelle fantastiche animazioni. Abbiamo modificato le notifiche degli obiettivi per dare un tocco in più. La funzione non è solo sbocciata, ma è fiorita, come il team si aspettava.

Obiettivi completati!
Nella versione degli obiettivi che ha debuttato con Aetherdrift, ci sono un totale di 63 obiettivi “fondamentali” e 50 obiettivi associati a un colore di Magic (dieci per ogni colore), per un totale di 113 obiettivi. Sì, sono un po’ meno dei 126 previsti inizialmente, ma il team ha eliminato alcuni obiettivi durante lo sviluppo perché avrebbero potuto incentivare comportamenti problematici dei giocatori o erano semplicemente poco gratificanti da completare, non perché fossero tecnicamente irrealizzabili! Alcuni obiettivi sono stati modificati rispetto all’idea originale, ma quasi tutti quelli che avevamo pianificato sono stati realizzati con successo. Siamo soddisfatti del numero e della varietà degli obiettivi ottenuti. C’è un’ampia varietà in termini di difficoltà, equilibrio dei colori e modalità di gioco.
Abbiamo aggiunto tantissime ricompense per gli obiettivi raggiunti: nuovi avatar, emote, bustine protettive e persino una novità a livello estetico: i titoli, un nuovo modo per far sapere ai tuoi avversari che sei un tipo tosto.

Siamo davvero orgogliosi di tutto l’impegno dedicato per poterti offrire gli obiettivi. Come per tutto quello che facciamo, il team si è impegnato a farlo in modo responsabile, sostenibile e consapevole. Non si tratta dei soliti banali elenchi di controllo; sono veri e propri obiettivi artigianali creati con passione!
Come sempre, il team di MTG Arena terrà monitorato il feedback della community riguardo alla funzionalità, occupandosi di sistemare eventuali imperfezioni che emergeranno. Se hai qualche idea o suggerimento, non esitare a contattarci: siamo tutti orecchi!
Grazie per aver letto questo articolo e buona fortuna!