Hearthstone

Okiem projektantów: inteligentne tworzenie talii

Okiem projektantów: inteligentne tworzenie talii

Cześć! Jestem Tian, starszy analityk danych w zespole Hearthstone. Omówię dzisiaj nowe, inteligentne narządzie do uzupełniania talii. Mam również nadzieję, że uda mi się odpowiedzieć na pytania, które pojawiły się wśród członków społeczności po niedawnym wprowadzeniu tej funkcji.

Zanim przejdę do aspektów technicznych nowej funkcji, na które wszyscy z pewnością czekają, przedstawię w skrócie jej założenia.

HS_Blog_Divider_Filigree_Bar.png

Czym jest inteligentne narzędzie do uzupełniania talii?

Wiemy, że tworzenie nowych talii w Hearthstone przynosi wielu doświadczonym graczom mnóstwo frajdy i satysfakcji. Są jednak osoby, które wracają do gry po przerwie, dopiero zaczynają swoją przygodę z Hearthstone, mają mało czasu albo po prostu potrzebują pomocy w doprowadzeniu talii do stanu, który pozwoli im popisywać się w rankingu. Z myślą o tych graczach powstała funkcja inteligentnego uzupełniania talii. To narzędzie wykona za was całą pracę, a wy będziecie mogli wskoczyć do gry wyposażeni w popularną, skuteczną talię. Wystarczy parę kliknięć!

Aby skorzystać z funkcji inteligentnego uzupełniania talii, zacznijcie tworzyć dla dowolnej klasy standardową talię, używając dowolnej liczby kart. Następnie kliknijcie „Uzupełnij talię” albo „Gotowe”, a narzędzie samo uzupełni resztę talii w oparciu o wybrane dotąd karty, używając kart z waszych kolekcji. Oto przykład: jeśli wybierzecie Undastę i Udawanie trupa, a następnie pozwolicie grze przejąć stery, narzędzie weźmie pod uwagę kilka czynników i stworzy najlepszą możliwą talię, np. popularnego Agonalnego Łowcę z Katriną Zimognik (Katherina Winterwisp Deathrattle Hunter).

03_27_HS_DeveloperInsights_SmartDeck_BlogDecklist_800x1000_JY_v01_enUS.png

To naprawdę takie proste. Zacznijcie z pustą talią albo wybierzcie kilka kart, którymi chcecie grać, a my zajmiemy się resztą i stworzymy dla was świetną talię.

HS_Blog_Divider_Filigree_Bar.png

Jak to działa:

Jeśli chodzi o inżynierię stojącą za inteligentnym narzędziem do uzupełniania talii, możemy wyróżnić jej dwie warstwy. Obie mają wiele kolejnych warstw, a wszystkie razem umożliwiają automatyczne uzupełnianie waszych talii. Zobaczmy, jaką rolę odgrywa każda z tych warstw w procesie tworzenia pożądanej talii:

Pierwsza warstwa tworzenia talii: dopasowanie do metagry

03_27_HS_DeveloperInsights_SmartDeck_BlogAssets_300x400_JY_v01_H.jpgAby wszystko było jasne, wytłumaczę szybko, co mam na myśli, kiedy mówię „metagra”. Metagra odnosi się do bieżących trendów wśród talii w trybach rankingowych. Próbując stworzyć skuteczną talię, wielu graczy bierze pod uwagę bieżącą metagrę i umieszcza w swoich taliach karty, które mają poradzić sobie z popularnymi w danym momencie taliami. Przykładowo, w metagrze faworyzującej bronie (czyli takiej, w której wiele popularnych talii zawiera bronie) gracze będą prawdopodobnie umieszczać w taliach Żrący bagienny szlam oraz Żarłoczny szlam, czyli karty niszczące bronie, które posłużą do kontrowania takiej metagry.

W pierwszej warstwie tworzenia talii (czyli warstwie metagry) próbujemy stworzyć najlepszą możliwą talię na podstawie obecnych trendów w metagrze, kart, które już umieściliście w talii oraz kart dostępnych w waszych kolekcjach. Aby ustalić, które karty wpisują się w metagrę, używamy algorytmu obliczeniowego, który dzieli popularne talie tego samego rodzaju na podgrupy. Każda podgrupa reprezentuje typ talii używanych w bieżącej metagrze, np. Sekretnego Łowcę (Secret Hunter), Smoczego Kapłana (Dragon Priest), Nieparzystego Paladyna (Odd Paladin) itd. Zawartość poszczególnych talii w tych podgrupach może się nieco różnić, ale są to talie tego samego rodzaju. W języku uczenia maszynowego ten proces nazywa się klasteryzacją. Nasze algorytmy klasteryzujące przeczesują dane składające się z milionów wariantów talii, w których każda talia liczy się jako jeden punkt danych reprezentujący wektor w setkach wymiarów. Wykorzystując te informacje w połączeniu z innymi rozwiązaniami matematycznymi, algorytm następnie dynamicznie uzupełnia talię do momentu, aż będzie pełna albo aktywowana będzie warstwa „uzupełniania wstecznego”.

