Wróć do roadmapu
ZrobioneGra Kolejka

Czytelne wizualnie oznaczanie, czyja jest tura - animowany overlay na mapie

Autor: pawel007Utworzono: 2026-04-09Ostatnia zmiana statusu: 2026-04-20

Historia uzytkownika

Jako gracz grający z przeciwnikami AI, chce wyraznie widziec, kiedy zaczyna sie tura kazdego gracza (w tym moja), zeby nie musiec sledzic GameLogu aby zrozumiec co sie dzieje i nie tracic orientacji w dynamice gry.

Kontekst i problem

Feedback gracza (2026-04-06):

"Pomysl o wyrazniejszym oznaczaniu konca rundy i ruchach przeciwnikow. Obecnie jest to jak czat i dla historii fajne, ale (...) czytelniej byloby aby pojawial sie taki modal z wyraznym zaznaczeniem co dany gracz zrobil. (...) A co do oznaczania rund - troche jak taki duzy napis konca epoki w Civilization VII - duzy napis bez modalu np: 'Runda gracza Konduktor Zenek' nalozony na srodek mapy w kolorze gracza duza czcionka taki fade in -> fade out."

Obecny stan:

  • GameLog w bocznym panelu (prawa strona) pokazuje timeline ruchow
  • ActionPanel pokazuje "Konduktor Zenek mysli..." podczas ruchu AI
  • Brak wizualnego wyroznika miedzy turami na samej mapie
  • Gracz musi swiadomie patrzec na GameLog aby wiedziec co sie dzieje

Dlaczego problem: Przy grze z 2-3 AI, akcje dziejące sie "gdzies z boku" sprawiaja ze dynamika gry jest niewyrazista - trudno zlapac rytm "to teraz on, teraz ja".

Rozwiazanie

Animowany overlay na srodku mapy wyswietlający imie aktualnego gracza w jego kolorze na poczatku kazdej tury. Inspiracja: napis "Koniec epoki" w Civilization VII.

Kluczowe zasady:

  1. Overlay nie blokuje interakcji z mapa (pointer-events: none)
  2. Krotki czas wyswietlania (ok. 1.5s) - nie spowalnia rozgrywki
  3. Fade in -> hold -> fade out (plynne przejscie)
  4. Duza czcionka w kolorze gracza z glow effect (spojnie z "Pendolino" theme)
  5. Pojawia sie TYLKO przy zmianie aktywnego gracza (nie po kazdej akcji)

Acceptance Criteria

  • [ ] Overlay pojawia sie na srodku mapy gdy current_player_index sie zmienia (nowa tura)
  • [ ] Tekst overlay: nazwa gracza (np. "Twoja tura" dla human, "Konduktor Zenek" dla AI)
  • [ ] Kolor tekstu = kolor gracza (np. Zenek = czerwony, human = niebieski)
  • [ ] Animacja: fade in (300ms) -> hold (900ms) -> fade out (300ms), laczne ok. 1.5s
  • [ ] Efekt text-shadow/glow w kolorze gracza (zgodnie z theme Pendolino)
  • [ ] Czcionka Space Grotesk (tytulowa), rozmiar ~64-96px
  • [ ] Overlay nie blokuje klikania mapy (pointer-events: none)
  • [ ] Overlay nie pojawia sie przy pierwszym mountowaniu komponentu (tylko przy zmianie tury)
  • [ ] Overlay nie pojawia sie w fazie initial_tickets ani finished
  • [ ] Przy szybkich turach AI (wieksze modele trwają dluzej, mniejsze krocej) overlay nie nakłada sie na siebie - jesli nowa tura zaczyna sie przed koncem animacji, poprzedni overlay jest natychmiast zastępowany
  • [ ] Mozliwosc wylaczenia przez gracza: opcja w ustawieniach "Pokazuj oznaczenie tury" (domyslnie wlaczone)
  • [ ] Ustawienie persystowane (cookie lub localStorage)

Done!

