VODA

Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 31. červenec 2007, 07:24:18 Předmět: PathFinder :: více jednotek |
|
|
Dotaz je jasný. Momentálně řeším pohyb více jednotek po herní mapě. Vygenerovat cestu pro jednu jednotku je v pohodě, ale co potom, když jich máte více a nechcete aby sebou navzájem procházely. Jsem línej vymyslet nějakou vlastní metodu. Docela by se hodilo zhruba popsat, jak se to normálně řeší a já si to nějak přeberu.
Tak děkuji. _________________ Opravdovost se pojí s trýzní... |
|
frca

Založen: 28. 07. 2007 Příspěvky: 1561
|
Zaslal: 31. červenec 2007, 07:35:10 Předmět: |
|
|
Napadá mě generovat cestu v každém okamžiku znova, nebo aspoň když jednotky narazí. Mapa je rozdělená na čtverečky a když se jednotka pohybuje, tak může být na dvou čtverečcích najednou. Když by měla druhá jednotka jít přes její čtvereček/čtverečky, vygeneruje se pro ni nová cesta. |
|
VladR
Založen: 30. 07. 2007 Příspěvky: 1322 Bydliště: Greater New York City Area
|
Zaslal: 31. červenec 2007, 08:20:43 Předmět: |
|
|
Samozrejme nebudes pustat pathfinding odznova na kazdu jednu jednotku - to by bolo priserne neefektivne. Vyberies si prvu jednotku, zistis cestu a vsetky ostatne jednotky pojdu podla jej cesty, ale nie tej uplne najdetailnejsej (pretoze by vytvorili hada), ale tzv. large-scale - proste len sektory, cez ktore sa prechadza, a na ktorych uz nie je problem davat subpathfinding na presne pozicie na renderovanie.
Pravdaze, nemozes to cele riesit pocas kazdeho framu pre vsetky jednotky. Musis mat pathfinding nakodeny tak, aby ho bolo mozne nacasovat na istu dobu resp. isty pocet framov - teda pustit, pauznut, pokracovat a on si sam podla parametrov urci, kolko jednotiek obsluzi v danom frame. Pritom musis tiez vziat do uvahy, ze ak je dana doba velmi dlha, tak tie posledne jednotky, co budu obsluzene, uz budu mat povodne miesto davno bloknute, cize vzdy si treba overovat, ci je dane miesto skutocne volne aj v danom frame (ale to je asi jasne).
Az to budes mat nakodene, uvidis kopec "artefaktov". Napr. jednotky obchadzaju prazdne miesto, kedze sa pathfinding spustal v case, ked tam prekazka bola, ale ta medzicasom odisla, kedze mala napr. priamu cestu, zatialco dotycna jednotka stracala cas obchadzkou.
Jeden z najcastejsich trikov je riesit pathfinding pocas rotacie jednotky a na zaciatku, ked vydas skupine prikaz - vtedy mas obvykle tak pol sekundy, kym sa jednotky zacnu hybat, co je dost na prvotny hruby pathfinding a aj par prvotnych obchadzok.
Kym to pekne natweakujes, potrva to, necakaj ze to budes mat za 3 dni finalne. |
|