Oczywiście gracze na różnych poziomach umiejętności korzystają z różnych talii i stylów gry, i różne rzeczy stanowią dla nich wyzwanie, więc także metagra różni się w zależności od ich pozycji w rankingu. W tej sytuacji pomagają nam zróżnicowane podwarstwy procesu uzupełniania talii na podstawie metagry. Przykładowo, gracz w okolicach rangi 20 otrzyma prawdopodobnie kartę dostosowaną do innej metagry niż gracz mający rangę legendy. Co więcej, regularnie otrzymujemy raporty na temat zmian w metagrze, więc wasze talie będą zawsze odpowiadały jej bieżącemu stanowi.

Gdy nasze narzędzie będzie już miało za sobą próbę stworzenia skutecznej talii dostosowanej do metagry przy użyciu kart umieszczonych w talii oraz kart w kolekcji, przechodzimy do kolejnej warstwy procesu.

Druga warstwa tworzenia talii: uzupełnianie wsteczne

03_27_HS_DeveloperInsights_SmartDeck_BlogAssets_300x400_JY_v01_G.jpgJeśli warstwa związana z metagrą nie zdołała znaleźć 30 kart do talii przy użyciu kart z waszych kolekcji, do gry wchodzi druga warstwa, czyli uzupełnianie wsteczne. Dzięki tej warstwie wasza talia zostaje uzupełniona i zawiera najlepsze możliwe karty. Jeśli gra uzna, że nie może stworzyć skutecznej talii dostosowanej do metagry przy użyciu kart w kolekcji, jej celem stanie się stworzenie najlepszej możliwej talii przy użyciu dostępnych kart. Główną funkcją tego algorytmu jest stworzenie zbalansowanej talii zawierającej dobre karty i przyzwoitą krzywą many. Teraz zobaczmy, na jakiej podstawie narzędzie ocenia, czy dana karta sprawdzi się w danej talii.

Oprócz unikalnych synergii i potencjału tworzenia kombinacji każda karta ma indywidualną „moc” w talii danej klasy. Ta wartość nie jest stała i zmienia się dynamicznie w zależności od bieżących warunków talii. Moc karty można jednak ogólnie ustalić na podstawie trzech czynników. Oto one:

  • Wpływ na grę: jak duży jest wkład karty we współczynnik zwycięstw danej talii.
    • Przykładowo, w przypadku talii maga Żywiołak wody ma większy wpływ na zwycięstwo niż Straszliwy korsarz.
  • Koszyk kosztu many: zbiór kart o takim samym koszcie many.
    • Jeśli naszym celem jest odnalezienie jednej karty, która wypełni miejsce w koszyku kart o koszcie 1 lub 2 pkt. many, to Giermek Argentu może być dobrym wyborem, ale prawie na pewno nie będzie się nadawał do koszyka z 5 pkt. many.
  • Unikanie przepełnienia koszyka many:
    • Jeśli w danym koszyku kosztu many znajduje się już 10 kart, wolimy nie dodawać więcej kart z tego zakresu kosztu many, chyba że te karty są znacznie lepsze niż ich alternatywy.

Podczas procesu uzupełniania wstecznego dynamicznie wybieramy do talii karty o jak największej mocy. W języku matematycznym moc karty to funkcja, która składa się z warunków wpływu na współczynnik zwycięstw oraz licznych warunków ograniczających. Za każdym razem dążymy do tego, aby znaleźć jedną kartę spośród wszystkich dostępnych rozwiązań, która zmaksymalizuje funkcję celu.

HS_Blog_Divider_Filigree_Bar.png

Pozostałe czynniki: zasady, czas odnowienia i ograniczenia

03_27_HS_DeveloperInsights_SmartDeck_BlogAssets_3Steps_600x260_JY_v01.png

Poza zaawansowaną matematyką i metodami uczenia maszynowego wdrożyliśmy do tych warstw tworzenia talii także liczne zasady kontroli jakości, aby mieć pewność, że skład powstającej talii ma sens. Przykładowo, jeśli w niedokończonej talii macie już Księcia Kelesetha, postaramy się uniknąć dodania kart o koszcie 2 pkt. many.

Narzędzie do uzupełniania talii ma również funkcję „czasu odnowienia” dla tych graczy, którzy chcą porównać różne talie. Jeśli nie umieścicie w talii żadnych kart i w krótkim czasie wyślecie wiele żądań uzupełnienia talii, postaramy się przy każdym kliknięciu zaproponować wam inne talie. Ta funkcja nie aktywuje się, jeśli talia nie będzie na początku pusta.

Jeśli chodzi o ograniczenia, obecnie inteligentne narzędzie uzupełniania talii jest dostępne wyłącznie podczas tworzenia talii standardowych. Rozważamy wprowadzenie tego narzędzia w Dziczy. Jeśli chodzi o opcję uzupełniania pojedynczej karty pojawiającą się podczas próby utworzenia talii zawierającej karty, których nie ma w kolekcji gracza, nie wykorzystuje ona systemu inteligentnego uzupełniania.

HS_Blog_Divider_Gems.png

Napiszcie, czy udało wam się stworzyć fajne talie przy użyciu inteligentnego narzędzia do uzupełniania talii. A może macie jakieś pytania? Dajcie nam znać w komentarzach. Do zobaczenia w Karczmie!

Kolejny artykuł
Diablo III
1 d.

Starożytne i pierwotne przedmioty legendarne

Dla tych, który zrobili sobie ostatnio przerwę od zbierania łupu, przygotowaliśmy krótkie omówienie legendarnych, starożytnych i pierwotnych starożytnych przedmiotów.