Autor Wątek: RTS -> AI = Czego używać ???  (Przeczytany 8784 razy)

Offline Moriturius

  • Użytkownik

# Lipiec 29, 2007, 10:43:49
Sieci neuronowe i algorytmy genetyczne... wiem że to modny temat i każdy lubi się pochwalić że się na nim zna, ale pokażcie gry w których naprawdę zostały użyte :)

Quake 2 - jedne z botow ktore testowalem wykorzystywaly wlasnie takie algorytmy do uczenia sie. Fakt, ze na poczatku musialem zrobic serwer standalone i wrzucic kilkanascie botow zeby sie klepaly przez kilkanascie/kilkadziesiat godzin, ale koniec koncow fajnie sie z nimi gralo ;)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Liosan

  • Moderator

# Lipiec 29, 2007, 11:34:15
Skoro jest baza to jest konkretna produkcja, wiadomo co taka baza produkuje, znamy ilość i proporcje. Znamy skład wojska i od tego trzeba uzależnić plan ataku.

W jakimś innym wątku (bodajże o projektowaniu klas dla jednostek) wypowiadałeś się w bardzo podobny sposób :) Problem przy takim podejściu polega na tym, że każdy patch lub dodatek wymaga nagrania nowej rozgrywki, bo zmieniają się realia gry.

Liosan

Offline Goliatus

  • Użytkownik
    • Warsztat - tworzenie gier

# Lipiec 29, 2007, 15:41:35
To już musielibyśmy rozpatrywać konkretną gierkę, żeby wyciągnąć prawidłowe wnioski. Można jednak poczynić takie założenie, że żaden patch nie będzie wywracał rozgrywki do góry nogami, tylko będą to poprawki, który daną taktykę uczynią nieznacznie mniej lub bardziej skuteczną lub nieskuteczną. Rozumiem, że masz na myśli jakieś modyfikacje we współczynnikach?

Offline Liosan

  • Moderator

# Lipiec 29, 2007, 15:48:45
Dokładnie. Patrząc na takiego np. Blizzarda, większość poprawek dokonuje się, żeby zbalansować rozgrywkę, a więc uczynić różne taktyki mniej lub bardziej skutecznymi :) więc takie założenie jest trochę nie na miejscu. Z drugiej strony, blizzard dodał AI "hard" do warcrafta 3 dopiero po dodaniu wszystkich poprawek, więc pewnie coś w tej metodzie jest :) Jeszcze jeden przykład: w Kohanie jest ok. 20 różnych profili AI. Każdy należy do jakiegoś poziomu trudności i rasy, ale przede wszystkim każdy ma własne preferencje. Jeden lubi masować kawalerie, drugi robi elitarne kompanie, trzeci łuczników. Jeśli opracuje się odpowiednio dużo takich profili AI, to patche zmieniające współczynniki jednostek nie będą wymuszały zmiany parametrów AI - po prostu jakiś profil stanie się lepszy, a jakiś gorszy. Ewentualnie po dodaniu poprawek można dodać kilka nowych profili.

Liosan

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Lipiec 29, 2007, 16:39:34
Cytuj
Jeszcze jeden przykład: w Kohanie jest ok. 20 różnych profili AI. Każdy należy do jakiegoś poziomu trudności i rasy, ale przede wszystkim każdy ma własne preferencje. Jeden lubi masować kawalerie, drugi robi elitarne kompanie, trzeci łuczników. Jeśli opracuje się odpowiednio dużo takich profili AI, to patche zmieniające współczynniki jednostek nie będą wymuszały zmiany parametrów AI - po prostu jakiś profil stanie się lepszy, a jakiś gorszy. Ewentualnie po dodaniu poprawek można dodać kilka nowych profili.
Brzmi na tyle rozsądnie, że rozsądne IMO jest zaimplementowanie własnie czegos takiego. Dodatkowo jeżeli by dodać do każdego z tych profili funkcje oceniające ich jakość w danej sytuacji (np. chcemy szturmować zamek, więc konnica raczej tu się nie sprawdzi), to główne AI mogło by się przełączać pomiędzy tymi profilami, albo nawet starać się realizować równolegle kilka z nich.


Kontynuując to rozumowanie można spróbować realizować jednocześnie wszystkie profile na zasadzie narady wojennej generałów. "Generał" jest odpowiedzialny za zrealizowanie okreslonego celu taktycznego, takiego jak:
- utrzymanie kontroli nad punktem na mapie (np. ciasnym przejściem),
- utrzymanie stanu danego oddziału (np. kombinacja łucznicy+pikinierzy w określonej proporcji i liczbie),
- utrzymanie dopływu surowców,
- opieka nad umocnieniami i budynkami,
- przeprowadzanie wypadów na bazę wroga,
I tym podobne. Na wojennej naradzie, która w praktyce trwała by cały czas, określane są aktualne mozliwości bazy oraz wymagania każdego z generałów, a także ważność celu realizowanego przez każdego z generałów. Całość jest jednym wielkim sporem o dostępne surowce (jednostki i finanse), który można roztrzygnąć poprzez licytację (kto bardziej potrzebuje, powyżej pewnego progu - inaczej zasobu nie dostaje nikt). W ten sposób podejmowane są decyzje na poziomie strategicznym, po czym generałowie realizują swoje cele taktyczne, jeżeli są w stanie. Jezeli czegoś im zaczyna brakować, zgłaszają zapotrzebowanie na następnej naradzie (która odbędzie się np. w następnej sekundzie). Żeby wszystko miało nogi i ręce trzeba dodać do tego system, który w razie potrzeby będzie tworzył nowych generałów (generałowie mogą usuwać się już sami po wykonaniu celu lub stwierdzeniu jego bezsensowności).

