.[ ČeskéHry.cz ].
AI v závodních hrách
Jdi na stránku 1, 2  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> AI
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
frca



Založen: 28. 07. 2007
Příspěvky: 1554

PříspěvekZaslal: 24. červen 2009, 08:36:44    Předmět: AI v závodních hrách Odpovědět s citátem

Zdravím, jak byste řešili AI v závodních hrách? Já znám jen způsob, kdy se auto snaží držet nějaké předepsané čáry. Tento způsob AI zdá se mi poněkud nešťastným. A to proto, že při změně trati je třeba měnit i čáru. Nedá se to nějak spočítat jenom z nějakých rámcových bodů na trati?
Takže problémy jsou dva:
1) Jak automaticky vytvořit AI line?
2) Jak ji využít?
K tomu využití mě napadá, že by se mohl použít nějaký výhled do budoucna, prostě si odsimulovat dopředu několik tras z aktuálního bodu a použít tu nejlepší. Jenomže nevím, jestli je toto řešení schůdné (jestli není moc náročné apod.)
Případně se nebráním ani jiným stylům AI, které neznám.
Díky,
frca
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 24. červen 2009, 09:59:08    Předmět: Odpovědět s citátem

no ja mam pocit ze taka AI v NFS je uplna sracka. ak ste v zadu tak vas nechaju za jedno kolo vas dohonit. na druhu stranu ak ich predbehnete tak aj ked mate dve kola naskok tak su schopne dohonit ani nie za kolo. proste sa prepinaju s uplnych trotlov na uplnych machrov podla toho na akej ste pozicii.

inak mozno by nebolo na skodu skusit ucenie sa od hraca. ked zajazdi dobry cas tak si zapametat ako jazdil a AI bude podla toho nasledne jazdit.
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Hardwire



Založen: 04. 09. 2007
Příspěvky: 117

PříspěvekZaslal: 24. červen 2009, 10:01:00    Předmět: Odpovědět s citátem

Co tohle?
http://www.red3d.com/cwr/steer/

Konkrétně "Path Following" a "Crowd Path Following"
http://www.red3d.com/cwr/steer/PathFollow.html
http://www.red3d.com/cwr/steer/CrowdPath.html

Můžeš to i snadno zkombinovat s ostatníma "behaviours".
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
frca



Založen: 28. 07. 2007
Příspěvky: 1554

PříspěvekZaslal: 24. červen 2009, 10:51:35    Předmět: Odpovědět s citátem

Já právě chci, aby byla fyzika nezávislá na AI. AI nemá informace o fyzice, takže neví, jak velký bude mít vliv který úhel volantu (a při zablokování kol může být třeba i opačný, než na kterou stranu se má jet). Takže se mi pořád vnuká ta myšlenka predikce. A nebo by mohla být schůdnější série testů fyziky, z jejichž výsledků by pak AI odvozovala, jak má na co reagovat? (Tím myslím například, že zjistí, že nějaký úhel volantu otáčí autem tak a tak rychle, a pak ho bude pro ten účel používat.)
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
if.then



Založen: 13. 04. 2008
Příspěvky: 579

PříspěvekZaslal: 24. červen 2009, 11:00:49    Předmět: Odpovědět s citátem

Co takhle testovat, na jaké pozici je na silnici, a pokud směřuje "ven" ze silnice, zatočit?
_________________
For guns and glory, go to www.ceske-hry.cz.
For work and worry, execute VC++.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Amorph



Založen: 06. 09. 2007
Příspěvky: 68

PříspěvekZaslal: 24. červen 2009, 11:05:12    Předmět: Odpovědět s citátem

Jen par napadu.

Oddelil bych pathfinding a ai. Ja bych to videl tak, ze paralelne ma fungovat pathfinding a fyzika a oboje zastresuje ai. Zastresuje tim zpusobem, ze od pathfindingu ma informaci, kam se chce dostat, z fyziky ma informaci kam se hybe a fyzice pak sdeli, jak ma pohyb zmenit. Ai line pak bude slouzit pro pathfinding a fyzika se mu bude pouze priblizovat podle svych moznosti a nastaveni ai. Nejake predikce pak muze byt v ai, ale ani nemusi. Automaticke vytvareni ai line neni uplne jednoducha vec. Doporucuju se na to vykaslat a zadavat ji rucne. Muzes si jich treba zadat i nekolik ruzne optimalnich a prepinat mezi nima podle "urovne ai".

