[ARHIIV] mängumeistrid
Pole sisse logitud. [Logi sisse ]
Mine lehekülje algusesse
Prinditav versioon | Telli teema e-mailile | Lisa lemmikutesse  
 Lehekülgi:  1  2
PROFIT!!!
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 16.2.2011 15:24 Tsiteeri
PROFIT!!!



avatud lähtekoodiga projekt

Idee: proovida game makeri sitt pathfinding RTSis kasutuskõlblikuks teha.

Teostus: alles käib

Šnitt: Vanad mängud, Dune2, Warcraft, Command & Conquer...

????: Vanad mängud kasutasid A* ma usun, aga liikumine oli erinevalt GMist ruudukaupa, mis tähendab et genereeriti kogu teekond, siis aga lahutati ruutudeks ja unit teadis kogu aeg järgmist ruutu, millele ta minema peab. Et kui keegi liikumise käigus "ette keeras", arvutati tee ümber. Järele mõeldes, oli osades mängudes veel ootamine, et kui tank harvesterile silla otsas ette tuli, harvester ootas natuke, kuni tank minema läheb.

Ülesanne 1: mp_grid_pathi lammutada nii lahti, et ta väljastakse teekonna ruutudena, mis tuleb läbida

Fail: p000 - Tee ehitamine laivis

Lisatud fail: p000.gmk (9.59kb)
169 korda tõmmatud
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Pilvemees
Moderator
Avatar

Liitunud: 28.7.2007
Postitusi: 791
[EEMAL]




postitati 16.2.2011 15:49 Tsiteeri


Alati ei ole mõtet jalgratast leiutada - uuri siit:
http://gmc.yoyogames.com/index.php?showtopic=461786


Skriptid:

GPF_Create(xstart,ystart,xend,yend,w,h, xoffset,yoffset,cellw,cellh)
GPF_CopySystem(pid)
GPF_Release(pid)
GPF_ReleaseAll()
GPF_Resize(pid,w,h)
GPF_SetDimensions(pid,w,h,xoffset,yoffset,cellw,ce
llh)
GPF_SetNumdir(pid,numdir)
GPF_SetDistancefunc(pid,disfunc)
GPF_SetCutcorners(pid,cutcorners)
GPF_SetPathfindingoptions(pid,numdir,disfunc,cutco
rners)
GPF_SetMover(pid,width,height)
GPF_GetWidth(pid)
GPF_GetHeight(pid)
GPF_GetCellWidth(pid)
GPF_GetCellHeight(pid)
GPF_GetXoffset(pid)
GPF_GetYoffset(pid)
GPF_Set(pid,x,y,v)
GPF_SetArea(pid,x,y,x2,y2,v)
GPF_Add(pid,x,y,v)
GPF_AddArea(pid,x,y,x2,y2,v)
GPF_Rem(pid,x,y,v)
GPF_RemArea(pid,x,y,x2,y2,v)
GPF_SetRectangle(pid,x,y,x2,y2,v)
GPF_SetCircle(pid,x,y,r,v)
GPF_SetEllipse(pid,x,y,x2,y2,v)
GPF_AddRectangle(pid,x,y,x2,y2,v)
GPF_AddCircle(pid,x,y,r,v)
GPF_AddEllipse(pid,x,y,x2,y2,v)
GPF_RemRectangle(pid,x,y,x2,y2,v)
GPF_RemCircle(pid,x,y,r,v)
GPF_RemEllipse(pid,x,y,x2,y2,v)
GPF_SetObjectRect(pid,objid,v)
GPF_AddObjectRect(pid,objid,v)
GPF_RemObjectRect(pid,objid,v)
GPF_SetObjectEllip(pid,objid,v)
GPF_AddObjectEllip(pid,objid,v)
GPF_RemObjectEllip(pid,objid,v)
GPF_ImportGmGrid(pid,grid)
GPF_SetGmGrid(pid,grid)
GPF_AddGmGrid(pid,grid)
GPF_Fill(pid,v)
GPF_SetStart(pid,x,y)
GPF_SetEnd(pid,x,y)
GPF_GetStartX(pid)
GPF_GetStartY(pid)
GPF_GetStart(pid)
GPF_GetEndX(pid)
GPF_GetEndY(pid)
GPF_GetEnd(pid)
GPF_GetCost(pid,x,y)
GPF_CalculatePath(pid,steps,update)
GPF_GetState(pid)
GPF_GetCalc(pid)
GPF_GetFound(pid)
GPF_Cleanup(pid)
GPF_PathNumPoints(pid)
GPF_PathLength(pid)
GPF_PathCost(pid)
GPF_PathPointX(pid,num)
GPF_PathPointY(pid,num)
GPF_PathPoint(pid,num)
GPF_ExportPath(pid,gmpath)
GPF_ExportPathExt(pid,gmpath)
GPF_ExportList(pid,list)
GPF_ExportStack(pid,stack)
GPF_ExportQueue(pid,queue)
GPF_DebugDraw(pid,maxv)