Plan wdrożenia 2026-04-09

Wersja zrewidowana. Poprzedni szkic powyżej zachowany jako zapis historyczny; ten rozdział zastępuje go do publikacji. W porównaniu do szkicu: dopasowana struktura do wymaganego formatu, usunięte nazwy elementów z kodu, usunięta wzmianka o "trybie jasnym" (gra ma wyłącznie ciemny motyw), decyzje zebrane w osobnej sekcji, kryteria akceptacji rozbite per etap.

W skrócie

Na początku każdej tury w środku mapy przez chwilę rozbłyśnie duży napis w kolorze aktywnego gracza: dla Ciebie "Twoja tura", dla przeciwników ich imię (np. "Konduktor Zenek"). Napis pojawi się płynnie, przytrzyma przez moment i tak samo płynnie zniknie - łącznie około półtorej sekundy. Nie zasłoni mapy, nie zablokuje klikania, nie spowolni gry. Jeżeli efekt Ci nie odpowiada, wyłączysz go jednym kliknięciem w ustawieniach, a wybór zostanie zapamiętany między rozgrywkami.

Czego dotyczy / nie dotyczy

Dotyczy:

  • Momentu, w którym "pałeczka" przechodzi na kolejnego gracza w trakcie normalnej rozgrywki.
  • Ostatniej rundy gry (każdy gracz dostaje jeszcze jedną turę - ogłoszenie działa tak samo jak wcześniej).
  • Wyboru: kto aktualnie gra (Ty czy konkretna postać AI) i w jakim kolorze.

Nie dotyczy:

  • Zasad gry, punktacji, kosztów dworców, kar za bilety, kolejności tur, warunków końca gry - wszystko zostaje dokładnie takie jak dotąd.
  • Sposobu, w jaki AI podejmuje decyzje. Postacie grają identycznie, zmienia się tylko sposób, w jaki ich wejście jest zaznaczone wizualnie.
  • Tego, jak gra zapamiętuje Twoje rozgrywki i postępy.
  • Tego, jakie dane gra o Tobie zbiera. Ustawienie "Pokazuj oznaczenie tury" żyje wyłącznie w Twojej przeglądarce.
  • Fazy wyboru biletów startowych (wszyscy decydują "jednocześnie", nie ma wtedy klasycznej tury) ani ekranu wyników po zakończeniu gry.

Etapy wdrożenia

Etap 1 - Ogłoszenie tury na mapie

W każdym kluczowym momencie, gdy tura przechodzi na kolejnego gracza, na środku mapy pojawi się duży, wyraźny napis w kolorze tego gracza:

  • Gdy to Twój ruch: napis "Twoja tura" (w języku angielskim: "Your turn") w Twoim kolorze.
  • Gdy gra postać AI: imię postaci (np. "Konduktor Zenek", "Pani Jadwiga", "Pan Mieczysław") w jej kolorze. Imiona postaci nie są tłumaczone - są ich nazwami własnymi.
  • Wokół napisu zobaczysz subtelną poświatę w tym samym kolorze, spójną z neonowym, kolejowym stylem gry.
  • Napis będzie płynnie się rozjaśniał (~0,3 s), przytrzymywał na ekranie (~0,9 s) i płynnie znikał (~0,3 s) - razem około półtorej sekundy.
  • Napis nie blokuje interakcji - możesz cały czas klikać trasy i miasta, nawet gdy jest widoczny.
  • Napis nie pojawia się przy wejściu do gry ani przy kontynuacji zapisanej rozgrywki - tylko wtedy, gdy realnie zmienia się aktywny gracz.
  • Napis nie pojawia się w fazie wyboru biletów startowych ani po zakończeniu gry.
  • Gdy tury AI lecą szybko jedna po drugiej, napis nie nakłada się sam na siebie - płynnie podmienia treść na bieżącego gracza.

W tym etapie efekt jest włączony na stałe, dostępny od razu w obu językach (polskim i angielskim), dla wszystkich konfiguracji liczby graczy (1 vs 1, 1 vs 2, 1 vs 3).

