Aktywne Wpisy
![jaroty](https://wykop.pl/cdn/c0834752/b69aece76b166029ed9a94967021d67bac62dd9a7f4d20f06e97bb3df750f827,q60.jpg)
jaroty +526
#sejm #polityka #bekazpisu #bekazprawakow
Konfiarskie i pisowskie szczury robiły GIGANTYCZNĄ inbę i wywalili kilkadziesiąt baniek na referendum z powodu rzekomych 2 tysięcy imigrantów, którzy mieliby trafić do Polski
Tymczasem typ z PiSu chciał do Polski sprowadzić MILION inżynierów z Afryki xDDD
"to nawet nie jest aferka" xDDddddDdddD
Konfiarskie i pisowskie szczury robiły GIGANTYCZNĄ inbę i wywalili kilkadziesiąt baniek na referendum z powodu rzekomych 2 tysięcy imigrantów, którzy mieliby trafić do Polski
Tymczasem typ z PiSu chciał do Polski sprowadzić MILION inżynierów z Afryki xDDD
"to nawet nie jest aferka" xDDddddDdddD
![jaroty - #sejm #polityka #bekazpisu #bekazprawakow
Konfiarskie i pisowskie szczury r...](https://wykop.pl/cdn/c3201142/55cf652bfd5f40b9fa2a921ea5029075645829da617552f2a6c9d562e32326be,w150.png)
źródło: image_2024-03-19_140729326
Pobierz![Kagernak](https://wykop.pl/cdn/c0834752/a6293d7d09020cc2ad808c4bea9db63ff76785a6420e17b190ef583b559c42cd,q60.jpg)
Kagernak +512
tl;dr: AI kierowców w grze istnieje, ale jest włączane okazjonalnie i jego zachowanie jest mocno ograniczone przez twarde nakazy projektantów gry
*
@deathcoder: o ile zgodzę się, że samochody w misjach to kartony na szynach to już zwykli kierowcy mają zakodowaną AI, nawet jeśli to bardzo prosta wersja.
Kierowcy samochodów poza poruszaniem się po linii potrafią:
- wykrywać przeszkody przed maską (gracz/inny pojazdy) i decydować czy wykonać manewr czy nie na tej podstawie
- wracać na pas ruchu spoza linii nawigacyjnej
- zawracać w obrębie pasa szacując czy uda im się to wykonać bez większej szkody
- trąbić i oczekiwać chwilę na ustąpienie gracza
- zmieniać płynnie linie nawigacyjne w obrębie danego pasa. to jest najważniejsze, o tym później.
Są to bardzo podstawowe zachowania ale powinny w zupełności wystarczyć w tej grze. 90% czasu auta poruszają się po prostu po danej linii nawigacyjnej w mniej lub bardziej realistyczny sposób. Wypychając samochód AI poza jego pas ruchu ten o tym wie i potrafi wrócić na swoją linię nawigacyjną. Potrafi nawet wykonać tak skomplikowany manewr jak zawracanie w miejscu wymagający szacowania przestrzeni potrzebnej do manewru przed i za pojazdem. To wszystko widać dokładnie na tym filmiku: https://streamable.com/mc5jgo
Najważniejszy detal widać na samym początku filmiku - widzisz ten duży brązowo/bordowy sedan próbujący ominąć mój samochód? Zwróć uwagę jak gwałtowanie skręca kołami i cofa ale zaraz się zatrzymuje, podjeżdża do przodu kawałek (więcej nie może bo blokuje go mój samochód), ale z tyłu ma więcej miejsca mimo to, gwałtownie się zatrzymuje. Wiesz dlaczego?
SAMOCHODOM AI NIE WOLNO POD ŻADNYM POZOROM PRZEKRACZAĆ/ZMIENIAĆ PASÓW RUCHU
To jest źródło większości problemów z kierowcami AI. Gracz stoi na środku drogi i nadjeżdża AI, trąbi ale nie omija, mimo iż sąsiedni pas ruchu jest wolny. Dlaczego? Bo mu nie wolno! Choćby się waliło i paliło, nie wolno mu przekroczyć sąsiedniego pasu. Czemu nałożono takie ograniczenie? Nie mam pojęcia. Potrzebujesz więcej dowodów? Proszę bardzo.
W najnowszym paczu przebudowano navmeshe dla szeroki jezdni - dostały dodatkowe linie nawigacyjne. Wcześniej szeroką jezdnią pojazdy poruszały się zawsze środkiem drogi, bo to była jedyna linia nawigacyjna. Brzmi rozsądnie, bo nie ważne czy pojazd to mały MaiMai czy potężny Kaukaz, takie ograniczenie gwarantuje nam, że pojazd może jechać z wyłączonym lidarem (czujnikiem określającym czy pojazd o coś zawadzi), który jest pewnie mocno zasobożerny - 10 aut wykrywających kolizję co sekundę potrzebuje na pewno znacznej mocy obliczeniowej. 10 aut poruszający się po linii nawigacyjnej jak po sznurku zużywa znacznie mniej zasobów. Oczywiście prowadzi to do sytuacji, że jesli linia nawigacyjna została poprowadzona zbyt blisko jakiś przeszkód to każdy większy samochód będzie zawadzał o tą przeszkodę, jak na słynnych filmikach na jutubie.
Spytasz, że przecież jak gracz wchodzi na ulicę to pojazdy się zatrzymują więc jakiś lidar musi działać i wykrywać przeszkodę w postaci gracza. Ano po trochę będziesz miał rację. Gracz aktywuje lidar nadjeżdżających pojazdów
wchodząc tylko bezpośrednio w środek ścieżki nawigacyjnej - każdy nadjeżdżający pojazd otrzyma stosowną instrukcję i aktywuje lidar, który wykryje obecność gracza i zatrzyma pojazd trąbiąc na gracza. Jeśli gracz zejdzie z drogi całkowicie, lidar się wyłącza, linia nawigacyjna aktywuje się i pojazd rusza. Ale co jeśli gracz odsunie się tylko trochę? Linia nawigacyjna wykryje to jako brak obecności gracza na ulicy, lidar w pojeździe się wyłączy a pojazd ruszy nie mając pojęcia, że jesteśmy nadal w zasięgu 'rażenia' i nas potrąci - wielu graczu na pewno tego doświadczyło.
Wracając do tematu przebudowy navmeshy. Nowy pacz wprowadził sporą zmianę - szerokie ulice otrzymały nowe linie nawigacyjne. Poza środkową, są jeszcze skrajne po bokach. Co ciekawe duże pojazdy mogą się poruszać się tylko po środkowej linii nawigacyjnej (żeby nie wadziły o pobocza korzystając ze zbyt skrajnej linii nawigacyjnej), ale mniejsze mogą korzystać z pozostałych. I korzystają. Co prawda bez ładu i składu w sposób losowy, ale korzystają. Oznacza to, że pojazdy potrafią płynnie zmieniać linie nawigacyjne, ale nadal mają nadrzędny nakaz - tylko w obrębie danego pasa ruchu.
Jakie to niesie konsekwencje dla gracza i świata gry?
Po pierwsze - wygląda to naturalniej. Samochody zajmują różne miejsca w całym spektrum szerokiej drogi zamiast ustawiać się idealnie w sznureczku jeden za drugim.
Po drugie - tworzy to więcej miejsca dla gracza chcącego wyprzedzać pojazdy. Jest to widoczne zwłaszcza na autostradzie, gdzie samochody porozstawiane w losowych odległościach od siebie znacznie ułatwiają dynamiczne wyprzedzanie jak w GTA i innych tego typu grach, wcześniej było to trudne, bo samochody stały równo obok siebie.
Po trzecie, najważniejsze - udowadnia to, że samochody posiadają AI i mogą reagować dynamicznie. To właśnie osiągnąłem wczorajszym filmiku, prawdziwym hicie na reddicie. Jeśli staniemy na jednym pasie nawigacyjnym, blokując go, samochód podejmie próbę ominięcia nas zmieniając pas nawigacyjny na drugi. Jako, że w obrębie pasa jezdni (którego przypominam nie wolno mu zmieniać) ma do dyspozycji maksymalnie trzy (bodajże) linie nawigacyjne może dokonać tego manewru. Warunkiem jest to, że musimy stanąć idealnie na dosyć wąskiej niewidzialnej linii nawigacyjnej, żeby aktywować lidar i samochód AI musi mieć miejsce do manewru. Miejsce do manewru jest liczone z zapasem. Dobrze widać to na tym filmiku:
https://streamable.com/ntfezk
samochód AI nie chcę mnie ominąć póki na przeciwnym pasie nie przejedzie inny samochód - lidar nie pozwala mu dokonać manewru, gdyż istnieje ryzyko zderzenia (w tym konkretnym przypadku nie istniało takie zagrożenie, ale widocznie lidar ma dosyć duży bufor bezpieczeństwa). Czemu samochód wcześniej nie podjął próby manewru? Nie wiem, może rozdzielenie lini nawigacyjnych następowało dopiero później? Ciężko mi stwierdzić. Na samym końcu filmiku widać wyraźnie, że dwa samochody zajmują oddzielne linie nawigacyjne w obrębie tego samego pasa ruchu - w tym wypadku są to dwie do wyboru. I nie, nie jest to powiązane z dalszym kierunkiem ruchu - po zakończeniu filmiku widziałem jak samochód mnie omijający mimo zajęcia skrajnie lewej strony pasa ruchu skręcił w prawo. Tak jak pisałem wcześniej - zmiany linii nawigacyjnych w obrębie pasa są losowe i nie związane z dalszym kierunkiem jazdy.
Jakie mam wnioski? AI kierowców w tej grze istnieje i wydaje się mieć zadowalający potencjał. Więc w czym problem? Ano w tym, że większość czasu jest ono wyłączone (co w sumie jest zrozumiałe, trzeba oszczędzać zasoby a włączanie każdemu pojazdowi lidaru, który ciągle skanuje otoczenia i oblicza zmienne jest marnotrawstwem) ale drugi poważniejszy zarzut - AI kierowców ma nałożone bardzo duże ograniczenia.
Pierwsze ograniczenie to już wcześniej wspomniany zakaz zmiany pasa ruchu. Nie wiem z czego to wynika - za dużo kolizji było, gdy pozwalano samochodom wjeżdżać na sąsiedni pas? Samochody z wyłączonym lidarem poruszające się ślepo po linii nawigacyjnej nie widziały tych wjeżdżających na ich pas ruchu w celu ominięcia przeszkody? Na pewno z jakiś ważnych powodów to wyłączono.
Drugie ograniczenie to zakaz taranowania. Jest to szczególnie widoczne i głupie podczas strzelanin i innych niebezpiecznych sytuacji. Pacz 1.2 wprowadził nowość - ostrzeliwany samochód AI zamiast zatrzymać się i ukucnąć przez kierowcę potrafi teraz uciec - kierowca daje gazu i ucieka od nas. Ale działa to tylko w sytuacji, gdy lidar nie widzi żadnej przeszkody. Jeśli ostrzeliwany samochód stoi w korku to jest po staremu - kierowca wysiada/kuca. Czemu nie zezwolić taranować wozów? Samochody potrafią robić dynamiczne manewry...
Trzecie ograniczenie to światła/przejścia dla pieszych. Temat jest złożony i dopiero badam, ale zauważyłem z jednej strony poprawe działania świateł na AI samochodów, ale z drugiej strony widziałem więcej awarii AI samochodów powiązanych z przejściami dla pieszych. Później to przeanalizuję.
*
Podsumowując ten dosyć długi wywód powtórzę: AI w grze jest obecne, ale na pewno wymaga dopracowania. Biorąc pod uwagę, że dokonano postępu w patchu 1.2 jestem raczej optymistycznie nastawiony. Może do końca roku zespół odpowiedzialny za AI ogarnie wszystkie problemy, level desigerzy dopracują navmeshe dla pojazdów i wszystko w końcu ze sobą zadziała.
W załączniku: inny filmik pokazujący działanie AI - moja obecność na linii nawigacyjnej zmusza nadjeżdżający pojazd do płynnej zmiany lini nawigacyjnej w obrębie pasa ruchu na środkową, jednocześnie zbliżając się włącza się lidar i upewnia się czy na pewno się zmieśći - pojazd zwlania, trąbi ale po chwili przyspiesza i jedzie dalej, lidar obiczył, że się zmieści.
#cyberpunk2077
Komentarz usunięty przez autora
@deathcoder:
Sądzę że raczej usuwają powoli robione na szybko łaty, które ograniczają dużo bardziej ambitne AI, którego twórcy nie zdążyli dopracować.
Pytanie jak daleko to docelowe AI jest od ukończenia. Czy jest jedynie mocno zabugowane i przez to te sztuczne ograniczenia, czy jest zupełnie niedokończone?
Systemy IT nie działają tak że wystarczy pewną funkcję wyłączyć i od razu wszystko działa.
"The game will release when it's ready"
@deathcoder:
Rzecz w tym że właśnie nie działa :) dlatego sądzę że być może to właśnie powyłączali moduły na szybko, stąd, między innymi, taką masa błędów.
Oczywiście może być inaczej. Szkoda że ostatni wyciek kodu źródłowego nie był publiczny
Musisz umiejętnie rozróżnić sytuacje kiedy coś nie działa, a kiedy nie jest dość skomplikowane.
Ktoś zrobił włącznik światąła, a Ty mówisz,
Ja doskonale rozumiem o czym mówisz, ale odnoszę się do tego co pisał OP @pablo397 - w swojej analizie wykazał, że pewne zaimplementowane funkcje są "sztucznie" ograniczane.
Pytanie czy są ograniczane dlatego, że ich właściwa implementacja jest mocno zabugowana, czy przez to, że właściwej implementacji po prostu nie ma.