Jak oddać hołd starym grom Pokémon, niczego od nich nie pożyczając
Gold, Silver i Crystal przepuszczają każdy krok gracza przez jedną procedurę, która co 256 kroków przybliża jaja w drużynie do wyklucia, co 512 podnosi zadowolenie drużyny, a co 4 rani zatrutego Pokémona; Emerald hoduje jagody według zegara czasu rzeczywistego w czterech etapach, od 4 do 96 godzin od posadzenia do owocu, i pozwala, by dwuwyrazowe powiedzenie dryfowało o 5 punktów dziennie i rozchodziło się z zapisu na zapis.1234 To są mechaniki, a mechaniki hołd może zachować. Historia spraw mówi, czego zachować nie może: każda gra fanowska, każde narzędzie i każde forum z tej historii, które w latach 2016 do 2024 usunięto lub wycofano po zawiadomieniach o usunięciu treści, były zbudowane na własnych nazwach, grafice lub kodzie Pokémon albo linkowały do gier, które takie były,5678 a jedyna sprawa toczona o mechaniki, pozew przeciwko Palworldowi złożony w Tokio 18 września 2024 roku, opiera się na patentach, których zastrzeżenia wymagają celowania i rzucania przedmiotem do łapania, wskaźnika szansy złapania albo dosiadania postaci-wierzchowca w powietrzu.910111213 Przeczytałem więc cztery dekompilacje, by poznać systemy, przeczytałem zastrzeżenia i relacje z sądów, by poznać granicę, i napisałem dla naszej aplikacji, Kiradex, brief, który zachowuje spacer, zegar, kartę, uskok, cotygodniową salę i rozchodzące się powiedzenie, a każdy piksel, każde słowo i każdą liczbę rysuje sam.
TL;DR
- Chodzenie było walutą. Oba silniki przepuszczają każdy krok po świecie gry przez jedną funkcję, której słuchają jaja, przyjaźń, trucizna, odstraszacze (Repels), Strefa Safari (Safari Zone) i rewanże; rytmy są grube (4, 128, 256 i 512 kroków), więc nagroda przychodzi jako wydarzenie, a budżety wydaje się w krokach, nie w sekundach: 500 na wyprawę do Strefy Safari, 100, 200 i 250 na trzy odstraszacze.1214151617
- Zegar nadał tygodniowi kształt. Crystal tnie dobę o 4, 10 i 18, organizuje konkurs łapania robaków (Bug-Catching Contest) we wtorek, czwartek i sobotę przez 20 minut, co piątek losuje Szczęśliwy Numer (Lucky Number) i porównuje go z każdym posiadanym Pokémonem, a o północy zeruje 16 dziennych flag; Emerald przy zmianie daty wykonuje jedenaście aktualizacji i hoduje jagody na podstawie minut, które upłynęły do powrotu gracza.18192021223
- Status pokazywało się komuś. Karta trenera (Trainer Card) w Emerald zmienia kolor z każdą z czterech gwiazdek, a każda dotyczy innego rodzaju gry; pudełko mieści 30 Pokémonów w siatce 6 na 5; wyzwanie w Battle Frontier w Tower, Palace, Arena lub Factory to 7 walk (turniej w Dome to 4, przejście przez Pike to 14 pomieszczeń, wspinaczka w Pyramid to 7 pięter), a Frontier Brain w Battle Tower to 35. i 70. walka serii.232425
- Światy innych ludzi trafiały do własnego świata gracza. Mieszanie rekordów (record mixing) kopiuje między zapisami 5188 bajtów: 20 tajnych baz (Secret Bases), 25 miejsc na programy telewizyjne (20 z nich zarezerwowanych dla programów, które docierają tylko tą drogą), 5 modnych powiedzeń (trendy phrases) i rekord z Battle Tower; co piąty gracz zaczyna z Hipsterem, który przy każdym przybyciu uczy jednego ukrytego słowa.262728
- Prawo autorskie, znak towarowy i patent to trzy różne granice. Twórcy Uranium powiedzieli w 2016 roku, że nikt się z nimi nie kontaktował, i wycofali grę po zawiadomieniach o usunięciu treści; Prism dostał wezwanie do zaprzestania naruszeń 21 grudnia 2016 roku; Relic Castle zniknął z sieci w marcu 2024 roku po zgłoszonym zawiadomieniu DMCA; Palworld to jedyna sprawa patentowa, zawężona w listopadzie 2025 roku do starszych wersji gry, z wciąż dochodzonym nakazem zaprzestania i bez rozstrzygnięcia znanego na 4 października 2026 roku.5682930
- Gry-hołdy zachowały gatunek, a porzuciły nazwę. Żaden ze sprawdzonych przeze mnie opisów w sklepie Steam, sześciu gier-hołdów i Palworlda, nie zawiera słowa „Pokémon”; ich twórcy mówią je swobodnie w wywiadach, jako o inspiracji.3132
- Co to daje aplikacji Kiradex. Brief, a nie gotową wersję: roślinę na parapecie, która rośnie co 256 kroków po placu, poranną skrzynkę według zegara samej aplikacji, cztery gwiazdki na karcie kolekcjonera, jednokierunkowy uskok na trasie (rozstrzygną to wpisy o wysokości i trasach), rozety sali za każde siedem zgłoszeń do cotygodniowej sali oraz dwuwyrazowe powiedzenie, które rozchodzi się między placami; każde z nich z tym, czego nie wolno mu przypominać, i ze sprawdzianem, który może wykonać test, oraz listą rzeczy, których aplikacji nie wolno robić nigdy. Cztery przeczytane patenty, żadnego wyszukiwania patentów na liczniki kroków czy zegary i żadnego prawnika: to interpretacja programisty, a nie porada prawna.33
1. Z czego składało się „to wrażenie” i jak je zmierzyłem
Ten wpis nie dotyczy stworzeń z Red, Gold czy Ruby. Dotyczy chwil wokół nich: jaja, które wykluło się w drodze do domu, audycji radiowej w piątek, karty, która stała się złota, tajnej bazy przyjaciela, która po popołudniu z kablem link pojawiła się we własnej grze gracza. Te chwile są systemami, a o systemach jest ten wpis. Wcześniejsze wpisy z tej serii mierzyły kafle, ludzi i budynki; ten mierzy pętle, dzięki którym kieszonkowy świat wydawał się żywy, gdy kartridż był wyłączony, potem czyta historię prawną wokół gier, które go pokochały, a na koniec spisuje, co nasze własne miasteczko może zapożyczyć, a czego nie wolno mu ruszać.343536
Kiradex to skaner kart z pikselowym miasteczkiem obok, Kiradex World: plac z 16-pikselowych kafli, po którym kolekcjonerzy spacerują, wypowiadają gotowe kwestie i pokazują swoje karty.34 Karty, które skanuje, to prawdziwe karty Pokémon, i właśnie dlatego ten wpis musi być ostrożny. Własne zasady aplikacji, spisane przed całym tym badaniem, już mówią „nothing of theirs in the world” (nic ich w świecie gry): żadnych stworzeń, żadnych trenerów, żadnych urządzeń do łapania, żadnych projektów sal czy odznak, żadnej muzyki, żadnych nazw z „Poké-”.37 Ten wpis odpowiada na kolejne pytanie: co może miasteczko takie jak nasze wziąć z gier, w których dorastało tak wielu kolekcjonerów, i skąd to wiadomo?
Metoda
Pierwszą połowę odczytano z kodu źródłowego, nie z wiki; jeden akapit, o Pokéathlonie, jest wyjątkiem i to zaznacza. Projekt pret utrzymuje dekompilacje gier na Game Boya i Game Boya Advance: kod w C i asemblerze, który odtwarza każdą grę, z plikiem README wymieniającym SHA-1 każdego odtwarzanego ROM-u, ze stałymi gry opatrzonymi nazwami, a miejscami komentarzami osób, które przeprowadziły inżynierię wsteczną. Użyłem płytkich klonów czterech z nich, każdego na commicie z gałęzi master: pokered na d2704a6 (commit z 22 września 2026), pokecrystal na 5beda23 (29 września), pokeemerald na 731ad5b (1 października) i pokefirered na 037335f (26 września).38 Skrypt measure_systems.py wypisuje każdą stałą cytowaną w sekcjach 2 do 6 wraz z plikiem i wierszem oraz wylicza zliczenia (godziny etapów dla 43 jagód, miejsca w telefonie i na rewanże, rodzaje programów telewizyjnych, dzienne flagi); drugi, measure_map_features.py, przechodzi przez każdą mapę Emerald, rozwiązuje komórki każdego układu względem tabel atrybutów jego tilesetów i zlicza komórki półek, komórki tylko dla roweru i komórki wysokiej trawy oraz drzewa do ścięcia, według typu mapy.3839 Liczby z tych dwóch skryptów są zmierzone; opisy tego, co się uruchamia i kiedy, to moja interpretacja ścieżek kodu, na które wskazują. Tam, gdzie dekompilacja ma komentarz, czytałem też kod, który on opisuje, bo te dwie rzeczy mogą się rozjeżdżać: w procedurze kroków w Crystal komentarz w miejscu wywołania mówi, że zadowolenie rośnie co 256 kroków, a wywoływana procedura działa co drugie wywołanie, więc sekcja 2 idzie za kodem.2 Ruby i Sapphire nie ma wśród klonów; tam, gdzie ten wpis mówi coś o nich, jest to odczytane z kodu Emerald i FireRed, który interpretuje zapis z Ruby lub Sapphire.23
Drugą połowę pobrano 4 października 2026 roku i zapisano: komunikaty i strony z zasadami Nintendo oraz The Pokémon Company, ogłoszenia Pocketpair, trzy japońskie patenty i jeden amerykański z Google Patents (japońskie zastrzeżenia z maszynowym tłumaczeniem Google na angielski, amerykańskie w oryginalnym angielskim patentu), karty sklepu Steam sześciu gier-hołdów i Palworlda oraz relacje wymienionych z nazwy mediów wraz z datami. Każde twierdzenie w sekcjach 7 do 11 ma przypis do dokumentu lub medium. Tam, gdzie strona była niedostępna, mówię o tym. Tam, gdzie wyciągam wniosek, oznaczam go jako własny.
Nic w tym wpisie nie jest poradą prawną. Jestem programistą, który przeczytał dokumenty; w żadnej z tych spraw nie konsultowałem się z prawnikiem i przeczytałem cztery patenty, a nie całe portfolio tych firm.
Badanie stojące za wpisem to dossier w repozytorium Kiradex z adresem URL przy każdym fakcie i znacznikiem [measured] przy każdej liczbie wygenerowanej przez skrypt; wpis jest tym dossier w czytelnej formie, a sekcja 14 to jego brief.33
2. Licznik kroków: chodzenie było walutą
Konsole przenośne miały jeden czasownik, którego gracz nigdy nie przestawał odmieniać. Oba silniki kierują go przez jedną funkcję, której słucha wszystko inne, a lektura tych dwóch funkcji to najszybszy sposób, by zobaczyć, jak dużą część życia starych gier opłacano krokami.
Gold, Silver i Crystal: CountStep
W Crystal każdy krok po świecie gry przechodzi przez CountStep w engine/overworld/events.asm. Procedura pomija pokoje link, pozwala, by oczekujący specjalny telefon albo koniec działania odstraszacza przejęły krok jako pierwsze, potem zwiększa licznik trucizny i jednobajtowy licznik kroków, a następnie działa zależnie od wartości licznika. Komentarze w dekompilacji mówią, co robi każda gałąź: „Every 256 steps, increase the happiness of all your Pokemon” (co 256 kroków zwiększ zadowolenie wszystkich swoich Pokémonów); „Every 256 steps, offset from the happiness incrementor by 128 steps” (co 256 kroków, z przesunięciem o 128 kroków względem zwiększania zadowolenia), zmniejsz liczniki wyklucia jaj (kod porównuje licznik z $80, czyli 128); „Every 4 steps, deal damage to all poisoned Pokemon” (co 4 kroki zadaj obrażenia wszystkim zatrutym Pokémonom).1 Pierwszy z tych komentarzy opisuje wywołanie, a nie wynik. StepHappiness, procedura wywoływana w engine/events/happiness_egg.asm, zaczyna się własnym komentarzem, „Raise the party’s happiness by 1 point every other step cycle” (podnoś zadowolenie drużyny o 1 punkt co drugi cykl kroków): przełącza drugi jednobajtowy licznik między 0 a 1 (and 1) i co drugie wywołanie wraca, nic nie robiąc, więc zadowolenie drużyny rośnie o 1 co 512 kroków, z pominięciem jaj.2 Komentarz o jajach kończy się ograniczeniem: odliczanie zatrzymuje się na pierwszym, „one that is ready to hatch” (które jest gotowe do wyklucia). DoEggStep w engine/pokemon/breeding.asm przechodzi przez drużynę po kolei, odejmuje 1 od licznika każdego jaja i wraca, gdy tylko któryś licznik dojdzie do 0; CountStep przekazuje wtedy krok skryptowi wyklucia, a każde jajo dalej w drużynie czeka na następny takt.40 Przy każdym kroku CountStep dodaje też 1 punkt doświadczenia każdemu z dwóch Pokémonów zostawionych w żłobku (Day-Care), a na koniec liczy kroki na rowerze.1
Rower to najlepszy żart tej procedury. W Gold, Silver i Crystal sklep rowerowy pożycza graczowi rower, a numer właściciela trafia do telefonu; gdy gracz przejedzie co najmniej 1024 kroki w zasięgu sieci, właściciel dzwoni, a licznik roweru zatrzymuje się na 65 535, zamiast się przekręcić.1 Rower jest reklamą, na której się jeździ, a gra liczy, czy gracza na nim widziano.
Emerald: TryStartStepCountScript
Emerald zawiesza na kroku więcej. W src/field_control_avatar.c funkcja TryStartStepCountScript przesuwa po kolei: licznik rewanży, licznik przyjaźni, licznik Faraway Island, truciznę, wykluwanie jaj, wygasanie nienaturalnej pogody, zagadkę w alfabecie Braille’a otwierającą wejście do jaskini, pięć oskryptowanych telefonów, Strefę Safari, korytarz S.S. Tidal i Match Call. Trucizna gryzie co 4 kroki (%= 4), ale nigdy wewnątrz tajnej bazy.14 Przyjaźń nie jest pewna. Co 128 kroków (licznik jest utrzymywany przez %= 128) gra wywołuje AdjustFriendship raz dla każdego miejsca w drużynie, a ta funkcja, pod komentarzem „50% chance every 128 steps” (50% szansy co 128 kroków), kończy działanie wcześniej, gdy ustawione jest Random() & 1; każdy Pokémon w drużynie, poza jajami, dostaje więc własny rzut monetą i zyskuje przyjaźń tylko w taktach, które wygra: średnio raz na 256 kroków.1415
Jaja mają własny zegar. Licznik kroków żłobka to jeden bajt, który odpala się, gdy dojdzie do 255, i się przekręca, więc co 256 kroków każde jajo w drużynie, aż do opisanego niżej limitu, traci jeden cykl wyklucia, a dwa, jeśli któryś członek drużyny ma zdolność Flame Body lub Magma Armor. Emerald ma ten sam limit w swojej postaci: pętla pomija jajo oznaczone jako uszkodzone dane (MON_DATA_SANITY_IS_BAD_EGG), a gdy trafi na jajo, którego licznik już wynosi 0, zatrzymuje się i wykluwa to jajo, więc jaja dalej w drużynie czekają na następny takt. Żłobek losuje też nowe jajo w tym samym 256-krokowym takcie, gdy młodszy bajt licznika kroków drugiego rodzica dojdzie do 0xFF.41
Budżety, nie minutniki
Drugi rodzaj kroku to budżet, wydawany raz. Najczytelniejszym przykładem jest Strefa Safari. W Red i Blue brama pobiera 500 ¥, wydaje 30 Safari Balli i wpisuje 502 do licznika kroków, a potem automatycznie prowadzi gracza trzy kroki w głąb parku; Emerald ustawia swój licznik na równe 500.16 Dlaczego Red zaczyna od 502, a nie od 500, kod nie mówi, a ja nie uruchamiałem gry, by policzyć, ile z tych trzech kroków odlicza licznik. Odstraszacze to również budżety, niezmienione od Red do Emerald: 100 kroków dla Repel, 200 dla Super Repel, 250 dla Max Repel.17 Rewanże stały się budżetem w 3. generacji: po pięciu odznakach licznik rewanży w Emerald napełnia się do 255 kroków, a przy następnym wczytaniu mapy losowy trener na tej trasie może chcieć walczyć ponownie; VS Seeker z FireRed i LeafGreen, urządzenie, które prosi trenerów o rewanż, można użyć ponownie dopiero po 100 krokach.42
Za co płaci krok, w krokach na wydarzenie; narysowane przez figures.py na podstawie measure_systems.out.txt.43
Dlaczego to działało
Z kodu wynikają trzy konsekwencje projektowe i to one są warte zachowania.
Wszystko dzieje się w grubym rytmie. Jaja postępują co 256 kroków w obu generacjach; 2. generacja podnosi zadowolenie co 512, a 3. daje każdemu Pokémonowi w drużynie rzut monetą o przyjaźń co 128. Gracz nigdy nie widzi, jak przeskakuje liczba; widzi sporadyczne wydarzenie, komunikat, że jajo się rusza, Pokémona, który nagle jest przyjaźniejszy. Jednobajtowy licznik to najtańszy zegar, jaki ma Game Boy, i w mojej interpretacji to także powód, dla którego nagroda przypomina pogodę, a nie pasek postępu: nie da się jej obserwować, więc się ją zauważa. Rzut monetą w Emerald czyni tę pogodę dosłowną: ten sam spacer może podnieść przyjaźń albo nie.121415
Budżety wydaje się ruchem, a nie czekaniem. 500 kroków Strefy Safari i 100, 200 lub 250 kroków odstraszacza zużywa się tylko podczas chodzenia. Gracz, który zatrzymuje się, by przeczytać tekst, pomyśleć albo odłożyć konsolę na czas kolacji, nic nie traci.1617 Dla aplikacji na telefon, którego ekran odkłada się co kilka minut, to lepsza umowa niż odliczanie.
Chodzenie jest sygnałem społecznym. Telefon ze sklepu rowerowego to gra, która zauważa, że gracz wyjechał na jej rowerze, a licznik rewanży w Emerald pozwala trasie „pamiętać”, że gracz odszedł i wrócił.142 W mojej interpretacji najgłębszą sztuczką licznika kroków jest to, że świat reaguje na obecność gracza, nie wymagając od niego niczego poza byciem na miejscu.
Nic z tego nie wymaga stworzenia: licznik, rytm, budżet. Prawo autorskie nie obejmuje metody działania, a to tam mieszka licznik;44 czy ktoś ma patent na mechanikę napędzaną krokami, tego nie sprawdzałem, i sekcja 14 to mówi. Sekcja 14 wydaje ten licznik na roślinę.
3. Zegar i kalendarz: tydzień miał kształt
Gold i Silver umieściły w kartridżu zegar czasu rzeczywistego, a projektanci wydali go na umówione spotkania. Emerald zachował zegar i przeniósł spotkania do kalendarza, który posuwa się sam. Razem stanowią najlepszy znany mi argument za światem, który zmienia się pod nieobecność gracza.
Trzy pory dnia
Gold, Silver i Crystal dzielą dobę na trzy: poranek od 04:00 do 09:59, dzień od 10:00 do 17:59, noc od 18:00 do 03:59. Stałe to MORN_HOUR 4, DAY_HOUR 10 i NITE_HOUR 18, a tabela TimesOfDay ma komentarz „0400-0959 morn | 1000-1759 day | 1800-0359 nite”. Nieużywana tabela BetaTimesOfDay z wartościami 20, 40 i 60 przetrwała obok niej w dekompilacji.18
Kiradex już mierzy czas, i to celowo nie według tych godzin. Jego Daylight.Phase to poranek od 6 do 9, dzień od 9 do 17, wieczór od 17 do 20 i noc w pozostałych godzinach, z czterema własnymi poziomami światła; brief w sekcji 14 tak to zostawia.45
Spotkania w nazwane dni
Konkurs łapania robaków w National Park odbywa się we wtorek, czwartek i sobotę: skrypt bramy sprawdza dzień tygodnia pod kątem tych trzech i żadnych innych. Trwa 20 minut czasu rzeczywistego i daje 20 Park Balli (BUG_CONTEST_MINUTES 20, BUG_CONTEST_BALLS 20), a dzienna flaga blokuje drugie zgłoszenie tego samego dnia.19 Crystal o północy zeruje 16 dziennych flag, dwa bajty po osiem: wyrób Poké Balli przez Kurta, konkurs, rój, drzewa owocowe, strzyżenie, TM z domu towarowego, nauczyciela ruchów i inne.20
Audycja ze Szczęśliwym Numerem jest cotygodniowa. Odliczanie do najbliższego piątku wybiera nowy pięciocyfrowy numer; gra porównuje go z identyfikatorem trenera na każdym posiadanym Pokémonie, w drużynie i we wszystkich 14 pudełkach, dopasowując od skrajnej prawej cyfry; zgodność wszystkich pięciu cyfr daje pierwszą nagrodę, trzech lub czterech drugą, dwóch trzecią.21 Dwudziestu czterech trenerów w telefonie ma każdy jeden dzień tygodnia i jedną porę dnia, kiedy można do nich zadzwonić w sprawie rewanżu, po trzech lub czterech na dzień tygodnia, a sekcja 6 do nich wraca.46
Dzień i tydzień w Crystal oraz własny dzień aplikacji; narysowane przez figures.py na podstawie measure_systems.out.txt i Daylight.swift.43
Kalendarz Emerald
Emerald przy każdej zmianie daty wykonuje jedenaście aktualizacji „na dzień”, w UpdatePerDay: wyczyszczenie dziennych flag; przesunięcie modnego powiedzenia; postarzenie programów telewizyjnych i masowych wysypów; pogoda; Pokérus; numer Mirage Island; stan profesora Bircha; dwie postacie z Battle Frontier, po jednym wywołaniu na każdą; przedmioty w Shoal Cave; oraz numer loterii. Ten sam plik pomija to wszystko, dopóki gracz stoi w Centrum Pokémon (Pokémon Center).22 Emerald nazywa 12 dziennych flag, a 9 z nich to darmowa jagoda od kogoś: hol konkursów, trzy postacie na trasach, Berry Master i jego żona, Lilycove, kwiaciarnia i Sootopolis. Pozostałe trzy to tajna baza, los na loterię i odejście Apprentice.47
Ogród, który rośnie w prawdziwych godzinach
Drzewo jagodowe w 3. generacji ma etapy: posadzone, kiełek, wyższe, kwitnące i z jagodami, a do tego etap „błyszczący” dla drzew z wydarzeń; zapis gry ma 128 miejsc na drzewa.48 Wzrost odbywa się według minut zegara czasu rzeczywistego, a nie kroków: UpdatePerMinute przekazuje upłynione minuty do BerryTreeTimeUpdate, każdy etap trwa stageDuration × 60 minut, a etap z jagodami trwa cztery razy dłużej; potem drzewo samo sadzi się od nowa na etapie kiełka, a niezebrane jagody znikają (berryYield = 0), maksymalnie 10 razy, zanim drzewo zostanie usunięte.3 Drzewo jest też usuwane, gdy minuty przekazane mu za jednym razem osiągną 71 długości etapu, co jest moją interpretacją minutes >= GetStageDurationByBerryType(tree->berry) * 71: mniej więcej trzy dni nieobecności w przypadku jagody, której etap trwa godzinę.3
Spośród 43 definicji jagód stageDuration wynosi 1 godzinę dla 5 jagód, 3 dla 12, 4 dla 1, 6 dla 11, 12 dla 1, 18 dla 5 i 24 dla 8, więc od posadzenia do pierwszych jagód mija 4, 12, 16, 24, 48, 72 lub 96 godzin.3 Podlewanie jest odnotowywane raz na etap, cztery flagi, a plon jest losowany z przedziału, który rośnie wraz z liczbą podlanych etapów: brak podlewania daje minimum jagody, a każdy podlany etap przesuwa przedział o jedną czwartą drogi od minimum do maksimum, z zaokrągleniem wyniku losowania (CalcBerryYieldInternal).3 Wyliczenie tej funkcji dla zakresów plonu 43 jagód: dla 33, których maksimum przekracza minimum najwyżej o dwa, cztery podlane etapy zawsze dają maksimum; dla pozostałych 10, które dają od 2 do 6 lub od 3 do 6, cztery podlane etapy dają maksimum albo o jeden mniej, a jagoda dająca od 2 do 6 daje 2 lub 3 przy jednym podlanym etapie, 3 lub 4 przy dwóch, 4 lub 5 przy trzech i 5 lub 6 przy czterech.49
Ile rosną jagody w Emerald; narysowane przez figures.py na podstawie zliczeń stageDuration w measure_systems.out.txt.43
Pomysł przeżył Game Boya Advance. Pokéathlon z HeartGold i SoulSilver, którego nie mierzyłem i który znam tylko z poradnika Serebii, daje „plus 100 points if you came in first” (dodatkowe 100 punktów za pierwsze miejsce) po każdej rundzie trzech konkurencji, a przedmioty sprzedawane w jego sklepie „change each day” (zmieniają się każdego dnia).50
Dlaczego to działało
Tydzień miał kształt. Gold i Silver wydały swój zegar na spotkania: konkurs trzy dni w tygodniu, 24 trenerów osiągalnych każdy o jednej porze jednego dnia tygodnia, losowanie w piątki, 16 rzeczy, które wracają o północy.19462120 Emerald zamienił spotkania w dryf: modne powiedzenie przesuwa się o 5 dziennie, wysyp trwa 2 dni, wiadomości odliczają 4, jagody rosną od 4 do 96 godzin.451273 W mojej interpretacji wynikiem jest świat, który zmieniał się, gdy kartridż był wyłączony, i to jest cały powód, by go znowu włączyć.
Dla telefonu ważne są dwa szczegóły. Emerald odmawia wykonania dziennych aktualizacji w Centrum Pokémon, więc istnieje bezpieczny pokój, w którym nic się nie zmienia pod nogami gracza.22 A wzrost jagód jest liczony z minut, które upłynęły do powrotu, a nie przez minutnik, który musiałby wciąż działać, więc drzewo rośnie pod nieobecność gracza. Nie czeka jednak na niego: dojrzały plon zostaje na drzewie przez cztery długości etapu, a potem opada, cztery godziny w przypadku jagody, której etap trwa godzinę, a nieobecność przez 71 długości etapu usuwa drzewo.3 Tak chcę, by działała i nasza aplikacja: wyliczać stan świata z zegara w chwili przybycia i nigdy nie polegać na minutniku, który musiałby działać, gdy telefon leży w kieszeni. Sekcja 13 opisuje stronę API.
4. Rzeczy, które się pokazuje: karta, pudełka, serie, losowanie
Stare gry nadawały statusowi fizyczną formę, a każdą z tych form mógł zobaczyć inny gracz.
Karta trenera i jej gwiazdki
Karta trenera w Emerald zmienia kolor zależnie od liczby gwiazdek: zielona bez żadnej, potem brązowa, miedziana, srebrna i złota przy czterech. Karta Kanto z FireRed i LeafGreen przechodzi przez niebieski, zielony, brązowy, srebrny i złoty.23 Cztery gwiazdki Emerald, w CountPlayerTrainerStars, to cztery niezwiązane ze sobą osiągnięcia: wejście do Galerii Sław (Hall of Fame); ukończenie Pokédexu Hoenn; posiadanie w muzeum w Lilycove wszystkich pięciu obrazów z konkursów rangi Master; oraz zdobycie wszystkich symboli Battle Frontier.23 Gdy Emerald odczytuje kartę z Ruby lub Sapphire, liczy gwiazdki w GetRubyTrainerStars: Galeria Sław, Pokédex Hoenn i obrazy nadal się liczą, a ponad 49 zwycięstw z rzędu w Battle Tower (battleTowerStraightWins > 49) zastępuje symbole Frontier.23 Karta z FireRed i LeafGreen, w wersji budowanej dla partnera link, liczy Galerię Sław, Pokédex Kanto, Pokédex krajowy oraz jedną gwiazdkę za dwie bezprzewodowe minigry łącznie: 200 zebranych jagód i 200 skoków z rzędu.52
Karta jest też obiektem społecznym. Zawiera profil Easy Chat, systemu gotowych zwrotów w grach, zwycięstwa i porażki w walkach przez link z limitem 9999, wymiany, liczbę konkursów i Pokéblocków z przyjaciółmi oraz czas debiutu w Galerii Sław, z limitem 999 godzin, 59 minut i 59 sekund.23
Dlaczego to działało. Cztery długie wyczyny czterech różnych rodzajów, z których każdy przemalowuje to, co inni widzą przy połączeniu, tak że kolor widać z drugiego końca pokoju. FireRed przeznacza jedną z czterech gwiazdek na grę z przyjaciółmi. Niczego na karcie nie da się kupić; w mojej interpretacji właśnie dlatego złotą kartę warto pokazywać.
Pudełka w PC
Przechowalnia rosła z każdą generacją. Red i Blue mieszczą 12 pudełek po 20, razem 240; Gold, Silver i Crystal 14 po 20, czyli 280 (wersja japońska definiuje 30 na pudełko); Ruby, Sapphire i Emerald 14 pudełek po 30, czyli 420, każde pudełko to siatka 6 na 5 z nazwą i tapetą.24 Pudełko na 30 to ta sama idea co strona w segregatorze na karty: stała siatka, która nagradza układanie, a tapeta sprawia, że jest w równym stopniu pokojem, co listą.
Wstążki i żetony
Emerald definiuje 32 identyfikatory wstążek: wstążkę Champion; 20 wstążek konkursowych, pięć kategorii po cztery rangi; Winning, Victory, Artist i Effort; oraz siedem wstążek-prezentów. Wstążka, która podnosi liczbę wstążek Pokémona powyżej czterech (kod sprawdza GetRibbonCount(...) > NUM_CUTIES_RIBBONS, a ta stała wynosi 4), może stworzyć program telewizyjny o jego właścicielu, jeśli jest wolne miejsce i żaden taki program już nie czeka; program powstaje wyłączony (active = FALSE, z komentarzem w kodzie, że jest nieaktywny, dopóki nie przejdzie przez mieszanie rekordów), więc trafia do telewizora dopiero wtedy, gdy mieszanie rekordów przeniesie go do innej gry.532754 Żetony salonu gier (Game Corner) mają limit 9999 (MAX_COINS).55 Żetony to jedyny system w tym wpisie, który sekcja 14 odrzuca wprost, z powodów niezwiązanych z Nintendo: z Kiradex korzystają dzieci,36 a badanie kolekcjonerstwa stojące za jego światem już wyklucza płatne losowe przedmioty i wszystko, co ma kształt automatu do gry.33
Battle Tower i serie Frontier
Wyzwanie w Battle Tower, Battle Palace, Battle Arena lub Battle Factory to 7 walk; turniej w Battle Dome to 4 (DOME_ROUNDS_COUNT 4), przejście przez Battle Pike to 14 pomieszczeń (NUM_PIKE_ROOMS 14), nie wszystkie z walką, a wspinaczka w Battle Pyramid to 7 pięter. FRONTIER_STAGES_PER_CHALLENGE 7 to wspólna stała, a nie reguła, której przestrzega każdy obiekt. Serie liczą się do 9999.25 Frontier Brain każdego obiektu (jego szef) pojawia się w stałych punktach serii i daje najpierw srebrny symbol, a potem złoty. Tabeli w frontier_util.c nie czyta się wprost: sprawdzenie dodaje do bieżącej serii modyfikator właściwy dla obiektu i porównuje sumę z tabelą (winStreak + modifier == value). Modyfikator wynosi 1 dla Tower, Palace, Arena, Factory i Pike, więc Brain to 35. walka, a nie walka po 35 zwycięstwach; wynosi 0 dla Dome, którego seria liczy wygrane turnieje, i dla Pyramid, której seria liczy pokonane piętra.25
| Obiekt | Seria liczy | Srebrny Brain | Złoty Brain |
|---|---|---|---|
| Battle Tower | wygrane walki | 35. walka | 70. walka |
| Battle Dome | wygrane turnieje | 5. turniej | 10. turniej |
| Battle Palace | wygrane walki | 21. walka | 42. walka |
| Battle Arena | wygrane walki | 28. walka | 56. walka |
| Battle Factory | wygrane walki | 21. walka | 42. walka |
| Battle Pike | pokonane pomieszczenia | 28. pomieszczenie | 140. pomieszczenie |
| Battle Pyramid | pokonane piętra | po 21 piętrach | po 70 piętrach |
Źródło: frontier_util.c (tabela i sprawdzenie) oraz skrypty obiektów, jeśli chodzi o to, co liczy każda seria, odczytane przez measure_systems.py i ręcznie.25
Kamienie milowe Tower mają najczystszy kształt: zestawy po siedem, a szef jako ostatnia walka piątego zestawu i ponownie dziesiątego. Seria jest treścią; szef jest interpunkcją.
Losowanie, które nagradza wielkość kolekcji
Lottery Corner w Emerald codziennie losuje nowy numer i porównuje go z identyfikatorem trenera na każdym posiadanym Pokémonie, w drużynie i w pudełkach, dopasowując od skrajnej prawej cyfry; kod mówi „do not calculate ticket values for eggs” (nie obliczaj wartości losów dla jaj). Dwie, trzy, cztery lub pięć zgodnych cyfr daje PP Up, Exp. Share, Max Revive lub Master Ball, a dzienna flaga pozwala na jeden los dziennie (FLAG_DAILY_PICKED_LOTO_TICKET).56 Cotygodniowy Szczęśliwy Numer w Crystal płaci w ten sam sposób trzy poziomy nagród: za dwie zgodne cyfry, za trzy lub cztery oraz za wszystkie pięć.21
Dlaczego to działało. Losowanie zamienia pudełka w losy. Liczy się każdy posiadany Pokémon, także wymienione, które noszą identyfikatory innych trenerów, więc duża, zróżnicowana kolekcja pełna wymian ma dosłownie więcej szczęścia. To jednak losowanie, a losowanie czyni nagrodę przypadkową, czego zasada tej serii dla elementów kosmetycznych, „never random, never on a countdown” (nigdy losowo, nigdy na odliczanie), nie dopuszcza; sekcja 14 je pomija.36
5. Teren, który pamięta: półki, ścięte drzewa i dwa rowery
Trasy między miastami miały własne słownictwo jednokierunkowych krawędzi i zamków, które widać, zanim da się je otworzyć. Policzyłem je w Emerald za pomocą measure_map_features.py, który czyta układ każdej mapy komórka po komórce i sprawdza zachowanie każdej komórki w tabelach atrybutów jej tilesetów. Zliczenia dotyczą komórek, a nie obiektów: jedna długa półka to wiele komórek, a układ współdzielony przez kilka map liczony jest raz.39
Półki to narzędzie tras
W 41 układach tras w Emerald, łącznie 87 787 komórek, jest 726 komórek jednokierunkowych półek (zachowania MB_JUMP_*) i 2777 komórek wysokiej trawy; półki ma 21 z 41 tras. Pierwsze cztery trasy mają 13, 17, 24 i 13 komórek półek. Półki pojawiają się też w 9 układach miast (34 komórki), pod ziemią (215) i we wnętrzach (48), a w żadnym z 7 układów miasteczek.39
Komórki półek według typu mapy w Emerald; narysowane przez figures.py na podstawie wyników measure_map_features.py.4339
Półka pozwala graczowi szybko zejść w dół i wymusza inną drogę powrotną, więc krótka trasa ma w sobie pętlę. Miasteczko, w którym mieszkają ludzie i do którego przybywa gracz, nigdy jej nie ma.
Zamki widziane wcześnie: drzewa do ścięcia i dwa rowery
Emerald rozmieszcza 33 obiekty drzew do ścięcia, 22 na trasach i 11 we wnętrzach, głównie w zagadkach sal.39 Dwa rowery otwierają inny teren. Komórek dla Mach Bike, błotnistych zboczy i popękanych podłóg, jest 52 na trasach i 150 pod ziemią; komórek dla Acro Bike, szyn i wyboistych zboczy, jest 85, wszystkie na trasach.39 Mach Bike przyspiesza przez trzy prędkości (sMachBikeSpeeds = {NORMAL, FAST, FASTEST}); Acro Bike odczytuje przytrzymany przycisk B z kierunkiem jako triki, jazdę na tylnym kole i podskok.57
Dlaczego to działało
Zamki, które widać, zanim da się je otworzyć, są obietnicami. Drzewa do ścięcia i teren tylko dla roweru pokazują graczowi skrót przy pierwszym przejściu i spłacają go przy późniejszym, a dwa rowery w Emerald z dwoma rodzajami zamkniętego terenu sprawiają, że wybór roweru jest wyborem, którą połowę skrótów widać w tej podróży.3957 Półki wykonują tę samą pracę dla kierunku: w dół jest szybko i za darmo, w górę prowadzi inna droga.
Półki to też jedyne miejsce w tym wpisie, w którym nasza wcześniejsza decyzja stawia opór. Badanie konstrukcji odrzuciło półki, argumentując, że swobodną wysokość trudno odczytać w widoku z góry, a wpis o konstrukcjach wymienia „a one-way ledge” (jednokierunkową półkę) wśród rzeczy, których miasteczko nie ma.3533 Jednokomórkowy, jednokierunkowy uskok to nie swobodna wysokość: nie ma osi z, tylko jednokierunkową krawędź w grafie chodzenia. Brief proponuje więc zawężoną formę, a decyzję zostawia tam, gdzie jej miejsce, czyli we wpisach o wysokości i trasach, które jeszcze powstaną.
6. Światy innych ludzi: mieszanie rekordów, modne powiedzenie, telefon
Systemy z tej sekcji to te, których najbardziej chcę dla placu, bo dotyczą innych graczy, nie wymagając, by ci inni gracze byli w tej samej chwili online.
Tajne bazy i mieszanie rekordów
Tajna baza w Emerald mieści do 16 dekoracji; pokój gracza 12; a zapis przechowuje 20 baz, własną plus te otrzymane od innych graczy.58 Otrzymane skąd? Z mieszania rekordów: gdy dwóch graczy łączy się i miesza rekordy, gry kopiują między zapisami rekord o rozmiarze 0x1444 bajtów, czyli 5188. Jego pola, po kolei, to wszystkie 20 tajnych baz, 25 miejsc na programy telewizyjne, wiadomości, Mauville Old Man (staruszek z Mauville), 5 modnych powiedzeń, poczta ze żłobka, rekord z Battle Tower, przedmiot-prezent, Lilycove Lady, dwóch Apprentice i rekordy sali rankingowej Battle Frontier.26
Po popołudniu z kablem link baza przyjaciela jest więc we własnej grze i można do niej wejść. Jego programy telewizyjne lecą we własnym telewizorze. Jego rekord z Battle Tower też przychodzi. W mojej interpretacji większość tego, co w Emerald wydawało się żywe, przychodziła od kogoś innego.
Telewizja
Telewizja w Emerald ma 25 miejsc na programy: 5 na programy o własnej grze i 20 na programy, które przychodzą wyłącznie przez mieszanie rekordów. Jest 11 „zwykłych” rodzajów programów i 19 rodzajów, które istnieją tylko dzięki mieszaniu rekordów (Trend Watcher, Secret Base Visit, Lotto Winner, Spot the Cuties i inne), a do tego relacja o masowym wysypie; wydarzenia w wiadomościach odliczają 4 dni przed emisją.27 Po ukończeniu gry każda zakończona walka, niezależnie od tego, czy coś złapano, ma szansę 1 na 200 (rbernoulli(1, 200)) na zaplanowanie relacji o wysypie, chyba że była to walka przez link, w Safari, w Battle Frontier lub inna walka specjalna albo relacja o wysypie już zajmuje któreś z pierwszych 24 z 25 miejsc telewizji (sprawdzenie kończy się jedno miejsce przed ostatnim), i tylko wtedy, gdy któreś z 5 miejsc na własne programy jest puste. Relacja czeka dzień, zanim może zostać wyemitowana (daysBeforeOutbreak = 1, odliczane przez dzienną aktualizację), a sam wysyp zaczyna się dopiero wtedy, gdy relację obejrzy się w telewizorze, co wywołuje StartMassOutbreak; od tej chwili trwa 2 dni i sprawia, że zapowiedziany gatunek stanowi połowę spotkań na jednej trasie (probability = 50).51 Programy o wysypach podróżują przez mieszanie rekordów jak każdy inny program, więc wysyp przyjaciela może trafić do własnego telewizora.5126
Modne powiedzenie: powiedzenie z okresem połowicznego rozpadu
„Dewford Trend” (moda w Dewford) to dwa słowa z Easy Chat, które powtarzają ludzie w Dewford Hall. Blok komentarza na początku dewford_trend.c to dokument projektowy. Każde powiedzenie ma wartość modności „Initialized as a random value between 30-127 inclusive” (inicjowaną jako losowa wartość od 30 do 127 włącznie); „If a submitted phrase is less trendy than the current one it won’t be accepted” (jeśli zgłoszone powiedzenie jest mniej modne niż obecne, nie zostanie przyjęte); a powiedzenie, które jest „boring” (nudne), będzie „lose trendiness over time until it reaches 0” (z czasem tracić modność, aż dojdzie do 0), a potem znów ją zyskiwać aż do swojego maksimum, gdzie ponownie staje się nudne.4 Kod ma dwa wyjątki od tej reguły przyjmowania. Pierwsze powiedzenie, jakie kiedykolwiek zgłasza zapis, jeśli zapis nigdy nie mieszał rekordów, zastępuje obecne słowa bez żadnego porównania; a gdy nowe powiedzenie remisuje z obecnym pod względem modności, wygrywa wyższe maksimum, a jeśli i te są równe, rozstrzyga rzut monetą (Random() & 1).4 Dzienna aktualizacja przesuwa każde powiedzenie o 5 punktów za każdy miniony dzień (clockRand = days * 5).4 Przechowywanych jest pięć powiedzeń, posortowanych według modności; przy mieszaniu rekordów własne powiedzenia są zastępowane powiedzeniami partnera, „unless the phrase is the same, in which case the version with a higher trendiness value is used” (chyba że powiedzenie jest takie samo, wtedy używana jest wersja o wyższej modności).4
Hipster i ukryte słowa
Trendy Sayings (modne zwroty) to coś innego: ukryta grupa 33 słów w Easy Chat.28 Komentarz w dekompilacji mówi, jak się je zdobywa: są „normally inaccessible” (normalnie niedostępne), a „The Hipster can unlock one word each time he is received via record mixing (and once if he is the player’s default Old Man)” (Hipster może odblokować jedno słowo za każdym razem, gdy zostanie otrzymany przez mieszanie rekordów, oraz raz, jeśli jest domyślnym staruszkiem gracza).28 Staruszek z Mauville występuje w pięciu odmianach (Bard, Hipster, Trader, Storyteller, Giddy), a to, z którą zaczyna gra, ustala ostatnia cyfra identyfikatora trenera, (trainerId % 10) / 2. Hipster jest więc domyślny tylko wtedy, gdy ta cyfra to 2 lub 3: u co piątego gracza. Wszyscy pozostali muszą wymieszać rekordy z którymś z tych graczy, żeby go spotkać.28
Rewanże i telefony
Telefon w Crystal mieści 10 kontaktów (CONTACT_LIST_SIZE 10). Dwudziestu czterech trenerów może być gotowych do rewanżu, każdy z jedną dzienną flagą; 10 może zadzwonić z wiadomością, że ma dla gracza przedmiot; a każdy z 24 ma jeden dzień tygodnia i jedną porę dnia, kiedy można do niego zadzwonić, 9 rano, 7 w ciągu dnia (druga pora dnia w Crystal, od 10 do 18) i 8 w nocy, po trzech lub czterech na dzień tygodnia.46 Połączenia przychodzące są racjonowane: minutnik (ReceiveCallDelays) ustawiany na 20 minut po każdym odebranym telefonie, skracany do 10, 5, a potem 3 za każdym razem, gdy upłynie bez połączenia, warunkuje losowanie, które kod komentuje jako „50% chance for a call” (50% szansy na telefon); dzwoniący jest losowany spośród kontaktów dostępnych o tej porze dnia, a żaden telefon nie przychodzi, gdy gracz stoi w wejściu lub poza zasięgiem.59
Dlaczego to działało
Światy innych ludzi trafiały do własnego. Pięć kilobajtów przenosiło 20 baz, 20 miejsc cudzej telewizji i 5 powiedzeń.2627 Nic z tego nie wymagało obecności drugiego gracza w chwili gry; wymagało tylko, by kiedyś go spotkać.
Modne powiedzenie to zaraza z okresem połowicznego rozpadu. Po pierwszym powiedzeniu danego zapisu nowe przejmuje miasto tylko wtedy, gdy pokona obecne, słabnie, gdy się nudzi, i rozchodzi się przez kontakt; gdy spotykają się dwa zapisy, wygrywa modniejsza kopia wspólnego powiedzenia.4 To kompletna mechanika społeczna w garści liczb: wynik, dryf, reguła kontaktu.
Hipster jest rzadki z założenia. Ma go co piąty gracz; reszta poznaje go przez kogoś, kto go ma, a każde spotkanie może nauczyć jednego z 33 ukrytych słów.28 Samo słownictwo staje się przedmiotem kolekcjonerskim, który wędruje od osoby do osoby.
Przerwy są racjonowane. Telefon zależy od minutnika i rzutu monetą i nigdy nie przychodzi, gdy gracz stoi w drzwiach; zaraz po jednym telefonie oczekiwanie jest najdłuższe, 20 minut.59 W mojej interpretacji świat, który do gracza mówi, jest uroczy tylko dopóty, dopóki robi to rzadko.
7. Trzy różne granice: prawo autorskie, znak towarowy, patent
Wszystko stąd do sekcji 11 to historia spraw: przeciwko czemu występowały Nintendo i The Pokémon Company, na jakiej podstawie i co pozostawiły w spokoju. Trzy rodzaje ochrony trzeba trzymać osobno, bo ludzie, którzy mówią o kopiowaniu Pokémon, zwykle mają na myśli jeden z nich, a odpowiedź dostają w kategoriach innego.
Prawo autorskie chroni wyraz twórczy. Circular 33 amerykańskiego Copyright Office wyłącza spod prawa autorskiego idee, procedury, procesy, systemy i metody działania; konkretne kafle, sprite’y, muzyka, teksty i postacie to chroniony wyraz twórczy.4434 Pierwszy wpis z tej serii mówi to w swoich często zadawanych pytaniach, poprawionych 4 października tak, by wymieniały prawo autorskie: styl, metoda i system nie są chronione prawem autorskim; konkretny wyraz twórczy jest.34 Wszystko w sekcjach 2 do 6 jest w mojej interpretacji metodą: licznik kroków, zegar, karta z gwiazdkami, powiedzenie z wynikiem.
Znak towarowy chroni oznaczenia. Własna japońska strona The Pokémon Company stwierdza, że „ポケットモンスター・ポケモン・Pokémon” to znaki towarowe Nintendo, Creatures i GAME FREAK.60 Nazwa użyta do sprzedaży produktu to kwestia znaków towarowych; ta sama nazwa użyta do opisania, czym coś jest, jak musi to robić aplikacja skanująca karty Pokémon, to użycie nominatywne, które nasz własny dokument świata opisuje jako sposób, w jaki robi to każda inna aplikacja do kart, i to granica, którą zasady Kiradex już wyznaczają.37
Patent chroni zastrzeżoną metodę, krok po kroku. Japonia i Stany Zjednoczone przyznały Nintendo i The Pokémon Company patenty, których zastrzeżenia są programami gier, opisanymi jako to, co program każe zrobić komputerowi.1161 Zastrzeżenie patentowe to lista kroków; w mojej interpretacji, która nie jest poradą prawną, zastrzeżenie obejmuje grę tylko wtedy, gdy gra wykonuje każdy jego krok, każdy odczytany tak, jak wykłada go sąd, albo jego ekwiwalent, który uznają sądy obu krajów. Sąd Najwyższy USA stosuje tę doktrynę ekwiwalentów krok po kroku, „to each of the individual elements of a claim” (do każdego z poszczególnych elementów zastrzeżenia), a Sąd Najwyższy Japonii określił w 1998 roku warunki, na jakich produkt różniący się od zastrzeżenia w jednej części nadal się w nim mieści.6263 Zmiana lub usunięcie kroku jest więc argumentem, że zmieniona gra wychodzi poza zastrzeżenie, a nie rozstrzygnięciem: to, czy wychodzi, zależy od tej wykładni i od ekwiwalencji, a w jedynej sprawie z tej historii żaden sąd jeszcze nie orzekł. Sekcja 9 czyta cztery zastrzeżenia, które mają tu znaczenie.
Poniższa historia spraw sortuje każdą sprawę według tego, na gruncie której z trzech ją prowadzono. Tylko jedna była sprawą patentową.
Historia spraw według daty i podstawy; narysowane przez figures.py na podstawie datowanych stron cytowanych w sekcjach 8 i 9.43
8. Gry fanowskie, narzędzie i forum: co wywołało działania
Pokémon Uranium, sierpień 2016: zawiadomienia o usunięciu treści i, według samych twórców, żadnego listu do nich
Uranium często opisuje się jako grę, która dostała wezwanie do zaprzestania naruszeń; tekst o grach fanowskich opublikowany przez Aftermath 1 października 2026 roku mówi, że „was reportedly issued cease and desists from the legal teams at Nintendo and The Pokémon Company” (podobno otrzymała wezwania do zaprzestania naruszeń od zespołów prawnych Nintendo i The Pokémon Company).64 Jej twórcy mówili wtedy co innego. Kotaku 13 sierpnia 2016 roku podało, że po dziewięciu latach pracy fani, którzy ją stworzyli, usunęli wszystkie linki do pobrania, i opublikowało ich oświadczenie w całości: „After receiving more than 1,500,000 downloads of our game, we have been notified of multiple takedown notices from lawyers representing Nintendo of America” (po ponad 1 500 000 pobrań naszej gry zostaliśmy powiadomieni o wielu zawiadomieniach o usunięciu treści od prawników reprezentujących Nintendo of America). Oraz: „While we have not personally been contacted, it’s clear what their wishes are, and we respect those wishes deeply” (choć nikt nie skontaktował się z nami osobiście, jasne jest, czego sobie życzą, i głęboko to szanujemy). Kotaku dodało, że twórcy powiedzieli, iż „haven’t received any cease & desist letters from Nintendo’s lawyers yet” (nie otrzymali jeszcze żadnych wezwań do zaprzestania naruszeń od prawników Nintendo).5 Nasz własny dokument świata ujmował to jako wezwanie do zaprzestania naruszeń; ścisłe zdanie brzmi tak, że Uranium wycofano po zawiadomieniach o usunięciu treści, a nazwa była w jego tytule.375
Pokémon Prism, grudzień 2016: wezwanie do zaprzestania naruszeń cztery dni przed premierą
Prism był inny co do natury: nie nowa gra w stylu Pokémon, lecz ROM hack samego Crystal, przygotowywany przez osiem lat, z premierą zaplanowaną na Boże Narodzenie. Kotaku, 29 grudnia 2016: „Nintendo hit them with a cease and desist four days before release” (Nintendo uderzyło w nich wezwaniem do zaprzestania naruszeń cztery dni przed premierą), a wszystko „seemed ready for an official release until December 21st, when representatives of Nintendo sent a cease and desist to the project” (wydawało się gotowe do oficjalnego wydania aż do 21 grudnia, kiedy przedstawiciele Nintendo wysłali do projektu wezwanie do zaprzestania naruszeń). Twórca zdjął wtedy swoją stronę, na której były też dwa inne ROM hacki, Pokémon Brown i Rijon Adventures.6 Nintendo Life następnego dnia podaje tę samą datę i planowaną premierę 25 grudnia.65 Zredagowany skan listu opublikowała w Internet Archive osoba trzecia, która twierdzi, że przesłał go jej współtwórca Prism; opis zamieszczającego jest polemiczny, a ja skanu nie czytałem, więc jest to trop do dokumentu, a nie źródło dla tego wpisu.66
Pokémon Essentials, sierpień 2018: narzędzie
Essentials było darmowym narzędziem do tworzenia gier w stylu Pokémon w RPG Makerze. TechSpot, 29 sierpnia 2018, za relacją Ars Technica: Nintendo wysłało zawiadomienie DMCA o usunięciu treści, Fandom, który hostował wiki narzędzia, się podporządkował, a pliki do pobrania usunięto z działu gier fanowskich PokéCommunity. Własna ocena TechSpotu brzmiała: „the assets Pokemon Essentials uses appear to be identical to the ones in Pokemon games” (zasoby używane przez Pokemon Essentials wydają się identyczne z tymi w grach Pokémon).7
Relic Castle, marzec 2024: forum i nadawca, którego nigdy nie potwierdzono
Nasz własny brief badawczy łączył Relic Castle z Essentials jako usunięcie z 2018 roku.33 Był to marzec 2024. GamesRadar+, 22 marca 2024: forum fanów, działające od 2014 roku, zniknęło z sieci; jego oświadczenie mówiło, że „the Relic Castle website has been taken down following a DMCA takedown notice” (strona Relic Castle została zdjęta po zawiadomieniu DMCA o usunięciu treści). Strona „didn’t host these games directly” (nie hostowała tych gier bezpośrednio), zauważył GamesRadar+, ale pozwalała na linki do nich, a kto wysłał zawiadomienie, nie potwierdzono.8
Jak zauważa się projekty fanowskie, słowami prawnika, który je zauważał
Don McGowan był głównym radcą prawnym The Pokémon Company. W marcu 2024 roku Aftermath zapytało go, jak firma postępowała z wezwaniami do zaprzestania naruszeń wobec projektów fanowskich, a on odpowiedział: „Short answer: thanks to you folks” (krótko mówiąc: dzięki wam). Najgorsze na świecie, mówi swoim studentom prawa, jest to, gdy projekt fanowski „gets press, because now I know about you” (trafia do prasy, bo teraz wiem o was). I druga połowa: „You don’t send a takedown right away. You wait to see if they get funded (for a Kickstarter or similar); if they get funded then that’s when you engage. No one likes suing fans” (nie wysyła się żądania usunięcia od razu; czeka się, czy zdobędą finansowanie, na Kickstarterze lub podobnie; jeśli je zdobędą, wtedy się wkracza; nikt nie lubi pozywać fanów).67 Video Games Chronicle przytoczyło te same cytaty następnego dnia.68
Chiny, 2025: kopia całej gry
Najwyższa kwota w tej historii pochodzi ze sprawy o prawo autorskie i nieuczciwą konkurencję, a nie z gry fanowskiej. The National Law Review podaje, że 21 lutego 2025 roku Wyższy Sąd Ludowy prowincji Guangdong ogłosił ugodę na 107 milionów RMB na rzecz The Pokémon Company w sprawie gry „Pokémon: Remastered”, wniesionej w grudniu 2021 roku; firma żądała 500 milionów RMB, a w pierwszej instancji w Shenzhen zasądzono jej 107 milionów.69 Uzasadnienie sądu pierwszej instancji, tak jak streszcza je relacja, warto uważnie przeczytać każdemu, kto pisze hołd: postacie, protagoniści i mapy oskarżonej gry odpowiadały oryginałom „one-to-one” (jeden do jednego), a jej systemy były „highly similar or even completely consistent, and many numerical system designs are the same” (bardzo podobne, a nawet całkowicie zgodne, i wiele liczbowych rozwiązań systemowych jest takich samych).69 W mojej interpretacji liczby były jednym wątkiem w ustaleniu dotyczącym gry, która skopiowała też całą resztę; jest to jednak powód, dla którego sekcja 14 bierze garść okrągłych liczb jako punkt wyjścia, ustala własne zakresy tam, gdzie zakresy gry nie były okrągłe, i nigdy nie importuje tabel z gry.
Co pokazuje historia spraw
Trzy z czterech spraw fanowskich dotyczyły własnego wyrazu twórczego Pokémon, a czwarta, Relic Castle, udostępniała linki do gier, które z niego korzystały. Uranium miało nazwę w tytule i według wyliczeń twórców zostało pobrane 1,5 miliona razy; Prism był ROM hackiem Crystal, zbudowanym na kodzie i grafice samej gry; Essentials rozprowadzało zasoby, które dziennikarz nazwał identycznymi z zasobami gier; Relic Castle linkował do takich gier.5678 W mojej interpretacji podstawą w każdym przypadku było prawo autorskie: dwa to zgłoszone zawiadomienia DMCA, czyli zawiadomienia z zakresu prawa autorskiego, choć nadawcy zawiadomienia dla Relic Castle nie potwierdzono, a relacje o pozostałych dwóch nie podają żadnej podstawy, ale obie gry były zbudowane na wyrazie twórczym oryginałów, a Uranium nosiło nazwę, co jest także kwestią znaku towarowego. Żadna nie była sprawą patentową. Były główny prawnik dodaje wyzwalacz: prasa, a potem pieniądze.67
Moja interpretacja: historia spraw pokazuje działania przeciwko wyrazowi twórczemu Pokémon oraz przeciwko widoczności połączonej z finansowaniem, a nie przeciwko grze za to, że należy do gatunku. Każda gra-hołd z sekcji 11 należy do gatunku, jest sprzedawana za pieniądze i nie było doniesień, by stała się celem jakichkolwiek działań. Ta interpretacja dotyczy tego, co się wydarzyło, a nie jest obietnicą co do tego, co się wydarzy.
9. Palworld: jedyna sprawa o mechaniki
Palworld to sprawa, która zmienia interpretację, bo jako jedyna w tej historii toczy się o patenty. I wciąż jest otwarta.
Oświadczenie, styczeń 2024
Pocketpair wydał Palworld 19 stycznia 2024 roku.10 25 stycznia The Pokémon Company opublikowała na swojej stronie korporacyjnej komunikat zatytułowany 他社ゲームに関するお問い合わせについて, co tłumaczę jako W sprawie zapytań dotyczących gier innych firm, po japońsku, z tekstem angielskim poniżej. Tekst angielski: „We have not granted any permission for the use of Pokémon intellectual property or assets in that game. We intend to investigate and take appropriate measures to address any acts that infringe on intellectual property rights related to the Pokémon” (nie udzieliliśmy żadnej zgody na wykorzystanie własności intelektualnej ani zasobów Pokémon w tej grze; zamierzamy zbadać sprawę i podjąć odpowiednie kroki wobec wszelkich działań naruszających prawa własności intelektualnej związane z Pokémon). Gra nie jest wymieniona z nazwy.70 Tekst japoński powyżej mówi jedną rzecz więcej, którą angielski pomija: wśród zapytań były opinie, że gra przypomina Pokémon (ポケモンに類似しているというご意見).70 Relacja Nintendo Life z tego samego dnia wymieniła grę z nazwy.71
Pozew, wrzesień 2024
Nintendo i The Pokémon Company ogłosiły 19 września 2024 roku, że wniosły do Sądu Okręgowego w Tokio pozew o naruszenie patentów przeciwko Pocketpair, złożony „on September 18, 2024” (18 września 2024 roku), w którym domagają się „an injunction against infringement and compensation for damages” (nakazu zaprzestania naruszeń i odszkodowania) na tej podstawie, że Palworld „infringes multiple patent rights” (narusza wiele praw patentowych).9 Komunikat Pocketpair z 8 listopada 2024 roku wymienił patenty i roszczenie:10
| Patent | Zgłoszony | Zarejestrowany |
|---|---|---|
| JP 7545191 | 30 lipca 2024 | 27 sierpnia 2024 |
| JP 7493117 | 26 lutego 2024 | 22 maja 2024 |
| JP 7528390 | 5 marca 2024 | 26 lipca 2024 |
Powodowie domagają się nakazu zaprzestania wobec Palworlda oraz 5 milionów jenów wraz z odsetkami za opóźnienie dla każdego z nich, „compensation for a portion of the damages incurred between the date of registration of the patents and the date of filing of this lawsuit” (odszkodowania za część szkód poniesionych między datą rejestracji patentów a datą wniesienia pozwu).10 Google Patents podaje Nintendo i The Pokémon Company jako uprawnionych ze wszystkich trzech.111213 Wszystkie trzy zgłoszono po premierze Palworlda, ale nie od zera. GamesRadar+, powołując się na japońskiego rzecznika patentowego Kiyoshiego Kuriharę, podaje, że wszystkie trzy są patentami wydzielonymi z patentu macierzystego, który opisuje jako zarejestrowany w grudniu 2021 roku.72 Tabele rodzin patentowych w Google Patents ujmują to inaczej: każdy z trzech podaje datę pierwszeństwa 22 grudnia 2021 roku i wywodzi się przez wydzielenie ze zgłoszenia złożonego tego dnia, JP 2021-208275 w przypadku 7493117 i 7545191 oraz JP 2021-208276 w przypadku 7528390; te dwa zgłoszenia opublikowano później jako JP 7398425 B2 (14 grudnia 2023) i JP 7349486 B2 (22 września 2023). Grudzień 2021 to data zgłoszenia; w zapisanych stronach nie znalazłem daty rejestracji żadnego z nich.111213
Co mówią trzy zastrzeżenia
Oto zastrzeżenie 1 każdego z nich, według maszynowego tłumaczenia z japońskiego w Google Patents; wiążący jest tekst japoński, a zastrzeżenia mogą zostać poprawione w toku sporu bez odzwierciedlenia tego na stronie Google.7333 Streszczam, a własne słowa tłumaczenia podaję w cudzysłowie.
JP 7493117, wskaźnik. W „the first mode” (pierwszym trybie) program określa „a direction of aim in the virtual space based on a first operation input which is a directional input” (kierunek celowania w wirtualnej przestrzeni na podstawie pierwszego wejścia sterującego, które jest wejściem kierunkowym); przy drugim wejściu kieruje celowanie na postać na polu i „a first indicator is displayed” (wyświetlany jest pierwszy wskaźnik); przy trzecim sprawia, że postać gracza uwalnia „a capture item for capturing the field character in the aiming direction” (przedmiot do łapania postaci na polu w kierunku celowania); przy trafieniu dokonuje „a capture success determination” (ustalenia powodzenia złapania); a wskaźnik to „information indicating the ease of making a positive judgment of the successful capture judgment” (informacja wskazująca, jak łatwo o pozytywny wynik oceny udanego złapania).11
JP 7545191, rzut. Naciśnięcie przycisku przygotowuje postawę do uwolnienia albo przedmiotu do łapania, z pierwszej grupy kategorii, albo postaci bojowej, z drugiej; wejście kierunkowe ustala celowanie; wejście „using an operation button different from the operation button” (za pomocą przycisku sterującego innego niż ten przycisk sterujący) wybiera, który przedmiot do łapania lub która postać bojowa; puszczenie pierwszego przycisku rzuca wybrany obiekt; przedmiot do łapania, który trafi, uruchamia ustalenie złapania; a postać bojowa uwolniona tam, gdzie może walczyć, powoduje, że ma się „a battle between the combat character and the field character on the field to commence” (rozpocząć na polu walka między postacią bojową a postacią na polu).12
JP 7528390, jazda. Postać gracza jest sterowana wejściami sterującymi; dosiada jednej z posiadanych „a plurality of types of rideable characters” (wielu rodzajów postaci, których można dosiadać), a „when a first operation input is performed while the player character is in the air” (gdy pierwsze wejście sterujące zostanie wykonane, kiedy postać gracza jest w powietrzu), wsiada na „an airborne rideable character” (latającą postać do dosiadania) i porusza się w powietrzu.13
GamesRadar+ podaje to samo przyporządkowanie, za Kuriharą i kancelarią rzeczników patentowych Siarasia via Automaton: 7545191 to łapanie przez celowanie i rzut, 7493117 to wskaźnik szansy złapania, 7528390 to wsiadanie i jazda.72
Co zmieniła gra
Komunikat Pocketpair z 8 maja 2025 roku mówi, co zrobiono. Łatka v0.3.11, wydana 30 listopada 2024 roku, „removed the ability to summon Pals by throwing Pal Spheres and instead changed it to a static summon next to the player” (usunęła możliwość przywoływania Pali przez rzucanie Pal Spheres i zastąpiła ją statycznym przywołaniem obok gracza); od v0.5.5 „gliding will be performed using a glider rather than with Pals” (szybowanie będzie odbywać się za pomocą lotni, a nie Pali). Komunikat mówi wprost, że „these changes were indeed a result of the ongoing litigation” (zmiany te rzeczywiście wynikały z toczącego się sporu), oraz że Pocketpair nadal będzie „to dispute these claims and assert the invalidity of the patents in question” (kwestionować te roszczenia i dowodzić nieważności tych patentów).74 W mojej interpretacji każda zmiana dotyka jednego kroku jednego zastrzeżenia: pierwsza rzucanego uwolnienia postaci bojowej w zastrzeżeniu 1 JP 7545191, druga powietrznego wierzchowca w zastrzeżeniu JP 7528390. To, czy zmieniona gra wychodzi teraz poza którekolwiek z nich, zależy od tego, jak sąd wyłoży te kroki; komunikat Pocketpair podaje, co zmieniono, a nie ustalenie, i żaden sąd nie orzekł.
Zawężenie, listopad 2025
Automaton podał 12 czerwca 2026 roku, na podstawie akt Sądu Okręgowego w Tokio przejrzanych przez japońską redakcję oraz za Games Fray, że powodowie „revised the scope of their claims in November 2025 so that they now apply only to older versions of Palworld” (zmienili w listopadzie 2025 roku zakres roszczeń tak, że dotyczą teraz wyłącznie starszych wersji Palworlda). Ta sama relacja: „While the plaintiffs are still seeking an injunction against Palworld, limiting the lawsuit to older versions of the game appears to reduce the likelihood that the current version will be directly affected” (choć powodowie nadal domagają się nakazu zaprzestania wobec Palworlda, ograniczenie pozwu do starszych wersji gry wydaje się zmniejszać prawdopodobieństwo, że obecna wersja zostanie bezpośrednio dotknięta). Akta wskazywały posiedzenie techniczne zaplanowane na 1 października 2026 roku, a wstępne stanowisko sądu na 9 listopada 2026 roku.29
Według stanu na 4 października 2026 roku lista ważnych komunikatów Pocketpair nie zawiera nic o pozwie po 8 maja 2025 roku, a ja nie znalazłem żadnego wymienionego z nazwy medium, które opisałoby, co wydarzyło się na posiedzeniu 1 października. Nie było doniesień o wyroku, ugodzie ani nakazie zaprzestania.30 Palworld opuścił Early Access w lipcu 2026 roku: Steam podaje datę wydania jako „9 Jul, 2026”, a Automaton podał zapowiedzianą datę jako 10 lipca.7529
Gra fanowska jako stan techniki
W tej historii jest ironia, która zasługuje na osobny akapit. Automaton podał 22 lipca 2026 roku, że Japoński Urząd Patentowy utrzymał odmowę dla zgłoszenia wydzielonego Nintendo i The Pokémon Company nr 2026-019762, opisującego „in-game monster-capturing system” (system łapania potworów w grze). Jedną z kluczowych podstaw był film z YouTube z 2013 roku przedstawiający grę fanowską Pokémon Generations. Strona Nintendo argumentowała, że gra fanowska naruszała jej prawa autorskie; ekspert odpowiedział, w streszczeniu Automatona, że „whether an invention infringes on copyright or not has no bearing on determining inventive step” (to, czy wynalazek narusza prawo autorskie, nie ma znaczenia dla oceny poziomu wynalazczego). Odmowa dotyczy tego zgłoszenia wydzielonego, a nie patentów powołanych w Tokio, a Nintendo miało trzy miesiące na wniesienie odwołania.76 Gra fanowska, czyli ten rodzaj projektu, którego dotyczyły sprawy z sekcji 8, stała się dowodem w sprawie mechaniki.
Strona amerykańska: jeden patent, w ponownym badaniu
Nie znalazłem doniesień o żadnym pozwie w USA przeciwko Pocketpair. Istnieje natomiast patent amerykański. US 12,403,397, przypisany Nintendo i The Pokémon Company, zgłoszono 1 marca 2023 roku i udzielono 2 września 2025 roku.61 Jego zastrzeżenie 1 porusza postać gracza po polu i wejściem przywołuje „a sub character” (postać pomocniczą); jeśli w miejscu pojawienia się postaci pomocniczej jest wróg, walka toczy się w „a first mode in which the battle proceeds based on an operation input” (pierwszym trybie, w którym walka przebiega na podstawie wejścia sterującego), a jeśli nie, postać pomocnicza zaczyna poruszać się automatycznie; drugie wejście wysyła ją w danym kierunku, a wróg w tym miejscu uruchamia „a second mode in which the battle automatically proceeds” (drugi tryb, w którym walka przebiega automatycznie).61
Engadget podał 4 listopada 2025 roku, że dyrektor USPTO osobiście zarządził ponowne badanie patentu, powołując jako stan techniki zgłoszenie Konami z 2002 roku i wcześniejszą publikację Nintendo.7778 Kancelaria MBHB napisała 3 kwietnia 2026 roku, że ponowne badanie nr 90/020,162 przyniosło pierwszy Office Action (pismo urzędu), wysłany 25 marca 2026 roku, który odrzucił wszystkie zastrzeżenia patentu jako oczywiste na podstawie 35 U.S.C. § 103, z terminem odpowiedzi do 25 czerwca 2026 roku albo do 25 września 2026 roku z przedłużeniami.79 Nie znalazłem żadnych doniesień o odpowiedzi Nintendo ani o żadnej późniejszej czynności.
Wybrane kroki łapania, walki i jazdy z zastrzeżenia 1 czterech przeczytanych patentów, z krokiem ruchu, który dzielą dwa z nich, oraz aplikacja; narysowane przez figures.py na podstawie measure_patent_claims.out.txt i zastrzeżenia amerykańskiego.4373
Co to oznacza dla hołdu
Moja interpretacja, a nie porada prawna. Zastrzeżenie obejmuje produkt tylko wtedy, gdy produkt wykonuje każdy jego krok, tak jak sąd wykłada każdy krok, albo jego ekwiwalent, który uznają sądy obu krajów (sekcja 7). Pocketpair zmienił przywołanie przez rzut i szybowanie i twierdzi, że nadal kwestionuje naruszenie i ważność patentów; Automaton podaje, że zmiany te mogły przyczynić się do zawężenia przez powodów pozwu do starszych wersji, przy wciąż dochodzonym nakazie zaprzestania.7429 Ani jedno, ani drugie nie jest ustaleniem, że obecna gra wychodzi poza zastrzeżenia, i żaden sąd nie orzekł. Kiradex wykonuje jeden zastrzeżony krok: kolekcjoner porusza się po polu za pomocą wejścia, co jest pierwszym krokiem zastrzeżenia amerykańskiego i częścią zastrzeżenia JP 7528390, a zarazem krokiem wspólnym dla większości gier. Nie ma łapania, rzucanego obiektu, stworzenia, walki ani wierzchowca, a każde z czterech zastrzeżeń wymaga też kroków łapania, walki lub jazdy, więc w mojej interpretacji żadne z nich nie opisuje Kiradex. To interpretacja czterech patentów, a nie badanie czystości patentowej. Nintendo i The Pokémon Company mają inne patenty, których nie czytałem, i nie szukałem patentów na liczniki kroków, wydarzenia sterowane zegarem ani rozchodzące się powiedzenia. Lista „nigdy” w sekcji 14 trzyma aplikację z dala od przeczytanych tu kroków łapania, walki i jazdy, i od niczego więcej.
10. Co publikują firmy
Nie znalazłem żadnej opublikowanej przez którąkolwiek z firm polityki dotyczącej gier fanowskich. To, co publikują, jest węższe, a oba dokumenty wskazują w tę samą stronę.
Zasady strony The Pokémon Company w Japonii
Strona z zasadami oficjalnej japońskiej witryny ma akapit o utworach zależnych, i jest to licencja w jedną stronę. Każdy, kto tworzy lub wykorzystuje utwór zależny oparty na ポケモン財産, własności Pokémon, którą strona definiuje jako materiały chronione prawem autorskim, znakami towarowymi, patentami, tajemnicą handlową oraz prawami do prywatności i wizerunku, udziela grupie The Pokémon Company, Nintendo, Creatures, GAME FREAK i podmiotom przez nie wskazanym niewyłącznej, sublicencjonowalnej, nieodpłatnej, wieczystej, nieodwołalnej i ogólnoświatowej licencji na korzystanie z niego w dowolnym celu. Następne zdanie, w moim przekładzie 個人的な利用を超えた…利用を許諾するものではありません, mówi, że żadne wykorzystanie utworu przez te firmy nie upoważnia twórcy do korzystania z własności Pokémon ani z własnego utworu zależnego poza użytkiem osobistym. Właściwe jest prawo japońskie, a wyłączną jurysdykcję w pierwszej instancji ma Sąd Okręgowy w Tokio.60 Ta sama strona mówi, że firma nie przyjmuje niezamówionych propozycji ani pomysłów dotyczących postaci czy produktów (企画・アイデア…一切公募をしておりません), oraz że nazwy ポケットモンスター, ポケモン i Pokémon są znakami towarowymi Nintendo, Creatures i GAME FREAK.60
Amerykańska strona z informacjami prawnymi w pokemon.com, na której według źródeł wtórnych znajduje się angielska klauzula o fan arcie, 4 października 2026 roku pokazała mojemu narzędziu pobierającemu weryfikację antybotową, a jej zarchiwizowana kopia zwróciła tę samą blokadę. Nie próbowałem jej obejść, więc jej tekst pozostaje tu niezweryfikowany, a ten wpis go nie cytuje.80
Game Content Guidelines Nintendo
Wytyczne Nintendo dotyczące udostępniania filmów i obrazów pozwalają na nagrania z rozgrywki i zrzuty ekranu, „for which Nintendo owns the copyright” (do których prawa autorskie należą do Nintendo), w treściach tworzonych dla serwisów z filmami i obrazami, i mówią: „We encourage you to create videos that include your creative input and commentary” (zachęcamy do tworzenia filmów z własnym wkładem twórczym i komentarzem). Monetyzacja jest dozwolona tylko metodami wymienionymi przez Nintendo, a „you may not sell any videos, music, or images that you created using Nintendo Game Content” (nie wolno sprzedawać żadnych filmów, muzyki ani obrazów stworzonych z użyciem treści z gier Nintendo). Pytanie 6 ma znaczenie dla każdego, kto tworzy coś innego: fan art, muzyka i treści inne niż nagrania z rozgrywki i zrzuty ekranu wykraczają poza wytyczne, a „Any other use of Nintendo’s intellectual property and creation of content outside of this scope is subject to the relevant laws of the applicable jurisdiction” (wszelkie inne wykorzystanie własności intelektualnej Nintendo i tworzenie treści poza tym zakresem podlega właściwym przepisom danej jurysdykcji).81
Co z tego wynika
Moja interpretacja: nie ma bezpiecznej przystani dla gry fanowskiej. Wytyczne Nintendo obejmują nagrania i zrzuty ekranu, a wszystko inne odsyłają do prawa ogólnego; zasady The Pokémon Company udzielają firmie licencji na utwór zależny, a jego twórcy nie udzielają niczego poza użytkiem osobistym.8160 Zamiast tego istnieje uznaniowość w egzekwowaniu praw, a historia spraw z sekcji 8 pokazuje, jak ta uznaniowość wyglądała. Dla Kiradex praktyczne konsekwencje to dwie pozycje na liście „nigdy” w briefie: nie tworzyć niczego, co byłoby utworem zależnym od własności Pokémon, i nie wysyłać niczego do kanałów fanowskich ani kanałów pomysłów żadnej z tych firm.
11. Gry-hołdy ich własnymi słowami
Coromon, Nexomon: Extinction, Cassette Beasts, Temtem, Monster Sanctuary i Moonstone Island oferują pętle łapania i wychowywania w światach pikselowych lub low-poly, wszystkie są sprzedawane za pieniądze i o żadnej z nich nie znalazłem doniesień, by stała się celem działań. To, jak same się opisują, jest najbardziej praktyczną wskazówką w tym wpisie, bo pokazuje, co faktycznie robią działające studia.
Strony sklepu nie wymieniają nikogo
Policzyłem to słowo w kartach sklepu Steam siedmiu gier, tych sześciu i Palworlda, pobranych przez API szczegółów aplikacji Steam 4 października 2026 roku. W krótkich i długich opisach żadna z siedmiu nie mówi „Pokémon”. Mówią „monster-taming RPG” (RPG o oswajaniu potworów; Coromon), „a return to classic monster catching games” (powrót do klasycznych gier o łapaniu potworów; Nexomon: Extinction), „Collect awesome monsters” (zbieraj niesamowite potwory) z „Fusion System” (systemem fuzji; Cassette Beasts), „an online creature-collection adventure” (sieciowa przygoda z kolekcjonowaniem stworzeń; Temtem), „Monster taming meets metroidvania” (oswajanie potworów spotyka metroidvanię; Monster Sanctuary), „a creature-collecting life-sim” (symulator życia z kolekcjonowaniem stworzeń) z „card-based encounters” (spotkaniami opartymi na kartach; Moonstone Island) oraz „Fight, farm, build and work alongside mysterious creatures” (walcz, uprawiaj, buduj i pracuj u boku tajemniczych stworzeń; Palworld).31 Jedna karta zawiera to słowo: pole cytatów z recenzji Temtem ma zdanie prasowe z Rock Paper Shotgun nazywające grę „A Pokemon-like that listens to what fans want” (grą w stylu Pokémon, która słucha, czego chcą fani).31 W tych siedmiu kartach własne słowa studiów nigdy nie używają nazwy do sprzedaży.
Wywiady wymieniają ją swobodnie
W wywiadach ci sami twórcy mówią o Pokémon otwarcie, jako o inspiracji, od której wyszli, a potem się od niej oddalili. Nintendo Life zapytało kilku z nich z okazji 30-lecia serii, w tekście opublikowanym 2 marca 2026 roku. Guillermo Andrades z Cremy: „In the early days of developing Temtem, we wanted to create almost a 1:1 homage to Pokémon” (na początku prac nad Temtem chcieliśmy stworzyć niemal hołd 1:1 dla Pokémon), zanim zespół znalazł więcej miejsca na „different approaches and unique twists” (inne podejścia i oryginalne zwroty). Główny twórca Nexomona, JVemon: „Strong inspirations needed to be drawn if we were to tap into the same player base” (trzeba było mocno się inspirować, jeśli chcieliśmy dotrzeć do tej samej bazy graczy). Jochem Pouwels z Coromona nazwał wysoką trawę „a little slot machine of possibility” (małym automatem do gry pełnym możliwości). Sandy Spink z Moonstone Island: „I got an atomic purple Game Boy Color and Pokémon Blue for my sixth birthday” (prezentem na szóste urodziny był przezroczysty fioletowy Game Boy Color i Pokémon Blue). I Tom Coxon z Bytten Studio: „I’ve never felt like Pokémon was the only thing a monster-collecting RPG could be” (nigdy nie czułem, że Pokémon to jedyne, czym może być RPG o kolekcjonowaniu potworów).32
Cassette Beasts to najwyraźniejsza deklaracja intencji. Pytanie założycielskie, jak podało Nintendo Life w kwietniu 2023 roku, brzmiało: „How can two people make a monster-collecting game that does stuff that Pokémon doesn’t do?” (jak dwie osoby mogą zrobić grę o kolekcjonowaniu potworów, która robi rzeczy, jakich Pokémon nie robi?). Jay Baylis: „We love Pokémon, sure, but we’re not making a game meant to be a tribute or derivative” (kochamy Pokémon, jasne, ale nie robimy gry, która ma być hołdem ani utworem pochodnym).82 Zapowiedź Temtem z kwietnia 2018 roku Gematsu opisało jako „a massively multiplayer creature collection adventure game inspired by Pokemon” (masowo wieloosobową przygodową grę o kolekcjonowaniu stworzeń inspirowaną Pokémon), słowami serwisu.83
Dlaczego to działa
Moja interpretacja: norma robocza wśród tych studiów jest ta sama, na którą wskazują prawo i wytyczne. Wymieniać Pokémon w rozmowie, by opisać, skąd się wyszło; nigdy nie używać tej nazwy do sprzedaży; wszystko rysować samodzielnie; i zmienić pętlę na tyle, by stała się własna (fuzja w Cassette Beasts, karty zamiast walk w Moonstone Island). Kiradex jest dalej od gatunku niż którakolwiek z nich, bez stworzeń, bez łapania i w ogóle bez walk, i pożycza mniej: spacer, zegar, kartę, powiedzenie.
12. Rzemiosło jako reguły z liczbami
To są reguły, z których zbudowano brief. Każda formułuje mechanikę w ogólnych kategoriach i wskazuje zmierzony fakt, na którym się opiera. Liczby pochodzą ze starych gier i są zachowane jako punkty wyjścia do naszego własnego strojenia, nigdy jako tabele do zaimportowania; powodem tego rozróżnienia jest chińska sprawa z sekcji 8.69
| Element | Reguła | Źródło |
|---|---|---|
| Rytm kroków | Posuwać rzeczy zależne od kroków w grubym rytmie, od 128 do 512 kroków, nigdy przy każdym kroku, by nagroda przychodziła jako wydarzenie, a nie jako wskaźnik | 2. generacja: jaja co 256 kroków, zadowolenie co 512; 3. generacja: losowanie przyjaźni z szansą 50 procent dla każdego członka drużyny co 128, jaja co 256 |
| Budżet kroków | Rzeczy ograniczone chodzeniem wydawać w krokach, nie w sekundach; krótka, średnia i długa ochrona na 100, 200 i 250 kroków; wyprawa na 500 | Odstraszacze, bez zmian od 1. do 3. generacji; Strefa Safari w Emerald |
| Pory dnia | Podzielić dobę na kilka nazwanych pór według zegara samego urządzenia; nasze to 6, 9, 17 i 20, a nie 4, 10 i 18 z gier | TimesOfDay w Crystal; Daylight.Phase w Kiradex |
| Spotkania | Powtarzające się wydarzenie w nazwane dni tygodnia, cotygodniowe losowanie w jeden stały dzień, najwyżej jedno okno na dzień tygodnia na kontakt | Konkurs łapania robaków trzy dni w tygodniu po 20 minut; Szczęśliwy Numer w piątki; 24 okna na rewanże |
| Wzrost | Cztery etapy, ostatni cztery razy dłuższy od każdego z trzech pierwszych (w briefie 256, 256, 256 i 1024 kroki na placu); liczone z czasu, który upłynął do powrotu; dojrzały plon czeka cztery długości etapu, a potem opada, i tylko bardzo długa nieobecność usuwa roślinę | Jagody w Emerald: od 4 do 96 godzin, niezebrane jagody znikają z końcem etapu z jagodami, drzewo usuwane po 71 długościach etapu nieobecności |
| Bezpieczny pokój | Miejsce, w którym dzienne zmiany nigdy się nie uruchamiają, dopóki się w nim stoi | Emerald pomija dzienne aktualizacje w Centrum Pokémon |
| Gwiazdki | Cztery gwiazdki, cztery różne rodzaje gry, każda przemalowuje kartę; nigdy dwie za tę samą aktywność, nigdy taka, którą można kupić | Cztery gwiazdki i pięć kolorów karty w Emerald |
| Siatka | Pudełko to strona na 30, 6 na 5 | Pudełka 3. generacji, które urosły z 20 na pudełko |
| Półki | Na trasach, nigdy w miasteczkach; od 10 do 25 komórek półek na pierwszej trasie | Emerald: 726 komórek półek na trasach, 0 w 7 miasteczkach; od 13 do 24 na trasach 101 do 104 |
| Serie | Zestawy po siedem, z kamieniami milowymi przy 5 i 10 zestawach | Wyzwania po 7 w Tower; jej Brain jako 35. i 70. walka |
| Rozchodzące się powiedzenie | Wynik, który zaczyna się losowo w ustalonym zakresie, dryfuje o 5 dziennie, na szczycie staje się nieświeży, a przy 0 znów świeży; nowe zastępuje stare tylko wtedy, gdy ma wyższy wynik; gdy spotykają się dwa miejsca, wygrywa wyższa kopia wspólnego powiedzenia; przechowywać 5 | Modne powiedzenie w Emerald, którego wynik zaczyna się między 30 a 127; Emerald przepuszcza też bez sprzeciwu pierwsze powiedzenie zapisu i rozstrzyga pełny remis rzutem monetą, z czego brief rezygnuje, a brief ustala własny zakres |
| Rzadki nauczyciel | Jeden nauczyciel, trudny do znalezienia (nasz stoi w jednym pokoju naraz i przenosi się co tydzień), poznawany przez kontakt; każde spotkanie, najwyżej jedno dziennie, uczy następnego słowa z ukrytej listy w stałej kolejności | Hipster: co piąty gracz, 33 ukryte słowa |
| Losowanie z kolekcji | Przeanalizowane, nie zbudowane: losowanie porównywane ze wszystkim, co posiada gracz, nagradza dużą kolekcję, ale jego nagroda jest losowa, a elementy kosmetyczne w tej serii nigdy nie są losowe | Lottery Corner w Emerald; cotygodniowy Szczęśliwy Numer w Crystal; zasada dotycząca elementów kosmetycznych z wpisu o postaciach |
| Przerwy | Każdą niewywołaną przerwę uzależniać od minutnika, który po każdej z nich startuje od najdłuższej wartości, oraz od rzutu monetą, i nigdy nie w drzwiach | Minutnik telefonów w Crystal: 20 minut po telefonie, potem 10, 5 i 3, dopóki żaden nie przychodzi, oraz losowanie z szansą 50 procent |
| Limity | Rzeczy w zbudowanym miejscu 16, w pokoju 12, przechowywane miejsca innych ludzi 20 | Limity tajnej bazy, pokoju i baz w Emerald |
| Cudze światy | Pozwolić, by miejsca, wiadomości i powiedzenia innych graczy trafiały do własnego świata, bez potrzeby, by byli online w tym samym czasie | Mieszany rekord Emerald o rozmiarze 5188 bajtów |
| Wyraz twórczy | Mechaniki plus własny wyraz twórczy; żadnych nazw, grafiki, muzyki, tekstów ani kodu z gier | Historia spraw z lat 2016 do 2024; Circular 33 |
| Zastrzeżone kroki | Pominąć kroki łapania, walki i jazdy z przeczytanych zastrzeżeń: żadnego celowanego i rzucanego przedmiotu do łapania, żadnego wskaźnika złapania, żadnego uwalnianego towarzysza bojowego, żadnego latającego wierzchowca, żadnego przywoływanego pomocnika walczącego w dwóch trybach | JP 7493117, 7545191, 7528390; US 12,403,397 |
Źródła do tabeli: licznik kroków;121415411716 zegar;1845192146223 karta i pudełka;2324 półki;39 serie;25 mieszanie rekordów;4285826 losowanie;5636 telefony;59 historia spraw i zastrzeżenia.4411121361
Dwie reguły zasługują na zdanie każda. Bezpieczny pokój to reguła, na którą nie wpadłbym bez czytania kodu: świat, który zmienia się sam, potrzebuje miejsca, w którym się nie zmienia, a dla Kiradex jest nim własny pokój kolekcjonera. A reguła wyrazu twórczego to cała prawna połowa w jednym wierszu, i dlatego stoi w tabeli projektowej, a nie w zastrzeżeniu prawnym: to reguła, której kuźnia przestrzega piksel po pikselu, tak jak przestrzega palety.
13. Sposób Apple: kroki w świecie gry, dzień z kalendarza
Żaden element briefu nie potrzebuje nowego frameworka. Potrzebuje dwóch dobrze podjętych decyzji: skąd bierze się krok i czym jest dzień.
Krok to krok na placu, a nie na ulicy
iOS oferuje dwa sposoby liczenia prawdziwych kroków człowieka. CMPedometer z Core Motion, dostępny od iOS 8.0, to „An object for fetching the system-generated live walking data” (obiekt do pobierania generowanych przez system bieżących danych o chodzeniu), a jego użycie wymaga w pliku Info.plist aplikacji opisu użycia, który system pokazuje w prośbie o zgodę; typ ilościowy stepCount z HealthKit, również od iOS 8.0, to „A quantity sample type that measures the number of steps the user has taken” (typ próbki ilościowej mierzący liczbę kroków wykonanych przez użytkownika).8485
Brief nie używa żadnego z nich. Kroki, od których rośnie roślina z sekcji 14, to kroki na placu. Serwer już odrzuca ruch na każdy kafel, po którym nie da się chodzić, i ogranicza, jak często kolekcjoner może się poruszać; nie sprawdza jeszcze, czy ruch prowadzi na sąsiedni kafel, więc liczenie kroku będzie oznaczać liczenie zaakceptowanego ruchu o jeden kafel, co przypina test akceptacyjny briefu.86 Moja interpretacja: proszenie w aplikacji dla dzieci o zgody na dane ruchu czy zdrowia po to, by rosła pikselowa dekoracja, nie jest proporcjonalne, wprowadziłoby zgodę zdrowotną do aplikacji kolekcjonerskiej bez żadnego kolekcjonerskiego celu i zamieniłoby roślinę w monitor aktywności, czyli inny produkt. Stare gry też liczyły kroki w świecie gry.
Dzień to dzień kalendarzowy kolekcjonera
Kiradex już odczytuje godzinę z zegara urządzenia: Daylight.Phase(hour:) przypisuje godziny od 6 do 9 porankowi, od 9 do 17 dniu, od 17 do 20 wieczorowi, a pozostałe nocy, a argument uruchomienia -plazaHour ustala godzinę na potrzeby testów interfejsu.45 Wydarzenie raz dziennie potrzebuje jeszcze jednej idei: klucza dnia. Calendar z Foundation daje go bezpośrednio. startOfDay(for:) zwraca „the first moment of a given Date” (pierwszy moment danej daty), a isDate(_:inSameDayAs:) odpowiada, czy dwie daty przypadają tego samego dnia; obie są dostępne od iOS 8.0, a wywołane z Calendar.current odpowiadają według własnego kalendarza kolekcjonera.8788 Szkic sprawdzenia dla porannej skrzynki, której jeszcze nie ma w aplikacji. Skrzynka przychodzi o 06:00, na początku poranka według Daylight, i czeka, aż zostanie otwarta, więc sprawdzenie pyta tylko, czy dzisiejsza skrzynka już przyszła i czy została otwarta. Godzinę odczytuje tak, jak już robi to scena placu: z Daylight.forcedHour, gdy test uruchamia aplikację z -plazaHour, a w przeciwnym razie z zegara kolekcjonera, tak aby test interfejsu z briefu mógł nią sterować:
/// Whether a crate is waiting for this collector now: today's crate has
/// arrived (it comes at 06:00, the start of Daylight's morning) and they
/// have not opened one today. It does not leave at 09:00.
func crateIsWaiting(lastOpened: Date?, now: Date = .now,
calendar: Calendar = .current) -> Bool {
let hour = Daylight.forcedHour ?? calendar.component(.hour, from: now)
guard hour >= 6 else { return false }
guard let lastOpened else { return true }
return !calendar.isDate(lastOpened, inSameDayAs: now)
}
To w swojej formie UpdatePerDay z Emerald: stan dnia wylicza się z daty w chwili przybycia, a nic nie musi działać w tle, by był poprawny.22 W przypadku aplikacji pozostawionej otwartej przez północ ponowne uzbrojenie zapewniają dwa powiadomienia. NSCalendarDayChanged jest „posted whenever the calendar day of the system changes, as determined by the system calendar, locale, and time zone” (publikowane za każdym razem, gdy zmienia się dzień kalendarzowy systemu, zgodnie z kalendarzem, ustawieniami regionalnymi i strefą czasową systemu), od iOS 8.0; significantTimeChangeNotification z UIKit jest publikowane przy „a change to a new day (midnight), a carrier time update, or a change to, or from, daylight savings time” (zmianie na nowy dzień o północy, aktualizacji czasu od operatora albo przejściu na czas letni lub z niego).8990
Czego potrzebuje serwer
Serwer placu obsługuje dziś wyłącznie obecność: przekazuje pozycje i gotowe kwestie i niczego nie przechowuje.8633 Dwa elementy briefu to zmieniają, i różnią się one charakterem. Rozchodzące się powiedzenie potrzebuje małego trwałego rekordu dla każdego pokoju placu: dwóch indeksów słów, wyniku, szczytu, kierunku dryfu i daty serwera, kiedy ostatnio zastosowano dryf, bez niczego o tym, kto zaproponował lub przeniósł powiedzenie. Ten rekord należy do pokoju, a nie do osoby. Rozety cotygodniowej sali potrzebują licznika zgłoszeń dla każdego kolekcjonera, a to już należy do osoby: to historia uczestnictwa, przechowywana pod identyfikatorem, po którym serwer rozpoznaje kolekcjonera. Dziś jest to identyfikator, który aplikacja tworzy sama: UUID wygenerowany na urządzeniu przy pierwszym wejściu kolekcjonera na plac, przechowywany w pamięci aplikacji i wysyłany przy każdym połączeniu, gdzie serwer odczytuje go jako UUID.86 Dokument świata aplikacji planuje kluczować serwer identyfikatorem gracza Game Center i mówi o nim: „That is a persistent identifier, which COPPA counts as personal information when combined with other data” (to trwały identyfikator, który COPPA uznaje za informację osobową w połączeniu z innymi danymi), więc projekt obejmuje politykę prywatności, brak zewnętrznej analityki i reklam, „deletion on request” (usunięcie na żądanie) i jest zbudowany tak, by „to collect as little as possible from anyone” (zbierać od każdego jak najmniej).37 W mojej interpretacji własny UUID aplikacji to również trwały identyfikator, bo tworzy się go raz i przechowuje, więc te zasady obowiązują licznik zgłoszeń niezależnie od tego, pod którym z dwóch identyfikatorów jest przechowywany (punkt 5 briefu mówi, jak). Moja interpretacja: wszystko, co współdzielą kolekcjonerzy, jak dzienny dryf powiedzenia, powinno działać według daty serwera, a nie telefonu, bo zegar telefonu da się przestawić do przodu; wszystko, co prywatne i kosmetyczne, jak skrzynka, może ufać telefonowi, bo przestawienie własnego zegara, by wcześniej otworzyć naklejkę, nikogo nie oszukuje.
Ile to kosztuje
Nic z tego nie zostało zbudowane, więc niczego nie zmierzono czasowo. Klucz dnia to jedno wywołanie kalendarza, a licznik kroków to jedna liczba całkowita na kolekcjonera; spodziewam się, że żadne z nich nie pojawi się w profilu wydajności, i nie powiem tego jako faktu, dopóki wersja nie zostanie zmierzona na telefonie.
14. Brief: co buduje Kiradex i jakie sprawdziany musi przejść
Ta sekcja to moja synteza, napisana dla aplikacji. Każdy element zachowuje mechanikę z sekcji 2 do 6 i zastępuje cały wyraz twórczy własnym wyrazem Kiradex: jego paletą, jego kaflami rysowanymi przez kuźnię, jego gotowymi kwestiami, jego gwiazdą kira. Każdy wskazuje, czego nie wolno mu przypominać, oraz sprawdzian, który może wykonać test, zrzut lub skrypt. Noty prawne to interpretacje, a nie porady.
Co już istnieje i na czym się buduje: plac z 16-pikselowych kafli, z gotowymi kwestiami przechowywanymi na serwerze i serwerem obsługującym wyłącznie obecność, który niczego nie przechowuje; Daylight.swift z własnymi porami (poranek od 6 do 9, dzień od 9 do 17, wieczór od 17 do 20, noc), które już teraz nie są godzinami 4, 10 i 18 z Crystal i tak pozostaną; cotygodniowa sala z tematem; karta kolekcjonera z poziomem mecenasa, przypinkami i poziomami z prawdziwych skanów; oraz pokój każdego kolekcjonera.86453533
1. Roślina na parapecie: licznik kroków, od którego coś rośnie w pokoju
- Mechanika. W pokoju każdego kolekcjonera przy oknie stoi jedna roślina w doniczce. Karmią ją kroki na placu i na trasach: jeden etap wzrostu co 256 kroków, cztery etapy (siewnik, kiełek, liściasta, kwitnąca); ostatni etap trwa cztery razy dłużej, a potem roślina zrzuca jeden zasuszony kwiat, dekorację do pokoju w kolorach kolejnej z 14 ramp palety miasteczka, w stałej kolejności, nigdy losowej, a roślina zaczyna od nowa od kiełka. Kroki wewnątrz pokoi nigdy się nie liczą: pokój jest bezpiecznym miejscem, tak jak Emerald wstrzymuje truciznę w tajnej bazie, a dzienne aktualizacje w Centrum Pokémon. (Reguły: rytm kroków, wzrost, bezpieczny pokój.)1142234
- Dlaczego. Chodzenie to jedyny stały czasownik placu; gruby rytm czyni kwiat wydarzeniem; a kwiat jest czymś do ustawienia, co zasila pokój.
- Kroki to kroki na placu, a nie dane o zdrowiu. Bez Core Motion, bez HealthKit (sekcja 13).
- Nie wolno przypominać. Jaja, inkubatora, czegokolwiek, co się wykluwa, drzewa jagodowego, nazw lub sprite’ów jagód, mechaniki podlewania powiązanej z poziomami plonu, żłobka. Niczego, co zmienia się w stworzenie. Żadnego „berry”, „egg” ani „hatch” w żadnym ciągu znaków.
- Akceptacja. Test serwerowy prowadzi bota przez 2048 kroków o jeden kafel i sprawdza zmiany etapu przy 256, 512 i 768, jeden zasuszony kwiat i roślinę z powrotem na etapie kiełka przy 1792 (etap kwitnienia trwa 1024 kroki), następną zmianę przy 2048 oraz brak zmian za kroki wykonane wewnątrz mapy pokoju i za zaakceptowany ruch o więcej niż jeden kafel; zrzut pokoju na każdym etapie pokazuje roślinę narysowaną przez kuźnię, a sprawdzenie palety znajduje każdy piksel w palecie kuźni.
2. Poranna skrzynka: dzienny zegar z porannym wydarzeniem
- Mechanika. Na początku poranka według Kiradex, o 06:00 na zegarze kolekcjonera (
Daylight.Phase.morningzaczyna się o 6), przed sklepem z kartami pojawia się skrzynka z dostawą i stoi tam, dopóki nie zostanie otwarta. Jej otwarcie daje kolejną rzecz ze stałej listy: naklejkę, kolor ramki albo słowo do powiedzenia (punkt 6). Jedna skrzynka dziennie, a skrzynki nigdy się nie piętrzą. Stan dnia wylicza się w chwili przybycia z lokalnej daty, nigdy przez działający minutnik. (Reguły: pory dnia, spotkania, wzrost.)4522 - Bez odliczania, bez przypadku. Zasada tej serii dla elementów kosmetycznych brzmi „never random, never on a countdown” (nigdy losowo, nigdy na odliczanie).36 Skrzynka nie ma więc terminu: nie znika o 09:00, a ponieważ jej zawartość przychodzi po kolei z jednej listy, pominięty dzień tylko opóźnia następną naklejkę i nigdy żadnej nie odbiera. Poranek to chwila, w której skrzynka przychodzi, a nie okno, które trzeba złapać.
- Kształt tygodnia. Nadać tygodniowi nazwane dni, tak jak Crystal, ale najwyżej jedno spotkanie dziennie: dzień oceniania w sali pozostaje cotygodniowy, zgodnie z planem, a jednego wieczoru w tygodniu sklepikarz przestawia witrynę.1921
- Nie wolno przypominać. Konkursu łapania robaków (łapania na czas we wtorek, czwartek i sobotę), wyrobu Poké Balli przez Kurta, radiowej audycji z loterią, Pokégear ani telefonu. Żadnych telefonów w grze.
- Akceptacja. Test interfejsu uruchomiony z
-plazaHour 7pokazuje nieotwartą skrzynkę, podobnie jak uruchomiony z-plazaHour 21; uruchomiony z-plazaHour 5jeszcze żadnej nie pokazuje. Test jednostkowy klucza dnia pokazuje, że skrzynka otwarta dwa razy tego samego lokalnego dnia daje nagrodę raz, a przesunięcie daty o jeden dzień uzbraja ją ponownie; test, który pomija trzy dni, a potem otwiera skrzynkę, dostaje następny element listy, a nie ten trzy pozycje dalej.
3. Karta kolekcjonera z gwiazdkami
- Mechanika. Karta, która otwiera się po dotknięciu kolekcjonera przez kogoś innego, zyskuje do czterech gwiazdek, każdą za inny rodzaj gry, a jej krawędź zmienia się z każdą gwiazdką według własnej sekwencji Kiradex: gładka bez żadnej, potem matowa, z foliowym obramowaniem, z holograficzną krawędzią i pełna kira przy czterech. Proponowane gwiazdki, każda za prawdziwe kolekcjonowanie albo grę na placu: prawdziwy zestaw ukończony skanami; 100 różnych odwiedzonych pokoi; miejsce w cotygodniowej sali; oraz skany w 30 różnych dniach. Poziom mecenasa pozostaje osobną linią na karcie, nigdy gwiazdką. (Reguła: gwiazdki.)23
- Dlaczego nie 30-dniowa seria. Dossier proponowało 30-dniową serię skanów. Zmieniłem ją na 30 różnych dni, które nigdy nie wygasają, bo przerwana seria karze dziecko za tydzień nieobecności i dlatego, że PEGI od czerwca 2026 roku uwzględnia w klasyfikacji wygasające serie logowań, co odnotowuje wpis o postaciach z tej serii.3336
- Nie wolno przypominać. Nazwy „Trainer Card”; układu karty trenera (portret po prawej, rząd odznak u dołu, numer ID i pieniądze); zielonej, brązowej, miedzianej, srebrnej i złotej palety kart; kształtów odznak; odniesień do sal; czasu z Galerii Sław. Gwiazdki rysuje się wyłącznie jako gwiazdę kira Kiradex.
- Akceptacja. Test snapshotowy renderuje kartę z 0 do 4 gwiazdkami i znajduje pięć krawędzi w tej kolejności; test jednostkowy dowodzi, że żadna ścieżka zakupu nie ustawia gwiazdki (transakcje StoreKit nigdy nie dotykają pól gwiazdek); wyszukanie „Trainer” w katalogu ciągów znaków nic nie znajduje.
4. Jednokierunkowy uskok na trasie
- Mechanika. Na trasie za placem jednokierunkowe uskoki wysokości jednej komórki: zejście z nich przenosi o rząd niżej, a wspiąć się z powrotem nie można. Każdy ich ciąg sprawia, że droga powrotna jest inna, więc krótka trasa ma pętlę. Od 10 do 25 komórek uskoku na pierwszej trasie, wobec 13 do 24 na trasach 101 do 104; żadnych w miasteczku. (Reguła: półki.)39
- Kto decyduje. Badanie konstrukcji odrzuciło półki, bo swobodną wysokość trudno odczytać w widoku z góry; jednokomórkowy, jednokierunkowy uskok nie ma wysokości, tylko skierowaną krawędź w grafie chodzenia. Ten brief zawęża odmowę zamiast ją uchylać, a decyzja należy do wpisów o wysokości i trasach z tej serii.3533
- Nie wolno przypominać. Kafla półki z Pokémon (trawiasta krawędź z jasną górną linią i ciemną linią cienia), jego animacji podskoku ani dźwięku. Narysować go w kuźni jako kamienny krawężnik lub stopień w żywopłocie w palecie Kiradex, z własnymi klatkami zeskoku.
- Akceptacja. Walidacja chodzenia na serwerze ma skierowane krawędzie w komórkach uskoku; test sprawdza, że krok w odwrotną stronę jest odrzucany; skrypt przeszukiwania wszerz zgłasza drogę powrotną różną od drogi tam.
5. Cotygodniowa sala z zestawami po siedem
- Mechanika. Zachować cotygodniowe ocenianie, które sala już przewiduje. Dodać kształt Frontier do uczestnictwa, nie do wygrywania: każde siedem zgłoszeń daje rozetę sali na karcie kolekcjonera, a przy 35 i 70 zgłoszeniach, czyli pięciu i dziesięciu zestawach, opiekun sali wychodzi obejrzeć ekspozycję. Zgłoszenia liczą się bez względu na to, kiedy nastąpiły, nigdy tylko w kolejnych tygodniach, z powodu opisanego w punkcie 3. Rozety zdobywa się za udział i miejsca, nigdy za zakup. (Reguła: serie.)25
- Dane. Licznik zgłoszeń to historia uczestnictwa powiązana z identyfikatorem kolekcjonera, więc według własnych zasad aplikacji jest to informacja osobowa: jest przechowywany pod jedynym identyfikatorem, po którym serwer rozpoznaje kolekcjonera, jakikolwiek by on w danej chwili był, i pod niczym innym (dziś UUID, który aplikacja generuje dla placu; identyfikator gracza Game Center, gdy serwer zacznie go używać, jak planuje dokument świata; każdy z nich to trwały identyfikator), objęty polityką prywatności, nigdy nie wysyłany do analityki ani reklam i usuwany wraz z resztą rekordu kolekcjonera na żądanie usunięcia. To jeden bieżący licznik, bez dziennika pojedynczych zgłoszeń. Dokument świata nie określa okresu przechowywania; to sprawa dla opinii prawnika, której ten dokument już wymaga.3786
- Nie wolno przypominać. Kategorii konkursów (Cool, Beauty, Cute, Smart, Tough), nazw rang (Normal, Super, Hyper, Master), sceny Contest Hall, rund prezentacji, Battle Tower, symboli Frontier, wzorów wstążek Pokémon. Rozety Kiradex są własne, we własnej palecie.
- Akceptacja. Test serwerowy przeprowadza symulowanego uczestnika przez 70 zgłoszeń i sprawdza rozety przy 7, 14 i tak dalej oraz wizytę opiekuna przy 35 i 70; test z mecenasem najwyższego poziomu nie wykazuje różnicy w punktacji; test usunięcia usuwa kolekcjonera i nie znajduje pod jego identyfikatorem żadnego licznika zgłoszeń.
6. Powiedzenie tygodnia: fraza, która rozchodzi się między placami
- Mechanika. Każdy pokój placu ma powiedzenie: dwa słowa z własnego gotowego słownika Kiradex, uczucie i słowo kolekcjonerskie („lucky binder”, „quiet holo”). Gdy para zostaje zaproponowana, serwer nadaje jej szczyt między 25 a 100, własny zakres Kiradex (w Emerald zakres sięga od 30 do 127, pod pułapem 7-bitowego pola), oraz wynik początkowy między 25 a tym szczytem. Wynik rośnie o 5 dziennie do szczytu, gdzie powiedzenie staje się nieświeże, potem spada o 5 dziennie do dna równego 0, gdzie staje się świeże i znów rośnie; dzienny ruch, który przekroczyłby szczyt lub dno, zatrzymuje się na nim. Kolekcjoner może zaproponować nową parę przy tablicy ogłoszeń; przejmuje ona pokój tylko wtedy, gdy jej wynik jest ściśle wyższy, a przy remisie pokój zachowuje swoje. To uproszczenie Kiradex: Emerald przepuszcza pierwsze powiedzenie zapisu bez porównania i rozstrzyga pełny remis rzutem monetą. Gdy kolekcjoner przechodzi między pokojami, powiedzenie wędruje z nim, a tam, gdzie spotykają się powiedzenia dwóch pokoi, wygrywa wyższy wynik. Kolekcjonerzy z samego miasteczka powtarzają bieżące powiedzenie. Jeden z nich, zbieracz słów, stoi w jednym pokoju naraz i przenosi się co tydzień; rozmowa z nim odblokowuje kolejne gotowe słowo z ukrytej listy, w stałej kolejności, nigdy losowej, i najwyżej jedno słowo dziennie. (Reguły: rozchodzące się powiedzenie, rzadki nauczyciel.)428
- Serwer. Mały trwały rekord dla każdego pokoju: dwa indeksy słów, wynik, szczyt, kierunek dryfu i data serwera, kiedy ostatnio zastosowano dryf. Przy odczycie serwer stosuje 5 punktów za każdy dzień od tej daty, dzień po dniu, a potem zapisuje dzisiejszą datę, więc każdy dzień jest stosowany raz, niezależnie od tego, jak często pokój jest odczytywany i ile razy serwer się restartuje.
UpdatePerDayw Emerald robi to samo z zapisanym numerem dnia: porównuje go z dzisiejszym, przekazuje różnicę modzie, a potem zapisuje dzisiejszy.22 Rekord należy do pokoju: nic w nim nie mówi, kto zaproponował lub przeniósł powiedzenie (sekcja 13). - Bezpieczeństwo dzieci. Wyłącznie gotowe słowa, z list, które serwer przechowuje i może wycofać, tak jak już dzieje się z gotowymi kwestiami placu. Żadnego swobodnego tekstu ani słów wymyślanych przez użytkowników.86
- Nie wolno przypominać. Grup słów i słów Easy Chat (w tym 33 Trendy Sayings), Dewford Hall, staruszka z Mauville, wyglądu Hipstera, mieszania rekordów jako nazwanej funkcji, programu telewizyjnego o modzie.
- Akceptacja. Test serwerowy: powiedzenie pokoju A z wynikiem 90 spotyka powiedzenie pokoju B z wynikiem 60, gdy kolekcjoner przechodzi z A do B, i powiedzenie B staje się powiedzeniem A; nowa para z tym samym wynikiem co powiedzenie pokoju go nie przejmuje. Test dryfu zaczyna od powiedzenia z wynikiem 45, rosnącego, ze szczytem 60: trzy odczyty w następnym dniu według serwera zostawiają je na 50, a nie na 60; po restarcie serwera w tym dniu nadal odczytuje się 50; potem dziesięć dni bez odczytów, a pierwszy odczyt stosuje wszystkie dziesięć naraz, w górę do 60, nieświeże, i w dół do 20, tak samo jak przy odczycie raz dziennie; nieświeże powiedzenie z wynikiem 10 trzy dni później odczytuje się jako 5, rosnące po dotknięciu 0.91 Skrypt porównuje gotowy słownik z listami słów Easy Chat z pokeemerald i nie znajduje wspólnych wpisów wielowyrazowych (pospolite pojedyncze słowa, takie jak „hello”, są nieuniknione i nie stanowią problemu). Test zbieracza słów: n-ta rozmowa kolekcjonera z nim, każda innego dnia, odblokowuje n-te słowo z ukrytej listy, a powtórka tego samego dnia nic nie odblokowuje.
Nigdy
- Żadnego wyrazu twórczego Pokémon gdziekolwiek w świecie gry: żadnego stworzenia, żadnej sylwetki stworzenia ani oryginalnego stworzenia, które się z nim rymuje, żadnego trenera, przedmiotu, nazwy miejsca, muzyki, efektu dźwiękowego, kafla, sprite’a, palety ani układu ekranu wziętego, odrysowanego lub przerysowanego z jakiejkolwiek gry Pokémon.37
- Żadnego słownictwa franczyzy w nazwach funkcji: Pokédex, Poké Ball, Poké-cokolwiek, Trainer Card, Gym, Badge, Elite Four, Hall of Fame, Safari Zone, Repel, Secret Base, Record Mixing, Easy Chat, Trendy Saying, Contest, PokéNav, Pokégear, Match Call, VS Seeker, Battle Tower, Frontier. Nie sprawdzałem, które z nich są zarejestrowanymi znakami; razem oznaczałyby produkt jako pochodny, a własne opisy gier-hołdów w sklepie obywają się nawet bez nazwy serii.31
- Żadnego z zastrzeżonych kroków łapania, walki ani jazdy: niczego celowanego i rzucanego, by cokolwiek złapać; żadnego wskaźnika szansy złapania; żadnego towarzysza uwalnianego do walki; żadnego latającego ani szybującego wierzchowca; żadnego przywoływanego pomocnika walczącego w dwóch trybach.11121361
- Żadnego kodu ani danych z dekompilacji w aplikacji ani w kuźni. Służą do nauki i pomiarów; ich kod i zasoby wywodzą się z gier.
- Żadnego „Pokémon” w marketingu poza jedną nominatywną linijką opisu, na którą pozwalają własne zasady aplikacji: nazwa w App Store, podtytuł, ikona, zrzuty ekranu, reklamy i zwiastuny pozostają czyste.3731
- Żadnego crowdfundingu ani oferty dla prasy opartych na nostalgii za Pokémon. Prasa, a potem finansowanie, to wyzwalacz opisany przez byłego głównego prawnika The Pokémon Company.67
- Żadnego kształtu hazardu i żadnego przypadku w elementach kosmetycznych: żadnych automatów do gry, żadnego salonu gier, żadnych losowań, żadnych losowych przedmiotów, płatnych ani darmowych.3336
- Żadnych pomysłów ani twórczości fanowskiej wysyłanych do The Pokémon Company lub Nintendo, i żadnego korzystania z ich kanałów fanowskich ani kanałów pomysłów: ich zasady udzielają im licencji na taką twórczość i mówią, że nie przyjmują niezamówionych pomysłów.60
- Żadnych obrazów kart poza identyfikacją: nigdy w pakietach, nigdy w grafikach marketingowych, nigdy na gadżetach.37
- Żadnych danych o zdrowiu ani ruchu jako podstawy nagród w grze (sekcja 13).
Poza tym briefem
Żetony i salon gier (odrzucone wyżej); dzienne losowanie (wersję porównywaną z numerami kolekcjonerskimi zeskanowanych kart przygotowano i porzucono, bo jej nagroda jest losowa); telefony i telewizja (gotowe kwestie placu już mówią, a świat, który dzwoni na telefon dziecka, nie jest światem, który chcę budować); masowe wysypy i roje (nie ma stworzeń, które mogłyby się roić); pudełka w PC (to, jak układa się kolekcję na stronie, należy do wpisu o pokojach); rowery i drzewa do ścięcia (należą do tras); limity tajnych baz (limity pokoi należą do wpisu o pokojach); i wszystko z Pokéathlonu.
Uczciwe granice
Cztery przeczytane patenty, trzy japońskie i jeden amerykański, z Google Patents, z japońskimi zastrzeżeniami w tłumaczeniu maszynowym; żadnego wyszukiwania patentów na liczniki kroków, zegary ani rozchodzące się powiedzenia; żadnej konsultacji z prawnikiem. Sprawa Palworlda była wciąż otwarta 4 października 2026 roku: posiedzenie techniczne zaplanowano na 1 października i nie było doniesień o jego wyniku, a wstępne stanowisko sądu zaplanowano na 9 listopada. Kolejny krok amerykańskiego ponownego badania nie jest znany z doniesień. Amerykańska strona prawna The Pokémon Company była niedostępna. Każdy element powyżej to mechanika, którą uważam za wolną do użycia jako nasz własny wyraz twórczy, a każde z tych przekonań jest interpretacją.297980
Najważniejsze wnioski
Dla rysujących grafikę
- Rysować każdy piksel samodzielnie, z własnej palety i według własnych reguł. Każdy projekt fanowski z tej historii, który wywołał działania, używał nazw, grafiki lub kodu samych gier albo linkował do gier, które to robiły.5678
- Wygląd mechaniki jest wyrazem twórczym, nawet gdy sama mechanika nim nie jest: półka może być kamiennym krawężnikiem, gwiazdka może być własną gwiazdą, kolory karty mogą być własną sekwencją. Przed narysowaniem każdego elementu nazwać, czego nie wolno mu przypominać.
- Zachować własne słownictwo. Trainer Card, Safari Zone, Secret Base i reszta oznaczają produkt jako pochodny; własne opisy gier-hołdów w sklepie obywają się nawet bez nazwy serii.31
Dla budujących silnik
- Liczyć kroki w świecie gry, a nie w człowieku: zweryfikowany przez serwer ruch o jeden kafel, nigdy Core Motion ani HealthKit dla dekoracji.8684
- Wyliczać dzień w chwili przybycia z klucza dnia (
startOfDay(for:),isDate(_:inSameDayAs:)), uzbrajać ponownie naNSCalendarDayChangedi niczego nie uruchamiać w tle; toUpdatePerDayz Emerald w Swifcie.87888922 - Wszystko, co współdzielone, prowadzić według zegara serwera, a wszystko prywatne i kosmetyczne według zegara telefonu.
- Nigdy nie wydawać kodu ani danych z dekompilacji; czytać ją, mierzyć, cytować.
Dla projektujących pętlę
- Płacić za chodzenie w grubym rytmie (od 128 do 512 kroków), wydawać budżety w krokach, a nie w sekundach, i sprawić, by nieobecność niewiele kosztowała: dojrzałe jagody w Emerald czekają cztery długości etapu, zanim opadną, a drzewo usuwa dopiero bardzo długa nieobecność.1214153
- Nadać tygodniowi nazwane dni z najwyżej jednym spotkaniem każdego dnia i zachować jeden bezpieczny pokój, w którym nic się nie zmienia.192122
- Cztery gwiazdki, cztery różne rodzaje gry, żadna na sprzedaż; gdy graczami są dzieci, liczyć zgłoszenia, a nie nieprzerwane serie; i żadnego elementu kosmetycznego z przypadku ani na czas.2336
- Pozwolić, by światy innych ludzi trafiały do własnego: powiedzenie z wynikiem, dryfem i regułą kontaktu wędruje, gdy gracze się spotykają, bez żadnych ogłoszeń.426
- Czytać zastrzeżenia patentowe ze swojego gatunku krok po kroku, notować, które kroki wykonuje własny projekt (poruszanie postacią za pomocą wejścia jest tu jednym z nich), i pomijać kroki, które czynią każde zastrzeżenie tym, czym jest; a potem jasno powiedzieć, które patenty się przeczytało. To moja interpretacja, a nie porada prawna.11121361
Często zadawane pytania
Czy można zrobić grę inspirowaną Pokémon i nie zostać pozwanym?
Nikt nie może tego obiecać, a to nie jest porada prawna. Historia spraw jest jednak spójna: projekty fanowskie z tej historii, które w latach 2016 do 2024 spotkały się z żądaniami usunięcia, używały własnych nazw, grafiki lub kodu Pokémon albo linkowały do gier, które to robiły, a jedyna sprawa toczona o mechaniki, Palworld, opiera się na patentach, których zastrzeżenia wymagają konkretnych kroków, takich jak celowanie i rzucanie przedmiotem do łapania.567810 Prawo autorskie nie chroni systemów ani metod działania, ale znak towarowy chroni nazwy, a patent może zastrzegać metodę w grze.4411 Gry-hołdy takie jak Coromon, Temtem i Cassette Beasts oferują gatunek z własną grafiką, a krótkie i długie opisy na ich stronach w Steam, czyli pisane przez twórców pola, które policzyłem, nigdy nie używają tej nazwy; strona Temtem zawiera ją raz, w cytacie prasowym.31
Czy Pokémon Uranium dostało wezwanie do zaprzestania naruszeń?
Według relacji twórców nie. Ich oświadczenie, opisane przez Kotaku 13 sierpnia 2016 roku, mówi, że po ponad 1 500 000 pobrań zostali „been notified of multiple takedown notices from lawyers representing Nintendo of America” (powiadomieni o wielu zawiadomieniach o usunięciu treści od prawników reprezentujących Nintendo of America), oraz że „we have not personally been contacted” (nikt nie skontaktował się z nami osobiście); linki do pobrania usunęli sami.5 Pokémon Prism takie wezwanie dostał, 21 grudnia 2016 roku, cztery dni przed planowaną premierą.665
O jakie patenty Nintendo i The Pokémon Company pozywają Palworld?
O trzy japońskie patenty wymienione w komunikacie Pocketpair z 8 listopada 2024 roku: nr 7545191 (celowanie i rzucanie przedmiotem do łapania albo postacią bojową z przygotowanej postawy, z przedmiotem lub postacią wybieranymi drugim przyciskiem), nr 7493117 (wskaźnik prawdopodobieństwa powodzenia złapania) i nr 7528390 (jazda na posiadanych postaciach, w tym wsiadanie na latającą w powietrzu). Wszystkie trzy zgłoszono w 2024 roku, po premierze Palworlda, jako zgłoszenia wydzielone, których pierwszeństwo sięga zgłoszeń złożonych 22 grudnia 2021 roku.1072111213 Patent amerykański 12,403,397, dotyczący przywoływanej postaci pomocniczej walczącej w dwóch trybach, jest w ponownym badaniu, a nie było doniesień o żadnym pozwie w USA przeciwko Pocketpair.6179
Czy spór o Palworld się zakończył?
Nie według stanu na 4 października 2026 roku. Automaton podał w czerwcu 2026 roku, na podstawie akt Sądu Okręgowego w Tokio, że powodowie zawęzili w listopadzie 2025 roku swoje roszczenia do starszych wersji Palworlda, nadal domagając się nakazu zaprzestania, a posiedzenie techniczne zaplanowano na 1 października 2026 roku, wstępne stanowisko sądu zaś na 9 listopada 2026 roku. Nie było doniesień o wyroku, ugodzie ani nakazie zaprzestania, a Pocketpair nie opublikował nic o sprawie od 8 maja 2025 roku.2930
Czy Nintendo pozwala na gry fanowskie?
Nie znalazłem żadnych opublikowanych wytycznych Nintendo ani Pokémon, które obejmowałyby gry fanowskie. Game Content Guidelines Nintendo obejmują nagrania z rozgrywki i zrzuty ekranu i mówią, że każde inne wykorzystanie jego własności intelektualnej „is subject to the relevant laws of the applicable jurisdiction” (podlega właściwym przepisom danej jurysdykcji); zasady japońskiej strony The Pokémon Company udzielają firmie licencji na utwory zależne, a ich twórcom nie udzielają niczego poza użytkiem osobistym.8160 W mojej interpretacji nie ma bezpiecznej przystani, jest tylko uznaniowość w egzekwowaniu praw; były główny radca prawny firmy powiedział, że wyzwalaczem jest prasa, a potem finansowanie.67
Jak działał licznik kroków w starych grach Pokémon?
Każdy krok po świecie gry przechodzi przez jedną procedurę. W Gold, Silver i Crystal co 256 kroków przybliża ona jaja w drużynie do wyklucia, co 512 podnosi zadowolenie drużyny (procedura zadowolenia jest wywoływana co 256 kroków i działa co drugie wywołanie), co 4 rani zatrutego Pokémona i sprawia, że właściciel sklepu rowerowego dzwoni po 1024 krokach na rowerze; w Emerald co 128 kroków każdy Pokémon w drużynie ma 50 procent szansy na zyskanie przyjaźni, a jaja tracą cykl co 256, w kolejności drużyny aż do pierwszego jaja gotowego do wyklucia. Strefa Safari (500 kroków) i odstraszacze (100, 200 i 250) to budżety wydawane chodzeniem.121415411617
Co zmienił zegar czasu rzeczywistego w Gold i Silver?
Doba ma trzy pory, poranek od 4:00, dzień od 10:00 i noc od 18:00; konkurs łapania robaków odbywa się we wtorek, czwartek i sobotę przez 20 minut; losowanie Szczęśliwego Numeru jest cotygodniowe, w piątki; do 24 trenerów można zadzwonić w sprawie rewanżu, do każdego o jednej porze jednego dnia tygodnia; a 16 dziennych flag zeruje się o północy.1819214620 Emerald dodał do tego kalendarz: jagody, które owocują od 4 do 96 godzin, i modne powiedzenie, które dryfuje o 5 punktów dziennie.34
Powiązane na tej stronie: Pikselowe światy na iPhonie to pierwszy poradnik z tej serii, z systemami kafli, paletą i przepisem na RealityKit, którymi rysowane jest miasteczko, a jego prawne pytania i odpowiedzi to krótka wersja sekcji 7 do 10 z tego wpisu; Pikselowe konstrukcje zbudowały domy miasteczka, salę i pokoje, w których stałaby roślina, i wymieniają jednokierunkową półkę wśród rzeczy, których miasteczko jeszcze nie ma; Pikselowi ludzie to kolekcjoner, który przeszedłby te 256 kroków, z zasadami dotyczącymi elementów kosmetycznych i dzieci, na których opiera się zmiana serii w punkcie 3.
Źródła
-
pret,
pokecrystal/engine/overworld/events.asmw commicie5beda23(CountStepod wiersza 877:DoRepelStep,wStepCount, komentarze „Every 256 steps, increase the happiness of all your Pokemon”, „Every 256 steps, offset from the happiness incrementor by 128 steps” zcp $80, „Every 4 steps, deal damage to all poisoned Pokemon”; krok doświadczenia w żłobku;DoBikeStepod wiersza 1279 zcp HIGH(1024)i limitem 65 535), https://github.com/pret/pokecrystal/blob/master/engine/overworld/events.asm. Stałe i wiersze wypisane przezmeasure_systems.pyw folderze dowodów autora do tego wpisu (wynikmeasure_systems.out.txt), uruchomiony 4 października 2026; opisy działania to interpretacja kodu przez autora. ↩↩↩↩↩↩↩↩↩↩↩ -
pret,
pokecrystal/engine/events/happiness_egg.asmw commicie5beda23(StepHappinessw wierszu 107; jego komentarz „Raise the party’s happiness by 1 point every other step cycle” w wierszu 108;ld hl, wHappinessStepCount,inc a,and 1,ld [hl], a,ret nzw wierszach 110 do 115; jaja pomijane przezcp EGG), https://github.com/pret/pokecrystal/blob/master/engine/events/happiness_egg.asm, wywoływane przezCountStepwengine/overworld/events.asmza każdym razem, gdy jednobajtowywStepCountsię przekręca. Wiersze wypisane przezmeasure_systems.py, wynikmeasure_systems.out.txt, ponownie uruchomiony 4 października 2026; to, że zadowolenie rośnie co 512 kroków, jest interpretacją przełącznika przez autora. ↩↩↩↩↩↩↩↩ -
pret,
pokeemerald/src/berry.cw commicie731ad5b(BerryTreeTimeUpdate, test usunięcia* 71w wierszu 1089,minutesUntilNextStage *= 4w wierszach 1109 i 1127, reset po 10 odrostach w wierszu 1071,GetStageDurationByBerryTypezwracającestageDuration * 60w wierszu 1252,CalcBerryYieldInternal;BerryTreeGroww wierszach 1064 do 1072, gdzie koniec etapu z jagodami ustawiaberryYield = 0i przywraca etapBERRY_STAGE_SPROUTED; wartościstageDuration43 jagód) orazpokeemerald/src/clock.c(UpdatePerMinute), https://github.com/pret/pokeemerald/blob/master/src/berry.c. Zliczenia według długości etapu (1 godzina: 5, 3: 12, 4: 1, 6: 11, 12: 1, 18: 5, 24: 8) i godziny do pierwszych jagód wyliczameasure_systems.py, wynikmeasure_systems.out.txt, 4 października 2026. ↩↩↩↩↩↩↩↩↩↩↩ -
pret,
pokeemerald/src/dewford_trend.cw commicie731ad5b(komentarz nagłówkowy pliku: modność „Initialized as a random value between 30-127 inclusive”, reguły przyjmowania i „boring”,SAVED_TRENDS_COUNT (5), reguła mieszania rekordów;UpdateDewfordTrendPerDayzclockRand = days * 5w wierszu 96;SeedTrendRng, wiersze 369 do 383, które losujeRandom() % 98i dodaje 30;TrySetTrendyPhraseod wiersza 151, którego gałąź pierwszego zgłoszenia w wierszach 158 do 169 ustawia słowa bez porównania, gdy zapis nigdy nie zmienił mody ani nie mieszał rekordów, a którego porównanie w wierszu 181 używaCompareTrendswSORT_MODE_NORMAL, wiersze 332 do 337 i 366: modność, potem maksymalna modność, potemRandom() & 1przy pełnym remisie), https://github.com/pret/pokeemerald/blob/master/src/dewford_trend.c, orazinclude/global.hw tym samym commicie (trendiness:7imaxTrendiness:7w wierszach 643 i 644, więc wynik nie może przekroczyć 127). Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩↩↩↩↩↩↩↩ -
Jason Schreier, „Pokémon Uranium Creators Pull Game After A Reported 1.5 Million Downloads”, Kotaku, 13 sierpnia 2016 (data strony; 20:34 czasu wschodniego, czyli 14 sierpnia według UTC), z pełnym oświadczeniem twórców, dostęp 4 października 2026, https://kotaku.com/pokemon-uranium-creators-pull-game-after-1-5-million-do-1785258831. ↩↩↩↩↩↩↩↩
-
Heather Alexandra, „Pirates Leak Pokémon Prism After Nintendo Shuts It Down”, Kotaku, 29 grudnia 2016 (wezwanie do zaprzestania naruszeń z 21 grudnia, planowana premiera w Boże Narodzenie, zdjęcie Pokémon Brown i Rijon Adventures), dostęp 4 października 2026, https://kotaku.com/pirates-leak-pokemon-prism-after-nintendo-shuts-it-down-1790598623. ↩↩↩↩↩↩↩
-
Cohen Coberly, „Nintendo slaps fan game creation tool ‘Pokemon Essentials’ with DMCA takedown”, TechSpot, 29 sierpnia 2018, za Ars Technica (podporządkowanie się Fandomu, usunięcie plików z PokéCommunity, cytat o zasobach), dostęp 4 października 2026, https://www.techspot.com/news/76202-nintendo-slaps-fan-game-creation-tool-pokemon-essentials.html. ↩↩↩↩↩
-
Catherine Lewis, GamesRadar+, „After almost 10 years, unofficial Pokemon website known for sharing fan-made games shuts down after reportedly receiving a DMCA takedown notice”, 22 marca 2024 (oświadczenie Relic Castle; linki zamiast hostingu; niepotwierdzony nadawca), dostęp 4 października 2026, https://www.gamesradar.com/after-almost-10-years-unofficial-pokemon-website-known-for-sharing-fan-made-games-shuts-down-after-reportedly-receiving-a-dmca-takedown-notice/. ↩↩↩↩↩↩
-
Nintendo Co., Ltd. i The Pokémon Company, „Filing Lawsuit for Infringement of Patent Rights against Pocketpair, Inc.”, wspólny komunikat prasowy, 19 września 2024 (pozew złożony w Sądzie Okręgowym w Tokio 18 września 2024; nakaz zaprzestania i odszkodowanie), dostęp 4 października 2026, https://www.nintendo.co.jp/corporate/release/en/2024/240919.html. ↩↩
-
Pocketpair, „Report on Patent Infringement Lawsuit”, ważny komunikat, 8 listopada 2024 (premiera Palworlda 19 stycznia 2024; patenty nr 7545191, 7493117 i 7528390 z datami zgłoszenia i rejestracji; nakaz zaprzestania oraz 5 milionów jenów z odsetkami za opóźnienie dla każdego z powodów), dostęp 4 października 2026, https://www.pocketpair.jp/en/news/report-on-patent-infringement-lawsuit/. ↩↩↩↩↩↩
-
Google Patents, JP7493117B2, „Game program, game system, game device, and game processing method” (uprawnieni Nintendo Co., Ltd. i The Pokémon Company; zgłoszenie z datą 26 lutego 2024; tabela pierwszeństwa podaje datę pierwszeństwa 22 grudnia 2021, tabela zgłoszeń zastrzegających pierwszeństwo wymienia JP2021208275A, złożone tego dnia, jako JP7398425B2, a lista publikacji podaje JP7398425B2 jako opublikowane 14 grudnia 2023), zastrzeżenie 1 w maszynowym tłumaczeniu Google z japońskiego, zapisane 4 października 2026 i wyodrębnione przez
measure_patent_claims.py(wynikmeasure_patent_claims.out.txt) w folderze dowodów autora do tego wpisu, https://patents.google.com/patent/JP7493117B2/en. Wiążący jest tekst japoński. ↩↩↩↩↩↩↩↩↩↩ -
Google Patents, JP7545191B1, „Game program, game system, game device, and game processing method” (uprawnieni Nintendo Co., Ltd. i The Pokémon Company; zgłoszenie z datą 30 lipca 2024; data pierwszeństwa 22 grudnia 2021, przez zgłoszenie macierzyste JP2024031879A, wydzielone w tej samej rodzinie co JP2021208275A, złożone 22 grudnia 2021 i opublikowane jako JP7398425B2 14 grudnia 2023), zastrzeżenie 1 w maszynowym tłumaczeniu Google, zapisane 4 października 2026 i wyodrębnione przez
measure_patent_claims.py, https://patents.google.com/patent/JP7545191B1/en. Wiążący jest tekst japoński. ↩↩↩↩↩↩↩↩ -
Google Patents, JP7528390B2, „Game program, game system, information processing device, and information processing method” (uprawnieni Nintendo Co., Ltd. i The Pokémon Company; zgłoszenie z datą 5 marca 2024; data pierwszeństwa 22 grudnia 2021, w rodzinie JP2021208276A, złożonego tego dnia i opublikowanego jako JP7349486B2 22 września 2023), zastrzeżenie 1 w maszynowym tłumaczeniu Google, zapisane 4 października 2026 i wyodrębnione przez
measure_patent_claims.py, https://patents.google.com/patent/JP7528390B2/en. Wiążący jest tekst japoński. ↩↩↩↩↩↩↩↩ -
pret,
pokeemerald/src/field_control_avatar.cw commicie731ad5b(TryStartStepCountScript, wiersze 543 do 604, w tymShouldDoBrailleRegicePuzzlew wierszu 565 zIslandCave_EventScript_OpenRegiEntrancei pięć sprawdzeńShouldDo...Callw wierszach 570 do 590;(*ptr) %= 128w wierszu 620 dla przyjaźni;(*ptr) %= 4w wierszu 645 dla trucizny, pomijane w tajnych bazach), https://github.com/pret/pokeemerald/blob/master/src/field_control_avatar.c. Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩↩↩↩↩ -
pret,
pokeemerald/src/pokemon.cw commicie731ad5b(AdjustFriendshipod wiersza 5914; jaja wykluczone przezspecies != SPECIES_EGG; dlaFRIENDSHIP_EVENT_WALKINGkomentarz „50% chance every 128 steps” iif (Random() & 1) return;w wierszach 5950 do 5952; modyfikator chodzenia{ 1, 1, 1}w wierszu 2100), https://github.com/pret/pokeemerald/blob/master/src/pokemon.c, orazsrc/field_control_avatar.c(UpdateFriendshipStepCounter, które wywołujeAdjustFriendship(mon, FRIENDSHIP_EVENT_WALKING)dla każdego miejsca w drużynie w wierszach 624 do 626). Wiersze wypisane przezmeasure_systems.py, ponownie uruchomiony 4 października 2026; średnia raz na 256 kroków wynika z losowania z szansą 50 procent w 128-krokowym rytmie. ↩↩↩↩↩↩ -
pret,
pokered/scripts/SafariZoneGate.asmw commicied2704a6(30 balli w wierszu 186,HIGH(502)/LOW(502)w wierszach 188 i 190, tekst o 500 ¥ w wierszu 214, potemld a, PAD_UP,ld c, 3icall SafariZoneEntranceAutoWalkw wierszach 192 do 194 orazSetEvent EVENT_IN_SAFARI_ZONEw wierszu 195; sam licznik kroków jest zmniejszany wengine/events/hidden_events/safari_game.asm, czego tu nie emulowano), https://github.com/pret/pokered/blob/master/scripts/SafariZoneGate.asm, orazpokeemerald/src/safari_zone.cw731ad5b(sSafariZoneStepCounter = 500w wierszu 61), https://github.com/pret/pokeemerald/blob/master/src/safari_zone.c. Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩↩ -
pret,
pokered/engine/items/item_effects.asmwd2704a6(ItemUseRepelld b, 100,ItemUseSuperRepelld b, 200,ItemUseMaxRepelld b, 250), https://github.com/pret/pokered/blob/master/engine/items/item_effects.asm, orazpokeemerald/src/data/items.hw731ad5b(holdEffectParam100, 200, 250), https://github.com/pret/pokeemerald/blob/master/src/data/items.h. Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩↩ -
pret,
pokecrystal/constants/misc_constants.asmw5beda23(MORN_HOUR 4,DAY_HOUR 10,NITE_HOUR 18, wiersze 36 do 38) orazpokecrystal/engine/rtc/rtc.asm(tabelaTimesOfDayi jej komentarz w wierszu 50; nieużywanaBetaTimesOfDay), https://github.com/pret/pokecrystal/blob/master/constants/misc_constants.asm i https://github.com/pret/pokecrystal/blob/master/engine/rtc/rtc.asm. Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩ -
pret,
pokecrystal/maps/Route35NationalParkGate.asmw5beda23(sprawdzenia dnia tygodnia dla wtorku, czwartku i soboty, wiersze 38 do 40) orazpokecrystal/constants/script_constants.asm(BUG_CONTEST_BALLS 20,BUG_CONTEST_MINUTES 20, wiersze 293 i 294), https://github.com/pret/pokecrystal/blob/master/maps/Route35NationalParkGate.asm. Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩↩↩↩ -
pret,
pokecrystal/constants/engine_flags.asmw5beda23(wDailyFlags1iwDailyFlags2, po 8 flag), https://github.com/pret/pokecrystal/blob/master/constants/engine_flags.asm. Policzone przezmeasure_systems.py. ↩↩↩↩ -
pret,
pokecrystal/engine/overworld/time.asmw5beda23(.GetDaysUntilNextFriday, wiersz 241) orazpokecrystal/engine/events/lucky_number.asm(porównanie z identyfikatorem każdego posiadanego Pokémona i trzy poziomy nagród), https://github.com/pret/pokecrystal/blob/master/engine/events/lucky_number.asm. Wiersze wypisane przezmeasure_systems.py; poziomy to interpretacja procedury przez autora. ↩↩↩↩↩↩↩↩ -
pret,
pokeemerald/src/clock.cw731ad5b(UpdatePerDay, które odczytuje zapisany numer dniaVAR_DAYSw wierszu 38, porównuje go z dzisiejszym w wierszu 41, obliczadaysSincew wierszu 43, wykonuje z nim jedenaście wywołań w wierszach 44 do 54 i zapisuje dzisiejszy dzień w wierszu 55; dwa z nich toUpdateFrontierManiaciUpdateFrontierGambler; oraz warunek!InPokemonCenter()w wierszu 28 przed aktualizacjami dziennymi i minutowymi), https://github.com/pret/pokeemerald/blob/master/src/clock.c. Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩↩↩↩↩↩↩ -
pret,
pokeemerald/src/trainer_card.cw731ad5b(palety kart Hoenn i Kanto według liczby gwiazdek, wiersze 267 do 280;CountPlayerTrainerStars, wiersze 663 do 677;GetRubyTrainerStars, wiersze 679 do 692, dla karty z Ruby lub Sapphire: czas debiutu w Galerii Sław,caughtAllHoenn,battleTowerStraightWins > 49w wierszu 687 ihasAllPaintings; limity 9999 i 999 w wierszach 711 do 743), https://github.com/pret/pokeemerald/blob/master/src/trainer_card.c. Wiersze wypisane przezmeasure_systems.py; Ruby i Sapphire nie ma wśród klonów, więc ich regułę odczytano z tego kodu, który interpretuje ich karty. ↩↩↩↩↩↩↩↩↩ -
pret,
pokered/constants/pokemon_data_constants.asm(MONS_PER_BOX 20,NUM_BOXES 12),pokecrystal/constants/pokemon_data_constants.asm(MONS_PER_BOX 20,MONS_PER_BOX_JP 30,NUM_BOXES 14) orazpokeemerald/include/pokemon_storage_system.h(TOTAL_BOXES_COUNT 14,IN_BOX_ROWS 5,IN_BOX_COLUMNS 6, nazwy i tapety pudełek), https://github.com/pret/pokeemerald/blob/master/include/pokemon_storage_system.h. Wiersze wypisane przezmeasure_systems.py. ↩↩↩ -
pret,
pokeemerald/include/constants/battle_frontier.hw731ad5b(MAX_STREAK 9999,FRONTIER_STAGES_PER_CHALLENGE 7) orazpokeemerald/src/frontier_util.c(tabela serii Frontier Brain, wiersze 88 do 94, której czwarta kolumna to modyfikator;GetFrontierBrainStatus, wiersze 1656 do 1693, zwinStreakNoModifier + sFrontierBrainStreakAppearances[facility][3]w wierszu 1662 i porównaniem w wierszu 1674;IncrementWinStreakod wiersza 2111). To, co liczy każda seria, odczytano ze skryptów obiektów w tym samym commicie: sale walk Tower, Palace, Arena i Factory wywołująBattleFrontier_EventScript_IncrementWinStreakpo każdym pokonanym przeciwniku i kończą wyzwanie, gdy liczba walk dojdzie do 7 (case 7wscripts.inckażdej sali: Tower wiersz 51, Palace wiersz 70, Arena wiersz 107, Factory wiersz 104); Pyramid wywołuje je wBattlePyramid_WarpToNextFloor(data/maps/BattleFrontier_BattlePyramidFloor/scripts.inc, wiersz 88), które po 7. piętrze przenosi gracza na szczyt (wiersz 93); Dome wywołuje je raz na wygrany turniej, wBattleFrontier_BattleDomeLobby_EventScript_WonChallenge(data/maps/BattleFrontier_BattleDomeLobby/scripts.inc, wiersze 44 i 45), aIncrementWinStreak(src/frontier_util.c, wiersze 2130 do 2134) zwiększa zarównodomeWinStreaks, jak idomeTotalChampionships; turniej toDOME_ROUNDS_COUNT 4rundy (include/constants/battle_dome.h, wiersz 8). (IncrementDomeStreakswsrc/battle_dome.crobiłoby to samo, ale jego makro,dome_incrementstreaks, nie jest nigdzie używane wdata/.)include/constants/battle_pike.hustawiaNUM_PIKE_ROOMS 14w wierszu 4 i wymienia dziewięć rodzajów pomieszczeń, w tym pełne i częściowe leczenie, pomieszczenie ze statusem i pomieszczenie z postacią niezależną, asrc/battle_pike.cdzieli serię Pike przezNUM_PIKE_ROOMSw wierszu 1401, https://github.com/pret/pokeemerald/blob/master/src/frontier_util.c. Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩↩↩ -
pret,
pokeemerald/src/record_mixing.cw731ad5b(układ mieszanego rekordu, wiersze 67 do 78, kończący się na przesunięciu0x1434plus 16 bajtów wypełnienia, łącznie0x1444bajtów), https://github.com/pret/pokeemerald/blob/master/src/record_mixing.c. Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩↩↩ -
pret,
pokeemerald/include/constants/tv.hw731ad5b(POKENEWS_COUNTDOWN 4,NUM_NORMAL_TVSHOW_SLOTS 5,TV_SHOWS_COUNTrówne 5 plus 20; rodzaje programów, policzone przezmeasure_systems.pyjako 11 zwykłych, 19 tylko z mieszania rekordów i 1 o wysypie;NUM_CUTIES_RIBBONS 4w wierszu 84, stała, z którą porównują miejsca wywołujące Spot the Cuties), https://github.com/pret/pokeemerald/blob/master/include/constants/tv.h. ↩↩↩↩↩ -
pret,
pokeemerald/src/easy_chat.cw731ad5b(komentarz o Trendy Sayings w wierszach 5429 do 5436),pokeemerald/include/constants/easy_chat.h(NUM_TRENDY_SAYINGS 33),pokeemerald/src/mauville_old_man.c((trainerId % 10) / 2, wiersz 120) orazpokeemerald/include/constants/mauville_old_man.h(pięć odmian), https://github.com/pret/pokeemerald/blob/master/src/easy_chat.c i https://github.com/pret/pokeemerald/blob/master/src/mauville_old_man.c. Wiersze wypisane przezmeasure_systems.py. ↩↩↩↩↩↩↩ -
Automaton West, „Nintendo and The Pokémon Company have reportedly narrowed Palworld lawsuit to older versions of the game only, likely thanks to ‘preventive’ updates by Pocketpair”, 12 czerwca 2026 (akta Sądu Okręgowego w Tokio przejrzane przez japońską redakcję Automatona oraz Games Fray; zmiana z listopada 2025; wciąż dochodzony nakaz zaprzestania; terminy 1 października i 9 listopada 2026; zapowiedziana premiera 10 lipca), dostęp 4 października 2026, https://automaton-media.com/en/news/nintendo-and-the-pokemon-company-have-reportedly-narrowed-palworld-lawsuit-to-older-versions-of-the-game-only-likely-thanks-to-preventive-updates-by-pocketpair/. ↩↩↩↩↩↩
-
Pocketpair, lista ważnych komunikatów, dostęp 4 października 2026 (najnowszy komunikat z 12 stycznia 2026, o grze karcianej; najnowszy dotyczący pozwu z 8 maja 2025), https://www.pocketpair.jp/en/news/category/important-en/. Brak doniesień to tyle, ile autor zdołał znaleźć, a nie dowód. ↩↩↩
-
Zliczenie autora, 4 października 2026:
figures/steam_names.pyobok szkicu, na siedmiu kartach szczegółów aplikacji Steam zapisanych w folderze dowodów autora do tego wpisu (steam_*.html; Coromon 1218210, Nexomon: Extinction 1196630, Cassette Beasts 1321440, Temtem 745920, Monster Sanctuary 814370, Moonstone Island 1658150, Palworld 1623730), z liczeniem „Pokémon” lub „Pokemon” pole po polu: zero we wszystkich krótkich i długich opisach; jedno w polureviewsTemtem, cytat z Rock Paper Shotgun. Wynikfigures/steam_names.out.txt. ↩↩↩↩↩↩↩ -
Nintendo Life, „’The Single Best Game Concept Ever’ - Pokémon-Inspired Devs Talk The Series That Started It All”, 2 marca 2026 (Andrades, JVemon, Pouwels, Spink, Coxon), dostęp 4 października 2026, https://www.nintendolife.com/features/the-single-best-game-concept-ever-pokemon-inspired-devs-talk-the-series-that-started-it-all. ↩↩
-
Dossier badawcze autora, „Homage without borrowing”, 4 października 2026,
docs/research/homage/01-homage.mdw repozytorium Kiradex: brief, z którego pochodzi sekcja 14 tego wpisu, odrzucenie półek w badaniu konstrukcji (jego sekcja 8.8), fragmenty badania kolekcjonerstwa o płatnych losowych przedmiotach i automatach do gry oraz projekt serwera placu obsługującego wyłącznie obecność. Repozytorium prywatne. ↩↩↩↩↩↩↩↩↩↩↩ -
Blake Crosley, „Pixel-Art Worlds on iPhone: What the 16-Bit Masters Knew”, blakecrosley.com, 3 października 2026, zaktualizowano 4 października 2026 (58 kolorów kuźni w czternastu rampach; prawne pytania i odpowiedzi, poprawione 4 października tak, by wymieniały prawo autorskie i patenty z Palworlda), https://blakecrosley.com/blog/pixel-art-world-on-iphone. ↩↩↩↩↩
-
Blake Crosley, „Pixel-Art Structures: Houses, Halls and Interiors on iPhone”, blakecrosley.com, 3 października 2026 (pokoje, sala oraz „a one-way ledge” wśród rzeczy, których miasteczko nie ma), https://blakecrosley.com/blog/pixel-art-structures-on-iphone. ↩↩↩↩
-
Blake Crosley, „Pixel-Art People: Characters and a Creator on iPhone”, blakecrosley.com, 3 października 2026 (klasyfikacja PEGI płatnych losowych przedmiotów i wygasających serii logowań od czerwca 2026; jego zasada, że każdy element kosmetyczny jest „purely visual, never random, never on a countdown”), https://blakecrosley.com/blog/pixel-art-characters-on-iphone. ↩↩↩↩↩↩↩↩
-
Aplikacja autora, repozytorium Kiradex w commicie
b1b78b1(4 października 2026),docs/WORLD.mdsekcja 1, „Can this exist without being sued” (zasady Kiradex World, nominatywna linijka opisu, obrazy kart wyłącznie do identyfikacji oraz wcześniejsze sformułowanie o Uranium, które ten wpis poprawia), sekcja 2 (projekt zbudowany tak, by zbierać jak najmniej, wiersze 146 do 149) i akapit o danych w sekcji 3 (serwer kluczowany identyfikatorem gracza Game Center, trwałym identyfikatorem, który COPPA uznaje za informację osobową w połączeniu z innymi danymi, polityka prywatności, brak zewnętrznej analityki i reklam, usunięcie na żądanie, wiersze 199 do 206). Repozytorium prywatne. ↩↩↩↩↩↩↩↩ -
Pomiar autora, 4 października 2026, rozszerzony 5 października 2026 tak, by wypisywał każdy wiersz cytowany w przypisach:
measure_systems.pyw folderze dowodów autora do tego wpisu, uruchomiony na płytkich klonachpokered(d2704a6),pokecrystal(5beda23),pokeemerald(731ad5b) ipokefirered(037335f) projektu pret, commitach z gałęzi master z datami odpowiednio 22 września, 29 września, 1 października i 26 września 2026 (git show -sw każdym klonie); wypisuje każdą stałą z plikiem i wierszem i wylicza zliczenia, wynikmeasure_systems.out.txt. Pliki README repozytoriów wymieniają SHA-1 każdego budowanego ROM-u, na przykład https://github.com/pret/pokeemerald/blob/master/README.md. ↩↩ -
Pomiar autora, 4 października 2026:
measure_map_features.pyw folderze dowodów autora do tego wpisu, na każdymdata/maps/*/map.jsonwpokeemeraldprojektu pret w731ad5b, rozwiązującymap.binkażdego unikalnego układu względem jego pierwotnego i wtórnegometatile_attributes.bin(półkiMB_JUMP_*; tylko dla Mach BikeMB_MUDDY_SLOPEiMB_CRACKED_FLOOR; tylko dla Acro Bike szyny iMB_BUMPY_SLOPE;MB_TALL_GRASS) i liczący obiektyOBJ_EVENT_GFX_CUTTABLE_TREEna wszystkich mapach; uruchomiony ponownie dla tego wpisu, wynik zapisany jakofigures/measure_map_features.out.txtobok szkicu. Komórki, nie obiekty; współdzielone układy liczone raz. ↩↩↩↩↩↩↩↩↩ -
pret,
pokecrystal/engine/overworld/events.asmw commicie5beda23(wiersze komentarza „decrease the hatch counter of all your eggs until you reach the first” i „one that is ready to hatch” w wierszach 892 i 893;farcall DoEggStepijr nz, .hatchw wierszach 898 i 899;.hatchładujePLAYEREVENT_HATCHw wierszu 928, co uruchamiaHatchEggScript, etykietę w wierszu 999 z jejcallasm OverworldHatchEggw wierszu 1000) orazpokecrystal/engine/pokemon/breeding.asmw tym samym commicie (DoEggStepod wiersza 174: przechodzi po kolei przezwPartySpecies, pomija wszystko, co nie jestEGG, a przy jaju wykonujedec [hl]w wierszu 185 i wraca z niezerowym wynikiem w wierszu 189, gdy licznik dojdzie do 0), https://github.com/pret/pokecrystal/blob/master/engine/pokemon/breeding.asm. To, że dalsze jaja czekają na następny takt, jest interpretacją wczesnego powrotu przez autora. ↩ -
pret,
pokeemerald/src/daycare.cw731ad5b((daycare->mons[1].steps & 0xFF) == 0xFFw wierszu 890;++daycare->stepCounter == 255w wierszu 898;GetEggCyclesToSubtract; pętla po drużynie od wiersza 903, która pomijaMON_DATA_SANITY_IS_BAD_EGGw wierszu 907, odejmuje tylko wtedy, gdyeggCycles != 0w wierszu 911, a w przeciwnym razie ustawiagSpecialVar_0x8004 = iw wierszu 922 i wraca w wierszu 923, więc pętla kończy się na tym jaju;ShouldEggHatchuruchamia wtedyEventScript_EggHatchwsrc/field_control_avatar.cw wierszach 554 do 557), https://github.com/pret/pokeemerald/blob/master/src/daycare.c. Wiersze wypisane przezmeasure_systems.py. ↩↩↩ -
pret,
pokeemerald/src/battle_setup.cw731ad5b(STEP_COUNTER_MAX 255w wierszu 1792,HasAtLeastFiveBadges()w wierszu 1796), https://github.com/pret/pokeemerald/blob/master/src/battle_setup.c, orazpokefirered/src/vs_seeker.cw037335f(vsSeekerChargeSteps == 100w wierszu 855), https://github.com/pret/pokefirered/blob/master/src/vs_seeker.c. Wiersze wypisane przezmeasure_systems.py. ↩↩ -
Wykresy autora, narysowane 4 października 2026 (nota prawna macierzy zastrzeżeń przerysowana 5 października 2026) przez
figures/figures.pyobok szkicu na podstawiemeasure_systems.out.txt,measure_map_features.out.txt,measure_patent_claims.out.txt, zapisanej strony patentu amerykańskiego, datowanych stron z historii spraw cytowanych w sekcjach 8 i 9 orazKiradex/World/Daylight.swift; skrypt przed rysowaniem ponownie odczytuje i weryfikuje wartości źródłowe. Bez grafiki z gier, bez logotypów. ↩↩↩↩↩↩ -
U.S. Copyright Office, Circular 33: Works Not Protected by Copyright, https://www.copyright.gov/circs/circ33.pdf, w wersji cytowanej w pierwszym wpisie z tej serii (jego przypis 19, dostęp 2 października 2026). ↩↩↩↩
-
Aplikacja autora, repozytorium Kiradex w commicie
b1b78b1:Kiradex/World/Daylight.swift(Phase.init(hour:):case 6..<9: self = .morning,9..<17dzień,17..<20wieczór, w pozostałych przypadkach noc;Daylight.forcedHour, które odczytuje argument uruchomienia-plazaHour, w wierszach 100 do 105),Kiradex/World/PlazaStage.swift(daylight(at:), które używaDaylight.forcedHour, gdy jest ustawione, w wierszu 58) orazKiradexUITests/KiradexUITests.swift(spacer uruchomiony z-plazaHour 21). Repozytorium prywatne. ↩↩↩↩↩ -
pret,
pokecrystal/constants/phone_constants.asmw5beda23(CONTACT_LIST_SIZE 10) orazpokecrystal/constants/engine_flags.asm(wDailyRematchFlags24,wDailyPhoneItemFlags10,wDailyPhoneTimeOfDayFlags24; okna telefonów według dnia tygodnia: poniedziałek 3, wtorek 3, środa 4, czwartek 4, piątek 4, sobota 3, niedziela 3, oraz według pory: rano 9, po południu 7, w nocy 8, policzone przezmeasure_systems.py), https://github.com/pret/pokecrystal/blob/master/constants/phone_constants.asm. ↩↩↩↩↩ -
pret,
pokeemerald/include/constants/flags.hw731ad5b(12 nazwanych flagFLAG_DAILY_*, 9 z nich to jagody w prezencie), https://github.com/pret/pokeemerald/blob/master/include/constants/flags.h. Wymienione przezmeasure_systems.py. ↩ -
pret,
pokeemerald/include/constants/berry.hw731ad5b(stałe etapów w wierszach 20 do 26,BERRY_TREES_COUNT 128w wierszu 130), https://github.com/pret/pokeemerald/blob/master/include/constants/berry.h. Wiersze wypisane przezmeasure_systems.py. ↩ -
Wyliczenie autora, 5 października 2026:
enumerate_berry_yield.pyw folderze dowodów autora do tego wpisu, który wypisujeCalcBerryYieldInternalzsrc/berry.cw pokeemerald w731ad5b(wiersze 1210 do 1234:return min, gdy nic nie podlano; w przeciwnym razierandMin + Random() % (randMax - randMin + 1)w przedziale od(max - min) * (water - 1)do(max - min) * water, podzielone przezNUM_WATER_STAGES(4) i zaokrąglone połówkami w górę), odczytujeminYieldimaxYield43 jagód (od 1 do 2 dla 14 jagód, od 2 do 3 dla 14, od 2 do 4 dla 5, od 2 do 6 dla 5, od 3 do 6 dla 5) i wymienia każdy plon, jaki może dać każda liczba podlanych etapów; wynikenumerate_berry_yield.out.txt. ↩ -
Serebii.net, „Pokéathlon” (HeartGold i SoulSilver; runda trzech konkurencji, premia za pierwsze miejsce, codzienny sklep i nagłówek „Daily & Weekly Events”), dostęp 4 października 2026, https://www.serebii.net/heartgoldsoulsilver/pokeathlon.shtml. Źródło wtórne; nie mierzone. ↩
-
pret,
pokeemerald/src/tv.cw731ad5b(TryStartRandomMassOutbreakwywoływane zTryPutPokemonTodayOnAirw wierszu 1115, flaga ukończenia gry w wierszu 1652 i pętla istniejącego wysypu w wierszach 1654 do 1657, która przebiegai < LAST_TVSHOW_IDXzLAST_TVSHOW_IDXzdefiniowanym w wierszu 49 jakoTV_SHOWS_COUNT - 1, więc sprawdza miejsca od 0 do 23 z 25;StartMassOutbreakod wiersza 1563, które ustawiaoutbreakDaysLeft = 2w wierszu 1578 i jest wywoływane w wierszu 4906 przezDoTVShowPokemonNewsMassOutbreak, czyli relację o wysypie odtwarzaną w telewizorze;UpdateTimeBeforeMassOutbreak, wiersze 1716 do 1737, codziennie zmniejszadaysBeforeOutbreak, aGetRandomActiveShowIdxpodsuwa telewizorowi relację o wysypie dopiero, gdy ten licznik dojdzie do 0, wiersz 800;rbernoulli(1, 200)w wierszu 1659, sprawdzenie pustego miejsca w wierszach 1661 i 1662, gdzieFindFirstEmptyNormalTVShowSlot, od wiersza 3118, przeszukuje tylko pierwszeNUM_NORMAL_TVSHOW_SLOTS(5) miejsc w poszukiwaniu takiego, które nie jest na antenie,probability = 50w wierszu 1680,daysBeforeOutbreak = 1w wierszu 1682), https://github.com/pret/pokeemerald/blob/master/src/tv.c, orazsrc/battle_main.c(HandleEndTurn_FinishBattleod wiersza 5098, które pomija walki przez link, nagrane walki przez link, pierwszą walkę, walki w Safari, e-Reader, samouczek Wally’ego i walki we Frontier w wierszach 5102 do 5108 i wywołujeTryPutPokemonTodayOnAirw wierszu 5126). Wiersze wypisane przezmeasure_systems.py. ↩↩↩ -
pret,
pokefirered/src/trainer_card.cw037335f(gwiazdki karty link:HasAllKantoMons()w wierszu 850,berriesPicked >= 200 && jumpsInRow >= 200w wierszu 886), https://github.com/pret/pokefirered/blob/master/src/trainer_card.c. Wiersze wypisane przezmeasure_systems.py. ↩ -
pret,
pokeemerald/include/constants/pokemon.hw731ad5b(identyfikatory wstążek odCHAMPION_RIBBONw wierszu 100), https://github.com/pret/pokeemerald/blob/master/include/constants/pokemon.h. ↩ -
pret,
pokeemerald/src/field_specials.cw731ad5b(if (GetRibbonCount(leadMon) > NUM_CUTIES_RIBBONS)w wierszu 1386, jedno z miejsc wywołania; miejsca wywołania związane z konkursami, Battle Tower i zdarzeniami po walce wcontest_util.c,battle_tower.cipost_battle_event_funcs.cużywają tego samego testu>) orazsrc/tv.c(TryPutSpotTheCutiesOnAirod wiersza 2253: wymaga pustego miejsca z mieszania rekordów i tego, by program Spot the Cuties nie był już utworzony, wiersz 2258, i ustawiashow->cuties.active = FALSEz komentarzem „NOTE: Show is not active until passed via Record Mix.” w wierszu 2262), https://github.com/pret/pokeemerald/blob/master/src/tv.c. ↩ -
pret,
pokeemerald/include/constants/coins.hw731ad5b(MAX_COINS 9999), https://github.com/pret/pokeemerald/blob/master/include/constants/coins.h. ↩ -
pret,
pokeemerald/src/lottery_corner.cw731ad5b(cztery nagrody w wierszach 16 do 19; komentarz „do not calculate ticket values for eggs” w wierszu 64; reguła więcej niż jednej cyfry w wierszach 70 i 94), https://github.com/pret/pokeemerald/blob/master/src/lottery_corner.c, zFLAG_DAILY_PICKED_LOTO_TICKETwinclude/constants/flags.hiSetRandomLotteryNumberwsrc/clock.c. Wiersze wypisane przezmeasure_systems.py. ↩↩ -
pret,
pokeemerald/src/bike.cw731ad5b(sMachBikeSpeeds, obsługa trików Acro Bike), https://github.com/pret/pokeemerald/blob/master/src/bike.c. ↩↩ -
pret,
pokeemerald/include/constants/global.hw731ad5b(SECRET_BASES_COUNT 20,DECOR_MAX_SECRET_BASE 16,DECOR_MAX_PLAYERS_HOUSE 12), https://github.com/pret/pokeemerald/blob/master/include/constants/global.h. ↩↩ -
pret,
pokecrystal/engine/overworld/time.asmw5beda23(ReceiveCallDelays:db 20, 10, 5, 3w wierszu 45, indeksowane przezwTimeCyclesSinceLastCall, któreCheckReceiveCallTimerzwiększa o jeden, do 3, za każdym razem, gdy minutnik upłynie, wiersze 47 do 59, aInitCallReceiveDelay, wiersze 12 do 14, zeruje;Script_ReceivePhoneCallwywołuje je po każdym telefonie,engine/phone/phone.asmwiersz 431) orazpokecrystal/engine/phone/phone.asm(komentarz „50% chance for a call” w wierszu 119; sprawdzenia pory dnia i zasięgu), https://github.com/pret/pokecrystal/blob/master/engine/phone/phone.asm. Wiersze wypisane przezmeasure_systems.py. ↩↩↩ -
The Pokémon Company, ポケットモンスターオフィシャルサイト, ご利用について (zasady strony), akapit o utworach zależnych, akapit o niezamówionych pomysłach i wiersz o znakach towarowych, dostęp 4 października 2026, https://www.pokemon.co.jp/rules/. Przekłady w tekście są autorstwa autora. ↩↩↩↩↩↩
-
Google Patents, US12403397B2, „Storage medium, information processing system, information processing apparatus, and game processing method” (uprawnieni Nintendo Co., Ltd. i The Pokémon Company; zgłoszony 1 marca 2023; udzielony 2 września 2025), zastrzeżenie 1, zapisane 4 października 2026, https://patents.google.com/patent/US12403397B2/en. ↩↩↩↩↩↩↩
-
Warner-Jenkinson Co. v. Hilton Davis Chemical Co., 520 U.S. 17 (1997), sylabus Reporter of Decisions w wersji opublikowanej przez Legal Information Institute Cornell Law School, zapisany 5 października 2026 (Sąd „adheres to the doctrine of equivalents” (podtrzymuje doktrynę ekwiwalentów), zgodnie z którą produkt lub proces, który nie narusza patentu dosłownie, „may nonetheless be found to infringe if there is ‘equivalence’” (może mimo to zostać uznany za naruszający, jeśli zachodzi „ekwiwalencja”) między jego elementami a elementami zastrzeżonymi, a doktrynę stosuje się „to each of the individual elements of a claim, rather than to the accused product or process as a whole” (do każdego z poszczególnych elementów zastrzeżenia, a nie do zarzucanego produktu lub procesu jako całości); sylabus jest streszczeniem, a nie częścią uzasadnienia), https://www.law.cornell.edu/supct/html/95-728.ZS.html. ↩
-
Sąd Najwyższy Japonii, Trzecia Izba, wyrok z 24 lutego 1998, sprawa 1994 (O) No. 1083, sprawa urządzenia łożyska wielowypustowego kulkowego (Ball Spline Bearing), w angielskim przekładzie publikowanym przez Sąd Wyższy ds. Własności Intelektualnej na liście ważnych orzeczeń dotyczących doktryny ekwiwalentów, zapisany 5 października 2026 (gdy produkt różni się od zastrzeżenia w jednej części, jest „regarded as identical with the construction as indicated in the scope of the patent claim” (uznawany za tożsamy z rozwiązaniem wskazanym w zakresie zastrzeżenia), jeśli spełnionych jest pięć warunków, z których pierwszy to, że „this part is not the essential part of the patented invention” (ta część nie jest istotną częścią opatentowanego wynalazku), a ostatni to brak szczególnych okoliczności, „such as the fact that the products had been intentionally excluded from the scope of the patent claim in the patent application process” (takich jak to, że produkty celowo wyłączono z zakresu zastrzeżenia w postępowaniu o udzielenie patentu)), https://www.courts.go.jp/ip/eng/assets/ip/eng/chizai_en/chizai_en-pdf-1640.pdf, z linkiem na https://www.courts.go.jp/ip/eng/hanrei/Important_IP_Judgment_by_Category/Patent/Doctrine_of_Equivalents/index.html. Wiążący jest japoński wyrok. ↩
-
Ana Diaz, „Pokémon Fangames Evolve Beyond Their Origins”, Aftermath, 1 października 2026 (pierwotnie opublikowane 30 września 2026 przez Fansplaining), dostęp 4 października 2026, https://aftermath.site/pokemon-fangames-fansplaining/. To z tego źródła dokument świata aplikacji wziął swoje zdanie o Uranium. ↩
-
Nintendo Life, „Fan-Made Pokémon Prism Game Leaks Online After Nintendo Shutdown Notice”, 30 grudnia 2016 (list z 21 grudnia; planowana premiera 25 grudnia), dostęp 4 października 2026, https://www.nintendolife.com/news/2016/12/fan-made_pokemon_prism_game_leaks_online_after_nintendo_shutdown_notice. ↩↩
-
Internet Archive, „Nintendo’s Cease and Desist to Pokémon Prism”, zamieszczone przez osobę trzecią, która twierdzi, że zredagowany skan przesłał jej współtwórca Prism; opis zamieszczającego jest stronniczy, a skanu nie czytano na potrzeby tego wpisu, https://archive.org/details/pokemon-prism-cease-desist. ↩
-
Luke Plunkett, „Pokémon’s Former Chief Lawyer On Shutting Down Fan Games & Honeymoon Business Deals”, Aftermath, 13 marca 2024 (wywiad z cyklu „What I Do” z Donem McGowanem), dostęp 4 października 2026, https://aftermath.site/pokemon-lawyer-cease-desist-fan-project-pikachu-movie/. ↩↩↩↩
-
Chris Scullion, „Former Pokémon lawyer says fundraising and press coverage lead to fan project takedowns”, Video Games Chronicle, 14 marca 2024, dostęp 4 października 2026, https://www.videogameschronicle.com/news/former-pokemon-lawyer-says-fundraising-and-press-coverage-lead-to-fan-project-takedowns/. ↩
-
The National Law Review, „Guangdong Higher People’s Court: 107 Million RMB Settlement in Pokémon Copyright and Unfair Competition Case”, 23 lutego 2025 (ogłoszenie z 21 lutego; pozew wniesiony w grudniu 2021; żądanie 500 milionów RMB; uzasadnienie pierwszej instancji), dostęp 4 października 2026, https://natlawreview.com/article/guangdong-higher-peoples-court-107-million-rmb-settlement-pokemon-copyright-and. ↩↩↩
-
The Pokémon Company, 他社ゲームに関するお問い合わせについて, aktualności korporacyjne, 25 stycznia 2024 (tekst japoński z angielskim oświadczeniem poniżej), dostęp 4 października 2026, https://corporate.pokemon.co.jp/media/news/detail/335.html. ↩↩
-
Nintendo Life, „The Pokémon Company Releases Official Statement About Palworld”, 25 stycznia 2024, dostęp 4 października 2026, https://www.nintendolife.com/news/2024/01/the-pokemon-company-releases-official-statement-about-palworld. ↩
-
GamesRadar+, „Palworld developer reveals the exact patents it’s alleged to have infringed upon in the Nintendo lawsuit, and they all have application dates after the survival game’s release”, 8 listopada 2024 (przyporządkowanie trzech patentów, via Automaton, Kiyoshi Kurihara i Patent Attorney Corporation Siarasia; patent macierzysty z grudnia 2021), dostęp 4 października 2026, https://www.gamesradar.com/games/survival/palworld-developer-reveals-the-exact-patents-its-alleged-to-have-infringed-upon-in-the-nintendo-lawsuit-and-they-all-have-application-dates-after-the-survival-games-release/. ↩↩↩
-
Ekstrakcja autora, 4 października 2026, przepisana 5 października 2026:
measure_patent_claims.pyw folderze dowodów autora do tego wpisu odczytuje zapisane strony Google Patents pod kątem tytułu, uprawnionych i dat i pobiera zastrzeżenie 1 w całości z własnego kontenera zastrzeżeń strony (<claim num="1">na stronach japońskich,CLM-00001na stronie amerykańskiej), wypisując osobno oryginalny tekst japoński i maszynowe tłumaczenie Google na angielski dla trzech patentów japońskich oraz oryginalny angielski dla patentu amerykańskiego, bez obcinania; wynikmeasure_patent_claims.out.txt. Pierwsza wersja spłaszczała sekcję zastrzeżeń i obcinała ją na 3000 znakach, a jej „zastrzeżenie 1” JP 7545191 przechodziło w zastrzeżenie 2; zachowano ją obok nowej. ↩↩ -
Pocketpair, „Regarding the lawsuit, changes to Palworld and the future”, ważny komunikat, 8 maja 2025 (łatka v0.3.11 z 30 listopada 2024; łatka v0.5.5; zmiany „a result of the ongoing litigation”), dostęp 4 października 2026, https://www.pocketpair.jp/en/news/regarding-the-lawsuit-changes-to-palworld-and-the-future/. ↩↩
-
Steam, szczegóły aplikacji Palworld (aplikacja 1623730), data wydania „9 Jul, 2026”, pobrane przez API sklepu 4 października 2026, https://store.steampowered.com/app/1623730/Palworld/. ↩
-
Automaton West, „Nintendo patent tied to Palworld lawsuit stays rejected as JPO shuts down objections in unusually sharp-tongued notice”, 22 lipca 2026 (zgłoszenie wydzielone nr 2026-019762; film Pokémon Generations z 2013; rozumowanie eksperta dotyczące poziomu wynalazczego; trzymiesięczny termin), dostęp 4 października 2026, https://automaton-media.com/en/news/nintendo-patent-central-to-palworld-lawsuit-stays-rejected-as-jpo-shuts-down-objections-in-unusually-sharp-tongued-notice/. ↩
-
Engadget, „Nintendo’s patent on summoning fighting NPCs is being reexamined”, 4 listopada 2025 (zarządzenie dyrektora; zgłoszenie Konami z 2002 i publikacja Nintendo powołane jako stan techniki), dostęp 4 października 2026, https://www.engadget.com/gaming/nintendo/nintendos-patent-on-summoning-fighting-npcs-is-being-reexamined-180949135.html. ↩
-
Claire Jackson, „US Patent Office Reexamining Controversial Pokemon Patent”, Kotaku, 4 listopada 2025, dostęp 4 października 2026, https://kotaku.com/pokemon-patent-summoning-nintendo-palworld-monsters-2000641133. ↩
-
Andrew H. Velzen, „Pokémon Reexam Receives First Action from USPTO”, MBHB, 3 kwietnia 2026 (ponowne badanie nr 90/020,162; pierwszy Office Action wysłany 25 marca 2026, odrzucający wszystkie zastrzeżenia na podstawie 35 U.S.C. § 103; terminy odpowiedzi 25 czerwca i 25 września 2026; zacytowane zastrzeżenie 1), dostęp 4 października 2026, https://www.mbhb.com/intelligence/snippets/pokemon-reexam-receives-first-action-from-uspto/. ↩↩↩
-
The Pokémon Company International, strona z informacjami prawnymi, https://www.pokemon.com/us/legal/information: 4 października 2026 pokazała narzędziu pobierającemu autora weryfikację antybotową, a jej kopia w Wayback Machine zwróciła tę samą blokadę; niezweryfikowane. ↩↩
-
Nintendo, „Nintendo Game Content Guidelines for Online Video & Image Sharing Platforms”, wraz z FAQ (A5 o sprzedaży; Q6 i A6 o innych treściach), dostęp 4 października 2026, https://www.nintendo.co.jp/networkservice_guideline/en/index.html. ↩↩↩
-
Nintendo Life, „Cassette Beasts Dev On Doing What Pokémon Doesn’t In A Zelda-Inspired Overworld”, 26 kwietnia 2023, dostęp 4 października 2026, https://www.nintendolife.com/features/cassette-beasts-dev-on-doing-what-pokemon-doesnt-in-a-zelda-inspired-overworld. ↩
-
Gematsu, „Crema Games announces Pokemon-inspired multiplayer creature collection game Temtem”, 30 kwietnia 2018, dostęp 4 października 2026, https://www.gematsu.com/2018/04/crema-games-announces-pokemon-inspired-multiplayer-creature-collection-game-temtem. ↩
-
Dokumentacja Apple dla deweloperów, „CMPedometer” (iOS 8.0; „An object for fetching the system-generated live walking data”; wymóg opisu użycia), pobrana jako JSON 4 października 2026, https://developer.apple.com/documentation/coremotion/cmpedometer. ↩↩
-
Dokumentacja Apple dla deweloperów, „stepCount” (HKQuantityTypeIdentifier; iOS 8.0), pobrana jako JSON 4 października 2026, https://developer.apple.com/documentation/healthkit/hkquantitytypeidentifier/stepcount. ↩
-
Aplikacja autora, repozytorium Kiradex w commicie
b1b78b1:server/app/rooms.py(WALKABLE,is_walkable,may_move),server/app/main.py(_playerod wiersza 156, które w wierszu 160 odczytujeidgracza z każdego połączenia jako UUID, wraz z nickiem i pokazywaną kartą;_tile, które odrzuca ruch na kafel, po którym nie da się chodzić; oraz obsługa ruchu od wiersza 217, która ustawia kafel gracza w wierszu 222),server/app/lines.py(„The preset lines: everything anyone can say in the plaza. Nothing is typed”),Kiradex/World/PlazaStage.swift(właściwość@AppStorage("plaza.id")w wierszu 333, pod komentarzem dokumentacyjnym mówiącym, że identyfikator tworzy się raz i nigdy go się nie wpisuje ani nie wyświetla, orazjoin(), które w wierszach 576 i 577 ustawia go naUUID().uuidString, gdy jest pusty) iKiradex/World/PlazaClient.swift(wiadomość powitalna, która wysyła ten identyfikator w wierszu 135). Repozytorium prywatne. ↩↩↩↩↩↩↩ -
Dokumentacja Apple dla deweloperów, „startOfDay(for:)” (Calendar; iOS 8.0), pobrana jako JSON 4 października 2026, https://developer.apple.com/documentation/foundation/calendar/startofday(for:). ↩↩
-
Dokumentacja Apple dla deweloperów, „isDate(:inSameDayAs:)” (Calendar; iOS 8.0), pobrana jako JSON 4 października 2026, https://developer.apple.com/documentation/foundation/calendar/isdate(:insamedayas:). ↩↩
-
Dokumentacja Apple dla deweloperów, „NSCalendarDayChanged” (NSNotification.Name; iOS 8.0), pobrana jako JSON 4 października 2026, https://developer.apple.com/documentation/foundation/nsnotification/name-swift.struct/nscalendardaychanged. ↩↩
-
Dokumentacja Apple dla deweloperów, „significantTimeChangeNotification” (UIApplication; przykłady z omówienia), pobrana jako JSON 4 października 2026, https://developer.apple.com/documentation/uikit/uiapplication/significanttimechangenotification. ↩
-
Sprawdzenie autora, 5 października 2026:
figures/saying_drift.pyobok szkicu, który uruchamia proponowaną w briefie regułę dryfu na liczbach z testu akceptacyjnego i sprawdza, że dziesięć dni zastosowanych naraz równa się dziesięciu dziennym odczytom; wynikfigures/saying_drift.out.txt(50 po trzech odczytach w jednym dniu i po restarcie; 20, nieświeże, po dziesięciu dniach; 5, rosnące, dla nieświeżego powiedzenia z wynikiem 10 trzy dni później). ↩