http://mangulooja.dragon.ee/lahinguatid/lahinguatid.gifhttp://mangulooja.dragon.ee/lembitu/lembitu_sig.pnghttp://mangulooja.dragon.ee/sigs/kindlus_sig.jpghttp://mangulooja.dragon.ee/keskaeg/sig.png
Aasta mäng 2009: Pilvemees, valter<br>
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 16.2.2011 16:06 Tsiteeri


Uuritud suht kõiki vähegi mainstream näiteid. Seda ka (kes esimesena teemale vastas?) Ei ole sexy.
Leiutan ikkagi ise, pealegi mul on hunnik ideid, mida tavalistes A* implementatsioonides ei ole.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Pilvemees
Moderator
Avatar

Liitunud: 28.7.2007
Postitusi: 791
[EEMAL]




postitati 16.2.2011 16:40 Tsiteeri


Soovin edu, loodan, et asi ei lõpe GM jõudluse puudusega.
http://mangulooja.dragon.ee/lahinguatid/lahinguatid.gifhttp://mangulooja.dragon.ee/lembitu/lembitu_sig.pnghttp://mangulooja.dragon.ee/sigs/kindlus_sig.jpghttp://mangulooja.dragon.ee/keskaeg/sig.png
Aasta mäng 2009: Pilvemees, valter<br>
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 16.2.2011 17:32 Tsiteeri


p001

* Ruudu leidmist veel ei ole
* Teed arvutatakse tükikaupa
* saab lisada igast takistusi ja näha reaalajas arvutusi

Lisatud fail: p001.gmk (11.84kb)
165 korda tõmmatud
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 16.2.2011 17:36 Tsiteeri


Võrreldes A* rakendamisega, mida teeb GM-i sisseehitatud pathfinding, on saadud pathi sobivale kujule viimine protsessori jaoks väga väike töö. Loodetavasti. Tegelt on A*-i rakendamine mingi vähegi mõistlikult väikse kaardi (100x100 nodi nt) puhul tänapäeva mõistes väga kiire protsess.
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 16.2.2011 17:36 Tsiteeri


wat
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 16.2.2011 18:02 Tsiteeri


Millest sa aru ei saanud :D?

Lühike versioon: "See tuleb piisavalt kiire."

Miks teed tükikaupa arvutatakse? Kas tervest pathist ei saa mingi algoritmiga ruute kätte?
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 16.2.2011 18:13 Tsiteeri


Tükikaupa selleks, et takistuse või grupi sihtkohta jõudmise korral ümber arvutada, ja tükikaupa arvutamist üldse proovida.

Ja proovida teha näiteks waypoint system, mis mõnes mängus on ja mida keegi ei oska tavaliselt õieti kasutada. Kui ma õieti mäletan, näiteks company of heroesis said shifti all hoida ja anda terve sõjaplaan, a la, roni siia peitu, siis hävita see tank ja siis sõida mapi nurka ja siis ründa baasi tagantpoolt...