Druha vec je vyhybani se dynamickym objektum a tam uz se to zacina komplikovat. Pokud mas spis ridce rozestavene prekazky, coz v zavodni hre asi budes, tak funguje docela dobre princip odpudivych poli - odchylujes smer k cili neprimo umerne uhlu a vzdalenosti k prekazce. Samozrejme je treba to chvili ladit a nastavit nejake koeficienty, ale v zasade to funguje docela jednoduse.

Blby na tom je, ze to nefunguje jako prilis dobra predikce, protoze nejvic se vyhybas, az kdyz jses blizko a ty potrebujes cestu trochu naplanovat. Takze pak by bylo vhodne to asi jeste spojit s nejakym preplanovanim cesty. Kdyz detekujes v nejake vzdalenosti prekazku - a musis i pocitat s jejim pohybem, tak si k ai line pridas docasnou "odbocku".
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
frca



Založen: 28. 07. 2007
Příspěvky: 1554

PříspěvekZaslal: 24. červen 2009, 11:13:48    Předmět: Odpovědět s citátem

Spousta i komercnich her pouziva zpusoby, ktere se mi nelibi. Napriklad si ohyba fyziku, jak se to hodi, nebo tam ma "hard reset", kdy ztracene auto vrati na vozovku. No ale jestli neprijdu na neco prevratneho, tak se budu muset taky k necemu takovemu uchylit.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Ladis



Založen: 18. 09. 2007
Příspěvky: 1534
Bydliště: u Prahy

PříspěvekZaslal: 24. červen 2009, 12:48:35    Předmět: Odpovědět s citátem

frca napsal:
Já právě chci, aby byla fyzika nezávislá na AI. AI nemá informace o fyzice, takže neví, jak velký bude mít vliv který úhel volantu (a při zablokování kol může být třeba i opačný, než na kterou stranu se má jet).

Není tohle trochu blbost? Jako lidský hráč přece vím, jaký vliv bude mít jaké zatočení volantem na daném povrchu a podle toho tím volantem hejbu (např. na sypkém povrchu musím zatočit dřív před zatáčkou a auto natočit, protože to chvíli trvá, než se auto začne tím směrem pohybovat). Takže takhle bych AI hráče neznevýhodňoval.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1554

PříspěvekZaslal: 24. červen 2009, 13:03:52    Předmět: Odpovědět s citátem

No jasně, problém je, jak to udělat, aby neměl nevýhodu. Jak vytvořit model hráče, jak mu prostě vštěpit tu znalost, jak zatáčet nebo obecně řídit v závislosti na situaci.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Amorph



Založen: 06. 09. 2007
Příspěvky: 68

PříspěvekZaslal: 24. červen 2009, 13:17:28    Předmět: Odpovědět s citátem

uplne jednoduse nahodnou toleranci od idealnich hodnot.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 24. červen 2009, 14:16:40    Předmět: Odpovědět s citátem

Amorph: To zní dobře. Uměl bych si představit třeba proměnnou "zpoždění", která by se v čase mohla mírně měnit (PC by ochaboval/zlepšoval se, plus semtam větší výkyv), a ta by ovlivňovala třeba čas reakce když je potřeba zatáčet, brzdit, nebo úhel natočení (odklon) od ideální křivky.

Co se týče těch kolizí, tam bych to viděl taky relativně jednoduše - pokud existuje několik herních taktů před tebou kolize s ideální resp. herní křivkou (ta by kvůli zpoždění a podobným faktorům stejně kopírovala ideální jen přibližně), tak nagenerovat třeba 4 body vlevo a vpravo od kolize a pokud nějaký z nich bude nekolizní, vést křivku přes něj. Pěkné by mohlo být i využití bézierových křivek (aktuální poloha, bod kolem kolize a bod zpět na ideální křivce - asi jako 2 spojené křivky s nějakou C0/C1 spojitostí v prostředním bodě). To by mohlo řešit kolize ale zase tam není obsaženo řešení ideální jízdy (pokud se dá objet překážka více způsoby tak zvolit ten, kde se musí méně zatáčet a brzdit, stejně tak by nemuselo být reálné to vůbec vytočit a dobrzdit).

