Eksperymentalne funkcje w Minecraft
Od wersji 1.19.3 Mojang testuje nowe mechaniki w Minecraft za pomoca systemu feature flags. Zamiast ladowac wszystkie nowosci naraz do snapshotow, wybrane funkcje można włączać osobno przy tworzeniu świata. To zmiana w sposobie, w jaki Mojang rozwija gre, i dotyczy zarowno Java Edition, jak i Bedrock Edition. Ten przewodnik wyjasnia, 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 pozwalajacy Mojangowi dodawac nowe elementy do gry bez automatycznego wlaczania ich dla wszystkich graczy. Każda flaga kontroluje zestaw bloków, przedmiotow, mobow 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 bylo przetestowac jednego bez drugiego. Feature flags rozwiazuja ten problem: Mojang może dodać moba do snapshota, ale schowac go za flaga, która gracz włącza ręcznie. Dzięki temu ekipa może pracowac nad funkcjami dlugoterminowymi bez presji, ze musza byc gotowe na kolejna aktualizacje.
System jest inspirowany praktykami z branzy software, gdzie feature flags (znane tez jako feature toggles) sa standardowym narzedziem do kontrolowania widoczności funkcji w produkcji. W kontekscie Minecraft to oznacza, ze Twoj świat może miec włączone funkcje, które oficjalnie nie sa jeszcze częścią gry, ale możesz je juz testowac.
- Snapshot - cała wersja testowa gry, zazwyczaj co tydzien. Zawiera wiele zmian naraz.
- Feature flag - przelacznik 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 swoj data pack, który jest domyslnie wyłączony. Kiedy wlaczasz 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 ladowane 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 bedzie generowal 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 wlaczonymi eksperymentami. Beda wymienione jako "file/..." z przedrostkiem "[bundled]". W przeciwienstwie do zwyklych data packow, wbudowanych nie można ręcznie edytowac (chyba ze rozpakowujesz jar Minecrafta, co nie jest oficjalnie wspierane).
Rejestry i identyfikatory
Eksperymentalne bloki, przedmioty i moby używają normalnych identyfikatorow z przestrzeni nazw minecraft:. Na przyklad Breeze, zanim trafil do stabilnej 1.21, mial identyfikator minecraft:breeze juz w eksperymentalnych snapshotach. Gdy funkcja przechodzi z eksperymentalnej do stabilnej, identyfikatory sie nie zmieniaja, co zapewnia kompatybilność istniejacych światów.
3. Jak włączyć eksperymentalne funkcje
Sa dwa sposoby na aktywowanie eksperymentalnych funkcji: przy tworzeniu nowego świata lub w istniejacym świecie. Oba wymagaja kilku kliknięć.
Przy tworzeniu nowego świata
Kliknij "Create New World"
W menu głównym wybierz "Singleplayer" (Gra jednoosobowa), a następnie "Create New World" (Stworz nowy świat).
Znajdz sekcje "Experiments"
Na ekranie tworzenia świata przejdz 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.
Potwierdz i stworz świat
Gra wyswietli ostrzezenie, ze eksperymentalne funkcje mogą byc niestabilne. Potwierdz i kliknij "Create World". Świat uruchomi sie z aktywowanymi funkcjami.
W istniejacym świecie
Możesz dodać eksperymentalne data packi do istniejacego świata, ale to bardziej zaawansowana operacja. Zrob backup świata, a następnie:
- Otworz świat i wpisz
/datapack list, zeby zobaczyć aktualnie dostępne packi. - Włącz eksperymentalny pack poleceniem
/datapack enable "bundle/[nazwa]", np./datapack enable "bundle/update_1_21". - Zrestartuj świat (wyjdz i wejdz ponownie), zeby zmiany sie zaladowaly.
Włączenie eksperymentalnych funkcji w istniejacym świecie jest operacja jednokierunkowa. Po wlaczeniu nie ma prostego sposobu na ich wyłączenie bez ryzyka uszkodzenia świata. Nowe bloki i moby, które sie wygeneruja, zostana w świecie nawet po wylaczeniu flagi, co może prowadzic do błędów.
4. Historia feature flags od 1.19.3
System feature flags ewoluowal z każdym wydaniem. Oto chronologiczny przeglad 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" zawierajacy biom Wisniowy Gaj (Cherry Grove), wlaczajac kwitnace liscie, drewno wisniowe i platforme do archeologii. Bambusowe bloki budowlane i system rzezbienia również trafily za flagi.
Rozszerzenie systemu o nowe typy danych
Feature flags zaczely kontrolowac 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 zaczal testowac elementy przyszlego "Update 1.21" (później nazwany Tricky Trials). Trial Chambers, mob Breeze, Trial Spawner i nowe zaklęcia pojawily sie jako eksperymentalne funkcje. Gracze mogli testowac 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 trafily za feature flags. Ta wersja znacząco poszerzyla eksperymentalny data pack "Update 1.21".
Tricky Trials - przejscie z eksperymentu do stabilności
Wszystkie funkcje z "Update 1.21" przeszly z eksperymentalnych do stabilnych. Trial Chambers, Breeze, Mace, nowe zaklęcia i Ominous Events zostaly włączone domyslnie dla wszystkich graczy. To dobry przyklad całego cyklu: funkcje testowane za flagami przez pol roku trafiaja 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 sie standardowym narzedziem do dlugoterminowego 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 zarowno dla modderow, jak i dla systemu feature flags.
Co jest data-driven w aktualnym Minecraft
- Przepisy craftingowe - wszystkie przepisy craftingu, pieca i kamieniarskiego stolu sa zdefiniowane w plikach JSON. Możesz je nadpisac data packiem.
- Tablica lootow - co dropuje z mobow, skrzyn, 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 biomow 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, przedmiotow, mobow i biomow kontroluja zachowania grupowe (np. tag "minecraft:mineable/pickaxe" okresla, jakie bloki kopiesz kilofem).
- Postepy (advancements) - system achievementow jest w pełni data-driven i można go modyfikowac 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 dodawac 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 niz tradycyjne podejscie z hardcodowanymi warunkami w kodzie.
Dla tworcow data packow i modderow to tez dobra wiadomosc. Możesz zobaczyć, jak Mojang strukturyzuje dane eksperymentalnych funkcji, i uczyc sie z oficjalnych implementacji. Pliki znajduja sie w jarze gry w folderze data/minecraft/, pogrupowane wedlug typu (recipes, loot_tables, worldgen, tags itd.).
6. Ryzyka i kompatybilność
Eksperymentalne funkcje to z definicji niegotowy produkt. Mojang może je zmieniac, przerabiac lub całkowicie usuwac między wersjami. Oto konkretne ryzyka, które musisz znac:
- Bloki mogą zniknac - jeśli Mojang usunie eksperymentalny blok w kolejnej wersji, wszystkie jego wystapienia w Twoim świecie zamienia sie w powietrze lub "nieznany blok". Budowle z eksperymentalnych bloków mogą po prostu zniknac.
- Moby mogą sie zmienić - zachowanie, statystyki i drop eksperymentalnych mobow mogą sie radykalnie zmieniac między snapshotami. Mob, który dzis jest pasywny, jutro może Cie atakować.
- Format świata - włączenie eksperymentalnych funkcji modyfikuje format zapisu świata. Cofniecie tego (wyłączenie flagi) może prowadzic do korupcji danych, szczególnie jeśli w świecie sa juz wygenerowane eksperymentalne chunki.
- Mody - mody pisane pod stabilna wersje mogą nie byc kompatybilne z eksperymentalnymi funkcjami. Nowe rejestry i zmiany w API mogą powodowac crash przy ladowaniu świata z modami i flagami jednoczesnie.
- Serwery - eksperymentalne funkcje działają na serwerach, ale wymagaja, zeby serwer i wszyscy gracze uzywali 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 przelacznikow, choc implementacja rozni sie od Java. W Bedrock eksperymenty wlaczasz w ustawieniach świata w sekcji "Experiments". Dostępne opcje mogą sie różnic między edycjami.
Czy moge włączyć eksperymentalne funkcje na serwerze?
Tak, na serwerze vanilla możesz ustawic 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 moge wyłączyć flage po jej wlaczeniu?
Technicznie możesz wyłączyć data pack poleceniem /datapack disable, ale to nie usunie juz wygenerowanych eksperymentalnych bloków i mobow. Mogą one zamieniac sie w "nieznane" elementy, co prowadzi do błędów. Nie ma bezpiecznego sposobu na cofniecie eksperymentalnych zmian bez backupu.
Czym rozni sie 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ą sie, gdy Mojang chce przetestowac cos niezaleznie od głównej galezi.
Kiedy eksperymentalna funkcja staje sie stabilna?
Gdy Mojang uzna, ze funkcja jest gotowa, przenosi ja z eksperymentalnego data packu do domyslnych danych gry. Dzieje sie 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. Istniejace światy z aktywowana flaga działają bez zmian.
Czy tworcy data packow mogą tworzyć własne feature flags?
Nie bezpośrednio. System feature flags jest wewnetrzny dla Mojang i nie udostępnia API do tworzenia własnych flag. Jednak tworcy 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