Selleks aga tuleb ilmselt tee lahutada loendamatuteks pathideks praeguse kahe asemel.

Ma ei koodi kindlat asja, pigem katsetan igatepidi.

...ruute kätte. Tagumine aeg see ära teha. Ideid?
Mul endal üks on tegelt... selline kaval
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
jorss
Level 12


Liitunud: 25.1.2005
Postitusi: 951
[EEMAL]




postitati 16.2.2011 18:39 Tsiteeri


aga ära tee kaarti ruutudest. 100x100 kaardi puhul on sul juba 10 000 nodet, mida läbi vaadata
A* töötab väga hästi ka ebakorrapärase kaardi puhul. pane pathfinderi noded takistuste näiteks nurkadesse/servadesse ja siis, kui neid ära kustutad/lisad, genereerid kõik nende vahelised ühendused/kaugused collision_line vms asjaga uuesti.
ja kui kuhugi punkti pathi välja arvutad, võtad kõik punktid, millest eelmine ja järgmine näevad üksteist.
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorssKambakas I: jorss, Perfoon
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 16.2.2011 18:53 Tsiteeri


Ma ei pea ju tervet kaarti läbi vaatama? 100x100 kaardi puhul ma võin tee genereerida justnimelt screeni kaupa vms. Muidugi paneb see limiidi teeotsingu tõhususele, ei saa tegelasi saata suure mapi ühest otsast teise, aga see ei olegi ülesanne praegu... nagu timmo ütles, jõudlus tuleb niikuinii varem või hiljem ette... pealegi, batoonike lubab, et 10000 node'i on nohu.

Main objective (ehk milleks need katsed):
Et unit jõuaks ühelt ruudult teisele, ja oleks täidetud kaks tingimust: Ruut peab viima sihtmärgile lähemale (olema collision-free pathi osa) ja olema vaba.

Ma võin arvutada mapi ühest otsast teise teid niipalju kui tahes, aga kohe kui midagi "juhtub" on kellad. Nagu kõikide GM-A*-näidetega. Üks unit lendab läbi labürindi et vähe pole, pane 10 korraga, ja jama kui palju. Seega, tahaks teha hästi viisakaks just seda ühte sammu. Tee lõppu jõuab nii või naa!

ok, p002

Spacebar ei restardi enam tuba vaid saadab välja drooni, kes läbib käbe tee ja märgib maha ruudud, mida läbiti. Palju ma ka ei otsinud, mingit mõistlikkumat viisi tuvastada, milliseid ruute path läbib, ei leidnud.

Ma arvan et mängus see isegi töötaks -- nähtamatu droon liiguks unitist mõni ruut eespool ja söödaks ette infot maapinna kohta. Küll aga tuleb asendada ruutude järjestust märkiv ds_grid hoopis ds_listiga, ja selle tarbeks tuleks kõik ruudud identifitseerida ühe muutujaga, ehk nummerdada ära.

Mis on järgmine ülesanne.

EDIT: selline mõte tuli veel: Ütleme, saadan drooni välja. Mööda pathi liikudes, ta märgib maha punkte, mis jagavad pathi lõikudeks. Tee pikkuse järgi näiteks, jagada mingi distants. Ja unit juba... reaalajas, proovib leida kogu aeg teed järgmise lõiguni. Kuna täispikk tee leiti juba ja on teada, et lõikhaaval PEAB jõudma tulemuseni, otsib unit niikuinii teed õiges suunas. Iga lõigu markerini jõudes aga kontrollime täispika tee uuesti, juhuks kui juppideks jagatud tee enam sihile ei vii.

hm?

Lisatud fail: p002.gmk (13.24kb)
162 korda tõmmatud
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Pilvemees
Moderator
Avatar

Liitunud: 28.7.2007
Postitusi: 791
[EEMAL]




postitati 17.2.2011 09:08 Tsiteeri


