Czytelne wizualnie oznaczanie, czyja jest tura - animowany overlay na mapie
Opis
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:
- Overlay nie blokuje interakcji z mapa (pointer-events: none)
- Krotki czas wyswietlania (ok. 1.5s) - nie spowalnia rozgrywki
- Fade in -> hold -> fade out (plynne przejscie)
- Duza czcionka w kolorze gracza z glow effect (spojnie z "Pendolino" theme)
- Pojawia sie TYLKO przy zmianie aktywnego gracza (nie po kazdej akcji)
Acceptance Criteria
- [ ] Overlay pojawia sie na srodku mapy gdy
current_player_indexsie 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_ticketsanifinished - [ ] 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)
Komentarz administratora
Done!
Plan realizacji
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.