Rozmawiałem z moim przyjacielem o tym, czy można stworzyć sztuczną inteligencję, która mogłaby pokonać każdego człowieka bez oszukiwania zasobów w grze strategicznej w czasie rzeczywistym. AI, która grałaby prawie idealnie. Sztuczna inteligencja współczesnych gier ma wiele obszarów, które można poprawić, większość z nich polega na oszukiwaniu zasobów, lepszym wczesnym rozwoju bazy z tego powodu i atakowaniu falami.
Pozostaje jednak pytanie, co należałoby zrobić, aby to poprawić, aby uzyskać najlepszą sztuczną inteligencję. Ponadto, jeśli masz jakiś przykład gry, w której użyto określonej funkcji, byłoby świetnie.
Edycja: Nie mogę wyjaśnić tych, którzy nie przeczytali tytułu lub kilku akapitów opisujących problem. Chodzi o gry strategiczne w czasie rzeczywistym i najlepszą sztuczną inteligencję. Oznacza to Strarcraft, Warcraft, Generals, Red Alert, Age of Empires, AI War itp. Gry, które mają więcej niż jeden poziom trudności, ale koncentrują się tutaj na ostatecznym wyzwaniu.
tenpn ma fantastyczny post pełen wspaniałych zasobów. Dziękuję tenpn! Chciałbym, aby więcej osób przyczyniło się w tym kierunku.
Odpowiedzi:
Odpowiedź na to pytanie jest trudna. Aby określić, co wymaga poprawy, musisz mieć znaną sztuczną inteligencję do pracy. Oto kilka przykładów AI RTS z aigamedev.com (wymagana rejestracja):
Niestety większość naprawdę dobrych rzeczy znajduje się za zaporą.
Typowym rozwiązaniem sztucznej inteligencji jest Planowanie zorientowane na cel, które wykorzystuje reguły do tworzenia planów satyfikowania celów. Minęło już trochę czasu, ale jest bardzo fajna. Na stronie Jeffa Orkina znajduje się krótki przegląd (pdf) na temat tego, w jaki sposób stosuje się go do FPS, ale dokładnie ta sama zasada (z różnymi zasadami i celami) działa dla RTS.
Wiele RTS będzie wykorzystywać heirarchie GOAP, z różnymi poziomami osiągającymi cele z poziomu wyżej i zajmującymi się różnymi poziomami szczegółowości pola bitwy. Przeczytałem świetny artykuł na temat sztucznej inteligencji niektórych gier wojennych z II wojny światowej, który był tak skonstruowany, ale mimo wszystko to google nie mogę teraz znaleźć linku. Złota gwiazda dla każdego, kto może mi pomóc.
Oczywiście skuteczność GOAP i innych planistów zależy od tego, jak dobrze parsujesz świat gry oraz od tego, jak wyrafinowane są twoje działania i cele.
Inne popularne technologie obejmują architektury narzędzi (pdf) do punktacji i priorytetów oraz tablice do analizy świata gry.
źródło
Chodzi o to, jeśli masz AI
wtedy masz grę, w którą nikt nie zagra, ponieważ nie mogliby przekroczyć pierwszego poziomu.
Najtrudniejszą częścią programowania AI jest uczynienie AI możliwym do pobicia, ale pobitym przez kogoś z odrobiną umiejętności. Uczyń go zbyt łatwym do pokonania, a gracze będą zniechęceni brakiem wyzwania, utrudniają, a ludzie znów będą mieli dość bicia.
Nie chodzi więc o tworzenie złożonej sztucznej inteligencji (co wcale nie jest trudne, sztuczna inteligencja może przetwarzać wszystko w obrębie obszaru gry jednocześnie, podczas gdy gracz może przetwarzać tylko to, co jest na ekranie), ale bardziej na temat tworzenia zrównoważonej gry.
źródło
Wiele można było zrobić, ale moja natychmiastowa reakcja na to pytanie była kontrapunktem: dlaczego ktokolwiek chciałby mieć najlepszą sztuczną inteligencję RTS? I dlaczego ta osoba po prostu nie gra online przeciwko innemu ludzkiemu przeciwnikowi?
Sedno jest następujące: sprawienie, by sztuczna inteligencja była nie do pokonania, to sprawienie, by myślał wystarczająco szybko (np. Musi mieć skróty), aby móc grać przeciwko 3, a nawet 7 przeciwnikom AI na tej samej mapie z zwykły komputer. Nawet dzisiaj i jutro, i spodziewam się, że nie zmieni się to nawet za dziesięć lat.
Kolejny problem: dopóki AI będzie przestrzegać surowych zasad, będzie można ją wykorzystać. Nawet niewyraźne reguły czynią go podatnym na exploity. AI musiałaby się uczyć i musiałaby popełniać błędy - celowe i niezamierzone. Trzeba też cię zaskoczyć. A potem grasz przeciwko innemu człowiekowi. Ponieważ sztuczna inteligencja nie jest nawet bliska skopiowania ludzkiego myślenia zarówno algorytmicznego, jak i mocy obliczeniowej, znacznie lepiej jest nie marnować czasu na sztuczną inteligencję dla jednego gracza, z którą gra się nie tak dobrze, jak innym człowiek, choćby ze względu na zaangażowane czynniki społeczne.
źródło
To, co definiujesz jako „oszukiwanie zasobów”, jest jak „zwiększanie równowagi” w grach wyścigowych. „Wzmocnienie” służy do trzymania paczki w stosunkowo bliskiej odległości od siebie, aby stworzyć iluzję ciasnego wyścigu. Jeśli gracz nie jest na prowadzeniu, może utrzymywać wzrok procesora, a jeśli gracz jest na prowadzeniu, wywiera presję, kładąc przeciwników bezpośrednio na ogonie, nawet jeśli sam procesor jest miernym kierowcą.
W RTS patrzysz na zbiór wartości, które można optymalnie ustawić. Wiesz dokładnie, ile czasu zajmuje uzyskanie zasobu, ile kosztuje budowanie przedmiotów, czasy przejścia na mapę itp.
Jeśli jesteś tym, który stworzył tabele i ma łatwo dostępne informacje, kwestią liczbową jest zbieranie danych w celu znalezienia najlepszych wskaźników wyjściowych.
Ale jak fajnie jest grać przeciwko wrogowi, który zawsze robi dokładnie to samo w zależności od kontekstu pola gry?
Więc dodajesz chaos. Dajesz AI efektywność na ruchomej skali. Masz nękać gracza. Jeśli wydaje się, że gracz radzi sobie zbyt dobrze, masz trochę sztucznej inteligencji i dajesz mu dodatkowe zasoby lub posiłki, aby utrzymać go na nogach.
Chcesz, aby gracz czuł satysfakcję z zmierzenia się z trudnym przeciwnikiem, zamiast dawać klapsy słabej AI lub zostać zabitym przez Hal9000. Doskonałość przeciwnika procesora polega na jego niedoskonałości. :)
źródło
Jedną wielką rzeczą jest to, że musisz nadążyć za strategicznym rozwojem gry. Żadne zmiany nie pozwolą AI wygrać meczu Starcraft 1 (w fair play), jeśli sądzi, że podstawowa armia marines jest sposobem na grę w Terran kontra Terran.
Nie tylko zapobiegnie to konsekwentnemu pobiciu AI z powodu wyboru przestarzałej strategii, ale także większy repertuar podejść do gry sprawi, że AI będzie bardziej wciągająca, jeśli AI dokona realnych wyborów po drodze.
Bogate drzewo strategii pozwala nawet na suwak trudności; np. szalona sztuczna inteligencja Zergów będzie miała tendencję do przyjmowania elastycznych podejść, które mogą dostosować się do wroga i szybko się rozwiną, jeśli da się taką możliwość, ale na normalnym poziomie trudności prawdopodobnie wybierze bardziej sztywne konstrukcje i będzie mniej podatna na masowe ekspansje.
źródło