Võid veel nii ka teha, et üksus mis parajasti liigub annab rada takistavatele üksustele käsu eest liikuda.
http://mangulooja.dragon.ee/lahinguatid/lahinguatid.gifhttp://mangulooja.dragon.ee/lembitu/lembitu_sig.pnghttp://mangulooja.dragon.ee/sigs/kindlus_sig.jpghttp://mangulooja.dragon.ee/keskaeg/sig.png
Aasta mäng 2009: Pilvemees, valter<br>
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
makerimages
Level 3


Liitunud: 2.2.2011
Postitusi: 73
[EEMAL]




postitati 17.2.2011 15:05 Tsiteeri


kui keegi mõne screeni/exe lisaks oleksin tänulik.Endal GM7

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 17.2.2011 18:58 Tsiteeri


Täispika tee arvutamine on loogiliselt võttes kõige mahukam protseduur ja seda tuleks hästi harva teha. Igasugused "tüüp tuli tee peale ette ja jäi seisma" probleemid (minuteada) lahendatakse nii, et kui takistus on ees, siis ootab pool sekundit ja otsib uue täispika tee. Niikaua kui midagi ees ei ole, ollakse oma vana raja peal ilma kaugele ette vaatamata. Ala kui sa warcraft IIIs paned uniti kuhugi liikuma ja seejärel blokid ta tee ära, siis ta jõuba blokini ja otsib uue tee. Ma ei tea, et keegi oleks WCIII pathfindingu kallal norinud kunagi.

Kui sa paned 10 unitit sama kohta liikuma siis tuleb rada leida ühe korra ja see kuidagi teistele unititele selgeks teha. Selle selgeks tegemine saab huvitav olema. Aga 10le või 30le unitile omaette tee leidmine on halb mõte üldiselt. Teatud kujuga takistuste puhul on ka 100x100 nodese kaardiga A* kolmekümnele unitile päris suur töö. Eriti gamemakeris.
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 18.2.2011 18:29 Tsiteeri


eitea. proovime
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Eigen
Level 3
Avatar

Liitunud: 7.2.2010
Postitusi: 67
[EEMAL]




postitati 18.2.2011 20:36 Tsiteeri


Pathfinding on tricky teema. Nt. Age of Empires 2 mängus oli 5 erinevat pathfindigu süsteemi, mis kokku andsid väga hea tulemuse.

Tsitaat:
... The game engine’s movement system was redesigned and no fewer than three separate pathfinding and two obstruction systems were developed, requiring five different people working on them at various times. A high-level pathfinder computes general routes across the world map, ignoring such trivial things as people walking, which were handled by lower-level pathfinders that could thread a path through a closely packed group of units. ...


http://www.gamasutra.com/view/feature/3437/postmortem_ensemble_studios_age_.php?page=1 (postmortemid on üldse hea lugemine)

Makes sense, et kõige pealt leiad globaalse pathi ja hakkad seda mööda liikuma. Kui miski ette tuleb, siis kasutad mõnda collision avoidance või väikese ala peale suunatud pathfindingut. Nt. mina oma first person shooteris (mida ma umbes paar tundi nädals nokitsen) kavatsen lahendada asja nii, et on üle leveli path. Punktist A punkti B liikumiseks kasutan seda. Kui mõni asi ette jääb, maja või mis iganes, siis sellel objektil on oma path ja olles selle lähedal, kasutatakse liikumiseks seda. Hea külg on veel see, et kui mapis midagi ümber tõstan ja sel asjal on oma lokaalne pathfinder, siis ei pea midagi ümber arvutama.
Vabateema III: Eigen<br>
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 19.2.2011 13:55 Tsiteeri


AoE2s tehakse ka siukest trikki, et kui sa paned nt 40 unitit ühte punkti liikuma korraga, siis nende pathfinding jagatakse mingi väikese arvu steppide peale ära, mitte ei tehta kõik korraga. Kui tähelepanelikult vaatad, siis näed, et mitte kõik unitid ei muuda korraga suunda vaid järjest pööratakse, alguses aint mõned ja siis alles keeravad teised ka otsa ringi (h).
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 19.2.2011 19:12 Tsiteeri