Efekt dla gracza: Od razu, bez jakiegokolwiek ustawiania, widzisz na mapie wyraźny sygnał "teraz jest tura X". Nie musisz już szukać wzrokiem panelu z listą ruchów, żeby zrozumieć, kto właśnie gra.

Jak poznasz, że etap jest gotowy:

  • Rozpoczynasz grę 1 vs 1, 1 vs 2 i 1 vs 3 - w każdej z nich, przy każdej zmianie tury, widzisz duży napis w kolorze aktywnego gracza.
  • Napis pojawia się w Twojej turze z tekstem "Twoja tura" (lub "Your turn" w angielskiej wersji).
  • Napis pojawia się w turach AI z imieniem postaci i w jej kolorze.
  • Napis znika po około półtorej sekundy i nie wraca, dopóki tura nie zmieni się ponownie.
  • W trakcie gdy napis jest widoczny, możesz spokojnie klikać trasy, miasta i przyciski akcji - napis niczego nie blokuje.
  • Przy bardzo szybkich turach AI (kilka zmian pod rząd) napisy nie nachodzą na siebie - płynnie przechodzą jeden w drugi.
  • W fazie wyboru biletów startowych napis nie pojawia się ani razu.
  • Po zakończeniu gry, na ekranie wyników, napis nie pojawia się ani razu.

Etap 2 - Możliwość wyłączenia w ustawieniach

Dla osób, które wolą minimalistyczny interfejs, dodamy przełącznik:

  • Nazwa opcji: "Pokazuj oznaczenie tury" (w angielskiej wersji: "Show turn indicator").
  • Domyślnie: włączone. To jest cel całego zgłoszenia - większość graczy chce ten efekt widzieć.
  • Zapamiętywanie: Twój wybór jest trwały. Zostaje między rozgrywkami, między sesjami, między zamknięciem i ponownym otwarciem przeglądarki.
  • Szybki dostęp: przełącznik znajdziesz w panelu ustawień gry, razem z innymi preferencjami interfejsu.
  • Efekt wyłączenia: jest natychmiastowy. Po przełączeniu opcji kolejna zmiana tury przechodzi bez żadnego napisu - wszystko inne działa tak samo.

Efekt dla gracza: Masz pełną kontrolę. Jednym kliknięciem wyłączasz efekt na dobre, jeśli Ci nie pasuje, a kolejnym tak samo łatwo włączasz go z powrotem.

Jak poznasz, że etap jest gotowy:

  • W ustawieniach gry widzisz przełącznik "Pokazuj oznaczenie tury", który domyślnie jest włączony.
  • Po wyłączeniu przełącznika i rozegraniu kilku kolejnych tur napis ani razu się nie pojawia.
  • Po zamknięciu gry, ponownym jej otwarciu i zaczęciu nowej rozgrywki przełącznik pamięta Twój poprzedni wybór.
  • Po ponownym włączeniu przełącznika napis od razu wraca w kolejnej turze.

Kolejność i niezależność etapów

Etap 1 (ogłoszenie tury na mapie) i etap 2 (przełącznik w ustawieniach) są osobnymi krokami i mogą zostać opublikowane niezależnie od siebie, w tej kolejności:

  • Etap 1 jest samodzielny. Samo ogłoszenie tury, zawsze włączone, już realizuje główny cel zgłoszenia. Jeśli z jakiegoś powodu etap 2 miałby się opóźnić, etap 1 może pojechać pierwszy bez czekania.
  • Etap 2 buduje na etapie 1. Przełącznik nie ma sensu bez samego efektu, więc trafia do gry po etapie 1.
  • Etapy nie blokują się z innymi funkcjami gry - nie dotykają zasad, rozgrywki ani istniejących ekranów.

Co zostaje poza zakresem

