Przebudowa Menu Entry Swapper już dostępna
MES 2.0 to napisany od podstaw Menu Entry Swapper w Official Client i na mobile - z edycją menu per obiekt, ukrywaniem pojedynczych opcji, promowaniem wpisów z podmenu i przewijaniem menu gestem na telefonie.
Długo wyczekiwana przebudowa Menu Entry Swapper trafiła do gry. MES 2.0 to napisany od podstaw system zamiany wpisów w menu, dostępny na mobile i w Official Client od wersji 240.6 - wraz z kilkoma dodatkowymi funkcjami, w tym przewijaniem menu gestem na telefonie.
Czym jest MES 2.0
Menu Entry Swapper (MES) dodano do klienta kilka lat temu, by dać graczom większą kontrolę: możliwość ustalania kolejności opcji w menu, ukrywania wpisów (koniec z przypadkowym kradzieniem kieszonkowym) i dopasowywania gry do własnych potrzeb.
Pierwsza wersja funkcji w Official Client spełniała większość założeń, ale miała sporo niedoróbek. Twórcy próbowali je łatać, jednak z czasem stało się jasne, że „naprawienie“ zachowania w istniejącej architekturze nie jest wykonalne. Aby funkcja działała tak, jak powinna, trzeba było przebudować nie tylko sam Menu Entry Swapper, ale cały system menu.
Zgodnie z zapowiedzią z Summer Campfire ta praca została właśnie wykonana. MES 2.0 to przepisany od zera system Menu Entry Swapper, zbudowany na znacznie lepszych fundamentach. Ma być bezpośrednim zamiennikiem oryginału i podejmuje próbę przeniesienia istniejących ustawień.
Przy okazji dodano kilka bonusowych funkcji - na mobile menu można teraz przewijać zwykłym przeciągnięciem palcem, bez łapania paska przewijania.
MES 2.0 jest dostępny na mobile i w Official Client od wersji 240.6 wzwyż. Zmiany nie dotyczą klientów zewnętrznych. Ustawienia zamiany wpisów są zapisywane per urządzenie, więc nie przenoszą się między urządzeniami.
Choć ogólna koncepcja MES pozostaje ta sama, w działaniu zaszły zmiany, o których warto wiedzieć.
W skrócie
Twórcy w blogach o kliencie lubią zagłębiać się w szczegóły techniczne, ale dla osób, które chcą tylko szybkiego przeglądu, przygotowali poniższe podsumowanie.
Lista zmian
- Naprawiono błąd w menu entry swapper, przez który po tapnięciu lub kliknięciu lewym przyciskiem wykonywała się opcja „Examine“ albo inne nieoczekiwane wpisy.
- Wysokie menu obsługują teraz przewijanie gestem zamiast przeciągania paska przewijania.
- Przebudowano tryb edycji wpisów menu:
- Menu są teraz rozdzielone per obiekt - np. NPC, Fairy rings czy praktycznie dowolny interaktywny element w grze.
- Menu można teraz resetować per obiekt.
- Wpisy z podmenu można teraz „promować“, by pojawiały się w menu głównym.
- Wpisy można teraz pewniej przestawiać względem opcji „Walk here“.
- Wpisy można teraz ukrywać pojedynczo.
- Dwie osobne warstwy personalizacji - standardowa i dodatkowa.
- Dodatkowa wymaga klawiatury (także na mobile, dla graczy korzystających z klawiatury) i jest dostępna po przytrzymaniu klawisza Shift.
- Większość dotychczasowych ustawień menu zostanie przeniesiona.
- Część ustawień związanych z opcją „Walk here“ nie zostanie przeniesiona i trzeba je będzie skonfigurować ponownie.
- Zachowanie myszy na mobile powinno być nieco bardziej spójne z wersją na komputery.
- Wpisów nie przeciąga się już metodą „przeciągnij i upuść“ - zastąpiły ją nowe ikony strzałek do przenoszenia wpisu na górę lub o jedno miejsce w dół. To decyzja upraszczająca system, dzięki której twórcy mogli skupić się na jego funkcjonalności i stabilności.
Jak korzystać z Menu Entry Swapper
MES 2.0 jest częścią klienta w wersji 240.6 - jeśli aplikacja nie zaktualizuje się automatycznie, może być konieczna ręczna aktualizacja przez sklep z aplikacjami. Wdrożenie na wszystkich urządzeniach może chwilę potrwać, więc nie ma powodu do niepokoju, jeśli aktualizacja nie pojawi się od razu.
Jeśli ktoś korzystał wcześniej z oryginalnego MES, MES 2.0 spróbuje przenieść istniejące ustawienia menu. Aby je zresetować i zacząć od zera, wystarczy użyć przycisku „Reset minimenu ordering“ w ustawieniach.
- Przytrzymaj (long-press) lub kliknij prawym przyciskiem, aby otworzyć menu.
- Dla użytkowników klawiatury: nie trzymaj klawisza Shift, chyba że chcesz edytować dodatkowy zestaw zamian.
- Naciśnij przycisk „edit“ w prawym górnym rogu menu. Menu zwinie się per obiekt, dzięki czemu każde można edytować osobno.
- Przejdź do menu, którego kolejność chcesz zmienić. Dostępnych jest kilka opcji:
- Strzałka w górę: przenosi wpis na górę menu.
- Strzałka w dół: przesuwa wpis o jedno miejsce w dół.
- Oko: ukrywa lub pokazuje wpis.
- Gwiazdka: promuje wpis z podmenu do menu głównego.
- Reset: przywraca domyślną kolejność wszystkich wpisów danego obiektu.
Ważne: najwyższy wpis w menu staje się opcją domyślną, wykonywaną po tapnięciu lub kliknięciu lewym przyciskiem.
Pozostałe wskazówki
- W ustawieniach można zmienić czas przytrzymania wymagany do otwarcia menu przy sterowaniu dotykowym. Krótszy czas pozwala szybciej wykonywać akcje, ale wymaga większej precyzji.
- W ustawieniach można też zmienić odstępy między wpisami menu - przydatne, jeśli menu wydaje się zbyt małe.
- Domyślnie menu otwiera się tak, że jego górna krawędź znajduje się pod kursorem. Ustawienie „Minimenu start position“ pozwala zmienić to tak, by pod kursorem znalazł się jeden z wpisów. W połączeniu ze zmianą kolejności wpisów pozwala to wybrać zarówno opcję pod lewy przycisk lub tapnięcie, jak i łatwo dostępną opcję pod prawy przycisk lub przytrzymanie.
Menu Entry Swapper od kuchni
To menu, znane jako minimenu, jest kluczowym mechanizmem wejścia, który obsługuje niemal całe sterowanie myszą i dotykiem w grze. W każdej klatce gra sprawdza, co znajduje się pod kursorem, i buduje listę opcji do wyboru - nawet gdy menu nie jest otwarte. Kolejność tej listy jest bardzo istotna, bo kliknięcie lewym przyciskiem (lub tapnięcie) po prostu wybiera pierwszy wpis z menu. Ta kolejność jest jednak dość skomplikowana, ponieważ zależy od wielu czynników:
- Odległość obiektu od kamery.
- Kolejność wpisów zdefiniowana per obiekt.
- Wartość przedmiotów leżących na ziemi.
- Czy obiekt jest twoim celem w PvP.
- Opcje ataku na NPC i graczy.
- Towarzyszące NPC mają obniżony priorytet w zależności od ustawienia.
- Gracze z tą samą Team cape mają obniżony priorytet.
- …i tak dalej.
Dalej robi się nieco bardziej technicznie.
W kodzie z 2007 roku uzyskanie tej kolejności było dość proste: elementy trafiały do menu już we właściwej kolejności, z wyjątkiem kilku wpisów przesuwanych na sam dół. Kolejność ta była ściśle powiązana z rendererem 3D - rysował on każdy obiekt na ekranie od tyłu do przodu i przy okazji rejestrował wszystko, co znajdowało się pod myszą. W efekcie powstawała lista obiektów pod kursorem w odwrotnej kolejności. Wystarczyło ją odwrócić i gotowe - taka właśnie kolejność trafiała do menu.
Niestety wraz z rozbudową funkcji menu w oficjalnym kliencie sprawy coraz bardziej się komplikowały. Ta przypadkowa kolejność przestała wystarczać: niektóre elementy musiały trafiać na górę, inne przesuwać się względem „Walk here“, część wpisów miała pojawiać się tylko po przytrzymaniu Shift, a do tego zdecydowano się na pełną zmianę kolejności zamiast ustawiania jednej opcji pod lewy przycisk per obiekt. Dodatkowo po przejściu na renderowanie z Z-bufferem renderer 3D przestał rysować obiekty w tej wygodnej, uporządkowanej kolejności. Mówiąc wprost: pierwotna struktura kodu nie nadawała się już do wszystkiego, co chciano osiągnąć, a pęknięcia były coraz większe.
Zamiast dalej łatać te pęknięcia, twórcy wygospodarowali czas na porządną przebudowę. Wymagało to powrotu do kilku zasad programowania:
- Rozdzielenie odpowiedzialności (decoupling): system dodający wpis do menu nie powinien przejmować się tym, w którym miejscu sekwencji to robi. Kolejność menu nie powinna być przypadkowa - powinna być jasno zdefiniowana w jednym miejscu.
- Jedno źródło prawdy: kod wykrywający, że mysz znajduje się nad wpisem, i kod rysujący ten wpis nie powinny niezależnie od siebie obliczać jego rozmiaru i kształtu.
- Pojedyncza odpowiedzialność: trudno wiedzieć, gdzie szukać, gdy cały kod siedzi w jednej wielkiej klasie o nazwie „Minimenu“. Dane należy oddzielić od widoku i podzielić całość na komponenty, które wiedzą tylko to, co muszą.
W tak fundamentalnym systemie jak to menu jest jeszcze mnóstwo drobnych szczegółów. Na przykład tapnięcie wywołuje akcję po puszczeniu, a kliknięcie lewym przyciskiem - już przy naciśnięciu, chyba że dany element da się przeciągać; a jeśli zacznie się go przeciągać, ale w trakcie przełączy zakładkę klawiszem F, akcja i tak może się wykonać. Krótko mówiąc, przebudowa całości przy zachowaniu identycznego wyglądu, odczucia i działania nie była prostym zadaniem.
Efekt końcowy jest jednak taki, że menu powinno być teraz bardziej niezawodnym i elastycznym elementem gry, który łatwiej rozwijać. Otwiera to drogę do różnych stylów, większych czcionek, lepszych wewnętrznych narzędzi debugowania i innych dodatków - takich jak nowy menu entry swapper.
Co dalej
Aktualizacja może docierać do urządzeń z opóźnieniem, warto więc zaglądać do sklepu z aplikacjami, jeśli konieczna okaże się ręczna aktualizacja. Twórcy zbierają opinie i zgłoszenia błędów na kanale #mobile-bugs na oficjalnym serwerze Discord.
Autor
Edge
Ekipa OSRS.pl
Inne aktualności

Varlamore: poprawki błędów i więcej
Kompleksowe poprawki dla regionu Varlamore, ulepszenia interfejsu banku oraz zapowiedź stress testu ...

Usprawnienia farmingu i autocastów
Aktualizacja wprowadza zmiany w systemie farmingu, autocastach, drobne poprawki w minigrze Castle Wa...

Oficjalny podcast OSRS - odcinek 6 z Mod Rice
Szósty odcinek oficjalnego podcastu Old School RuneScape z udziałem Mod Rice porusza tematy projekto...