Nii.

P003r(r märgib rewrite ehk kirjutasin otsast peale kõik)
Tükeldatud pathfinding.

* hiireklõps -- leiab peatee ehk tee sihtmärgini
* teine klõps (tee samas kohas) -- saadab välja drooni, kes jagab tee kenasti juppideks ja edastab iga punkti koordinaadid
* Kui droon on oma "töö" lõpetanud, annab ta loa unitile liikuda. Unit otsib kasvavalt drooni väljastatud vahepunkte ja liigub mööda neid sihtmärgini

Map on 80x60 ruutu, ja kaalu andmiseks on takistused objektidena praegu, ehk vähemalt 901 objekti on ruumis

Edasi:
Kuna drooni liikumine võtab aega, võib seda mängus lagina käsitleda. Seepärast proovime liikuma hakata juba enne seda, kui droon on lõpuni jõudnud. Peale selle proovin lisada liikuvaid takistusi, et päriselt asja toimist katsetada.

Kui tööle saab, liigume edasi multi-unit süsteemini

Lisatud fail: p003r.gmk (12.38kb)
167 korda tõmmatud
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 19.2.2011 21:25 Tsiteeri


Tehniliselt peaks saama path_get_x(ind,pos) ja vastava get_y funktsiooniga pathi ruutudeks jaotada ilma drone-objektita, liigutades pos-i nullist üheni ja mingeid gridi sobivaid kohti otsides.

Et sul tuju liiga heaks ei läheks siis üks anomaalia kah. Sinise joonega on märgitud tee, mis peaks olema otsem, kui see, mis leiti.

http://batoonike.indrek.org/pathfinding.png


Savegame kah: http://batoonike.indrek.org/temp/_save268338880.sav
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 21.2.2011 06:58 Tsiteeri


P004
* Low-level pathfinder punktideni.
* Kui vahepunkti otsimine muutub liiga kulukaks, jätab vahele ja liigub kohe järgmiseni
* Natuke tuleb veel näppida mp_potential settinguid, liiga segadusse läheb vahepeal
* Batoonikese idee on hea. Selle teeme ära

Lisatud fail: P004.gmk (92.76kb)
152 korda tõmmatud
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
makerimages
Level 3


Liitunud: 2.2.2011
Postitusi: 73
[EEMAL]




postitati 21.2.2011 15:10 Tsiteeri


.exe bitte?

Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Silx-y
Level 11
Avatar

Liitunud: 11.6.2009
Postitusi: 846
[EEMAL]




postitati 21.2.2011 15:50 Tsiteeri


Cmon, sebi endale gm8.

Otsi mõni torrent või midagi... ( kui sa oled mode ära seda teksti tähele pane )


Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
Pilvemees
Moderator
Avatar

Liitunud: 28.7.2007
Postitusi: 791
[EEMAL]




postitati 21.2.2011 15:57 Tsiteeri


Panin tähele, et objektile oli tähtis jõuda teatud punktini, et sealt siis edasi järgmisse jõuda, mõnikord juhtus aga nii, et objekt jõudis takistusest mööda kuid liikus ettemääratud punktini ja sealt siis edasi - toorutas ilma asjata, sest oli jõudnud juba takistusest mööduda.
http://mangulooja.dragon.ee/lahinguatid/lahinguatid.gifhttp://mangulooja.dragon.ee/lembitu/lembitu_sig.pnghttp://mangulooja.dragon.ee/sigs/kindlus_sig.jpghttp://mangulooja.dragon.ee/keskaeg/sig.png
Aasta mäng 2009: Pilvemees, valter<br>
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 21.2.2011 18:37 Tsiteeri


Hm. Ma arvan et võiks proovida määrata kaugust käsiloleva ja järgmise punktini. Ja kui järgmine on tegelt lähemal, kohe sinna minna
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 26.2.2011 13:42 Tsiteeri