Celowo odkładamy na później kilka rzeczy, żeby dowieźć główny efekt bez rozciągania zakresu:

  • Ogłaszanie poszczególnych ruchów (typu "Konduktor Zenek zajął trasę Warszawa - Kraków"). Była to druga część oryginalnego pomysłu gracza, ale dotyczy innej warstwy (opis akcji, a nie sama zmiana tury) i zasługuje na osobne zgłoszenie - z własnym głosowaniem, bo decyzje projektowe będą tam zupełnie inne.
  • Dźwięk przy zmianie tury. Gra nie ma dziś systemu dźwiękowego i dodawanie go przy okazji tej funkcji byłoby dużo szerszą zmianą niż sam napis. Jeśli pojawi się zapotrzebowanie, zajmiemy się tym jako osobnym tematem.
  • Suwak "jak długo ma być widoczny napis". Dobraliśmy stałe, sprawdzone tempo (~1,5 s). Dodanie konfiguracji od razu komplikowałoby interfejs ustawień bez wyraźnego zysku - do czasu, gdy okaże się, że wybrane tempo faktycznie nie pasuje.
  • Osobne tempo dla szybkich tur AI. Napis płynnie się podmienia przy kolejnych zmianach - to wystarcza, nie potrzeba dodatkowego trybu "szybszego".
  • Animacja innych elementów interfejsu (na przykład podświetlanie tablicy wyników na kolor aktywnego gracza mocniej niż dziś). To jest potencjalne rozwinięcie, ale nie jest tym, o co prosi zgłoszenie, i dokładamy je tylko wtedy, gdy pojawi się osobna prośba.

Podjęte decyzje

Tam, gdzie istniał więcej niż jeden sensowny wybór, podjęliśmy go od razu - poniżej krótkie uzasadnienia, żebyś wiedział/a, dlaczego zobaczysz właśnie to, co zobaczysz.

  • Tekst dla gracza: "Twoja tura" zamiast imienia gracza. W sytuacji, gdy jesteś sam/a przy ekranie, "Twoja tura" jest natychmiast jednoznaczne. Twoje własne imię w grze zobaczysz w innych miejscach interfejsu - napis na mapie ma przede wszystkim krzyczeć "teraz Ty".
  • Tekst dla AI: samo imię postaci, bez dodatkowej etykiety. "Konduktor Zenek" czyta się szybciej niż "Tura gracza Konduktor Zenek", a kolor i kontekst i tak jasno mówią, że chodzi o nową turę.
  • Czas trwania około 1,5 sekundy. Krótsze odczucie by nie dawało czasu na zauważenie; dłuższe by irytowało, zwłaszcza przy szybkich turach AI. Półtora sekundy to punkt, w którym mózg zdąży "zarejestrować i wrócić do gry".
  • Domyślnie włączone. To jest sens całego zgłoszenia. Gracz, który trafił na nie głosując, chce ten efekt widzieć od razu.
  • Ustawienie zapamiętywane na stałe, per przeglądarka. Nie synchronizujemy go między urządzeniami - to jest preferencja wizualna, a nie część konta. Dzięki temu nic nie zmienia się w tym, jakie dane gra o Tobie zbiera.
  • Napis w kolorze gracza, nie w neutralnej bieli. Kolor to szybka, nieczytelnikowa informacja "czyja to tura". Biel wymagałaby przeczytania tekstu, żeby się zorientować - kolor działa szybciej.
  • Bez napisu w fazie wyboru biletów startowych. W tej fazie wszyscy gracze podejmują decyzje "jednocześnie", nie ma klasycznej tury - napis byłby tu mylący.
  • Bez napisu po zakończeniu gry. Na ekranie wyników skupiamy Twoją uwagę na podsumowaniu, a nie na tym, czyja była ostatnia tura.
  • Nazwa opcji w ustawieniach: "Pokazuj oznaczenie tury". Krótka, opisowa, bez żargonu. Brzmi tak samo, niezależnie od tego, czy jesteś nowym graczem czy wracasz do gry po tygodniu.