Dziesięć to taka ładna okrągła liczba. Dziesiąty DevBlog oznacza, że mamy dla was sporą porcję informacji. W tym DevBlogu omówimy co dalej robiliśmy z systemem gainów, zmianie środowiska, w którym stał będzie serwer, co nowego na ServUO oraz trochę o tłumaczeniach. Finalnie, dowiecie się też jak zostać naszym Patronem. 🙂
Miłej lektury!
Kontynuacja prac nad systemem gainów
Mineło 5 DevBlogów ( nowa jednostka czasu 🙂 ) odkąd ostatnio pisaliśmy o postępach w systemie gainów i nareszcie udało nam się wrócić do tego tematu.
Dla przypomnienia: piszemy funkcję, która obliczy dla nas przybliżony czas jaki będzie potrzebny, aby wytrenować konkretną umiejętność na żądany poziom i na podstawie uzyskanych wyników będziemy modyfikować współczynniki systemu gainów, aby dostosować trening postaci pod naszą wizję serwera.
Umiejętności w grze jest dokładnie 58, dwie umiejętności trenują się same, dwie są nieużywane, a dla każdej z pozostałych indywidualnie wyznaczamy w jaki sposób liczyć estymatę czasu treningowego.
I tak oto od ostatniego devbloga udało nam się wykreślić z listy do zrobienia, wszystkie umiejętności z wyjątkiem umiejętności stricte bojowych (walka mieczami, parowanie, walka wrecz, itp.)
Kontynuowaliśmy prace zaczynając od umiejętności magicznych, ponieważ była to grupa umiejętności, które można było teoretycznie rozwiązać jednym kodem, a w praktyce okazało się, że jednak są to dwie grupy magicznych umiejętności(czary oraz “ruchy specjalne”), które należało traktować delikatnie inaczej.
Była to zarazem grupa umiejętności najbardziej rozbudowana, ponieważ należało brać pod uwagę, którym czarem najlepiej trenować oraz regenerację many z uwzględnieniem wszystkich zmiennych jak inteligencja, medytacja, przemiany, magiczne właściwości oraz aktywna medytacja.
Była to też pierwsza grupa, w której pierwsze estymaty odbiegały znacząco od realnych wyników i musieliśmy się naszukać i trochę pogłówkować zanim znaleźliśmy jak należy poprawić formułę.
Ostatecznie udało nam się otrzymać wyniki różniące się o zaledwie dwie minuty od czasu prawdziwego treningu o czasie dwóch godzin!
Po umiejętnościach magicznych, wzięliśmy na celownik wszystkie umiejętności których nie dało się w żaden sposób pogrupować i dla każdej z osobna wyznaczyliśmy mniej, lub bardziej celne współczynniki dla estymat.
I zabrakło nam już bardzo niewiele, bo mniej niż 10 umiejętności, które należy dodać do funkcji, następnie porządnie wszystko przetestować, a dopiero po tym wszystkim szaleńczo kręcić pokrętłami w systemie gainów, aż do uzyskania zadowalających wyników, ale o tym może następnym razem 😉
Bardziej dociekliwi mogą zapoznać się z kodem źródłowym, może znajdą jakieś błędy albo będą mieć sugestie jak możemy coś poprawić 🙂
Porzucamy okna na rzecz pingwina
Teraz będzie troszeczkę mniej o ServUO, a do tego poruszymy temat o którym w zasadzie już kiedyś mówiliśmy, ale pojawiła się nowa, piękna wizja i bez zastanawiania wzięliśmy się potwierdzanie pewnej hipotezy.
Niektórzy pewnie już wiedzą po nagłówku o co chodzi, ale żeby było jasne, postanowiliśmy spróbować przenieść obecny serwer z systemu Windows na Linux, a główną zaletą przesiadki jest to, że licencja na system Windows Server jest droższa od samego sprzętu, a Linux jest darmowy 🙂
RunUO od zawsze kojarzyło się bardziej z systemem Windows ze względu na platformę .NET i nawet nie rozważaliśmy nic innego na początku Nelderim, jednakże w wielu miejscach można było się natrafić na wzmianki o Linuksowym zamienniku dla .NET o nazwie MONO.
Wiemy że ServUO będzie od samego początku stało na systemie Linux, jako że w bardzo niedalekiej przyszłości ma posiadać oficjalne wsparcie dla systemów Linux oraz MacOS dzięki .NET w wersji 5, a serwer testowy już teraz jest Linuksowym polem doświadczalnym dla ekipy 🙂
Pojawił się szalony pomysł próby przeniesienia obecnego serwera na system Linux i platformę MONO i nic nie stało na przeszkodzie, aby chociaż spróbować.
Oprócz niższych kosztów są też dodatkowe zalety, takie jak to, że już teraz ekipa by się mogła szkolić w obsłudze Linuxa, a dodatkowo jak wykonamy migrację na nowy system już teraz, to będziemy mieć dużo mniej roboty w okresie końca migracji samego silnika 🙂
Pierwsza próba została przerwana niekompilującym się serwerem, szybkie poprawki i jedziemy dalej.
Kolejną przeszkodą były niekompilujące się niektóre skrypty oraz błędy w samym projekcie, które również w miarę sprawnie udało nam się załatać.
I gdy już wszystko się kompilowało i serwer dawał znaki, że udało mu się wystartować napotkaliśmy bardzo nieprzyjemny problem w postaci zawieszającego się serwera oraz klienta w momencie wyboru shardu.
Problem był na tyle uciążliwy, że nie objawiał się żadnym komunikatem, oba procesy najzwyczajniej zawieszały się, a dodatkowo za nic w świecie nie mogliśmy połączyć się narzędziami diagnostycznymi do serwera, ponieważ nie wszystko jest odpowiednio wspierane przez platformę MONO.
Nakombinowaliśmy się okropnie, żeby tylko uzyskać jakąkolwiek informację co jest nie tak, próbowaliśmy na wiele sposobów w przeciągu kilku dni i jedyne co udało nam się ustalić, to że klient wysyła pewien komunikat, który ginie gdzieś po drodze do serwera i dlatego oba procesy się zawieszają.
Nie udało nam się jednak definitywnie namierzyć dlaczego serwer nie może odebrać komunikatu i po wielu próbach wpadliśmy na pomysł, że jest szansa, że już to ktoś kiedyś rozwiązał i był to strzał w dziesiątke 🙂
Przeszukaliśmy projekt ServUO, ale kod sieciowy zbyt mocno się różnił, aby wywnioskować jak należy przygotować poprawkę i na ratunek przybył nam kod oryginalnego RunUO, który mimo wszystko jest bardziej aktualny od kodu bazowego Nelderim.
Kod sieciowy RunUO okazał się również dość mocno zmodyfikowany, ale dużo bardziej przypominał to co mamy na Nelderim i była szansa że znajdziemy tutaj rozwiązanie naszego problemu.
Zamiast namierzać dokładnie co należy naprawić, zastąpiliśmy jeden do jednego wadliwą część kodu sieciowego kodem z RunUO i jak rękął odjął wszystko zaczęło działać.
I tak oto pojawiło się światełko nadziei, że już niedługo nasze portfele będą szczęśliwsze, jednak jeszcze dużo pracy i przede wszystkim testów, żeby upewnić się że stabilność serwera będzie na takim samym poziomie po zmianie systemu.
Co nowego na ServUO
Wraz z ServUO otrzymujemy nowego bossa z ciekawą mechaniką.
Corgul uderza mocno zarówno w walce wręcz, jak i zaklęciami. Corgul ma aurę życia, która spowoduje, że opcje/umiejętności przedmiotów wysysających życie (np. Vampiric Embrace) będą działały w odwrotny sposób. Gracze odczują spadek życia zamiast oczekiwanego efektu leczenia. Wysysanie many i wytrzymałości działają normalnie.
Corgul jest podatny na Pogromcę Humanoidów (Repond Slayer), ale jest także Nekromantą, więc uważaj na Przysięgę Krwii (Blood Oath).
Corgul ożywi martwego (Animate Dead), więc trzymaj go z dala od ciał. Uważaj, walcząc jednocześnie z Corgulem i dodatkowymi grupami przywołańców, ponieważ te dodatkowe grupy mogą się odradzać w pobliżu Corgula. Jeśli będziesz nieostrożny, możesz znaleźć się po środku potyczki z armią nieumarłych i Corgulem.
Weź mi to przetłumacz…
Od dłuższego czasu pracujemy nad Masterkami. Nadszedł czas, by nadać im trochę polskiego akcentu. Oto propozycje tłumaczeń, które przygotowaliśmy do tej pory:
Jako, że mamy nowy silnik, nowe patche, oznacza to też, że mamy dużo nowych przedmiotów, dla których należy znaleźć nową nazwę. Oto przykłady nowych przedmiotów w menu kucharza
Zostań naszym Patronem
Po pewnych perturbacjach ze stronami, które pozwalają na postanie patronem projektu Nelderim, w końcu udało nam się znaleźć idealne miejsce w sieci dla nas. Jest nim Patreon. Założyliśmy tam profil, który będzie pozwalał wam wspierać naszą pracę niewielką sumą w modelu subskrybcji, gdzie płatność odbywa się co miesiąc. Dostępne są 3 plany, które pozwolą wam między innymi odznaczenie się wśród tłumu na Discord jako nasz Patron, a także wcześniejszy wgląd w planowane zmiany przed ich wprowadzeniem.
Więcej dowiecie się tutaj: Patreon Nelderimu
Podsumowanie
Zbierając to wszystko do przysłowiowej kupy: czas naszego ukochanego koxu z pewnością zmieni się. Ponadto, porzucamy Windowsa na rzecz Linuxa. Mamy nowego bossa w naszej palecie PvM, a co za tym idzie, nową mechanikę, którą można potencjalnie wykorzystać w innych bossach. Przy nowych systemach pojawia się dość spora ilość tłumaczeń. Od teraz możecie zostać Patronami Nelderim 🙂
I to by było na tyle w 10-ej odsłonie DevBloga. Mamy nadzieję, że w kolejnej porcji nowości i zmian będziemy mogli zaserwować wam równie pokaźną ilość smaczków.