Offline Humman

  • Użytkownik

# Sierpień 01, 2007, 22:41:17
Jak się już zrobi całe, działające AI w takim RTS-ie to implementacja poziomu trudności jest banalna. Wystarczy zwiększyć zasoby surowców, ewentualnie się oddziałów gracz w poziomie łatwym a przeciwnie dla poziomu trudnego.
 Choć w wiekszości RTS jest tak że komputer czeka tylko na głowny atak gracza, zbiera w tym czasie surowce, buduje i szkoli sporadyczne i małe grupki uderzeniowe aby nie dać o sobie zapomnieć. A mino to takie gry się sprzedają więc super skompliikowanego Ai nie ma sensu tworzyć.

Offline GorskY.exe

  • Użytkownik

# Sierpień 01, 2007, 22:47:52
Jak się już zrobi całe, działające AI w takim RTS-ie to implementacja poziomu trudności jest banalna. Wystarczy zwiększyć zasoby surowców, ewentualnie się oddziałów gracz w poziomie łatwym a przeciwnie dla poziomu trudnego.
 Choć w wiekszości RTS jest tak że komputer czeka tylko na głowny atak gracza, zbiera w tym czasie surowce, buduje i szkoli sporadyczne i małe grupki uderzeniowe aby nie dać o sobie zapomnieć. A mino to takie gry się sprzedają więc super skompliikowanego Ai nie ma sensu tworzyć.

Nie mogę się zgodzić, w Starcrafcie jest właśnie takie "nieskomplikowane" AI (sztywne skrypty sterujące budową/atakiem danych, predefiniowanych grup jednostek) i nie działa to jakoś potyczkom z botami na dobre :P Rozwija skrzydełka dopiero przy multiplayu z żywym graczem. Kampania to rzecz jasna inna historia.

Offline Liosan

  • Moderator

# Sierpień 02, 2007, 22:45:35
Jak się już zrobi całe, działające AI w takim RTS-ie to implementacja poziomu trudności jest banalna. Wystarczy zwiększyć zasoby surowców, ewentualnie się oddziałów gracz w poziomie łatwym a przeciwnie dla poziomu trudnego.
 Choć w wiekszości RTS jest tak że komputer czeka tylko na głowny atak gracza, zbiera w tym czasie surowce, buduje i szkoli sporadyczne i małe grupki uderzeniowe aby nie dać o sobie zapomnieć. A mino to takie gry się sprzedają więc super skompliikowanego Ai nie ma sensu tworzyć.

Po pierwsze, takie gry się sprzedawały, ale już niedługo nie będą. Dużo się słyszy o zwiększaniu nacisku na AI, a gracze głupi nie są i na handicapy się nie nabiorą.
Po drugie, nawet wspomniany wyżej starcraft dawał dużo lepsze wrażenie niż to, co opisałeś, a tam AI jest raczej.. mało wciągające :)

Liosan

Offline klosio.neostr...

  • Użytkownik
    • Moje Stare Gierki

# Sierpień 22, 2007, 01:18:22
A ja mam propozycję: zrobić AI gracza komputerowego małym nakładem środków (żeby działało), ale dać graczom możliwość jego modyfikacji, chociażby przez jakić prosty język skryptowy z pętlami i dobieranie pewnych współczynników. Mogliby potem wymieniać między sobą pliki z AI i mówić: "Teraz to mojego AI nie pokonasz!" :) A najlepsze stworzone przez graczy AI oczywiście wstawiać na swoją stronę i zrobić ranking.

Offline k_b

  • Użytkownik
    • Blog

# Sierpień 22, 2007, 09:48:44
No to już by było coś w stylu WarCompo. Poczytaj sobie o RoboCup.

Offline Humman

  • Użytkownik

# Wrzesień 20, 2007, 17:06:38
Tak patrząc po RTS-ach nawet całkiem nowych to w ich AI powtarzają się zwykle dwa wielkie błędy.
Jak się wskaże jednostce miejsce gdzie ma się udać to nie zwraca ona podczas ruch uwagi na to czy jest atakowana nawet jeśli wróg biegnie obok nieji i ciągle ją okłada. Co prawda są opcje 'idz i atakuj' ale jako dodatek a nie domyślna akcja.
Drugim błędem jest to że jednostki nie komunikują się między sobą, jak grupa jest duża a wróg atakuje jednostki z jednego brzegu to tę co są odpowiednio blisko podejmują walkę ale inne stoją sobie grzecznie nieśwadome że niedaleko biją ich towarzyszy. Nie jest trudno zrobić tak żeby jednostka po dostrzeżeniu wroga szukała wokół siebie w bliskiej odległości innych i informowała je że wróg jest w danym miejscu.