Reitinlöytöalgoritmit

Abstract

Tämän opinnäytetyön tehtävänä on tuoda lukijalle esille ymmärrys, miten kaksi eri reitinlöytöalgoritmia toimii ja mitä ne tarvitsevat toimiakseen. Reitinlöytöalgoritmit tarvitsevat dataa maailmasta lyötääkseen reitin. Tähän tarpeeseen on kaksi suosittua tapaa tuoda kaikki tarpeellinen data reitinlöytöalgoritmille, grid ja NavMesh. Grid on käsitteenä hyvin yksinkertainen eikä ole mitenkään liitetty vain reitinlöytöalgoritmeihin. Ohjelmointityylejä gridin luomiseen on lukemattomia eikä tästä syystä ole mitenkään olennaista koodillisesti selittää, miten grid toimii. NavMesh on taas reitinlöytöön hieman spesiaalisoituneempi menetelmä saada tietoa maailmasta ja on ehdottomasti nykypäivän tärkein menetelmä gridin korvaajaksi. Ongelmana siinä on kuitenkin, että se on monimutkainen ja ohjelmistokoodin määrä on aivan valtava. Reitinlöytöalgoritmeistä opinnäytetyössä käydään läpi BreathFirst ja A-star, nämä eivät ole ainoat reitinlöytöön käytössä olevat algoritmit vaan on näitäkin lukemattomia eri menetelmiä. Iso osa reitinlöytö algoritmeistä on variaatioita A-star algoritmistä ja kun ymmärtää miten A-star toimii, ei näiden muiden variaatioiden ymmärtäminen vaadi paljoa. BreathFirst on yksinkertaisin esimerkki, miten selvittää reittiä pisteestä a pisteeseen b. Vaikka BreathFirst ei ole järkevä valinta melkein mihinkään reitinlöytöön liittyvään käyttötarkoitukseen, on se hyvä työkalu ymmärtämään perusperiaatetta reitinlöydön takana. Tärkein asia kuintenkin reitinlöydössä ja algoritmeissä on ainoastaan ymmärtää niiden toiminta. Melkein koskaan ei tule vastaan tapausta, jossa kannattaisi itse alkaa kehittämään omaa A-star-variaatiota omaan peliin, ohjelmaan tai robotiikkaan. Kun kehittää reitinlöytöä on suositeltavaa käyttää enemmän aikaa gridin tai NavMeshin suunnitteluun, sillä suurin osa kehitysajasta tulee menemään datan tuonnin optimointiin gridiltä tai NavMeshiltä. Kannattaa mieluummin käyttää valmiiksi tehtyjä toimivia plugineja tai Github-projekteja, koska oletuksena on että jos joutuu kehittämään omaa reitinlöytöä varmaan joutuu kehittämään kaikki muut työkalut esimerkiksi pelinkehitykseen ja silti lopputulos tulee todennäköisesti olemaan joko huonompi tai vastaava kun valmiiksi tarjolla olevat työkalut. Haluaako säästää 30-200€ tekemällä 20-2000 tuntia työtä

    Similar works

    Full text

    thumbnail-image

    Available Versions