Graftteori for tognørder
Posted: 08 Jan 2013, 15:39
Har du ofte tænkt "hm gid jeg kunne danne mig et samlet overblik over skinnenetværket på Crafters.dk" så er dine bønner nu endelig blevet hørt. Efter lidt et kringlet arbejde er det lykkedes os at få lavet sådan en oversigt:
http://www.crafters.dk/metronet/full.pdf
Oversigten laves hver gang serveren bliver genstartet (så minimum en gang om dagen) og laves på baggrund af de data Train Carts plugin'et indeholder. Hvad betyder dette helt konkret? Jo, billedet viser dermed præcist hvordan Train Carts betragter vores netværk og derved kan du selv regne ud om det er muligt at rejse fra et sted til et andet. Det vil altså sige at hvis du kan se din station ikke er forbundet så er det nu tid til at få gjort noget ved det!
For at forstå billedet kommer der en lille tegnoversigt. Alle figurer på billedet forsøges at placeres nogenlunde i forhold til hvordan de er placeret inde i spillet. Det er klart dette ikke kan lade sig gøre 100%:
Gule mærker betyder en destination. Det er steder man kan rejse til ved at klikke på fx et skilt ved metrostationen. Train Carts vil forsøge at vejlede dig fra det sted du starter på turen frem til din valgte destination.
Sorte prikker angiver knudepunkter eller "tags" som de hedder i Train Carts. Disse angiver steder hvor Train Carts har mulighed for at svinge og det er disse der benyttes for at du kan blive ledt den rigtige retning. Det er disse du sætter når du placerer et skilt under et sporskifte med teksten "[train] tags".
Sorte linjer viser der er et spor mellem to punker (sorte eller gule). Tallet der står udenfor stregen angiver antal blokke den er lang.
Røde streger er den vigtigste af dem alle. Den viser nemlig hvor der er evt. fejl på strækningen. Helt præcist definerer den en strækning hvor du kun kan køre den ene vej og pilen angiver hvad vej det er. Eftersom du i langt de fleste tilfælde ønsker at kunne rejse begge veje i metronetværket er det typisk en fejl som fx et sporskift der ikke er styret af Train Carts. Xcanner og jeg vil i den næste tid fokusere på at få størstedelen af de røde streger væk men du kan også selv gå i gang med at undersøge efter en evt. årsag.
Bemærk venligst at kortet viser samtlige metronetværk der er på serveren. Det betyder at der også vises netværk der ikke er forbundet til hovedmetroen (som nu også har en metroring der gør alt er samlet i en strækning). Vi kan ikke tvinge alle til at forbinde til netværket men det vil være cool hvis alle gjorde det. Vi pønser på at lave en nice feature hvor det vil gavne at alt er forbundet (ikke mere om det nu).
Hvis folk opdager fejl i netværket så tjek lige selv først om det ikke nok passer. Plugin'et er baseret på de data der faktisk bruges af Train Carts så hvis noget ikke passer så vil du ikke kunne rejse på strækningen. Husk desuden på at vi ikke opdaterer grafen løbende og kan heller ikke gøre dette! Train Carts gemmer kun information på disken når serveren lukkes ned så vi kan kun tegne en ny graf hver gang serveren er nede (hvilket også sker automatisk nu).
Håber det er noget i kan bruge til noget. Omend kan det altid bruges til at blære sig overfor vennerne hvor stort et skinnenetværk vi har.
EDIT:
Kildekoden til vores udgave kan findes her (bare for god ordens skyld):
https://gist.github.com/4494458
http://www.crafters.dk/metronet/full.pdf
Oversigten laves hver gang serveren bliver genstartet (så minimum en gang om dagen) og laves på baggrund af de data Train Carts plugin'et indeholder. Hvad betyder dette helt konkret? Jo, billedet viser dermed præcist hvordan Train Carts betragter vores netværk og derved kan du selv regne ud om det er muligt at rejse fra et sted til et andet. Det vil altså sige at hvis du kan se din station ikke er forbundet så er det nu tid til at få gjort noget ved det!
For at forstå billedet kommer der en lille tegnoversigt. Alle figurer på billedet forsøges at placeres nogenlunde i forhold til hvordan de er placeret inde i spillet. Det er klart dette ikke kan lade sig gøre 100%:
Gule mærker betyder en destination. Det er steder man kan rejse til ved at klikke på fx et skilt ved metrostationen. Train Carts vil forsøge at vejlede dig fra det sted du starter på turen frem til din valgte destination.
Sorte prikker angiver knudepunkter eller "tags" som de hedder i Train Carts. Disse angiver steder hvor Train Carts har mulighed for at svinge og det er disse der benyttes for at du kan blive ledt den rigtige retning. Det er disse du sætter når du placerer et skilt under et sporskifte med teksten "[train] tags".
Sorte linjer viser der er et spor mellem to punker (sorte eller gule). Tallet der står udenfor stregen angiver antal blokke den er lang.
Røde streger er den vigtigste af dem alle. Den viser nemlig hvor der er evt. fejl på strækningen. Helt præcist definerer den en strækning hvor du kun kan køre den ene vej og pilen angiver hvad vej det er. Eftersom du i langt de fleste tilfælde ønsker at kunne rejse begge veje i metronetværket er det typisk en fejl som fx et sporskift der ikke er styret af Train Carts. Xcanner og jeg vil i den næste tid fokusere på at få størstedelen af de røde streger væk men du kan også selv gå i gang med at undersøge efter en evt. årsag.
Bemærk venligst at kortet viser samtlige metronetværk der er på serveren. Det betyder at der også vises netværk der ikke er forbundet til hovedmetroen (som nu også har en metroring der gør alt er samlet i en strækning). Vi kan ikke tvinge alle til at forbinde til netværket men det vil være cool hvis alle gjorde det. Vi pønser på at lave en nice feature hvor det vil gavne at alt er forbundet (ikke mere om det nu).
Hvis folk opdager fejl i netværket så tjek lige selv først om det ikke nok passer. Plugin'et er baseret på de data der faktisk bruges af Train Carts så hvis noget ikke passer så vil du ikke kunne rejse på strækningen. Husk desuden på at vi ikke opdaterer grafen løbende og kan heller ikke gøre dette! Train Carts gemmer kun information på disken når serveren lukkes ned så vi kan kun tegne en ny graf hver gang serveren er nede (hvilket også sker automatisk nu).
Håber det er noget i kan bruge til noget. Omend kan det altid bruges til at blære sig overfor vennerne hvor stort et skinnenetværk vi har.
EDIT:
Kildekoden til vores udgave kan findes her (bare for god ordens skyld):
https://gist.github.com/4494458