P005r... jälle rewrite :(

* droon on tagasi! Batoonikese sistema sakib, sest ruudud teisendatakse pathi_get_whatever funktsioonist valesti, ja juhtus nii et ruute märkides sattusid paljud hoopis takistuse peale. Peale 2 rewrite otsustasin et fuck dis
* 2 gridi märgivad teekonda ja asjade hetkeseisu
* fps sakib praegu gridi joonistamise pärast ja map_vaba kaardistamise pärast
* ruudukaupa liikumine toimib!!! nii et peamine missioon on tegelikut täidetud
* kommisin kõvasti koodi

Lisada jäi veel tee ümberarvutamine kui järgmine sihtpunkt on tegelt kinni. Mõtlesin et seda tuleks tegelt teha paar stepi "tulevikku mõõtes", või ruut enne liikuma hakkamist juba ette ära lukustades (mõistlikum).

Ja siis kogu pull multi-unitite jaoks kohandada (algus on tehtud tegelt)

__________________see oli tl:dr variant_____________

Päris idea, eesti keeles, ehk mis toimub ja mida ma tahan teha:

Praegu, klikiga
1) Leitakse käbe mp_grid abil tee (peatee)
2) Droon lippab mööda teed minema. Ta märgib uniti (g) tarbeks ära:

a) ruudud, mis on tee osa (map_teekond)
b) sihtpunktid nendel ruutudel (px[] py[y])
c) järjestab punktid läbi muutuja (maap)
d) annab unitile teada punktide koguarvu (punkte)
e) annab unitile loa liikuda peale 3-da punkti kaardistamist (state = 3)

3) Unit hakkab liikuma läbi funktsiooni ruudukaupa (g_liiguruutu), kasutades infot

a) px ja py. Need märgivad järgmist sihtmärki
b) Jooksvat loendajat liikumiseks (maap), et teada, milline px ja py on käsil
c) sihtpunktide koguarvu (punkte) et teada, kas tee mitte läbi juba ei ole. Lihtsuse mõttes kasutab droon sarnaseid muutujaid
d) Peale iga ruudu läbimist, võtab unit korra tempo maha.

Miks, loe edasi...

Mis nüüd lisada tuleb, on 2 asja

1) Tuleviku ennustamine. Et "hingetõmbemomendil" enne järgmise ruudu poole teele asumist, unit märgiks ära, et ta kavatseb selle ruudu hõivata. Nii saame teistele unititele öelda, et nad ei hakkaks sama ruudu peale ronima. Mis ongi kogu dune-tüüpi pathfindingu point ja idee.

Kuna märgime ära vaid järgmise ruudu, ei tohiks tulla ka erilisi anomaaliaid, et pathfind väldib ruute, mis tunduvad silmale tühjad (sest sinna pole keegi läinud alles)

2) Mingi viis kogu see pull ära optimeerida. Iga unit peab ütlema teistele unitetele, kuhu ta kavatseb minna... võib-olla peaksime ds_gridis kasutama ID numbreid väärtusena, et unit teaks mapilt lugeda seda, kuhu ta ise kavatseb minna, ja ei väldikse seda ruutu pathfindides... või midagi

3) Iga asi, mis osaleb pathfindingus, peab kasutama samasugust ruudupõhist liikumist. Praegu näiteks takistused ei kasuta ja seepärast on võimatu täpselt määratleda, millise ruudu nad hõivavad järmiseks.
________________________________________________

Kahju et keegi pole koodireagagi aidanud. Pole varem open-source projekti näinud vä?

Screen ka
http://www.indrek.org/i/pull/p005r.png

Ja fail

Lisatud fail: P005r.gmk (94.08kb)
123 korda tõmmatud
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
 Lehekülgi:  1  2

Hetkel loevad seda teemat:
Mitte ühtegi - 1 külaline

Mine lehekülje lõppu





Foorumi algbaas põhineb XMB mootoril, modifitseeritud Valter Pundi poolt
Kodulehekülg on tehtud Valter Pundi poolt vpundi ät gmail punkt komm