Nelderim DevBlog #56

Ostatnie dwa tygodnie były dla nas bardzo intensywne, jeżeli chodzi o prace nad migracją serwera.

Udało nam się wprowadzić bardzo wiele zmian, nasi budowniczowie prężnie działają nad mapą, co przy okazji zaserwowało nam niezłą łamigłówkę, a co najważniejsze, wpuściliśmy na serwer testowy garstkę osób spoza ekipy!

Ale zanim przejdziemy do punktu programu, przeczytajcie co nam się wydarzyło podczas prac nad mapą…

Edycja mapy i CentrED#

Ciągle rozwijana wersja naszego CentrEDa przyprawiła naszych budowniczych o niemały zawrót głowy. Jedna z opcji, która służy do ukrywania niektórych elementów mapy, w tym przypadku do ukrywania wszystkich postawionych na mapie staticów, czyli obiektów nie będących terenem, nie zadziałała tak jak powinna.

W starszych wersjach CentrED, wszystko czego nie widzimy poprzez zastosowanie filtrów, nie mogło zostać edytowane. Nasz program postanowił zrobić nam psikus i nie zadziałać tak jak tego oczekiwaliśmy

W rezultacie, podczas nakładania faktury terenowi, by nie był zupełnie płaski w zakresie wysokości od -1 do 1 zmieniono parametr Z wszystkich znajdujących się na edytowanych połaciach terenu staticów (jedynie pierwszą napotkaną warstwę). Wynikiem tego są efekty przedstawione poniżej, “popękane” dachy, przesunięte względem siebie ściany, zmieniona wysokość roślinności na danym obszarze oraz innych dekoracji.

“Popękane” dachy

Ręczna naprawa zaistniałego stanu wydała się syzyfową pracą, dlatego też szukaliśmy szybszego rozwiązania. Wgranie backupu okazało się słabym pomysłem, ponieważ jeden zapis został stworzony już po fakcie, natomiast poprzedni ponad 2 tygodnie wcześniej.

Zmienna wysokość ścian budynku

Wpadliśmy na pomysł wykorzystania programu do kopiowania fragmentów mapy, który umożliwia przeniesienie jedynie staticów, bez przenoszenia terenu. Dzięki temu przenieśliśmy cały obszar wyłączając teren, co pozwoliło zachować wykonane na nim prace, jednocześnie naprawiając zaistniałą sytuację przeniesionymi staticami z innego zapisu.

Nauczeni na błędach zautomatyzowaliśmy proces tworzenie zapisów co 4 godziny, a sam CentrED otrzymał stosowną poprawkę.

Kolejny kamień milowy migracji ServUO!

Zaraz po opublikowaniu ostatniego DevBloga, zdążyliśmy tylko chwilę się zdrzemnąć i zaczęliśmy wprowadzać zmiany ustalone podczas ostatniej sesji testowej.

Pokręciliśmy trochę parametrami od Loot i Difficulty zgodnie z naszą intuicją, wprowadziliśmy kilka mniejszych poprawek i dnia 16.04 przystąpiliśmy do kolejnej sesji testowej.

Po rozprawieniu się z początkowymi problemami technicznymi, sesja testowa obyła się bez większych problemów i byliśmy bardzo zadowoleni z efektów.

Wskaźnik Difficulty na potworach był zgodny z naszymi oczekiwaniami, Loot również nareszcie pokrywał się z tym czego oczekiwaliśmy, naprawiliśmy prędkość potworów i dało się normalnie grać.

I właśnie to, że dało się normalnie grać, skłoniło nas do podjęcia decyzji, że serwer jest na tyle dopracowany, że jesteśmy gotowi, aby ktoś spoza Ekipy na własnej skórze doświadczył co oferuje ServUO w obecnej formie.

Zaproponowaliśmy taką możliwość naszym Patronom i po wstępnym entuzjazmie, rozpoczęliśmy wielki sprint ServUO, żeby serwer testowy był w jak najlepszym stanie na przybycie Patronów.

W ciągu 5 dni, wprowadziliśmy łącznie 66 zmian, które uzbierały się na naszej tablicy i były to przeróżne poprawki, od ważnych kwestii wydajnościowych, poprzez mniejsze modyfikacje, aż po elementy wizualne i tłumaczenia.

Jedną z ważniejszych poprawek było to, że udało nam się wreszcie namierzyć jeden z problemów z wydajnością ServUO, co było spowodowane błędem w oryginalnych plikach gry!

Problem polegał na tym, że niektóre ‘bloczki’ posiadały niepoprawną wysokość, przez co postacie nie mogły się poruszać w niektórych miejscach, a co gorsza, nasze spawnery nie były w stanie nigdzie umieścić nowych potworów, poddawały się po 20 próbach znalezienia odpowiedniego miejsca, a w następnym cyklu próbowały podobnie, co wyciskało ostatnie soki z naszego serwera testowego.

Postać lewitująca nad bloczkiem ze zbyt dużą wysokością

