A ja jaj. Przepraszam za OT, nie prowadzę sporu dla barwy samej sprzeczki tylko dla ustalenia prawdy.
Nie twórz fizyki gry na podstawie kierunku odbijania się szczątków rozbitego samolotu
Otóż to odbijanie się szczątków to jest fizyka gry (liczona na żywo albo udawana trikami) możesz nawet zaobserwować że szczątki odbijają się 3 razy od ziemi i sztucznie zatrzymują, tak żeby nie było to liczone w nieskończoność i nie obciążało systemu, żeby fizyka-dynamika skończyła się liczyć po 3 zetknięciu kawałka z ziemią - optymalizacja.
W fizyce symulowanej w grach najwięcej FPS zjadają kolizje i symulacje tarć (w programach 3D FPS staje wtedy do zera)
O dziwo o wiele więcej "prefomance" zabiera AI niż fizyka, gdyż fizyka w grach jest maksymalnie uproszczona. Mimo to kiedy w IL2 grzmotniesz w samolot albo w ziemię gra zwalnia.
Przepraszam,a jaka jest różnica pomiędzy ciałem a rozbijanym samochodem na które działają odpowiednie siły?I jaka jest różnica pomiędzy botem w dajmy na to Quake,a takim MiG-iem 3
Stopień komplikacji. Bot w Qaku porusza się w 2 osiach i może sobie co najwyżej podskoczyć albo przycupnąć. Policz sobie ile masz samych osi rotacji w przypadku samolotu i problemy z tym związane, "gimbale" itp.
http://en.wikipedia.org/wiki/Gimbal_lock nie mówiąc już o rozbudowanym AI do tego + fizyka.
Częścią wspólną jest to, że po zabiciu ciała i zestrzeleniu samolotu wyłącza się AI a włącza się Havoc np.
Dodatkowo boty nie utrzymują równowagi tylko przebierają nóżkami, a samochód czy samolot w IL2 jest zwieszony na "sprężynce" która symuluje fizykę, stworzenie super fizycznego modelu dla AI w przypadku IL2 czy gry typu Quake jest nieomal niemożliwe. Zobacz na jakim etapie jest robotyka w ogóle. Japońskie łażące zabawki też to przekłamują bo mają zmienny środek ciężkości w plecaczku.
Samoloty AI latają po algorytmach dlatego, że taki uproszczony model szybko się liczy i jest w nim najmniej błędów do opanowania i jeden model lotu można szybko podmienić do innych samolotów. Poza tym można to stale udoskonalać to że marketingowo się tego nie robi to już jest druga sprawa.
1.odpal sobie dowolny program do 3D i zaanimuj odbijającą się kulkę od ziemi
2.tą samą kulkę (bez animacji) potraktuj grawitacją i ustaw, masy, kolizje na obiektach
porównaj szybkość działania 1 i 2 przy założeniu że będziesz miał 100 takich kulek
wnioski z tego są następujące;
W przypadku 1 masz więcej FPS ale np kiedy obrócisz ziemię o 30 stopni to kulki nadal będą odbijać się w ten sam sposób czyli źle.
W przypadku 2 masz mniej FPS ale kiedy obrócisz ziemię o 30 stopni to kulki odbiją się pod właściwym kątem właśnie dlatego że jest to liczone dynamicznie a nie spreparowane, zanimowane. (większe obciążenie-mniej FPS).
I tak jeżeli ruch samolotów AI (model lotu) jest spreparowany w sensie 10 opcji do wyboru, to nie można od nich wymagać żeby zachowywały się zgodnie z prawami fizyki bo jest to fizyka udawana.
Program wybiera tylko możliwość lecę po krzywej o takim i takim wektorze w lewo albo w prawo albo robie pętle jeżeli znajduję się na x wysokości a gracz jest y metrów ode mnie i nadlatuje z z.z.z wektora. Zapewne są utworzone zakresy między (x,y,z.z.z.z) i dla każdej po kilka opcji zachowań, reszta to rachunek prawdopodobieństwa, do tego samolot zawieszony jest na jednej sprężynce tak żeby wyglądało to bardziej realistycznie, ale dokładanie dodatkowych sprężynek a co za tym idzie polepszenie modelu lotu wiąże się z dodatkowym obciążeniem i spadkiem FPS podobnie jak polepszanie AI. Ile problemów mieli z tym programiści z CryTek, którzy uważani są za twórców najlepszego systemu AI w grach.
Opcja z zaawansowaną fizyką zakładałaby (choć można zrobić to na 100 sposobów) że po przeliczeniu rachunku prawdopodobieństwa, zachowanie czyli jedna z wybranych opcji stała by w kolejce do "enginu" fizyki, i przeliczana przez sprężynki, czyli mniej FPS. (i jest to o wiele trudniejsze do zaprogramowania, bo wtedy to dopiero samoloty rozpieprzały by się o ziemię)
Co można zrobić to ulepszać te algorytmy AI ale zawsze będzie to dalekie od ideału, im bardziej będzie rozbudowane Ai tym mniej FPS, trudniejsze w kontroli, plus więcej możliwości powstania niedorzeczności. Co wcale nie oznacza że jest to niewykonalne.
Jeżeli ktoś chce zobaczyć w działaniu zaawansowane modele fizyki niech odpali grę MotorStorm na Psx3 (bo właśnie Psx3 ma specjalny bebech do liczenia fizyki, pc raczej nie jest w stanie tego pociągnąć)
żeby rozjaśnić odsyłam do
przeczytaj koniecznie
http://www.komires.com/pl/articles/page1-14.htmlhttp://pl.wikipedia.org/wiki/Programista_gierProgramista fizyki