Ještě mě napadá taková naivní varianta plánování - vysílat před auto polopřímky (dle možnosti aktuálního natočení) a zjišťovat jejich kolize, a vždy volit tu, kde je nejdelší trasa bez kolize a nejmenší zatočení volantu (váhy proti sobě). Aby to bylo schopno pořešit i jízdu do zatáčky apod. tak by se už muselo použít plánování na pár "tahů" dopředu (pro každou z polopřímek, která ještě neskončila v kolizi, vyslat pro další "tah" další polopřímky). S tímhle řešením bys každopádně nemusel předem v levelu nic počítat (pokud budeš schopen řešit kolize a určit směr pohybu po okruhu), a váhy mezi odklonem volantem a dráhou k nejvzdálenější kolizi by ti pomáhaly určit vhodnou rychlost (smyk by nastal buď v krajních polohách, kdy ti něco vjede, nebo díky umělému zpoždění reakce proti předpokladu v polopřímkách)
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
jobes



Založen: 23. 02. 2008
Příspěvky: 34
Bydliště: slovakia :c), komarno

PříspěvekZaslal: 28. červenec 2009, 17:09:06    Předmět: krivky Odpovědět s citátem

tie polopriamky sa mi pacia, keby auto vyslalo polopriamky a zatocilo by v smere tej najdlhsej. ked je o kusok dalej zase vysle tie polopriamky a zase sa natoci v smere tej najdlhsej (ak to bude vysielat kazdy FPS bude to vypoctovo asi narocne ale natacanie za najdlhou priamkou bude mierne okrem velkych zakrut).
problem bude asi z brzdenim, ale keby som posielal poloprianky par metrov pred autom ako by tam bolo niake auto, vcas by sa zistilo aka velka je zakruta a brzdilo by sa akurat

je to realne aby toto bolo kvalitne funkcne riesenie? bolo by to lepsie spojit to s tou idealnou ciarou a iba ked je na nej problem pouzit tie polpriamky?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Yahoo Messenger MSN Messenger
quas4



Založen: 18. 10. 2007
Příspěvky: 199

PříspěvekZaslal: 28. červenec 2009, 18:12:03    Předmět: Re: AI v závodních hrách Odpovědět s citátem

frca: pro ujasneni:

Chces vytvorit logiku auta bez toho aniz by auto znalo cestu pred sebou (resp. jen tu kterou prave vidi) a jizda je zavisla na aktualnim rozhodovani (ktere vychazi samozrejme i z fyzikalniho stavu, polohy ostatnich aut apod)? Nebo je to jinak a trat je dopredu znama a je mozne si predpocitat nevyhodnejsi trat? (zpusobu jak, je mnoho)

A pro dalsi uvahy neni spatne vedet: Jaka je datova reprezentace trati (grid, krivky, ..)? Vi se napr. kde je ostra zatacka nebo serpentina, apod., a ne jen uhel/tangenta v danem bode trate? Pokud plati prvni varianta (auto/ridic se rozhoduje kazdym okamzikem), co se vsechno vi o viditelnostech na trati - co okolni objekty? Jsou na trati vyskove rozdily (za kopec prirozene videt nejde)?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1554

PříspěvekZaslal: 28. červenec 2009, 18:29:29    Předmět: Odpovědět s citátem

Trať je známá, takže žádný pathfinding není třeba. Jinak čím méně pracné řešení, tím lepší. Za pracnost považuji napřiklad ladění AI line. Mělo by to celé fungovat do jisté míry automaticky. Informace o trati by byly nutné vytvořit do té míry, aby se zabránilo nejednoznačnostem (tzn. například nějak určit třeba střed vozovky apod.).
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
quas4



Založen: 18. 10. 2007
Příspěvky: 199

PříspěvekZaslal: 28. červenec 2009, 21:12:41    Předmět: Odpovědět s citátem

frca napsal:
Trať je známá, takže žádný pathfinding není třeba. Jinak čím méně pracné řešení, tím lepší. Za pracnost považuji napřiklad ladění AI line. Mělo by to celé fungovat do jisté míry automaticky. Informace o trati by byly nutné vytvořit do té míry, aby se zabránilo nejednoznačnostem (tzn. například nějak určit třeba střed vozovky apod.).


aha. Mozna toho chces prilis moc bez zadne namahy Smile Vybornou vychozi AI racing line muze byt krivka "nahrana" clovekem (dobrym hracem, jeho nejlepsi vykon), tak se muzes vyhnout nejhorsim vypoctum a krivka je dost dobra (muze byt hodne narocne napsat algoritmus ktery by spocital adekvatni data).

A dal premyslet jak treba jeste vice "tunit" tyto data. Napadu se da vymyslet urcite dost.

Vim, je to primitivni pristup, ale hrace nezajima jak je to naprogramovane ale jak se to hraje.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> AI Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna