Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 29. srpen 2017, 22:33:36 Předmět: |
|
|
Vypadá to pěkně. Ve videu, zdálo se mi to, nebo párkrát šla postavička trošku neočekávaně cca 2x nebo 3x? Tj o políčko jinak a pak zpět. _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
satik
Založen: 06. 05. 2010 Příspěvky: 161 Bydliště: Krkonose
|
Zaslal: 30. srpen 2017, 12:30:33 Předmět: |
|
|
Diky, asi jo, nejspis se do cesty zahrnuje i policko, na kterym postava stoji, takze jde nejdriv na stred toho policka a pak treba zase zpatky, na to kouknu az budu pridavat vojensky jednotky.
Spis me ted vic tizi jak nejak elegantne udelat kolize postav - zatim muzou chodit skrz sebe a kdyz skupinku poslu nekam, tak vsichni skoncej na hromade a vypadaji jako jedna jednotka  |
|
Návrat nahoru |
|
 |
micky

Založen: 28. 02. 2008 Příspěvky: 348 Bydliště: Plzeň, Praha
|
Zaslal: 30. srpen 2017, 12:38:53 Předmět: |
|
|
Tak uplne naivni napad, ze ktereho se da treba rozvinout neco lepsiho.
Muzes si kazde policko oznacit jako obsazene v case, kdy na nem je postava. Tedy vyhledas cestu a zaneses na jeji policka informaci, kdy se tam bude prochazet. Kdyz pak bude hledat jina postava cestu, opet vime, kdy se na jake policko dostane. Tam zbyva jen overit, jestli v ten cas neni uz nahodou blokovane. Pokud ano, chovas se k tomu policku jako ke zdi. _________________ https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/ |
|
Návrat nahoru |
|
 |
satik
Založen: 06. 05. 2010 Příspěvky: 161 Bydliště: Krkonose
|
Zaslal: 30. srpen 2017, 13:39:01 Předmět: |
|
|
j, akorat je to dost hloupy a jednotky se o sebe budou dost zasekavat, kdyz se to trochu zhusti, viz treba warcraft2, kde spousta tezicu na zlato = zacnou se zasekavat + jednotku mam o kus mensi nez policko, tak by to asi vypadalo divne.
Zatim uvazuju o variante, ze policko na sobe bude moci mit max treba 5 jednotek a ty se na tom policku budou mit presne dany pozice, kde muzou stat (pokud uz tam nejaka jednotka stoji) a dokud jich tam nebude 5, tak pres to policko bude mozny chodit, ale tam taky hrozi, ze se to bude casem pri vysoky hustote zasekavat, ale snad az mnohem pozdejc, no.
Pripadne by pres tohle plny policko taky bylo mozny chodit, ale rychlost chuze by byla treba polovicni. |
|
Návrat nahoru |
|
 |
Goblin

Založen: 10. 05. 2014 Příspěvky: 23
|
Zaslal: 30. srpen 2017, 15:23:02 Předmět: |
|
|
Nejjednodušší by asi bylo nechat ty jednotky přes sebe volně chodit, s tím, že by tam ty přebytečné (poslední příchozí) nesměly zůstat, kdyby byla na jednom poli víc než jedna (nebo nějaký povolený počet). A kdyby mělo víc postav přibližně stejnou cestu (pozici, lišící se o pár pixelů, stejný směr i rychlost), mohl bys jejich vykreslování nahradit vykreslováním organizované skupinky (tedy bys jejich sprity vykresloval s daným odstupem od ohniska skupiny, místo jejich reálné pozice).
Ideální by asi byla skupinová inteligence, která by dynamicky plánovala jejich zamýšlené pozice i s časy, které na nich budou předpokládaně potřebovat strávit. Zasekávali by se pak jen o panáčky z jiných skupin/nepřátele. Ale s tím by asi bylo zbytečně moc práce.  |
|
Návrat nahoru |
|
 |
Vilem Otte

Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 30. srpen 2017, 18:17:04 Předmět: |
|
|
Nevím jak počítáš pathfinding, ale co jsem dělal já (ve 3D). V NavMesh jsem klasickým funnelem našel nejkratší cestu (pokud to to ve 2D gridu da A* je to v pohodě), nezajímá tě zda políčko je obsazené nebo ne.
I když můžeš do NavMesh carvovat objekty, vyplatí se to jen pro velké (i tak je to ale vcelku náročné). Jelikož dynamické objekty bývají obvykle malé (ať už to jsou character controllery, nebo prostě krabice/sudy/cokoliv válející se kolem) nemá smysl carvovat (je to příliš náročné, navmesh by byl příliš složitý, etc.).
Použije se collision avoidance systém, ne nepodobný tomuto:
https://gamedevelopment.tutsplus.com/tutorials/understanding-steering-behaviors-collision-avoidance--gamedev-7777 _________________ Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. |
|
Návrat nahoru |
|
 |
JC
Založen: 06. 10. 2007 Příspěvky: 137
|
Zaslal: 30. srpen 2017, 19:04:38 Předmět: |
|
|
satik napsal: |
Zatim uvazuju o variante, ze policko na sobe bude moci mit max treba 5 jednotek a ty se na tom policku budou mit presne dany pozice, kde muzou stat (pokud uz tam nejaka jednotka stoji) a dokud jich tam nebude 5, tak pres to policko bude mozny chodit, ale tam taky hrozi, ze se to bude casem pri vysoky hustote zasekavat, ale snad az mnohem pozdejc, no |
Jo můžeš místo 64x32 sítě použít 32x16, pak to bude vypadat mnohem líp, jednotky dostanou prostor a budou mít šanci se snadněji vyhýbat. Případně dílek rozdělit jen "virtuálně" a zjišťovat, který z těch 4 poddílků je blokovaný. U jednotek nastavit prioritu, jestli má mít přednost lesník nebo voják. |
|
Návrat nahoru |
|
 |
