-
Data: 2012-04-17 17:34:47
Temat: Re: zaawansowane ai
Od: " M.M." <m...@N...gazeta.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]<f...@N...gazeta.pl> napisał(a):
> M.M. <m...@N...gazeta.pl> napisał(a):
>
> > <f...@N...gazeta.pl> napisał(a):
> >
> > > niestety widze ze wylozenie o co mi chodzi zajeloby mi
> > > wiecej nizbym chcial na to przeznaczac,
> > Cóż no tak to już jest. Wielokrotnie przerywam post w połowie,
> > bo zdaję sobie sprawę że nikt nie zrozumie jeśli nie włożę w
> > niego tyle pracy ile wymaga.
> >
> >
> >
> > > w zadnym razie nie chodzi mi o algorytm na ruch - to jest
> > > skwantowane na siatce kwadratowych pol.
> > Może być ruch. Kilka klatek fizyki na jedną klatę graficzną i
> > potem skwantyzowane współrzędne x i y można rzutować na siatkę.
> >
> > > na niektorych stoja
> > > drzewa, inne sa puste, jest tez tam krowa, krowa moze
> > > przejsc sobie w jeden z osmiu kierunkow (lewo-prawo-gora-dol
> > > i na ukosy),
> > Jeśli wlezie na drzewo to można zrenderować kawałek siatki na
> > której stroi krowa pod drzewem :D
> >
> > > krowa spokojnie moze sie poruszac ruchami browna bo nie
> > > jest glowna postacia
> > Nie może poruszać się ruchami browna bo jest za ciężka i ma
> > za dużą bezwładność w stosunku do siły jakie oddziałują na
> > jej ciało :D Krowa gdy jest stara to majestatycznie łazi w tę i
> > w nazad. A więc musi mieć w grze swój wyimaginowany cel. Cel
> > czasami porusza się w jakimś kierunku. Krowa jest przyciągana
> > do celu. W ten sposób powoli będzie ruszała, osiągała prędkość
> > swojego marszu, a w pobliżu celu spowalniała. Cel porusza
> > się zgodnie z preferencjami krowy. Oddala się od wilków czy tam
> > czego a kieruje się ku soczystej trawce, a co jakiś czas ku
> > sadzawce albo rzeczce. Ponadto można dodać efekty stada, wtedy
> > krowa byłaby przyciągana siłą wypadkową do innych krów i swojego
> > celu.
> >
> > > (postac glowna jest
> > > poruszana przez gracza z klawiatury i moze byc akurat o
> > > kilometr alej) tylko epizodycznym botem, a cala gra jest
> > > skwantowana na kwadratowej siatce
> > Obliczenia można robić na floatach i potem rzutować na
> > skwantowaną powierzchnię, nie ma problemu.
> >
> >
> > > chodzi tylko o to by krowa nie zblizala sie w swoim brownowskim
> > > ruchu do niektorych innych postaci typu np goblin i inne
> > > (ten system relacji miedzy krowa a innymi tez trzeba jakos
> > > okreslic oprogramowac, moze byc na intach floatacjh albo enumach
> > > - i tez jestem ciekaw jak ktos by to zrobil,
> > Ja bym dał zestaw sił dla każdej pary obiektów. Ponadto jakby
> > obiekt tego wymagał dałbym mu cele. Cele obiektu to takie
> > obiekty które by oddziaływały tylko z nim. Cele bym rzucał
> > zgodnie to tu, to tam, np. dla krowy bym rzucał na trawę albo
> > koło wodopoju, sprawdzałbym czy cel nie jest zbyt blisko wilków.
> >
> >
> > > chodzi o algorytm (procedure) po jakiej krowa wybieralaby gdzie
> > > isc a gdzie nie, pierwsza wersja zakladala ze krowa sie rozejrzy
> > > w promieniu 10 pol, znajdzie najblizsza postac (co niesie ze soba
> > > trudnosc zwiazana z tym ze rownie odleglych postaci moze byc >1
> > > -( i co wtedy budowac liste i losowac jedna znich - to na maksa
> > > klopotliwe )-
> > To jest proste. Kłopotów w implementacjach takich rzeczy to są
> > dopiero KŁOPOTY :D. Nie da rady oprogramować jedną pętlą i
> > jednym wzorem świata w którym jest 1000 różnych obiektów, a
> > każda para obiektów (ba, czasami n obiektów) wyzwala jakieś
> > specyficzne akcje.
> >
> > > dlatego wlasnie pytam o kwestie dokladnej implementacji)
> > > - jesli ta postac budzi krowia nieufnosc skierowac sie w przeciwnym
> > > kierunku niz ta postac - ale jest to algorytm niezbyt dobry teraz
> > > klepie troche lepszy ale nie wiem czy i jego nie da siepoprawic
> > No a jaki klepiesz?
> >
> > Pozdrawiam
> > Aha...
> > Do wyznaczania trasy to jest przeszukiwanie grafu w szerz plus
> > jakiś chaos - krowy chyba nie zawsze wybierają optymalne trasy.
> > Jeśli krowa nie może wleźć na skały, albo jeśli musi ominąć
> > koniecznie to drzewo, to po ustaleniu celu można jej przypisać
> > ciąg elementów siatki na jakie ma kolejno włazić. Gdy cel
> > zmieni położenie, to ciąg elementów siatki trzeba policzyć na
> > nowo. Ale... coś mi się zdaje że dobrze wiesz o tym wszystkim :)
>
> dlatego m in nie chce uzywac A* - deaktualizuje sie, pozatym chce
> uzywac maksymalnie prostych rzeczy by sie nie pogubic,
>
> obecny pomysl jest taki, dla danego pola czytam sasiadow
> (np tylko ring 1,2,3 by nie bylo za duzo okolicy do zczytywania)
> i zliczam z wagami (w zaleznoci od ringa) znajdujace sie tam
> postaci do ktorych krowa czuje lekka animozje badz silny strach
> - to daje wspolczynnik jakosci pola;
>
> majac ta procedure moge zapuszczac ja np dla wszystkich osmiu
> sasiednich pol krowy i kierowac ja na to pole ktore jest najmniej
> animozyjne (co wymagaloby malego sortowania :( - nie chce mi sie pisac)
Nawet bardzo małego sortowania, wystarczy wybrać jedno najlepsze :)
Z tego może zrobić się bardzo ciekawy problem. Jeśli gdzieś w
pobliżu jest dobre pole na którym krowa by się chciała znaleźć
to jeszcze nie wszystko. Do jednego pola może wieźć wiele tras, a
przemarsz wymaga czasu i wysiłku. Np. na jednej z tras może płonąć
ognisko, a na drugiej być wąski mostek przez rzekę który także
odstrasza krowę. Więc krowa może podążyć ku gorszemu celowi jeśli
do tego gorszego celu będzie wiodła trasa przez w miarę korzystne i
niestraszne miejsca. By trzeba maksymalizować sumę korzyści jakie
napotka krowa na kolejnych polach swojej trasy, a ostatnie pole,
w którym będzie krowa najdłużej, trzeba by sumować z odpowiednio
dużą wagą.
Trzeba te pola przeiterować wiele razy i sprawdzać czy da
się osiągnąć większą sumę korzyści na każdym z pól. Z każdą poprawą
trzeba zapamiętać trasę która przyczyniła się do poprawy. Jeśli w
danej iteracji nie da się już poprawić żadnej korzyści, to trzeba
podać trasę która prowadzi do pola z największą sumą korzyści. Nie
mam pojęcia czy to da optymalne rozwiązanie, czy tylko zachłanne.
Ale do gry powinno wystarczyć. Podobnym algorytmem budowałem bazę
końcówek do gry w warcaby, w tamtym zastosowaniu dawało to rozwiązanie
optymalne. Pewnie ten algorytm ma jakąś mądrą nazwę, ale nie znam jej.
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 17.04.12 17:36
- 17.04.12 17:52
- 17.04.12 18:02 M.M.
- 17.04.12 18:11
- 17.04.12 18:32
- 17.04.12 18:42 M.M.
- 17.04.12 19:16
- 17.04.12 19:29
- 17.04.12 20:01 M.M.
- 17.04.12 20:29 Jordan Szubert
- 17.04.12 21:20 M.M.
- 19.04.12 17:03
- 19.04.12 17:49 zażółcony
- 20.04.12 10:26 zażółcony
- 20.04.12 10:50 Jordan Szubert
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=