Przejdź do treści
Fyndi docs
English

Mapa i znaczniki#

Ta strona opisuje, jak narysowane są znaczniki na mapie: dlaczego nie są zwykłymi pinezkami, jakie rodzaje i kolory występują oraz ile to kosztuje wydajności.

Jedna warstwa znaczników#

Znaczniki nie są adnotacjami mapy — nie ma pinezek, kółek ani emoji zawieszonych nad ludzikiem. Rysuje je jedna własna warstwa graficzna w aplikacji i przygotowane rysunki (sprite'y) z tej samej palety na stronie. Powody są trzy:

  • pełna kontrola nad wyglądem — znacznik wygląda tak samo w aplikacji i w przeglądarce,
  • zero źródeł i warstw stylu mapy na znaczniki (nic nie wpada do stylu kafelków i nic go nie spowalnia),
  • jeden dodatkowy koszt rysowania na wszystkie ludziki i znaczniki zamiast kilkunastu osobnych warstw.

To była zmiana z wcześniejszego podejścia: pierwsza wersja rysowała znajdźki bitmapą „naklejoną” na mapę i kółka klastrów z liczbami, przez co styl znaczników odstawał od postaci. Teraz wszystko jest w stylu blocky — tak samo jak ludziki, więc mapa czyta się jednym językiem.

Ludziki (gracz, inni gracze, lobby, boty) to jeden zbiorczy layer zamiast kilkunastu osobnych warstw, a pionek postaci rysowany jest tym samym rendererem 3D co na mapie głównej i w mini-mapie widoku AR.

Rodzaje i kolory#

Znajdźki#

Klocek złożony z trzech części: ciemnogranatowa podstawa, złota skrzynka i kremowa iskra nad nią.

StanJak wygląda i kiedy
NiezebranaPełny klocek z iskrą, delikatny obrót, unoszenie i błysk — widoczna przy każdym zbliżeniu, także z lotu ptaka
ZebranaTen sam klocek w 55% rozmiaru, wyszarzony i bez iskry; wraca na mapę dopiero od zbliżenia 17
Etykieta z nazwąSam tekst, bez tła; pojawia się od zbliżenia 16,5, gdy klocki są już rozdzielone

Rozmiar na ekranie to 14–30 px: z bliska znacznik trzyma górny wymiar, z daleka działa podłoga rozmiaru, żeby znajdźka nie zamieniła się w pół piksela. To poprawka po zgłoszeniu „znajdźki nie są widoczne, dopiero po przybliżeniu”.

Punkty trasy#

Pięć stanów, każdy z własną bryłą, wysokością i kolorem:

StanModelWysokośćKolory
startproporzec na słupku ze złotym kapturkiem1,00 mflaga #2A9D8F, złoto #E9C46A
następny stopwyższy słupek ze złotą obręczą i iskrą, pulsuje0,96 mturkus i złoto, krem #FFF3C4
pierwszy stopsłupek ze złotą obręczą0,56 m#1D6B63 i złoto
zwykły stopsłupek0,52 m#1D6B63 z jaśniejszą głowicą
zaliczonyniski, wygaszony, bez złota0,24 m#6B7280, przezroczysty

Rozmiar liczony jest w pikselach ekranu, nie w metrach: od 14 px przy zbliżeniu 12,5 do 34 px przy zbliżeniu 17 (z zapasem na pulsowanie). Dzięki temu koniec z „flagą wielkości budynku” przy oddalaniu. Etykietę dostaje stop wyróżniony (ten, do którego prowadzi nawigacja) albo dotknięty; na stronie nazwa ląduje pod znacznikiem, żeby nie zasłaniać modelu.

Boty NPC#

Bot to ludzik chodzący po drogach. Żeby dało się go znaleźć z miasta, dostaje pierścień pod stopami i nazwę — i tylko tyle, bez żadnej adnotacji zawieszonej nad głową.

ElementZasada
PierścieńOwal pod stopami, w kolorze akcentu aplikacji (jaśniejszy na ciemnej mapie), z pustym środkiem, żeby było widać cień i buty
RozmiarTwardy dolny limit 26 px średnicy, rośnie do 52 px przy zbliżeniu spacerowym
NazwaPigułka z nazwą bota od zbliżenia 14,4; najwyżej trzy najbliższe boty, nachodzące etykiety są pomijane
Ikona rodzajuNa stronie, gdzie nie ma modelu 3D postaci, w środku pierścienia stoi mała plakietka z emoji z danych bota
DotknięcieOtwiera kartę bota z darem, trasą i godzinami służby (boty)

Ikony z jednego źródła#

Znacznik znajdźki pojawia się w trzech miejscach: na mapie w aplikacji, na mapie w przeglądarce i jako ikona w plecaku. Żeby nie powstał drugi, „podobny” rysunek, każde z nich pochodzi z jednego planu:

  • plan rysunku znajdźki opisany jest w module mapy strony: z niego powstaje obrazek wstrzykiwany do mapy, i z niego generowana jest ikona wektorowa dla aplikacji (jedna definicja obsługuje każdą gęstość ekranu),
  • paleta kolorów jest wspólna dla tych rysunków i dla brył 3D w aplikacji,
  • test pilnuje, że ikona w plecaku to wariant niezebranej (kolorowej) znajdźki, a nie odbarwiony.

Zasada jest szersza: paleta, progi zbliżenia i kolejność stanów znaczników są porównywane maszynowo między aplikacją a stroną. Rozjazd (na przykład dodanie koloru tylko po jednej stronie) kończy się nieudaną kontrolą, a nie cichą różnicą w wyglądzie.

Wydajność mapy#

Wydajność mierzymy przed i po każdej optymalizacji, dokładając kolejne warstwy: pionek → znajdźki → trasa → gracze → lobby → boty. Zmierzone i pilnowane liczby:

ElementZasada
Warstwy znaczników w stylu mapy0 źródeł i 0 warstw stylu — znaczniki są własnym rysowaniem, nie warstwą kafelków
BotyTrzy boty kosztują +1 wywołanie rysowania na klatkę (wszystkie ludziki w jednej partii)
Plan znacznikówPrzeliczany około 4 razy na sekundę i tylko wtedy, gdy kamera naprawdę się przesunęła
KameraJedna klatka = jeden zapis kamery, żeby pętla rysowania, gesty i podążanie za graczem nie walczyły o stan
Limit rysowaniaNajwyżej 40 znaczników; przy większej liczbie rysowane są najbliższe środkowi zbioru, a „następny stop” nigdy nie wypada
RozmiaryW pikselach ekranu, z dolnymi limitami — znacznik nie zniknie z daleka ani nie zamieni się w płachtę setek metrów z bliska
Oddalona mapaAnimacje i cienie tylko z bliska; z daleka znacznik nie renderuje kilkudziesięciu klatek na sekundę bez potrzeby

Opis zgodny z aplikacją 0.120.1 (zaktualizowano 2026-09-26).

Wersja aplikacji: 0.120.1 · Wersja API: 0.35.0 ·

docs.fyndi.app · 2026-09-26