Społeczność ServUO oraz ‘gildia twórców map’, nie były w stanie nam pomóc rozwiązać tej zagwozdki, więc przywróciliśmy niektóre wartości, do tych, które są na obecnym kliencie i uznaliśmy problem za rozwiązany 🙂

Zmiany które udało nam się wprowadzić podczas sprintu to między innymi:

  • sprawdziliśmy czy destylatory są wpięte w menu wyrobów crafterskich (opisane były tutaj)
  • przetestowaliśmy czy ruda/drewno nam nie przepada, jeśli wydobywamy surowiec z pełnym plecakiem: obecnie nie będziemy tracić surowców
  • wyrównaliśmy ilość surowców, które wydobywane są na ServUO z tą, która jest wydobywana na RunUO
  • przenieśliśmy artefakty-nagrody świąteczne za rok 2023 z eventu
  • zmniejszyliśmy przyrost cnót
  • przetłumaczyliśmy opisy przedmiotów w celu łatwiejszej identyfikacji czy przedmiot jest mocny czy nie (np. Pomniejszy Magiczny Przedmiot)
  • przenieśliśmy efekt otrzymania artefaktu z RunUO
  • przepieliśmy talizmany na oryginalne talizmany z ServUO
  • sprawiliśmy tamowalne stwory nie będą skalowane przez system skalowania mobów
  • wyłączyliśmy drop czarów Druidyzmu z loot
  • na wyspie startowej w New Haven, wszystkie moby będą miały dopisek “Bardzo słaby” i będą odpowiednio skalowane
  • naprawiliśmy zawieszające się AI mobów czarujących.
  • wprowadziliśmy poprawki w strażnikach, które w konsoli pokazywały nam ostrzeżenia
  • poprawiliśmy mapowanie AI mobów z RunUO do ServUO
  • poprawiliśmy rozjeżdżający się tekst w księdze zaklęć Mnicha
  • Nagrody ze zleceń myśliwskich zostały wpięte w nowy system zleceń
  • wprowadziliśmy zmiany w przerwach między braniem zleceń: będzie można wziąć 3 zlecenia pod rząd, po czym należy odczekać 3h
  • wprowadziliśmy poprawki w skalowaniu trudności potworów oraz w priorytetach regionów
  • ograniczyliśmy drop talentów z Championa do jednej sztuki (opisane tutaj)
  • przenieśliśmy Pack Instinct Ilthara oraz Skorpiona Królewskiego z RunUO
  • Przenieśliśmy worek do przechowywania regów z RunUO
  • przenieśliśmy Szachy Bojowe z RunUO
  • przenieśliśmy zakrwawione bandaże z RunUO
  • przetłumaczyliśmy gump treningu petów

Na sam koniec przygotowaliśmy gotową paczkę z nowym klientem, nadaliśmy dostęp Patronom i 22.04 uruchomiliśmy serwer testowy.

Dość szybko Patroni pokazali nam problem w systemie regionów, widoczny najbardziej u drowów, zaprezentowany na wycinku poniżej 🙂

Z istotnych problemów, było kilka crashy, które zostały od razu załatane, a także udało się wykryć dość specyficzny problem w leczeniu bandażami leżący gdzieś pomiędzy ServUO, a Razorem, który po wielu testach i próbach udało się ostatecznie poprawić w kodzie serwera.

Oprócz testów przeprowadzanych przez Patronów, 24.04 zrobiliśmy również ekipową sesję testową mająca na celu ostateczne pozamykanie ostatnich poprawek.

Oczywiście, nie obyło się bez niespodzianek, ponieważ podczas testów dropu Scrolls of Transcendence, serwer bez widocznego powodu zaczął strasznie lagować i taki stan utrzymywał się przez około 10 minut.

Nie wiemy jeszcze dlaczego tak się stało, ale już przygotowujemy się, żeby się tego dowiedzieć, jeżeli wydarzy się to ponownie.

Na sam koniec, poprosiliśmy jeszcze patronów o 2-3 zdania po tych kilku dniach z ServUO i oto co mają do przekazania:

Testy trwają jeszcze kilka dni, więc zanim podejmiemy kolejne kroki, musimy jeszcze trochę poczekać, ale już teraz możemy obiecać, że będzie jeszcze co najmniej jedna sesja testowa, dostępna dla wszystkich.

Podsumowanie

Baaardzo dużo się ostatnio działo, ale widać, że są tego konkretne efekty.

To że część graczy miała wolny dostęp do serwera testowego przez kilka dni i nie zakończyło się to totalną porażką z naszej strony, pokazuje nam, że to co robiliśmy przez ostatnie dwa lata, nie było bezcelowe.

Przed nami wciąż ogrom pracy, ale to jest ten moment, kiedy możemy już całkowicie poważnie mówić o migracji na nowy silnik w niedalekiej przyszłości i możemy przełożyć więcej naszej z pracy z RunUO na ServUO.

Do następnego!

Leave a reply