Eksperymentalne funkcje w Minecraft

Od wersji 1.19.3 Mojang testuje nowe mechaniki w Minecraft za pomocą systemu feature flags. Zamiast ładować wszystkie nowości naraz do snapshotow, wybrane funkcje można włączać osobno przy tworzeniu świata. To zmiana w sposobie, w jaki Mojang rozwija grę, i dotyczy zarówno Java Edition, jak i Bedrock Edition. Ten przewodnik wyjaśnia, jak to działa, jak włączyć eksperymentalne funkcje i co nowego zostało dodane tym systemem.
1. Czym sa feature flags
Feature flags (flagi funkcji) to system w Minecraft pozwalający Mojangowi dodawać nowe elementy do gry bez automatycznego włączania ich dla wszystkich graczy. Każda flaga kontroluje zestaw bloków, przedmiotów, mobów lub mechanik. Gracz sam decyduje, które flagi aktywuje przy tworzeniu świata.
Przed wersja 1.19.3 każdy snapshot wlaczal wszystkie nowe funkcje naraz. Jeśli Mojang dodał nowego moba i nowy blok w tym samym snapshocie, nie można było przetestować jednego bez drugiego. Feature flags rozwiązują ten problem: Mojang może dodać moba do snapshota, ale schować go za flaga, która gracz włącza ręcznie. Dzięki temu ekipa może pracować nad funkcjami dlugoterminowymi bez presji, ze musza być gotowe na kolejna aktualizacje.
System jest inspirowany praktykami z branży software, gdzie feature flags (znane tez jako feature toggles) sa standardowym narzędziem do kontrolowania widoczności funkcji w produkcji. W kontekście Minecraft to oznacza, ze Twój świat może mieć włączone funkcje, które oficjalnie nie sa jeszcze częścią gry, ale możesz je już testowac.
- Snapshot - cała wersja testowa gry, zazwyczaj co tydzien. Zawiera wiele zmian naraz.
- Feature flag - przełącznik dla konkretnego zestawu funkcji. Można włączyć/wyłączyć niezaleznie.
- Experimental snapshot - specjalna wersja testowa skupiona na funkcjach za feature flagami. Często ma unikalna nazwe.
2. Jak działa system eksperymentalnych funkcji
Technicky feature flags sa zaimplementowane jako data packi wbudowane w gre. Każdy eksperymentalny zestaw funkcji ma swój data pack, który jest domyślnie wyłączony. Kiedy włączasz eksperymentalna funkcje, aktywujesz odpowiedni data pack, który rejestruje nowe bloki, przedmioty i moby w rejestrach gry.
To ważne rozroznienie: eksperymentalne funkcje nie sa ładowane leniwie. Gra wie o ich istnieniu od momentu uruchomienia, ale nie dodaje ich do światów, które nie mają aktywowanej odpowiedniej flagi. Świat bez flagi "Update 1.21" nie będzie generował Trial Chambers ani spawnowal Breeze, nawet jeśli te dane sa technicznie obecne w plikach gry.
Wbudowane data packi
Każda flaga odpowiada jednemu lub kilku wbudowanym data packom. Możesz je zobaczyć poleceniem /datapack list na świecie z włączonymi eksperymentami. Beda wymienione jako "file/..." z przedrostkiem "[bundled]". W przeciwieństwie do zwykłych data packow, wbudowanych nie można ręcznie edytować (chyba ze rozpakowujesz jar Minecrafta, co nie jest oficjalnie wspierane).
Rejestry i identyfikatory
Eksperymentalne bloki, przedmioty i moby używają normalnych identyfikatorów z przestrzeni nazw minecraft:. Na przykład Breeze, zanim trafił do stabilnej 1.21, mial identyfikator minecraft:breeze już w eksperymentalnych snapshotach. Gdy funkcja przechodzi z eksperymentalnej do stabilnej, identyfikatory się nie zmieniają, co zapewnia kompatybilność istniejących światów.
3. Jak włączyć eksperymentalne funkcje
Sa dwa sposoby na aktywowanie eksperymentalnych funkcji: przy tworzeniu nowego świata lub w istniejącym świecie. Oba wymagają kilku kliknięć.
Przy tworzeniu nowego świata
Kliknij "Create New World"
W menu głównym wybierz "Singleplayer" (Gra jednoosobowa), a następnie "Create New World" (Stwórz nowy świat).
Znajdź sekcje "Experiments"
Na ekranie tworzenia świata przejdź do zakładki "More" lub przewin w dół. Znajdziesz przycisk "Experiments" lub "Eksperymenty" (w zależności od wersji). Kliknij go.
Aktywuj wybrane funkcje
Zobaczysz listę dostępnych eksperymentalnych funkcji z przelacznikami. Każda pozycja ma krotki opis tego, co włącza. Aktywuj te, które chcesz przetestowac. Możesz włączyć kilka naraz.
Potwierdź i stwórz świat
Gra wyświetli ostrzeżenie, ze eksperymentalne funkcje mogą być niestabilne. Potwierdź i kliknij "Create World". Świat uruchomi się z aktywowanymi funkcjami.
W istniejącym świecie
Możesz dodać eksperymentalne data packi do istniejącego świata, ale to bardziej zaawansowana operacja. Zrób backup świata, a następnie:
- Otwórz świat i wpisz
/datapack list, żeby zobaczyć aktualnie dostępne packi. - Włącz eksperymentalny pack poleceniem
/datapack enable "bundle/[nazwa]", np./datapack enable "bundle/update_1_21". - Zrestartuj świat (wyjdź i wejdź ponownie), żeby zmiany się zaladowaly.
Włączenie eksperymentalnych funkcji w istniejącym świecie jest operacja jednokierunkowa. Po włączeniu nie ma prostego sposobu na ich wyłączenie bez ryzyka uszkodzenia świata. Nowe bloki i moby, które się wygeneruja, zostana w świecie nawet po wyłączeniu flagi, co może prowadzić do błędów.
4. Historia feature flags od 1.19.3
System feature flags ewoluował z każdym wydaniem. Oto chronologiczny przegląd najważniejszych eksperymentalnych funkcji, które Mojang testowak w tym systemie:
Wprowadzenie systemu feature flags
Pierwsza wersja z obsługa flag. Dodano eksperymentalny zestaw "Update 1.20" zawierający biom Wiśniowy Gaj (Cherry Grove), włączając kwitnące liście, drewno wiśniowe i platformę do archeologii. Bambusowe bloki budowlane i system rzeźbienia również trafiły za flagi.
Rozszerzenie systemu o nowe typy danych
Feature flags zaczęły kontrolować nie tylko bloki i moby, ale tez zmiany w interfejsie (np. nowy ekran tworzenia świata). Eksperymentalny data pack "Update 1.20" został rozszerzony o kolejne elementy przyszlej aktualizacji Trails & Tales.
Trial Chambers i Breeze za flagami
Po premierze Trails & Tales, Mojang zaczął testować elementy przyszlego "Update 1.21" (później nazwany Tricky Trials). Trial Chambers, mob Breeze, Trial Spawner i nowe zaklęcia pojawiły się jako eksperymentalne funkcje. Gracze mogli testować nowe dungeony miesiące przed oficjalnym wydaniem.
Mace i nowe elementy Tricky Trials
Mace (buzdygan), Ominous Events (zlowitrzebne wydarzenia), Trial Omen i nowe zaklęcia takie jak Wind Charge i Density trafiły za feature flags. Ta wersja znacząco poszerzyla eksperymentalny data pack "Update 1.21".
Tricky Trials - przejście z eksperymentu do stabilności
Wszystkie funkcje z "Update 1.21" przeszły z eksperymentalnych do stabilnych. Trial Chambers, Breeze, Mace, nowe zaklęcia i Ominous Events zostały włączone domyślnie dla wszystkich graczy. To dobry przykład całego cyklu: funkcje testowane za flagami przez pół roku trafiają do wydania stabilnego.
Bundles i zmiany w pale Creakera
Bundles (torby na przedmioty) wrocily jako eksperymentalna funkcja po wieloletnim zawieszeniu. Pale Creaker (nowy wrogi mob z Pale Garden) również testowany za flagami. System feature flags stal się standardowym narzędziem do długoterminowego testowania mechanik, które nie sa jeszcze gotowe.
5. Data-driven features
Termin "data-driven" oznacza, ze zachowanie elementu gry jest zdefiniowane w plikach danych (JSON), a nie zakodowane w silniku gry. Mojang systematycznie przesuwa kolejne systemy Minecraft w kierunku data-driven, co ma ogromne konsekwencje zarówno dla modderów, jak i dla systemu feature flags.
Co jest data-driven w aktualnym Minecraft
- Przepisy craftingowe - wszystkie przepisy craftingu, pieca i kamieniarskiego stołu sa zdefiniowane w plikach JSON. Możesz je nadpisać data packiem.
- Tablica lootow - co dropuje z mobów, skrzyń, lowiania ryb i bloków jest sterowane plikami JSON w folderze
loot_tables. - Generowanie terenu - biomy, struktury i cechy terenu sa definiowane przez pliki JSON. Od 1.19 nawet konfiguracja biomów jest całkowicie data-driven.
- Zaklęcia i efekty - system zaklinania jest coraz bardziej data-driven. Od 1.21 zaklęcia sa definiowane w rejestrach sterowanych danymi.
- Tagi - tagi bloków, przedmiotów, mobów i biomów kontrolują zachowania grupowe (np. tag "minecraft:mineable/pickaxe" określa, jakie bloki kopiesz kilofem).
- Postępy (advancements) - system achievementow jest w pełni data-driven i można go modyfikować data packami.
- Struktury - generowanie structure (np. Trial Chambers, bastiony) jest sterowane plikami JSON z template pools.
Dlaczego to ważne dla eksperymentalnych funkcji
Dzięki data-driven architekturze Mojang może dodawać nowe bloki, przepisy i tablicę lootow bez ingerencji w kod silnika. Feature flag po prostu dodaje lub ukrywa odpowiednie pliki JSON z rejestruow gry. To sprawia, ze system jest elastyczny i mniej podatny na błędy niż tradycyjne podejście z hardcodowanymi warunkami w kodzie.
Dla twórców data packow i modderów to tez dobra wiadomosc. Możesz zobaczyć, jak Mojang strukturyzuje dane eksperymentalnych funkcji, i uczyć się z oficjalnych implementacji. Pliki znajdują się w jarze gry w folderze data/minecraft/, pogrupowane według typu (recipes, loot_tables, worldgen, tags itd.).
6. Ryzyka i kompatybilność
Eksperymentalne funkcje to z definicji niegotowy produkt. Mojang może je zmieniać, przerabiać lub całkowicie usuwać między wersjami. Oto konkretne ryzyka, które musisz znac:
- Bloki mogą zniknąć - jeśli Mojang usunie eksperymentalny blok w kolejnej wersji, wszystkie jego wystąpienia w Twoim świecie zamienia się w powietrze lub "nieznany blok". Budowle z eksperymentalnych bloków mogą po prostu zniknac.
- Moby mogą się zmienić - zachowanie, statystyki i drop eksperymentalnych mobów mogą się radykalnie zmieniać między snapshotami. Mob, który dziś jest pasywny, jutro może Cie atakować.
- Format świata - włączenie eksperymentalnych funkcji modyfikuje format zapisu świata. Cofniecie tego (wyłączenie flagi) może prowadzić do korupcji danych, szczególnie jeśli w świecie sa już wygenerowane eksperymentalne chunki.
- Mody - mody pisane pod stabilna wersje mogą nie być kompatybilne z eksperymentalnymi funkcjami. Nowe rejestry i zmiany w API mogą powodować crash przy ładowaniu świata z modami i flagami jednoczesnie.
- Serwery - eksperymentalne funkcje działają na serwerach, ale wymagają, żeby serwer i wszyscy gracze używali tej samej wersji z tymi samymi flagami. Na serwerach z pluginami (Spigot, Paper) kompatybilność jest jeszcze bardziej niepewna.
7. Często zadawane pytania
Czy eksperymentalne funkcje sa dostępne na Bedrock Edition?
Tak, Bedrock Edition również ma system eksperymentalnych przełączników, choć implementacja różni się od Java. W Bedrock eksperymenty włączasz w ustawieniach świata w sekcji "Experiments". Dostępne opcje mogą się różnic między edycjami.
Czy mogę włączyć eksperymentalne funkcje na serwerze?
Tak, na serwerze vanilla możesz ustawić eksperymentalne data packi w pliku server.properties lub poleceniem /datapack enable. Na serwerach z pluginami sprawdź kompatybilność z dokumentacja oprogramowania serwera (Paper, Spigot). Nie wszystkie pluginy działają z eksperymentalnymi funkcjami.
Czy mogę wyłączyć flagę po jej włączeniu?
Technicznie możesz wyłączyć data pack poleceniem /datapack disable, ale to nie usunie już wygenerowanych eksperymentalnych bloków i mobow. Mogą one zamieniać się w "nieznane" elementy, co prowadzi do błędów. Nie ma bezpiecznego sposobu na cofniecie eksperymentalnych zmian bez backupu.
Czym różni się eksperymentalny snapshot od normalnego snapshota?
Normalny snapshot (format YYwXXa) to regularna wersja testowa w głównym cyklu wydawniczym. Eksperymentalny snapshot (np. "1.21_experimental-snapshot-1") to specjalna wersja skupiona na funkcjach za feature flagami. Eksperymentalne snapshoty nie sa częścią regularnego harmonogramu i pojawiają się, gdy Mojang chce przetestować cos niezależnie od głównej galezi.
Kiedy eksperymentalna funkcja staje się stabilna?
Gdy Mojang uzna, ze funkcja jest gotowa, przenosi ja z eksperymentalnego data packu do domyślnych danych gry. Dzieje się to przy większych aktualizacjach (np. 1.20, 1.21). Od tego momentu funkcja jest wlaczona dla wszystkich nowych światów bez potrzeby aktywowania flagi. Istniejące światy z aktywowana flaga działają bez zmian.
Czy twórcy data packow mogą tworzyć własne feature flags?
Nie bezpośrednio. System feature flags jest wewnętrzny dla Mojang i nie udostępnia API do tworzenia własnych flag. Jednak twórcy data packow mogą osiągnąć podobny efekt, tworząc data packi, które gracz ręcznie włącza lub wyłącza. To jest standardowa praktyka w społeczności data packow.
Komentarze