mar
Založen: 16. 06. 2012 Příspěvky: 610
|
Zaslal: 30. srpen 2017, 22:26:32 Předmět: |
|
|
micky napsal: |
Tak uplne naivni napad, ze ktereho se da treba rozvinout neco lepsiho.
Muzes si kazde policko oznacit jako obsazene v case, kdy na nem je postava. Tedy vyhledas cestu a zaneses na jeji policka informaci, kdy se tam bude prochazet. Kdyz pak bude hledat jina postava cestu, opet vime, kdy se na jake policko dostane. Tam zbyva jen overit, jestli v ten cas neni uz nahodou blokovane. Pokud ano, chovas se k tomu policku jako ke zdi. |
To zní jako dobrý nápad, jenom bych to asi neřešil blokováním, ale penalizací. Trochu to zkusím rozvést (bez záruky
Ten čas by se dal možná vyřešit naivně 3d polem (do 64x64 by to asi stačilo), ale to by museli všichni chodit stejně rychle (nebo v nějakém násobku nejrychlejšího pohybu), k tomu aktuální čas by byl inkrementální index.
takže naplánovaná cesta by se zapekla jako penalizace do [(time + ofs) & mask][y][x], kde time by byl čítač a mask 2**n-1 a jednotka by při přechodu na nové pole vymazala penalizaci
A* by si pak musel pamatovat manhattan distance to origin (rel. čas) a penalizovat podobným způsobem příslušné pole.
Time by byl jednoduše cyklický čítač, který by se zvyšoval při každém fixním "tiku", kdy nejrychlejší jednotka přejde na další tile.
Navíc to pole by nemuselo být n*n*n, ale m*n*n, protože worst-case cestu, kde proleze všechna pole mapy, asi nenastane (ale na druhou stranu tam bude rezerva pro tu kvantizovanou rychlost) |
|
Návrat nahoru |
|
 |
satik
Založen: 06. 05. 2010 Příspěvky: 161 Bydliště: Krkonose
|
Zaslal: 2. říjen 2017, 10:48:53 Předmět: |
|
|
Demoverze uz je pripravena, jelikoz se ucastnim s ni jedny souteze, tak ji sem budu moct hodit az asi za tejden, tak aspon jeden screen a nejaka ta dev omacka:
Posledni dva zarijove tydny jsem toho udelal hromadu a multiplayer nezkousel, ale nastesti jak hra i v singlu bezi sitove (klient a server komunikuji pres TCP/IP), tak ve vysledku po vyzkouseni vice hracu vsechno funguje.
-do hry jsem pridal valecnika a lucistnika
-nepratelske jednotky/budovy poznate podle barevneho kolecka/ctverecku pod nima (vypada to dle meho celkem dobre a implementacne to bylo nejjednodussi)
-uz jde vytvaret jednotky, dokonce jde budovam zadat rally point
-pridan attackmove a jednotky ted podle cisloveho objektu/policka rightclicku samy vyberou, jakou akci pouzit
-pridan supply limit (musite stavet domecky pro vic jednotek)
-GUI se pregeneruje po resize okna
-minimapa
-konfigurovatelne animace rozestavenych budov
-doplneni menu o help/about, doladeni funkcnosti obrazovek v menu (napriklad pulka z nich nemela tlacitko zpet )
-kurzory pro ruzne prikazy
-system pro decaly (po zabiti jednotky, po vystrelenem sipu, parez)
-nahrana/pridana nekolikaminutova "hudba" (moznost pauznout tlacitkem)
-vylepsene chovani tlacitka ESC - rusi ted stavbu / attackmove
-idle villager na tlacitku TAB
-pro stavbu/utok uz se nebere u vetsich budov jako akcni jen to jedno policko, kde budova zacina, ale vsechny
-vesnicani si ted vzdycky najdou nejblizsi misto pro odneseni surovin
-info o budove, kterou se chystate stavet
-staveci fronta v budove
-nejake zakladni zvuky jednotek a oznaceni budov
-victory obrazovka po zniceni vsech nepratel a vraceni do main menu
Kolize jednotek jsem zatim neresil, celkem hratelne je to i bez kolizi, ty mam v planu zkusit jako jeden z dalsich kroku. |
|
Návrat nahoru |
|
 |
satik
Založen: 06. 05. 2010 Příspěvky: 161 Bydliště: Krkonose
|
|
Návrat nahoru |
|
 |
abuki

Založen: 31. 07. 2012 Příspěvky: 507 Bydliště: Praha
|
Zaslal: 11. říjen 2017, 08:21:34 Předmět: |
|
|
Suprovej progres. Teď jsem na macu, tak to nevyzkouším, možná později.
Ale baví mě jak po malých kouscích na tom makáš a je vidět ten postup, že každý týden/měsíc něco přibyde. Seš na dobrý cestě, držím palce. Pomalu by to chtělo přibrat i nějakého grafika, aby to dostalo trochu osobitý vzhled. _________________ Twitter @abukac
www.amanita-design.net
www.circusatos.com |
|
Návrat nahoru |
|
 |
satik
Založen: 06. 05. 2010 Příspěvky: 161 Bydliště: Krkonose
|
Zaslal: 26. říjen 2017, 10:12:27 Předmět: |
|
|
Novinky od minule:
-pár nových stromů
-fog of war se zobrazuje už i na místech, kam už žádná jednotka/budova nevidí, ale terén a budovy se tam zobrazují
-lobby obrazovka (už se multiplayerová hra nespouští tak, že jeden hráč začne hrát a druhej se připojuje do už běžící hry )
-barvy hráčů formou barevného čtverce pod budovama a kolečkem pod jednotkou
-uložení výběru na číslo - např. CTRL + 1 uloží výběr na jedničku
+spousta různých drobných oprav
 |
|
Návrat nahoru |
|
 |
|