Category ServUO

Nelderim DevBlog #14

Przychodzi GM na ServUO na testy, a ServUO do GMa:
-Co ja Patche(r)

W sumie to już nie Patcher, a Launcher….

No dobra, to było słabe…, ale wiecie co będzie mocne? Mocny to będzie ten DevBlog. 14 raz zapraszamy was na nasze WWW po nowości na ServUO.

W tym DevBlogu opowiemy o wczesniej wspomnianym Launcherze, trochę o Talentach oraz jak przebiegały ostatnie testy.

Weźcie coś zimnego do picia i zapraszamy do lektury! 🙂

Nadszedł Nelderim Launcher

Zgodnie z zapowiedzią, udostępniamy wam dzisiaj nową wersję Nelderim Patchera, który razem z niezbędnymi poprawkami otrzymał szereg dodatkowych funkcjonalności, powiew świeżości w postaci najnowszych bibliotek oraz nową nazwę, która powinna zostać z nami już do końca.

Nelderim Launcher możecie pobrać stąd NelderimLauncher.exe i do jego uruchomienia wymagany jest .NET 6 Runtime

NelderimLauncher należy umieścić w tym samym folderze w którym aktualnie znajduje się NelderimPatcher, a sam NelderimPatcher możecie usunąć 🙂

Kod źródłowy pojawi się niedługo na naszym koncie Github, gdy tylko uporamy się z ostatnimi poprawkami.

Co nowego przynosi ServUO

Talenty Oswajacza:

Oswajacz posiada 3 talenty – 1 z nich jest pasywny

ZAKLINANIE

Oswajacz zwierząt zwiększa przyrost umiejętności zwierzaka w oparciu o umiejętność Oswajania, Wiedzy o Zwierzętach i poziom Talentu.

A co to ten trening zwierzaków?

Po wprowadzeniu patcha Stygian Abyss, profesja oswajacza przeszła dość sporą zmianę. Do czasu ML, byliśmy przyzwyczajeni do oswajania zwierzaka o określonym slocie (1-5) i określonym zakresie statystyk, odporności, umiejętności i ataków specjalnych. Patch SA diametralnie zmienił ten fakt. W oryginalnej wersji tego Talentu (Mastery) znaczna większość oswajalnych stworzeń miała 1-2 sloty i należało je trenować, czyli po prostu wbijać im expa, by zbierały punkty, które możemy później wydać na ulepszenie takiego zwierza. Customizacja jest tutaj ogromna, więc możemy złapać sobie dowolne zwierze nadać im dowolne statystyki, odporności czy ataki zależnie do czego nam jest potrzebny. Raz wytrenowany zwierz nie może być zmieniony. Niestety, wraz z wzmacnianiem zwierzaka, zwiększa się wymagany poziom umiejętności, który potrzebny jest, by to zwierzę kontrolować. Przykład poniżej.

Wyżynna boura tuż po złapaniu
W grze znajdziemy opis jak korzystać z rozdawania punktów
A tak wygląda rozdawanie punktów
Po około 3 treningach osiągnąłem takie coś

TRENING BOJOWY

Oswajacz przygotowuje swojego zwierzaka do walki, dodając mu umiejętności bojowe w oparciu o umiejętność Oswajania Wiedzy o zwierzętach i poziom Talentu.


Poziom 1 – Wzmocnienie

Po trafieniu od obrażeń fizycznych zwierzak wchodzi w fazę wzmocnienia, w której zaczyna ładować swoje zwiększone obrażenia i zwiększaa obrażenia zaklęć przez 5 sekund. Podczas tego okresu, zwierzę będzie „przechowywać” wszelkie obrażenia fizyczne. Po zakończeniu okresu wzmocnienia zwierzak wchodzi w fazę uwolnienia na 10 sekund, w której zastosuje zwiększenie obrażeń i premie do obrażeń zaklęć w oparciu o zgromadzone obrażenia.


Poziom 1 – Jedyny

Pozwala zwierzakom dzielić obrażenia, gdy znajdują się blisko swojego pana. Wymaga wielu zwierzaków do aktywacji


Poziom 2 – Berserk

Gdy twój zwierzak otrzymuje obrażenia, zyskuje wściekłość, która zwiększa jego obrażenia fizyczne i przez 8 sekund zmniejsza wszystkie otrzymywane obrażenia. Podczas wściekłości twój zwierzak nie może się skradać, a wszystkie efekty leczenia są zmniejszone. Po okresie wściekłości następuje 60-sekundowy czas odnowienia, zanim zwierzak ponownie wejdzie w stan wściekłości.


Poziom 3 – Konsumpcja Obrażeń

Po trafieniu od obrażeń fizycznych zwierzak wchodzi w fazę absorbcji, w której zaczyna zwiększać swoją szansę na trafienie i regenerację przez okres 5 sekund. Podczas tego okresu absorbowania, zwierzę będzie „przechowywać” wszelkie obrażenia fizyczne. Po zakończeniu okresu „przechowywania obrażeń”, zwierzak wchodzi w fazę uwolnienia na okres 10 sekund, w której wykorzysta swoją szansę na trafienie i premię do regeneracji w oparciu o zgromadzone obrażenia.

POWIĘKSZONA STAJNIA

Gdy Talent jest aktywny, oswajacz otrzymuje dodatkowe miejsca w stajni.

Testy, testy i jeszcze raz testy

Tym razem na tapetę wzięliśmy kilka aspektów gry. Pierwszym i najważniejszym elementem testów było sprawdzenie wpływu gradacji trudności potworów na ich loot. O autorskim systemie możecie przeczytać we wcześniejszym DevBlogu#4 – TUTAJ.

Testy odbyły się w Wulkanie nieopodal Ferion. Udało nam się przejść wszystkie 4 poziomy. Nie obyło się bez strat. Wnioski jakie wysnuliśmy z tych testów, to, między innymi: zbyt duża ilość złota, zbyt duża ilość reagentów, odpowiednie nasycenie przedmiotów względem trudności potworów. Podczas testów pojawiło się kilka dość poważnych błędów, takich jak: oswajalne potwory podlegały gradacji siły (co zostanie naprawione w kolejnej wersji systemu), FireBreath od Potężnego Smoka potrafi zabić postać, która nie ma 70 odporności na ogień, a taka która ją posiada, traci 3/4 życia (należy uniezależnić ten atak specjalny od życia potwora).

Przykładowy loot silnego smoka

Po wielu zgonach dotraliśmy do bossa, którego udało się zgładzić. Bossy również muszą zostać wyłączone z systemu gradacji.

No i padliśmy…

Dodatkowo udało się przetestować nowego zwierzaka – Żuka Mrozu oraz System trenowania zwierząt (opisany powyżej). Przez cały dungeon udało się wbić 40% poziomu. To stanowczo zbyt szybki progres i będzie musiał zostać on delikatnie spowolniony.

Sam żuk jest bardzo silny. Jego podstawowa wersja miała 800 punktów życia i około 86 odporności na zimno. Więcej o nim TU.

Podsumowanie

A więc tak… mamy świetny system gradacji mobów, który pozowli nowej postaci ruszać od razu na dungi, a nie spędzać czas na cmentarzu, czerwonych orkach czy też Świątyni Śmierci.

Mamy też świetny system ternowania petów.

I mamy wyczesany Launcher.

Czegóż to chcieć więcej? No jak to czego… więcej DevBlogów!

Widzimy się w następnym 😉

Read More

Nelderim DevBlog #13

Witamy was po raz trzynasty w naszym blogu, gdzie opisujemy postępy w migracji na nowy silnik, i nie tylko.

Chyba nareszcie wygrzebaliśmy się z prac około serwerowych i będziemy mogli wrócić do prac nad tym na co wszyscy czekają, no ale bez przedłużania, zapraszamy was do lektury.

Szereg usprawnień NelderimPatcheraLaunchera

Zgodnie z zapowiedzią skoncentrowaliśmy nasze siły na usprawnieniu naszego narzędzia, które pozwala w bardzo prosty sposób dostarczać wam aktualizacje klienta.

Problemami które skłoniły nas do priorytetowego podjęcia działań było niewspieranie połączeń szyfrowanych (HTTPS) oraz niezapamiętywanie adresu serwera z aktualizacjami, co w związku z ostatnimi zmianami na serwerze było dość uciążliwe 🙂

Przy tak wielkiej okazji, bo NelderimPatcher chyba od początku nie otrzymał żadnej aktualizacji, zdecydowaliśmy się dokonać kilka dodatkowych zmian z myślą o tym co planujemy w przyszłości.

Chyba najważniejszą kwestia jest to, że NelderimPatcher staje się już teraz zapowiadanym długi czas NelderimLauncherem, jako że docelowo, chcemy żeby zajmował się nie tylko aktualizacjami, ale również zarządzaniem konfiguracją oraz uruchamianiem klienta.

Dodatkowo nasz plan trochę się zmienił, ponieważ zamiast rozwijać obecny projekt, przepisaliśmy cały kod, podnieśliśmy wersję frameworku do najnowszego .NET 6 oraz zamieniliśmy framework graficzny z WindowsForms na AvaloniaUI, dzięki czemu NelderimLauncher będzie mógł pracować nie tylko na systemie Windows 🙂

Nowocześniejsza szata graficzna jako efekt uboczny 🙂

Sam interfejs dużo się nie zmienił, jednakże został on delikatnie uproszczony, okno można teraz rozszerzać, wszystko zostało spolszczone, a dodatkowo okno już nie będzie się zawieszać po kliknięciu „odśwież” 😀

Oczywiście wymagane poprawki zostały wprowadzone, czyli została dodana obsługa połączeń HTTPS i przy okazji aktualizacja samego klienta HTTP/HTTPS, a także konfiguracja adresu serwera z aktualizacjami będzie „pamiętana” przez NelderimLauncher, a przy okazji mamy możliwość łatwego dodawania dodatkowej konfiguracji w razie potrzeby.

Ostatnią zmianą którą zapowiadaliśmy i pojawi się w NelderimLauncherze jest funkcja self-update samego NelderimLaunchera, której implementacja okazała się być trochę bardziej skomplikowana niż początkowo myśleliśmy, aktualnie „działa”, ale wymaga jeszcze trochę poprawek oraz dodatkowych testów.

Oczywiście kod źródłowy NelderimLaunchera zostanie udostępniony na GitHubie, obok naszych innych repozytoriów, jak tylko uporamy się z ostatnimi problemami 🙂

Tłumaczenia inkantacji Talentów (Skill Masteries)

Juhuuu! W końcu udało nam się dopiąć sprawy związane z Talentami (Skill Masteries). Tłumaczenia inkantacji Talentów zajęły nam chwilę, ale po kilku dniach przekopywania się przez kod oraz Cliloc.enu, wszystkie słowa zostały przetłumaczone na wersje mniej lub więcej odzwierciedlające oryginalne

Co nowego przynosi ServUO

Mistycyzm

Wraz z nowymi dodatkami pojawiły się nowe umiejętności. Z dodatkiem Stygian Abyss dostaliśmy Mistycyzm. Mistycyzm jest podobny do Nekromancji czy Druidyzmu. Mistyk, aby jego czary były skuteczne, będzie wymagać umiejętności Koncentracja, która będzie działać jak Mądrość z Magią. Mistycyzmu na OSI można nauczyć się od NPC. Niektóre podstawowe czary można zakupić u tego samego NPC.

Kilka obrazków prezentujące czary i grafiki mistyka

Więcej o mistycyzmie możecie przeczytać na UOGuide.

Podsumowanie

I kolejne dwa tygodnie za nami, małymi kroczkami ale systematycznie dążymy do celu 🙂

A może wy macie jakieś sugestie jakie funkcje powinniśmy dodać do NelderimLaunchera? Dajcie nam znać na Discordzie.

Do następnego!

Read More

Nelderim DevBlog #12

Witamy was ponownie w okrągłej, dwunastej już części naszego DevBloga.
Jest to „okrągła” liczba, ponieważ dokładnie pół roku temu rozpoczęliśmy mobilizację w ekipie i skoncentrowaliśmy nasze siły na migracji na nowy silnik.
A oto co się działo za kulisami ostatnimi czasy…

Kolejne prace serwerowe

Ostatnio ogłaszana migracja serwera na system Linux okazała się nawet większym sukcesem niż szacowaliśmy, ponieważ pomimo obniżonych kosztów, okazało się, że serwer pracuje wydajniej pod kontrolą nowego systemu co przekłada się na niższe opóźnienia w rozgrywce oraz skrócone czasy zapisywania świata gry.

Pomimo tego, że migracja została ogłoszona jako zakończona sukcesem, za kulisami mieliśmy jeszcze sporo pracy, żeby serwer spełniał wszystkie nasze wymagania.

Pierwszym zadaniem było wprowadzenie certyfikatu oraz szyfrowania połączenia na naszym serwerze WWW.

Na poprzednim serwerze co prawda również mieliśmy wygenerowany certyfikat dla domeny, ale z powodu problemów konfiguracyjnych ostatecznie zdecydowaliśmy pozostawić naszą stronę jako nieszyfrowaną.

Na systemie Linux cały proces był praktycznie w pełni zautomatyzowany, nasza strona internetowa jest uznawana za „bezpieczną” już od około tygodnia, a do tego nie zauważyliśmy żadnych problemów tak jak na poprzednim systemie.

Kolejnym krokiem była instalacja oraz konfiguracja serwerów poczty internetowej, ponieważ bez tego nie byliśmy w stanie wysyłać loginów i haseł dla nowo założonych kont, a tego jednego (nie)szczęśliwca który musiał kilka dni czekać na dane do logowania gorąco przepraszamy 😀

Oczywiście tutaj dołożyliśmy też wszelkich starań, aby maile wysyłane od nas były szyfrowane, podpisywane i co tam jeszcze tylko było potrzebne, żeby inne serwery nie wrzucały maili od nas bezpośrednio do kubła ze śmieciami 🙂

Przy okazji tych prac usprawniliśmy dodatkowo sam proces zakładania kont i teraz ekipant do założenia konta potrzebuje jedynie Ultimy Online oraz przeglądarki internetowej, gdzie przed usprawnieniami potrzebne były dodatkowe narzędzia do obsługi bazy danych oraz skrzynki pocztowej.

Powinno to znacząco skrócić czas oczekiwania na konto, ponieważ na upartego, możemy teraz wykonywać cały proces rejestracji nawet z telefonu 😀

Niestety nie wszystko poszło tak kolorowo…

Nadchodzące zmiany w NelderimPatcher

Zupełnie przypadkiem, przy okazji testów ServUO okazało się, że nasz wspaniały NelderimPatcher nie obsługuje szyfrowanych połączeń i zabezpieczając naszą stronę internetową, zablokowaliśmy możliwość aktualizowania klienta Ultimy Online.

Tymczasowo udostępniliśmy pliki poprzez połączenie nieszyfrowane, ale docelowo wprowadzimy niezbędną poprawkę do samego NelderimPatchera, a przy okazji tej poprawki, otworzymy sobie furtkę z zupełnie nowymi możliwościami.

Ową furtką jest wprowadzenie do NelderimPatcher funkcji self-update, dzięki której będziemy mogli w prosty sposób dostarczać wam poprawki oraz nowe funkcjonalności do samego patchera.

Możliwość wprowadzenia poprawki w prosty sposób w takiej nagłej sytuacji jest nieoceniona, a jako następne w kolejce mamy zadanie, aby NelderimPatcher pamiętał ostatni adres z którego pobierał pliki, żebyście nie musieli za każdym razem podmieniać wpisanego na stałe w NelderimPatcher adresu IP starego serwera 😀

W związku z zapowiedzią nadchodzącego powolnymi krokami NelderimLaunchera taka możliwość okaże się dodatkowo bardzo pomocna, bo będziemy mogli systematycznie udostępniać wam nowe funkcjonalności, aż pewnego dnia NelderimPatcher przepoczwarzy się w przepięknego NelderimLaunchera, ale to wciąż odległa przyszłość 🙂

Testy, testy, testy…

Mieliśmy przyjemność spotkać się w typowym dla naszych testów czterosobowym zespole, gdzie sprawdzaliśmy jak zachowują sie poszczególne AI mobów oraz jak działaja mechaniki nowych bossów.

Dzięki dodaniu nowych typów sztucznej inteligencji gra staje się dużo bardziej rozbudowana, a przeciwnicy bardziej unikalni. Stwory potrafią posługiwać się takimi magiami jak druidyzm, mistycyzm czy skrytobójstwo. Dodatkowo bossy otrzymały nowe umiejętności oraz nowe animacje jak na przykład ognisty deszcz Stygian Dragona.

Ściana ognia po lewej stronie to podpalenie po ognistym deszczu

Co nowego przynosi ServUO

Z nadejściem nowego silnika, zmieni sie system kopania skarbów. Co ciekawe zmieni się również rozkład umiejętności dla postaci poszukiwacza skarbów.

Mapy skarbów

Otrzymujemy na ServUO 5 poziomów skarbów: Stash, Supply, Cache, Hoard oraz Trove (system nie otrzymał jeszcze tłumaczeń). Ciekawym zastosowaniem zostało pominięcie górnictwa jako umiejętności wspomagającej szukanie skarbów, które zostało zastąpione kartografią. Przewiduje ona cztery progi, przy których zmienia sie zakres błedu liczony w kratkach od skarbu podczas kopania:
0% – 1 kratka
51% – 2 kratki
81% – 3 kratki
100% – 4 kratki
W grze pojawią się również okulary kartografa, które dodają 5% kartografii, a ten bonus wlicza sie do promienia poszukiwań, w przeciwieństwie do talizmanów, które nie wliczają się w zakres błędu kopania.

Zmianie ulega również system strażników skrzyni skarbu. Każda skrzynia posiada czas na otwarcie jej aby uniknąć konfrontacji z kolejnymi falami strażników – od pierwszego poziomu w górę 20>60>180>420>540 sekund. Wybuch pułapki, która nie została rozbrojona skutkować będzie pojawieniem się kolejnych strażników. Do gry wprowadzono również nowego stworka, który będzie próbował podwędzić przedmioty ze skrzynki i z nimi uciec. Poznajcie Grubbera!

Więcej informacji o skrzyniach skarbów znajdziecie TUTAJ

Podsumowanie

Od 6 miesięcy, skurpulatnie dokumentujemy nasze pracę, aby co drugi piątek(z jednym malutkim potknięciem ;)) móc podzielić się z wami postępami.

Postęp jaki udało nam się zrobić przez ten czas robi wrażenie, pomimo wielu przeszkód po drodze i niedoboru czasu.

Kto wie co nas czeka za kolejne 6 miesięcy, może moment migracji będzie wtedy tuż za rogiem?

Do następnego!

Read More

Nelderim DevBlog #11

Czasem należy zrobić krok w tył, żeby móc zrobić dwa kroki do przodu i właśnie pod takim hasłem stoi dzisiejsza część DevBloga. Gorąco zapraszamy do lektury o kolejnych dwóch tygodniach postępów w pracy nad migracją na nowy silnik 🙂

Krok w tył na mapie

Mieliśmy już nie pisać o kliencie, bo ostatnio ogłosiliśmy że był gotowy, ale jak się okazało, nie wszystko poszło zgodnie z planem.

Chcieliśmy rozpocząć nareszcie prace na mapie, bo szykują się pewne zmiany w związku z przesiadką na nowy silnik i zauważyliśmy, że Orod nie jest w najlepszym stanie.

Krótko mówiąc wygladało to jakby przeszło tam tornado, ponieważ miejscami obiekty były nie tam gdzie być powinny.

Początkowo myśleliśmy, że problem dotyczył tylko Orod i że pewnie w którymś momencie jeden z budowniczych „coś źle kliknął” i fragment mapy uległ uszkodzeniu, bo już zdarzały się takie sytuacje.

W Orod niektóre obiekty były wyżej albo niżej niż powinny

Z ciekawości sprawdziliśmy czy na pewno tylko Orod zostało uszkodzone i niestety okazało się, że na całej mapie roi się od błędów i że nie jesteśmy w stanie ręcznie wszystkiego poprawić.

W śnieżnej przystani niektóre obiekty miały zmienione itemID
W jednym z podziemi niektóre obiekty miały niepoprawne hue lub niepoprawne itemID

Podjęliśmy decyzję, żeby przygotować mapę na nowym kliencie od nowa, ponieważ wiemy że aktualna mapa nie jest uszkodzona, a dodatkowo po każdym kroku sprawdzaliśmy czy wszystko jest w porządku.

Na szczęście wszystkie zmiany w plikach mieliśmy skrzętnie udokumentowane i przygotowanie mapy po raz drugi trwało duuużo krócej.

Nie musieliśmy też długo czekać, aby znaleźć co psuło mapę, bo było to narzędzie do kopiowania fragmentów mapy, którego używaliśmy jako pierwsze do rozszerzenia mapy i przekopiowania dungeonów z innej mapy na mapę główną.

Szybkie rozeznanie i okazało się, że istnieje nowsza wersja owego narzędzia, która nie niszczy mapy, działa zdecydowanie szybciej, a dodatkowo naprawia kilka innych problemów, które do tej pory naprawialiśmy innym narzędziem.

Powiększyliśmy mapę, skopiowaliśmy dungeony(tym razem zrobiliśmy to nawet lepiej, bo po ostatnim kopiowaniu jeden dungeon nie był skopiowany poprawnie, podmieniliśmy grafiki, podmieniliśmy kolory, sprawdziliśmy, że wszystko tym razem jest w porządku.

I teraz już możemy robić „dwa kroki do przodu”, ale o tym innym razem 😉

Jako bonus jeszcze kawałek Tasandory na maksymalnym oddaleniu 🙂

Przesiadka na Linuxa

Dwa tygodniu temu pisaliśmy, że chcemy się przesiąść na inny system operacyjny, a dzisiaj możemy ogłosić, że jesteśmy już bardzo blisko 🙂

Poprzedniego DevBloga zakończyliśmy działającym serwerem RunUO na wirtualnej maszynie, natomiast zaraz po tym wystawiliśmy serwer na testowej fizycznej maszynie i rozpoczęliśmy testy dla członków ekipy.

Nie znaleźliśmy żadnych nieprawidłowości i otworzyliśmy testowy serwer dla kilku ochotników, którym jeszcze raz chcemy gorąco podziękować za poświęcony czas.

Nasi dzielni ochotnicy znaleźli aż jeden błąd w konfiguracji, którego czas naprawy można było liczyć w sekundach 😀

Zakończyliśmy zamknięte beta testy i przystąpiliśmy do kolejnego etapu, jakim jest przygotowanie się na przeniesienie całej reszty oprogramowania, bo na maszynie działa znacznie więcej niż tylko serwer UO.

Na testowym serwerze przygotowaliśmy scenariusze na migracje serwera WWW, bazy danych, serwera plików, serwera poczty, naszych narzędzi służących do prac między innymi nad mapą oraz wszelakich certyfikatów, żeby była „kłódka w przeglądarce”, a maile nie trafiały do spamu.

Teraz coś czego jeszcze nie było w blogu, bo opiszemy wam krótki plan migracji na Linuxa, który dopiero się wydarzy 😀

W sobotę przygotujemy docelowy serwer, zainstalujemy niezbędne oprogramowanie, przeniesiemy nasze WWW, bazę danych oraz upewnimy się że wszystko działa jak należy.

W niedzielę o godzinie 20:00 odbędą się stres testy, na które chcemy żeby zalogowali wszyscy, którzy mają taką możliwość, natomiast zaraz przed testami wyłączymy obecny serwer i przekopiujemy aktualny sejw.

Jeżeli wszystko pójdzie zgodnie z planem, serwer zostanie tak jak będzie stał i będziecie mogli po prostu wrócić do normalnej rozgrywki 😀

Jeżeli coś pójdzie nie tak, to mamy jeszcze dwa tygodnie na ewentualne poprawki do czasu ostatecznego zabicia aktualnej maszyny.

Trzymajcie mocno kciuki i mamy nadzieję, że widzimy się w licznym gronie na testach w niedziele o godzinie 20:00!

Co nowego przynosi ServUO

Wraz z nadejściem upragnionego ServUO, w konkretnie patcha Stygian Abyss, otrzymujemy kolejny typ golema, jaki możemy stworzyć za pomocą umiejętności Majsterkowanie. Tym nowym typem istoty kontrolowanej jest Vollem.

Na OSI, aby stworzyć takiego Vollema, należy uprzednio ukończyć quest. Dodatkowo, należy mieć przy sobie odpowiednie materiały:

Vollem, tuż po pojawieniu się, zajmuje 2 sloty. Może on zostać wytrenowany za pomocą Talentu (Mastery) Oswajacza – dzięki temu można nadać mu skille oraz zwiększyć statystyki, kosztem slotów.

Vollem może być leczony za pomocą umiejętności Majsterkowanie z wykorzystaniem sztab żelaza – tak jak inne golemy.

Jak wytresować smoka (i pająka), żeby dał się dosiadać?

Po pierwszym roku prowadzenia Nelderim, dostaliśmy propozycję odnośnie dużych, 5-slotowych zwierzątkach, które można dosiadać. Dodatkowo, gracze chcieli, by można dosiadać młode smoki. Od jakiegoś czasu staramy się zrealizować te propozycje.

Dodaliśmy już 2 nowe zwierzaki – smocze pisklę oraz ogromnego pająka.

Podsumowanie

Migracja na nowy silnik to strasznie dużo pracy, trzeba być czujnym na każdym kroku i sprawdzać wszystko dwa razy, żeby później nie okazało się że nasza praca pójdzie do kosza. W związku z pracami nad nowym serwerem awarii uległa nasza strona WWW i nie byliśmy w stanie opublikować tej części DevBloga na czas, ale dołożymy dodatkowych starań, żeby następna odsłona pojawiła się w piątek tak jak wszystko inne 🙂

Do następnego!

Read More

Nelderim DevBlog #10

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!

Czas trenowania umiejętności na pewno ulegnie zmianie 🙂

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:

Primer przetłumaczony jako Księga Umiejętności Specjalnej
Mastery przetłumaczone zostało jako Talent

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.

Read More

Nelderim DevBlog #9

W tym tygodniu DevBlog jest raczej skromny, ale udało nam się odnieść znaczący sukces, tak więc możecie otwierać małego szampana 🙂

Finał wstępnych prac nad klientem

Nareszcie udało nam się zamknąć jedną z większych kwestii wymaganych do migracji, jaką było przeniesienie wszystkich naszych modyfikacji w kliencie Ultimy Online.

W ciągu ostatnich dwóch tygodni przenieśliśmy zmiany znajdujące się w gumpach, czyli w interfejsie graficznym oraz w tiledata, czyli w informacjach uzupełniających grafiki o atrybuty mówiące na przykład czy postacie mogą przechodzić przez daną grafikę, albo czy daną grafikę można ekwipować.

Dzięki gotowemu klientowi:

  • możemy dokładnie testować, czy wszystko działa i wyświetla tak jak należy,
  • mamy udokumentowane wszystkie modyfikacje, przez co możemy nakładać zmiany z nowszych wersji klienta i nareszcie dokładnie wiemy co wam udostępniamy 🙂
  • możemy skupić się teraz bardziej na pracach nad serwerem,
  • możemy dodawać do klienta nowe modyfikacje w postaci grafik, dźwięków i innych, gdzie pierwsze efekty tego były widoczne w poprzedniej części bloga w postaci kolorowych świateł, a kolejne nowości będziemy wrzucać na bieżąco, zaczynając od teraz 🙂

Graficzny upgrade

Jako, że Ultima Online ma już swoje lata, niektórzy mawiają, że jej interfejs, grafika, są trochę przestarzały. Prawda? Możliwe. Dlatego zdecydowaliśmy się wykorzystać dostępne w internecie zasoby, w celu nadania naszej ulubionej grze trochę świeżości. To jeden z kilku graficznych upgrade’ów jakie planujemy. Na screenach poniżej możecie zobaczyć jakie grafiki zostały zmienione

Grafiki terenu również otrzymały mały powiew świeżości. Zostały one bowiem podmienione na grafiki, które są bardziej wygładzone i wyglądają trochę bardziej nowocześnie.

Rozważamy również dać wam możliwość zdecydowania indywidualnie czy chcecie używać nowych grafik, czy przywrócić oryginalne wersje, jeżeli na przykład jesteście zbyt bardzo przywiązani do starego wyglądu, albo nowe grafiki po prostu wam się nie podobają 🙂

Co nowego w ServUO

Nowe zwierzaki

Nowe tamowalne stworki

Wraz z pojawieniem się nowych dodatków (Stygian Abyss, High Seas, Times of Legends), pojawiły się też stwory do oswojenia, a co za tym idzie, również nowe grafiki. Część z tych stworów, to zwierzęta dla Oswajacza, ale nie tylko. Przykładem jest żelazny żuk, który, UWAGA, UWAGA!, jest petem dla górnika… Tak! Górnika. Kopie on bowiem rudę bez naszego udziału.

Umiejętności, ataki specjalne… to wszystko jest nieistotne, ponieważ pojawiający się w patchu Stygian Abyss system masterek, który opisywaliśmy w poprzednich DevBlogach, diametralnie zmienia użyteczność i dobór zwierząt przez oswajacza. System ten pozwala na personalizowanie zwierzaczków, lecz o tym, w następnych DevBlogach 😉

Podsumowanie

I to już koniec wieści z frontu, a przynajmniej koniec wieści, którymi możemy się z wami podzielić na ten moment, bo niektóre tematy nie są jeszcze gotowe „do pokazania”, a część chcemy zachować w tajemnicy aż do momentu migracji 🙂

Jak zawsze, dajcie znać co sądzicie o nadchodzących zmianach.

Do następnego!

Read More

Nelderim DevBlog #8

Minęły już cztery miesiące odkąd rozpoczęliśmy pracę nad pierwszą częścią bloga i przynosimy wam kolejną porcje rezultatów naszej pracy nad przenosinami świata Nelderim na nowy silnik 🙂

Przygotowywanie nowego klienta – cześć 3/4

Trzeci raz rozpoczynamy bloga informacjami o nowym kliencie i jesteśmy prawie pewni, że nasza batalia przenoszenia wszystkich obecnych modyfikacji powoli dobiega końca.

Tym razem na celownik trafiły grafiki które możecie podziwiać w świecie Nelderim. W naszym zbiorze można było znaleźć przeróżne pomniki, kolumny, ołtarze, dzbany, głazy, figurki, meble, nowe grafiki przedmiotów oraz wiele innych.

Rozpoczęliśmy od stworzenia listy co należy przenieść i z pomocą przyszło nam gotowe narzędzie do porównywania grafik między klientami Ultimy Online.

Narzędzie to samo w sobie tylko pokazywało różnice, a do tego nie dawało w pełni poprawnych wyników, ale wprowadzając kilka poprawek i modyfikacji uzyskaliśmy listę 913 różnic w grafikach między aktualnym klientem, a „czystym” nowym klientem.

Następnym krokiem była przypisanie grafiki do jednej z trzech grup:

  1. Nasza grafika i miejsce w nowym kliencie jest wolne
  2. Nasza grafika i potrzebuje nowego miejsca
  3. Modyfikowana oryginalna grafika – ten przypadek ignorujemy, bo oficjalne poprawki się przydadzą 🙂

W pierwszej i drugiej grupie zostało łącznie 385 pozycji, a przenosząc grafiki z pierwszej grupy bez żadnej modyfikacji zostały nam 63 grafiki, które potrzebowały dodatkowej pracy.

Dla każdej z pozostałych grafik trzeba było ręcznie wyszukać wolne miejsce pliku, a następnie podmienić wszystkie wystąpienia danej grafiki na mapie.

Tutaj z pomocą przyszedł nasz program do podmiany kolorów na mapie, który po drobnej modyfikacji, poprawił grafikę dla 1020 obiektów.

I gotowe, mając gotową tą część klienta, otworzyło to możliwość wprowadzania nowości…

Chodź pomaluj mój świat…

.. na wiele różnych kolorów!

Dawno temu, natknęliśmy się na forum ServUO na gotową paczkę umożliwiającą tworzenie kolorowych świateł i od razu wiedzieliśmy że chcemy to mieć.

Nadszedł ten dzień, kiedy nareszcie mogliśmy dokonać wymaganej modyfikacji w kliencie, wrzucić gotowy skrypt na serwer i tak oto, razem z przejściem na nowy silnik, świat Nelderim będzie mógł czarować graczy nowymi kolorowymi światłami.

Powinno to pozwolić nam tworzyć lepsze wrażenia w podziemiach, a wam da więcej możliwości dekorowania budynków.

Mamy nadzieję, że jesteście gotowi odblokować poziomy światła w kliencie 😉

Zostań naszym Patronem

Od czasu do czasu pojawiają się pytania od was czy i jak możecie wesprzeć finansowo serwer.

Nie ukrywamy, że utrzymanie serwera oraz domeny kosztuje swoje i jesteśmy bardzo wdzięczni tym którzy do tej pory odciążyli chociaż trochę nasze portfele 🙂

Żeby ułatwić proces dobrze wszystkim znanego „donate”, nareszcie udało nam się poczynić odpowiednie kroki i już niedługo będą dostępne dwie metody wsparcia serwera.

Pierwszą metodą będzie możliwość zostania naszym Patronem w serwisie Patronite, gdzie będziecie mogli wspierać nas ustaloną kwotą, każdego miesiąca.

Drugą metodą, będzie możliwość wpłaty jednorazowej darowizny poprzez serwis PayPal.

Jesteśmy w trakcie dopinania ostatnich szczegółów z oboma serwisami i jak tylko wszystko będzie gotowe, pojawi się wpis ze wszystkimi istotnymi informacjami 🙂

I na koniec chcemy podkreślić, że gra na Nelderim była i zawsze będzie darmowa, ewentualne darowizny są dobrowolne, a pay2win mówimy stanowcze nie.

Co nowego przynosi ServUO

Kolejna porcja masterek została przetestowana. Tym razem pod lupę wzięliśmy masterki bojowe, takie jak: Walka mieczami, Szermierka, Walka obuchami, Łucznictwo, Rzucanie i Walka Pięściami. Jeśli jeszcze nie wiecie czym są masterki, to zapraszamy do zerknięcia na DevBlog#4, gdzie po krótce jw omówiliśmy.

Masterki Łucznictwa:

Flaming Shot

Łucznik wystrzeliwuje salwę płonących strzał w cel lub lokalizację. Po udanym trafieniu obrażenia od ognia w oparciu o poziom mistrzostwa są zadawane wielu celom w promieniu w oparciu o umiejętność łucznictwa i taktyki.

Playing the Odds

Członkowie drużyny łucznika zbierają się, by otrzymać zwiększoną szybkość ataku (SSI) i szansę na trafienie (HCI), gdy zasięg łucznika jest zmniejszony, mają szansę na zastosowanie osłabienia obrony (HLD) na celach w ciągu 5 pól od rzucenia. Wzmocnienie członków drużyny jest oparte na umiejętnościach łuczniczych i taktycznych łucznika wraz z poziomem mistrzostwa (Tier).

Masterki Szermierki:

Thrust

Zdolność zapewnia zwiększone obrażenia od ataku fizycznego i zmniejsza obrażenia od ataku fizycznego celu w oparciu o poziom mistrzostwa (Tier) do szermierza, jednocześnie zużywając manę, gdy jest aktywna. Ta zdolność nie nakłada się ze specjalnym ruchem Feint (Skrytobójstwo). Obrażenia w PvP są ograniczone do 35.

Pierce

Szermierz wykonuje przeszywający atak na swoim przeciwniku, powodując osłabienie wytrzymałości i jej drenaż na ofierze w zależności od umiejętności szermierki i taktyki i poziomu mistrzostwa szermierza (Tier)

Masterki Walki Obuchami:

Stagger

Wojownik wykonuje oszałamiający atak na swoim przeciwniku, powodując osłabienie prędkości ataku (SSI) i ogromne obrażenia ofierze w zależności od poziomu mistrzostwa (Tier).

Toughness

To zdolność, która zapewnia wojownikowi osiągnąć zwiększone punkty wytrzymałości w oparciu o taktykę i umiejętności walki obuchami oraz poziom mistrzostwa (Tier). Uwaga Toughness zużywa manę, gdy jest aktywny.

Masterki Walki Mieczami:

Onslaught

Wojownik wykonuje serię ataków na przeciwnika, zmniejszając jedną z odporności ofiary (Resist) w oparciu o umiejętności walki mieczami i taktyki wojownika oraz rodzaj obrażeń używanej broni przez jakiś czas w zależności od poziomu mistrzostwa (Tier).

Focused Eye

To zdolność, która zapewnia zwiększenie szansy na trafienie (HCI), ale to wzmocnienie zależy od umiejętności walki mieczami i taktykę oraz poziom mistrzostwa (Tier). Umiejętność ta zużywa manę, gdy jest aktywna.

Masterki Rzucania:

Elemental Fury

Po aktywacji osoba korzystająca z tej umiejętności wygeneruje pulę furii w zależności od rodzaju obrażeń broni. Każdy udany atak, który zada rzucający, doda furii do puli. Gdy pula się zapełni, rzucający uwolni Furię Żywiołów. Czas trwania i wielkość puli furii zależą od poziomu mistrzostwa rzucającego (Tier), umiejętności rzucania i taktyki. Obrażenia w PvP są ograniczone do 35.

Called Shot

Rzucający wykonuje wywołany strzał, który zapewnia zwiększenie szansy na trafienie (HCI) i zwiększenie obrażeń (DI) w zależności od umiejętności rzucania i taktyki oraz poziomu mistrzostwa (Tier). Obrażenia są ograniczone w PvP do 100 obrażeń przed odpornością (Resist).

Masterki Pieściarza:

Knockout (pasywny)

Gdy mistrzostwo pięściarza jest aktywne, otrzymuje on premię do obrażeń do każdego trafienia w zależności od poziomu mistrzostwa (Tier).

Rampage

Pięściarz próbuje nieustannie uderzać przeciwnika, przy czym po każdym udanym uderzeniu atakujący otrzymuje premię do regeneracji punktów życia (HPReg), regeneracji wytrzymałości (StamReg), skupienia się na rzucaniu (Casting Focus) i zwiększenia prędkości ataku (SSI) w oparciu o umiejętności Walki Pięściami, Mądrość lub umiejętności anatomicznych i poziom mistrzostwa (Tier). Efekt zostaje utracony, jeśli pięściarz chybi, jego przeciwnik sparuje atak lub nie rzuci zaklęcia.

Fists of Fury

Pięściarz próbuje szybko zadać trzy ciosy kolejnemu celowi, który zada mu obrażenia w promieniu 2 pól. Jeśli atak się powiedzie, trzecie uderzenie zada bezpośrednie obrażenia w oparciu o poziom mistrzostwa (Tier) pięściarza. Czas trwania tej umiejętności zależy od umiejętności Walki Pięściami i umiejętności Anatomii lub Mądrości.

Wszystkie wymienione masterki widoczne są w pasku buffów.

Musimy jednak pamiętać, że masterki posiadają duże opóźnienie między użyciem umiejętności, ponieważ niektóre z nich są rzucane jak czary. Posiadają inkantacje lub emotki.

Przykładowe użycie masterki (emotka jeszcze nie jest przetłumaczona)
Delay użycia tego samego czaru z masterek
Przykładowe masterki bojowe i ich tiery

*Wszelkie nazwy zostały podane po angielsku, jako, że obecnie jesteśmy w trakcie tłumaczenia całego systemu. Jeśli macie sugestie co do nazw jakie można nadać poszczególnym masterkom, to zapraszamy do podania swoich pomysłów na kanale #sugestie na Discord 🙂

Podsumowanie

I to by było na tyle. Z każdym kolejnym wpisem na blogu jesteśmy coraz bliżej upragnionego celu. Mamy też nadzieję, że jeszcze nie wymęczyły was opisy o przygotowaniach klienta, bo widzimy już linię mety i potrzeba jeszcze tylko trochę, żeby dokończyć ten temat i wziąć na celownik nowe tematy. Kto wie, może wydarzy się to już za dwa tygodnie? 🙂

Do następnego!

Read More

Nelderim DevBlog #7

To już siódmy wpis na naszym blogu, i pomimo tego że te dwa tygodnie były pomiędzy wielkanocą, a majówką, to my dołożyliśmy wszelkich starań, żeby dotrzymać obietnicy i żeby pojawiła się kolejna cześć bloga. Nie przedłużając, tym razem skromnie, ale mamy nadzieję, że nie będziecie zawiedzeni 🙂

Nowy klient płata figle

Dwa tygodnie temu pochwaliliśmy się sukcesem w temacie nowego klienta i jakiś czas po opublikowaniu poprzedniej części bloga odkryliśmy, że jednak nie wszystko poszło zgodnie z planem.

Po dokładnej analizie okazało się, że daliśmy się złapać w dość oklepaną pułapkę informatyczna zwaną „1 based indexing„.

Problem ów polegał na tym, że najpopularniejsze narzędzie do edycji plików Ultimy Online UOFiddler wyświetla kolory zaczynając od indeksu 0, a w plikach gry, przypisane kolory zaczynają się od indeksu 1 ( bo kolor o indeksie 0 oznacza brak koloru, i przedmiot posiada oryginalne kolory grafiki)

Wszystko na pierwszy rzut oka wyglądało poprawnie, ale około 30 kolorów wyświetlało się błędnie i nie mogliśmy sobie pozwolić na taką pomyłkę oraz na związaną z tym dodatkową pracę nad poprawianiem mapy 🙂

Góra: poprawne kolory, Dół: kolory nowe, niepoprawne

Ktoś by pomyślał, ze nic się nie stało, uruchomić poprawiony proces jeszcze raz na oryginalnej mapie i po problemie, ale jako że nie marnujemy czasu, to zdążyliśmy wpuścić budowniczych na mapę i zostały już naniesione zmiany.

Z szacunku dla pracy naszych budowniczych, ustaliliśmy że odwracamy proces, żeby osiągnąć stan mapy ze starymi kolorami, ale ze zmianami wprowadzonymi przez budowniczych, a następnie uruchomimy ponownie poprawiony proces i jesteśmy w domu.

Napotkało nas przysłowiowe szczęście w nieszczęściu, ponieważ odwrócony proces uświadomił nam, że nasze początkowe rozłożenie kolorów w wolne miejsca zostało wykonane niepoprawnie, i dla 62 przypadków, w wolne miejsce próbowaliśmy przypisać dwa kolory.

Problem był na tyle skomplikowany, że wymyślanie jak to wszystko teraz naprawić trwało trochę dłużej i nawet na poważnie zaczęliśmy traktować opcję poświęcenia pracy budowniczych i nałożenie zmian od nowa 😐

Na całe szczęście udało się przy pomocy oryginalnej mapy namierzyć które przedmioty powinny mieć zagubione kolory i ostatecznie (chyba) wszystko udało się doprowadzić do stanu taki jaki powinien być.

Nowy, mocno przekombinowany proces zgłosił podmianę koloru dla 331765 obiektów, natomiast dla 3129 obiektów został przywrócony zagubiony kolor 🙂

Bierzemy również pod uwagę, że po tych wszystkich procesach, podmianach i kombinowaniach, mogły się pojawić jakieś błędy na mapie, lecz skala problemu powinna być tak mała, że zdecydowaliśmy, że będziemy to naprawiać ręcznie, na bieżąco 🙂

Jeszcze, jako wisienka na torcie w temacie kolorów, przepieliśmy skrypty serwerowe, żeby używały kolorów z nowych miejsc i oficjalnie możemy ogłosić, że temat kolorów zostaje zamknięty!

Jako następny cel obieramy sobie przenoszenie grafik, ale z doświadczeniem z kolorami powinno pójść całkiem szybko.

Burze mózgów

Dużo się ostatnio dzieje w kwestii ustaleń tego, jak chcemy, żeby wyglądał Nelderim na ServUO, zbieramy pomysły, ustalamy ogólne założenia, chcemy żeby wizja serwera była spójna i żeby wszyscy mówili, że to właśnie Nelderim jest najlepszym polskim shardem RPG Ultimy Online 🙂

Dlatego chcemy się z wami podzielić zawczasu kilkoma pomysłami, które chcemy wprowadzić:

System imion

Temat ten przewijał się często na serwerze Discord i na razie wiemy tyle, że chcemy, aby gracze „poznawali” inne postacie oraz żeby były możliwości ukrywania swojej tożsamości. Bardzo ogólnikowo, ale na pewno system ten musi zostać zaimplementowany przed końcem migracji.

System osiągnięć

Chcemy, żeby gracze mieli cały czas coś robienia i jednym z takich „animatorów” będzie możliwość zbierania różnego rodzaju achievementów. Bardzo oklepany koncept, ale według nas masę zabawy i satysfakcji dostarczą powiadomienia, że udało ci się zabić dziesięć tysięcy smoków, odwiedzić wszystkie miasta na świecie, wykopać milion bryłek rudy i odbyć swój pierwszy pobyt w ośrodku wypoczynkowym za kratami 🙂

Koniec zwojów nagród

Koniec zwojów nagród, ale zamiast tego będzie coś innego, o czym na pewno jeszcze będziemy mówić, jak już będziemy wiedzieć co to dokładnie jest 🙂 Problemem zwojów nagród jest to, że każdy chomikuje zwoje nagród, żeby kiedyś połączyć je wszystkie i dostać upragniony zwój klasy pierwszej.

Założenia nowego systemu nagród dla graczy są take, że nie będzie powodu, żeby zbierać je w nieskończoność, a zawartość nagrody będzie czymś przydatnym dla danego, albo innego gracza.

Na ten moment możemy zdradzić tylko (i aż) tyle.

Co nowego przynosi ServUO

Wraz z przejściem na nowy silnik, otrzymujemy dostęp do nowej grupy mobów – Myrmidexy. Jako, że jest to nowa grupa potworów, będzie potrzebny nowy Pogromca. Tym pogromcą jest nic innego jak Myrmidex Slayer – Pogromca Myrmidexów, który będzie można otrzymać z puli propsów z lootu lub wtedy, gdy tworzymy broń za pomocą runicznych narzędzi.

Potwory, które będą wrażliwe na tego pogromcę, to:

Myrmidexy jakie są, każdy widzi, takie mrówki, tyle że trują, natomiast ich królowa dołącza do zacnego grona bossów i cechuję się wyjątkowymi mechanikami!

Królowa ta potrafi pluć trującym jadem, rzucać jajami z których wyklują się nowe myrmidexy, rzucać głazami oraz sprawiać, że skalne kolumny będą ranić tych którzy ośmielą się wtargnąć do jej gniazda.

Myrmidexy

Podsumowanie

Były to dwa tygodnie, gdzie niestety było bardzo mało czasu na prace nad naszym ukochanym shardem, ale mimo to udało się poczynić postępy i kolejny raz dotrzymać obietnicy i dostarczyć kolejną część bloga.

Jak zawsze zachęcamy was gorąco do dzielenia się opinią co wam się podobało w blogu, co możemy poprawić, a także czy podobają się wam nadchodzące zmiany 🙂

Do następnego!

Read More

Nelderim DevBlog #6

Kolejne dwa tygodnie za nami i dużo się działo przez ten czas!

Prace na migracją w ostatnim czasie wyglądały trochę inaczej, bo nie dotyczyły bezpośrednio serwera, ale po kolei.

Wielka batalia z klientem

Jestesmy na takim etapie, że mniej-więcej wszystko działa, a my powoli szlifujemy świat i mechaniki i dokładamy kolejne cegiełki do naszego projektu.

„Mniej-więcej” jest kluczowe w powyższym zdaniu, ponieważ żeby móc w ogóle zacząć prace oraz móc się upewnić że serwer działa jak należy, poszliśmy na skróty z testowym klientem, i można powiedzieć, że jest zlepkiem plików ze starego i nowego klienta, byleby można było połączyć się z serwerem i testować.

Na wiele rzeczy przymykaliśmy oko, ponieważ nie były one kluczowe, ale nadszedł czas, żeby przygotować gotową paczkę klienta, w której już nie trzeba będzie na nic przymykać oka i budować świat dokładnie taki jaki chcemy 🙂

Już przy pierwszym DevBlogu wspominaliśmy o problemach z mapą na najnowszym kliencie, a problem zamietliśmy pod dywan najzwyczajniej kopiując starą mapę do nowego klienta i było to wystarczające do testów.

Problem z mapą tak na prawdę okazał się problemem ze wszystkimi plikami klienta używającymi nowego formatu UOP, ponieważ nie udało nam się znaleźć żadnego narzędzia, które potrafiło by modyfikować pliki w formacie UOP.

Próbowaliśmy wiele przeróżnych narzędzi, wiele przeróżnych klientów, bo może pliki UOP się różnią zależnie od wersji, przegrzebaliśmy przeróżne fora, strony, discordy i co tylko udało nam się znaleźć i nie udało nam się znaleźć dobrego rozwiązania.

Ilość klientów które próbowaliśmy potrafi przyprawić o zawrót głowy

Padła propozycja, że skoro stary format MUL po prostu działa, to może należy bazować na ostatniej wersji klienta z plikami w tym formacie, ale okazało się, że brakuje tam wielu grafik, animacji, a nawet obsługi niektórych systemów, w tym UO Store o którym pisaliśmy w DevBlog #3

Bardzo nam się nie podobała wizja, że ominęło by nas wiele nowości, które już chwaliliśmy i zapewnialiśmy, że będą, więc poszukiwania trwały dalej.

I nagle uświadomiliśmy sobie, że przecież istnieją serwery, które bazują na względnie nowych klientach i posiadają nieoryginalne mapy oraz grafiki, więc jakoś na pewno się da to zrobić!

A co najlepiej zrobić jak ktoś wie coś czego my potrzebujemy? Zapytać! Tak więc stwierdziliśmy, że nikogo nie będziemy o nic pytać, i użyjemy umiejętności Zaglądanie do plików klienta innych serwerów, bo to akurat każdy serwer udostępnia swoim graczom 🙂

I naszym oczom ukazały się pliki z starego klienta uruchamiane przez nowego klienta, tak więc dokładnie to samo czym jest nasz zlepek plików, znany jako klient testowy 🙂

Pewnie macie teraz wrażenie, że utknęliśmy w punkcie wyjścia, ale tak na prawdę uświadomiliśmy sobie że kilkukrotnie byliśmy bardzo blisko rozwiązania tej zagadki!

Wiemy, że nie istnieje narzędzie potrafiące zapisać pliki w nowym formacie, ale istnieje conajmniej jedno narzędzie, które potrafi odczytać dane w nowym formacie oraz cały zestaw narzędzi potrafiących modyfikować pliki w formacie MUL.

Plan jest prosty: wziąć najnowszego klienta z plikami w starym formacie, wyeksportować wszystkie nowości z najnowszego klienta i dodać je do plików w starym formacie i dopiero na to nałożyć cały nasz custom content.

Brzmi jak bardzo dużo pracy i dokładnie tak jest, bo już na sam research opisany powyżej poświęciliśmy około 20 godzin na przestrzeni kilku dni, nie licząc przerw 😀

Zaczęliśmy od mapy i wzięliśmy naszą główną mapę oraz wszystkie pozostałe oryginalne mapy w najnowszej modyfikowalnej wersji.

Przy okazji odkryliśmy, że nasza mapa jest w baaardzo starym formacie i za pomocą kilku narzędzi jesteśmy w stanie powiększyć ją do nowego rozmiaru i zyskać dzięki temu dodatkowy obszar 1024×4096 kratek na nowe dungeony 🙂

Nowy obszar zaczęliśmy już wykorzystywać, ponieważ przenieśliśmy tam wszystkie nasze dungeony które robiliśmy w wolnych miejscach na innych mapach, jako że nie mieściły się na mapie głównej.

Wszystko po prawej stronie strzalki to nowy obszar

Mapa byłaby w tym momencie gotowa, gdyby nie to, że z oryginalną definicją kolorów świat wyglądał trochę inaczej niż go znacie.

Tasandora – LSD edition

Zaczęliśmy dokładną analizę pliku z definicją kolorów i znaleźliśmy dokładnie 740 kolorów których używamy, a które nie są dostępne w oryginalnym kliencie.

Na szczęście okazało się, że w oryginale znajduje się mniej więcej 830 wolnych miejsc na kolory, więc możemy przenosić kolory i na pewno się ze wszystkim zmieścimy.

Następna analiza polegała na wyznaczeniu których kolorów nie musimy ruszać, ponieważ już znajdują się w wolnych miejscach i odfiltrowaliśmy już tylko 371 sztuk dla których musieliśmy znaleźć nowy dom.

Szybka rozpiska, wszystkim kolorom znaleźliśmy nowe miejsce, i wyznaczyliśmy 15 paczek które umieściliśmy w „dziurach” w oryginalnym kliencie.

W świecie ultimy istnieje wiele narzędzi które potrafią działać cuda, i znaleźliśmy jedno, które potrafi dodawać „hurtowo” zasoby do plików, więc wystarczyło tylko przygotować plik z odpowiednimi instrukcjami i wszystkie nasze kolory były już na swoich docelowych miejscach.

Kolory dostały nowe identyfikatory, ale teraz gra musi wiedzieć, że obiekty na mapie które mają przypisany jeden z naszych kolorów, muszą teraz mieć nowy identyfikator koloru!

Ku naszemu zdziwieniu, jeszcze nikt nie napisał takiego narzędzia, tak więc usiedliśmy do programowania.

35 linii kodu później nasz malutki program powiadomił nas, że zgodnie z naszym życzeniem zamienił kolory dla 1,021,708 obiektów i na szczęście nie musieliśmy tego robić ręcznie 🙂

Przed nami jeszcze dużo pracy, bo teraz serwer musi się dowiedzieć o nowych identyfikatorach kolorów, a ponadto czeka nas podobna przeprawa tylko, że na większą skalę z przenoszeniem grafik, ale o tym i nie tylko kiedy indziej, bo prace nad klientem to nie jedyne o czym chcemy napisać 🙂

Gramy w otwarte karty

Niedługo po udostępnieniu poprzedniego wpisu DevBloga, pojawiła się sugestia na serwerze Discord, że skoro cała nasza praca idzie w kierunku ServUO, to czy możemy udostępnić kod źródłowy obecnego serwera, żeby gracze mogli sami robić poprawki w serwerze, gdy my jesteśmy skupieni na migracji.

I tutaj będziemy szczerzy, planowaliśmy taki ruch od dłuższego czasu, a powyższa sugestia utwierdziła nas, że jest to dobry krok, a do tego jest to odpowiedni moment.

Tak więc z dniem dzisiejszym ogłaszamy, że udostępniamy publicznie kod obecnego serwera!

I kod serwera na nowym silniku też! 😀

Dokładnie tak, z dniem dzisiejszym Nelderim staje się serwerem z otwartym kodem źródłowym i każda osoba posiadająca chęci oraz umiejętności może przyczynić się do jego rozwoju.

Kod źródłowy obu serwerów dostępny jest na naszej organizacji w serwisie GitHub https://github.com/UONelderim

Czy to oznacza, że każdy może coś zmienić w serwerze?
Tak, ale wszystkie zmiany najpierw muszą zostać przez nas zaakceptowane 🙂

Czy to oznacza, że każdy może uruchomić swój Nelderim?
Tak i nie. Udostępniamy kod serwera, ale z pustym światem, więc nie obawiamy się konkurencji ze strony nowo powstałych Nelderimów 😀

Chcielibyśmy też prosić o rozwagę i jeżeli zdecydujecie się że chcecie wprowadzić jakieś zmiany do serwera, to skonsultujcie to uprzednio z nami, żeby nie okazało się, że wasza praca pójdzie na marne.

Jako że kod serwera jest od teraz publiczny, chcemy też publicznie udostępnić tablicę z zadaniami, nad którymi aktualnie pracujemy oraz tymi które mamy w planach, jednakże zanim to się stanie, musimy mieć pewność, że nie udostępnimy czegoś, czego nie chcemy udostępnić 😉

Co nowego przynosi ServUO

Nowy silnik, to nie tylko nowe grafiki, ale i nowe umiejętności. Jedną z nich jest umiejętność Rzucania (Throwing). Umiejętność została dodana w dodatku Stygian Abyss. Jest to umiejętność, która oryginalnie była alternatywą dla Łucznictwa dla rasy Gargulców. My zaś planujemy udostępnić ją dla wszystkich ras.

Ale czym dokładnie to Rzucanie jest?

Rzucanie pozwala graczom używać nowego zestawu broni do rzucania jako umiejętności ataku dystansowego.

Mechanika

Każda broń ma dostęp do podstawowego i maksymalnego zasięgu, przy czym podstawowy zasięg jest modyfikowany przez siłę gracza, aby określić rzeczywisty zasięg.

Absolutny maksymalny zasięg jest ograniczony. Obliczony maksymalny zasięg, na jaki gracz może rzucić swoją bronią, jest używany do określenia, jak dokładny jest jego rzut, gdy próbuje trafić w cel z określonej odległości. Dzięki temu gracz ma „sweet spot”, w którym rzucanie jest najskuteczniejsze, podczas gdy naciskanie na maksymalny zasięg lub rzucanie, gdy jest zbyt blisko celu, powoduje mniejsze obrażenia lub celność.

Rzucony za słabo – Jeśli broń wyposażona w broń ma maksymalny zasięg do sześciu pól, a gracz rzuci w gracza dwa pola dalej (zbyt blisko), ma on karę do szansy na trafienie w wysokości 12%, ale bez redukcji obrażeń.
Idealny – Maksymalny zasięg sześciu płytek, rzucony na odległość czterech płytek. Brak kary do szansy na trafienie, brak redukcji obrażeń
Przerzucony – Maksymalny zasięg sześciu płytek, rzucony na odległość sześciu płytek. Kara za brak szansy na trafienie, ale o 47% zmniejszenie obrażeń

Walka w zwarciu

Mimo że mogą być przeznaczone do rzucania, wszystkie te bronie mają ostre, wredne krawędzie – idealne do złapania niczego niepodejrzewającego wojownika walczącego w zwarciu. Zręczność gracza i umiejętność rzucania na poziomie conajmniej 100 zniweluje karę za szansę trafienia za walkę w zbyt bliskiej odległości.

Kary za Tarcze

Wszystkie bronie do rzucania są jednoręczne, co pozwala rzucającemu na założenie tarczy lub innego przedmiotu w drugiej ręce. Gracz poniesie karę obrony (DCI) i szansy na trafienie (HCI) za użycie tarczy podczas używania broni do rzucania. Kary te można zrównoważyć, inwestując punkty umiejętności w Parowanie. Gracze bez Parowania będą teraz mieli minimalną szansę na trafienie (HCI).

Broń w Paperdollu
A tak prezentuje się w plecaku

Wraz z dodaniem nowych broni, mamy też nowe specjale:

Cyklon posiada Moving Shot i Infused Throw

Czakram posiada: Mystic Arc i Concussion Blow

Gwieździsty Czakram posiada: Armor Ignor i Mortal Strike

Podsumowanie

Kolejne tygodnie mijają, a my nie zwalniamy tempa. Rozwiązujemy kolejne problemy, zamykamy kolejne zadania, przybliżamy się krok po kroku do osiągnięcia celu. A do tego jeszcze znajdujemy troszeczkę czasu żeby dostarczać poprawki na obecny serwer 🙂

Oto, co pojawi się na serwerze w niedługim czasie:

  • zmniejszenie wagi harfy oraz innych ciężkich instrumentów
  • księga zleceń będzie zapamiętywać stronę na której była otwarta
  • poprawienie błędnych komunikatów wykrywacza pułapek
  • przełącznik dla ekipy, który umożliwia wyłączenie komunikatów NPC na czas eventów
  • umożliwienie zielarzowi i łukmistrzowi zbierania konopi i jedwabiu
  • poprawienie przetapiania smoczej zbroi
  • umożliwienie postaci męskiej oswajania jednorożca bez możliwości dosiadania go
  • umożliwienie cięcia butów nożyczkami w celu odzyskania skór
Read More

Nelderim DevBlog #5

Już prawie dwa miesiące odkąd rozpoczęliśmy prowadzenie dev bloga i nie mamy zamiaru przestawać 🙂

Blog spełnia swoją najważniejszą rolę, czyli zagania nas do roboty, bo musimy mieć o czym pisać co dwa tygodnie, a dodatkowo wy możecie poczytać o tym jak idą nam prace.

NelderimLauncher

Żeby rozpocząć przygodę ze światem Nelderim trzeba przebrnąć przez instrukcję instalacji składająca się z kilku kroków, a następnie poprzez NelderimPatcher upewnić się, że posiadamy aktualne pliki gry.

Chcemy żeby Nelderim był grą dostępną dla każdego i doszliśmy do wniosku, że obecna procedura instalacji oraz kroki wymagane, żeby być na bieżąco z zasobami gry takimi jak mapa, grafiki, tłumaczenia mogłyby zostać bardzo mocno uproszczone.

Nasza wizja jest prosta: program który zajmie się instalacją gry, aktualizacjami oraz ustawieniami. Chcemy, aby gracze mogli pobrać jeden mały program i wszystko co jest potrzebne do gry, zostanie przygotowane automatycznie. Chcemy również, aby Nelderim Launcher obsługiwał wszystkie popularne systemy operacyjne, a nie tylko system Windows jak jest w przypadku NelderimPatchera.

Aktualne prace są na bardzo wczesnym poziomie, ale zrobiliśmy research odnośnie gotowych rozwiązań oraz technologii i zaczerpnęliśmy trochę inspiracji od innych twórców gier oraz przygotowaliśmy grafikę koncepcyjną przedstawiającą, jak chcemy, żeby wyglądał interfejs 🙂

Wersja koncepcyjna Nelderim Launchera

Kolejne wieści o pracach w systemie gainów

Lwią część czasu z ostatnich dwóch tygodni poświęciliśmy na pracę nad systemem gainów, czyli treningu naszych postaci.

Jednym z największych osiągnięć w tej kwestii jest częściowo działająca komenda pozwalająca oszacować jak dużo czasu powinien zająć trening danej umiejętności, żeby osiągnąć pożądany poziom.

Komenda ta już w tym momencie jest w stanie wyliczyć takie estymaty dla około połowy istniejących umiejętności, a porównując wyniki z rzeczywistymi wartościami, które dostarczył jeden z ekipantów, możemy z czystym sumieniem stwierdzić, że estymaty są wystarczająco dobre, aby oprzeć na nich konkretne decyzje o zmianach w prędkości gainów 🙂

Dla bardziej skomplikowanych umiejętności, w których trening wchodzi więcej czynników, pierwsze testy wskazały, że estymaty mocno odbiegają od wartości rzeczywistych i musimy poświęcić trochę więcej czasu na szlifowanie tego rozwiązania, żeby móc na nim bazować 🙂

Aktualne wartości w systemie gainów wymagają znacznych zmian

Dodatkowo, oprócz widocznej pracy, udało nam się również ustalić kolejne wytyczne odnośnie tego jak chcemy, żeby docelowo wyglądał system gainów

Historia punktów fabularnych

Czyli „Dostałeś punkty? Nie wiesz od kogo? To już wiesz!”
No dobra, a teraz pora na CSa

A tak całkiem poważnie – do tej pory mieliśmy w ekipie oddzielny kanał discord na punkty fabularne, na którym opisywaliśmy kto dostał punkty, od kogo i za co wraz z ilością przydzielonych punktów. Było to dość uciążliwe, jako, że należało pamiętać o zapisaniu tego, a czasem potrafiło się to przypomnieć po kilku dniach. Sam gracz również nie znał szczegółowych informacji na temat przydzielonych mu punktów. DO tej pory widział jedynie informację, iż został nimi nagrodzony. Aż po dziś dzień…

Na nowym silniku dostępny jest nowy panel na którym każdy z graczy i GMów może zobaczyć kto, kiedy, dlaczego oraz jaką liczbę punktów przydzielili graczowi mistrzowie gry.

Widok panelu karty postaci dla gracza

Żeby nie było, że wszystkie ładne rzeczy będą dostępne dopiero po migracji, to ten panel będzie dostępny również na obecnym silniku Nelderim w niedalekiej przyszłości 🙂

Co nowego przynosi ServUO

Jak zwykle, staramy się przemycić kilka ciekawostek i uchylić rąbka tajemnicy z tego co drzemie na ServUO. Poniżej możecie się zapoznać ze zmianami w systemach zleceń rzemieślniczych, z których będziecie mogli korzystać w formie dopasowanej do świata Nelderim.

Zlecenia rzemieślnicze

Dotychczas rzemieślnik mógł korzystać ze zleceń kowalskich, krawieckich oraz naszych autorskich zleceń łukmistrza. Od dawna planowaliśmy wprowadzenie większej ilości zleceń, lecz tutaj ServUO wychodzi z gotowymi rozwiązaniami 🙂

Do dyspozycji graczy pozostają znane już zlecenia kowalskie oraz krawieckie (ze zmodyfikowanymi listami nagród), oraz zlecenia alchemika, skryby, majstra, stolarza, kucharza oraz nowy system zleceń łukmistrza, nad którym musimy posnuć kilka przemyśleń, jak pogodzić je z naszym obecnym systemem.

Dodatkowo zmianie ulega diametralnie system odbioru nagród, naszym oczom ukazuje się w menu NPC rzemieślnika możliwość rozwoju listy nagród. System ten funkcjonuje identycznie dla pozostałych rzemiosł, poniżej przykład dla kowalstwa.

Oddając losowe zlecenie zostajemy poinformowani o możliwości przypisania punktów do naszego salda lub wybrania w tym momencie nagrody o maksymalnej wartości przewidzianej za dane zlecenie. Zachowane punkty wynoszą 2% wartości danego zlecenia.

Wybierając przedmiot, który chcemy wybrać z listy, zostaniemy zapytani czy na pewno chcemy pozyskać ten przedmiot. Po akceptacji trafi on do naszego ekwipunku.

System ten, różni sie tym od oryginalnego, że oprócz przejrzystej listy otrzymujemy możliwość wymiany punktów nagrody na taką o tej samej lub niższej cenie, co eliminuje w pewnym stopniu efekt losowości. Dodatkowo możemy zachować część punktów na koncie do wykorzystania w przyszłości, dzięki czemu wszystkie gorsze zlecenia zyskują na wartości. Z racji tego przy wykonaniu wielu słabych zleceń możemy odebrać nagrody jak za dużo bardziej wymagające do skompletowania zlecenia.

Dodatkowo istnieje też opcja przekupienia miastowego rzemieślnika, aby za niemałą sumę złotych monet wprowadził „poprawkę” w waszym zleceniu rzemieślniczym, co poskutkuje podniesieniem wartości zlecenia poprzez zwiększenie ilości wymaganych towarów, dodanie wymogu na wyjątkowe towary albo zmianę materiału towarów w zleceniu na materiał wyższej klasy.

Kto pierwszy będzie niebiańskim kowalem z valorytowym młotem w dłoni? 🙂

Podsumowanie

To już piąty raz, kiedy udaje nam się bez większych przeszkód przedstawić wam postępy w pracach nad migracją Nelderim na nowy silnik ServUO. Tak jak już wspominaliśmy, prowadzenie bloga daje nam nieustanny zastrzyk motywacji i pcha prace do przodu. Z kazdym kolejnym wpisem jesteśmy coraz bliżej końca migracji, i już nie możemy się doczekać, aż otworzymy bramy nowego serwera dla was 🙂

Do usłyszenia za dwa tygodnie!

Read More

Nelderim DevBlog #4

O masterkach słów kilka

Na najnowszej wersji klienta, dostajemy do dyspozycji Skill Masteries, roboczo nazywanych „masterkami”. Są to dodakowe umiejętności bazujące na skillach postaci. Tylko jedna z masterek może być używana w tym samym czasie. Dziś na tapetę weźmiemy jedne z najlepszych masterek opierające się na skillach barda, które tworzą z niego niezastąpionego kompana każdej wyprawy (o innych masterkach możecie poczytać TUTAJ lub TUTAJ). Aby nauczyć się umiejętności potrzebujemy elementarz danej dziedziny, dostępny w trzech stopniach zaawansowania, oraz minimum 90% umiejętności, dla której chcemy rozwinąć masterkę.

Następnie „czytamy” go jak zwój umiejętności. Aby korzystać z poznanych masterek potrzebujemy jeszcze księge.

Kiedy znamy już potrzebne masterki, mamy księgę, możemy przejść do wspomagania naszych kompanów. Siła buffów zależy od poziomu masterki oraz poziomu umiejętności. Klikając na księge masterii rozwijamy listę poznanych masterek. Dzięki temu możemy wybrać tę, z której chcemy korzystać w danej chwili.

Następnie możemy rozpocząć korzystanie z umiejętności. Buffy te w czasie działania ciągle korzystają z many i będą tak długo się utrzymywać jak długo im ją zapewnimy. Im więcej członków drużyny obejmujemy wzmocnieniami tym więcej many zużywa dana pieśń. Poniżej zestawienie umiejętności oraz buffów przy 100 oraz 120% umiejętności.

Uspokajanie
Prowokacja

Dezorientacja natomiast posiada 2 umiejętności, które wpływają na przeciwników zadając im obrażenia lub obniżając ich statystyki.

Dzięki tym umiejętnościom gra bardem nabierze nowego kierunku jako świetne wsparcie, dodatkowo będzie to idealne uzupełnienie naszego autorskiego systemu magii barda.

Pierwsza implementacja „Poziomu trudności” potworów

Kontynuujemy wątek z poprzedniego wpisu, jako że udało nam się dowieźć na testowy serwer pierwszą wersję systemu DifficultyLevel, roboczo nazwanego w poprzednim wpisie „poziomem siły”. Aktualna implementacja nie różni się zbyt wiele od opisu sprzed dwóch tygodni, z wyjątkiem tego, że skala trudności jest 7-poziomiowa ( od -3 do +3, a w rzeczywistości od -75% do +75% trudności potwora). Sugerowaliście nam również, że przedrostki w jednej formie nie będą pasować dla każdego potwora i w związku z tym mamy możliwość ustalenia przedrostka, wyglądu oraz koloru dla każdego potwora, dla każdego z poziomów trudności, aby wprowadzić trochę różnorodności oraz wyeliminować przypadki takie jak „Większy Żmija” 🙂

Zgodnie z zapowiedzią, głównie by ułatwić życie mistrzom gry, system DifficultyLevel został zintegrowany z systemem regionów, abyśmy mogli w bardzo prosty i przejrzysty sposób wdrażać go do świata.

<region name="Wulkan_LVL1" parent="Default">
    <difficultyLevel Normal="80" Greater="20"/>
</region>

Pierwsze testy systemu przebiegły bardzo pomyślnie i aktualnie wszystko wskazuje na to, że działa zgodnie z założeniami, ale mimo to będziemy uważnie się przyglądać, czy aby na pewno. Natomiast testy integracji systemu DifficultyLevel z systemem regionów ujawniły pewne problemy…

Problemy z regionami

Od samego początku testów rzuciło nam się w oczy, że gra informowała nas czasami, że „opuściliśmy miasto”, kiedy my z całą pewnością wciąż byliśmy w w jego granicach. Po szybkiej inspekcji czy w definicji regionów nie ma dziur ani anomalii odłożyliśmy problem na później, ponieważ nie powodował problemów z rozgrywką, a przynajmniej tak nam się wydawało.

Podczas ostatnich testów zauważyliśmy, że gdy gra mówiła nam, że opuściliśmy dany obszar, to serwer na prawdę tak uważał, co skutkowało niepoprawnym działaniem systemów populacji rasowej NPC, spawnów strażników, plotek, nietolerancji rasowej, kilku innych pomniejszych systemów oraz nowego systemu DifficultyLevel. Narzędzia do pracy z regionami, o których wspomnieliśmy w Nelderim DevBlog #2 pokazały nam, że dany region obejmuje obszar w którym się znajdowaliśmy, ale nie jest regionem głównym, z którego brane sa wartości dla systemów. Dało nam to do zrozumienia, że dane regionów są poprawne i problem leży w kodzie serwera.

Znalezienie problemu zajęło nam wyjątkowo długo, bo ten okazał się być mocno nieoczywistym. Winowajcą okazała się zbyt nadgorliwa optymalizacja w funkcji zajmującej się rejestrowaniem regionów, i jak z każdym problemem znajdującym się w części ogólnej serwera, nakreślenie problemu oraz potencjalną poprawkę dostarczyliśmy do zespołu ServUO.

Przy okazji naprostowaliśmy kilka nieścisłości z ostatnich porządków w regionach oraz naprawiliśmy wczytywanie konfiguracji naszego rozszerzenia systemu regionów oraz kilku innych systemów które współdzieliły kod ładujący konfigurację.

Początek prac nad systemem gainów

Mając system Loot w stanie stabilnym, gdzie większość implementacji jest gotowa i zostało nam teraz powoli szlifować to co mamy i uzupełniać dodatkami, postanowiliśmy rozpocząć pracę nad kolejnym dużym aspektem rozgrywki jakim jest trening umiejętności naszych wirtualnych postaci. Nasze prace w tym kierunku są na bardzo wczesnym poziomie, ale na ten moment mamy już część pomysłów i ustaleń które możemy wam zdradzić.

Po pierwsze chcemy przywrócić znane z pierwszej odsłony Nelderim modyfikowanie szybkości gainów w zależności od regionu w którym się znajdujemy, czyli w domach będzie najwolniej, w miastach troche szybciej, w terenach niesprecyzowanych będzie obowiązywać bazowy współczynnik przyrostów umiejętności, natomiast w podziemiach, gdzie jest najniebezpieczniej, postacie będą trenować najszybciej. Chcemy zachęcić takim podejściem graczy do trenowania umiejętności podczas normalnej rozgrywki, i tym samym zniechęcić do wytrenowania postaci w pełni w domowym zaciszu.

Drugą kwestią jest to, że chcemy w miarę możliwości ujednolicić czas potrzebny na wytrenowanie każdej umiejętności i zrobić to w usystematyzowany sposób. Do tej pory współczynniki dla poszczególnych umiejętności były ustalane raczej na oko i korygowane zgodnie ze spostrzeżeniami ekipy oraz graczy. Dla każdej istniejącej umiejętności, których na chwilę obecną jest 58, chcemy ustalić optymalny sposób treningu, biorąc pod uwagę przeróżne czynniki i na tej podstawie liczyć estymaty czasu wymaganego na osiągnięcie żądanej wartości umiejętności, co posłuży nam do ustalenia współczynników gainów dla umiejętności. Miłym efektem ubocznym tego przedsięwzięcia będzie komenda dostępna dla graczy, która obliczy szacunkowy czas jaki będzie potrzebny, żeby wytrenować daną umiejętność na żądany poziom (zakładając, że sposób treningu umiejętności jest zgodny z naszym sposobem treningu :))

Ciekawym dodatkiem, który planujemy wykorzystać, jest istniejący na oryginalnym systemie UO system gwarantowanych gainow Guaranteed Gain System. System ten w skrócie gwarantuje gain dla postaci, jeżeli od ostatniego gainu minęło odpowiednio dużo czasu. Powinno to ułatwić graczom, którzy grają rzadziej, szybciej osiągnąć żądany poziom umiejętności.

To tylko garść aspektów, które wpływają na system gainów, ale wiemy że chcemy mieć je na trzeciej odsłonie Nelderim. Wszystko to jest jak na razie w powijakach, część rzeczy jest w ogóle nie sprecyzowana, część jest ustalona ogólnikowo, a jeszcze inne aspekty są w ogóle nie ruszone, nie wiemy jeszcze o ich istnieniu, albo zwyczajnie chwilowo wypadły nam z głowy. W każdym razie na pewno jest to ogrom pracy i jak zawsze, zachęcamy was mocno do wyrażania swojej opinii oraz dawania nam sugestii na serwerze Discord, bo wiemy, że nieprzemyślane decyzje oraz przeoczenia potrafią wywoływać u graczy negatywne emocje.

Co nowego przynosi ServUO

Zgodnie z tradycją, dzielimy się z wami porcją nowości, które daje nam migracja na ServUO.

Nowe okręty

Dodatek High Seas, który wyszedł w roku 2010 wprowadził zmiany w topornym systemie pływania oraz umożliwił korzystanie z wielkich galeonów.

Kluczową zmianą jest pływanie za pomocą użycia myszy. (Więcej info TUTAJ). Aby móc pływać galeonem za pomocą myszki, wystarczy 2x kliknąć na ster (zaznaczony na czerwono). Dodatkowo, galeony, w odróżnieniu od zwykłych łodzi, mają możliwość zainstalowania dział, które, między innymi można wykonać przy wykorzystaniu kombinacji kilku umiejętności rzemieślniczych. Każdy z galeonów ma miejsca na zainstalowanie dział (zaznaczone na pomarańczowo).

Na ten statek dostajemy się poprzez 2x klik na linę, które można zauważyć na screenie.

Samo pływanie wygląda też inaczej. Dzięki ServUO oraz clientowi ClassicUO możemy widzieć jak nasz statek płynie… płynnie 😉 (smooth sailing).

Również ładownośc galeonów jest znacznie większa, niż ładowność klasycznych łodzi. Np. ten, którym pływaliśmy w trakcie testów ma ładowność 28 000 kamieni.

Więcej info o typach galeonów i ich specyfikacji znajdziecie TUTAJ.

Kolejną różnicą między zwykłymi statkami, a galeonami jest fakt, iż są one jak domki. Mają runę zamiast klucza, na którą można się teleportować. Można zarządzać również ich zabezpieczeniami, zabronić wstępu, pozwolić obsługiwać statek, itd. (Więcej info TUTAJ).

Możemy wyrzucić również użytkowników z naszego statku

Jak wcześniej wspomnieliśmy, mamy dostęp do armat, więc jakoś trzeba z nich strzelać. Na Nelderim mieliśmy już dość uproszczony system oblężenia z wykorzystaniem armat, jednakże, statki korzystają z zupełnie innych, odświeżonych armat z własnym gumpem. Armaty ładujemy amunicją oraz prochem. Do tego trzeba mieć wycior oraz pochodnię. Większość z tych rzeczy można stworzyć.

Obrażenia zadawane statkiem wyrażane są nawet w tysiącach. Tutaj kaczy zadał 5000 obrażeń wrogiemu okrętowi. (Więcej info TUTAJ).

Zadane obrażenia powodują uszkodzenia statku, które należy naprawić wykorzystując powszechnie dostępne materiały (drewno, materiał). Jeśli tego nie zrobimy, nasz statek będzie nieco wolniejszy. Więcej info TUTAJ.

Podsumowanie

Kończąc już dzisiejszy wpis, ostatnie dwa tygodnie zaawocowały dużą ilością testów nowych fragmentów gry, planowaniem dalszej koncepcji, naprawianiem błędów oraz tworzeniem nowych narzędzi, które w przyszłości wspomogą nas w symulowaniu pewnych aspektów, dzięki czemu będziemy mogli dokładniej zbalansować wiele kwestii. Więcej informacji o tym już za dwa tygodnie, więc wyczekujcie i przyłączajcie się do dyskusji oraz propozycji na naszym kanale Discord.

Read More

Nelderim DevBlog #3

Kolejne dwa tygodnie za nami i kolejna część bloga z postępów w migracji na ServUO, zapraszamy do lektury 🙂

Rozszerzenie istot o poziom siły

Doszliśmy ostatnio do wniosku, że bardzo przydała by się na Nelderim możliwość prostego sposobu na podniesienie albo obniżenie poziomu trudności niektórych podziemi, poszczególnych poziomów podziemi albo konkretnych potworów w spawnie.

Od razu skojarzyły nam się niektórym dobrze znane pomniejsze i większe demony, jednak każdy z tych rodzajów demonów jest osobnym typem istoty i posiada odrębny kawałek kodu. Na wzór tych demonów chcemy rozszerzyć silnik, aby każda istota w grze (z wyjątkiem graczy :)), mogła być oznaczona współczynnikiem typu młody/pomniejszy/większy/potężny(nazwy robocze) i automatycznie zostaną przeskalowane statystki oraz loot dla tej istoty. Ponadto chcemy to rozszerzenie zintegrować z systemem regionów, żebyśmy mogli w łatwy sposób ustalać że np. na cmentarzu przy tasandorze 40% potworów będzie typu młody, a w krypcie 10% będzie typu większy, przez co mniej doświadczeni gracze będą mieli większą szansę przeżyć, a ci szukający wrażeń dostaną większe wyzwanie oraz lepszy loot.

Cała ta zmiana pozwoli nam w dość prosty sposób zwiększyć różnorodność poziomu trudności na świecie. Warto też nadmienić, że ta zmiana jest w fazie koncepcyjnej i finalna wersja może się różnić od zamieszczonego tutaj opisu.

Wyspa startowa – tutorial

Mamy świadomość, że Ultima Online jest grą która posiada wysoki próg wejścia. Mało intuicyjny interfejs, retro grafika, gracz nie jest prowadzony za rękę, mechaniki gry są poukrywane albo opisane na stronie internetowej. Przez te i inne aspekty wiemy że nie udało nam się utrzymać na serwerze wszystkich osób, które dopiero co rozpoczynały swoją przygodę z UO.

Wychodząc na przeciw oczekiwaniom rozpoczęliśmy pracę nad wyspą startową – tutorialem, gdzie nowi gracze będą mogli zaznajomić się ze wszystkimi podstawowymi mechanikami, konceptami, a także również interfejsem.

Chcemy przygotować obszar gdzie gracze będą mogli w prosty sposób zaznajomić się z walką, magią, rzemiosłem, pozyskiwaniem zasobów oraz innymi umiejętnościami które są potrzebne w grze, a cały ten proces poznawania UO uczynić jak najbardziej przystępnym. Poprzez proste questy ze szczegółowymi opisami i ilustracjami, chcemy pomóc przyswoić chociaż najbardziej podstawową wiedzę, aby zredukować do minimum ilość graczy których odstrasza sam początek w świecie Nelderim.

Wyspa startowa jest jeszcze na bardzo wczesnym etapie prac, ale już teraz możemy wam zdradzić, że wybraliśmy już miejsce gdzie będziemy szkolić nowych poszukiwaczy przygód, a jest to pewna wyspa z oryginalnej mapy :). Jeżeli macie podejrzenia która wyspa zostanie wyspą startową, dajcie nam znać na Discordzie.

Testy lootu

Wciąż trwa testowanie przedmiotów jakie możemy zdobyć podczas PvM. Skłaniamy się ku refleksji, że pierwotnie założone przez nas progi zdają się być zbyt niskie, przez co nawet ze średniopoziomowych potworów zazwyczaj nie dostaniemy nic wartego uwagi (1-2 propsy, niskie nasycenie). Z tego względu mocno zastanawiamy się aby podkręcić loot ze słabszych potworów. Podczas przechodzenia labiryntu, jedyne ciekawsze przedmioty uzyskaliśmy z bossa – władcy minotaurów. (nasycenie między ok. 57-85%, 2-4 propsy – podwyższone odporności zaliczają sie jako props). Przedmioty zostały zdobyte bez żadnego lucka w ekwipunku.

Pamiętajmy również, że nie jest to zbyt wymagający przeciwnik, dlatego też postanowiliśmy podczas następnego spotkania skontrolować loot z przeciwników wiele mocniejszych, oraz wysokopoziomowych władców podziemi, aby mieć pełniejszy obraz sytuacji.

System chorób / System Wampirów i Wilkołaków

Na Nelderim obecnie funkcjonują one jako klasy fabularne. Dzięki współpracy z pewnym Kanadyjczykiem z forum ServUO, udało nam się wejść w posiadanie systemu, który ma być przyjemniejszą alternatywą do jedynie fabularnych podklas Wampira i Wilkołaka.
Na obecną chwilę udało nam się dokonać serii tłumaczeń w całym systemie, oraz zmodyfikować nieco oryginalny kod, który powodował odtwarzanie dźwięku bicia serca, gdy gump (widoczny na screenie ponieżej) zmieniał swój kolor, tym samym imitując bicie serca. Zdecydowaliśmy się na ten ruch, by zminimalizować ilość wysyłanych pakietów między klientem, a serwerem, tym samym niwelując problem potencjalnych lagów. Dodatkowo, ten dźwięk był dość irytujący, gdy słyszało się go przez 2h 😉

Sam system jest kompletnym automatem. Ma generować zakażone wilki (białe wilki, leśne wilki, ogromne wilki, wściekłe wilki, piekielne ogary), które są nosicielami wirusa Likanotropii i mają szansę na zarażenie gracza. Są też nietoperze wampiry, które przenoszą wirusa Wampiryzmu, którym można zarazić się poprzez ugryzienie takiego nietoperza.
Każda z tych podklas ma swoje bonusy, jak i kary.

Wampiry otrzymują obrażenis od słońca, gdy nie mają nakrycia głowy lub gdy bez niego poruszają się poza budynkami i lochami. Każdy z wampirów ma dostęp do umiejętności: Wyssanie Krwi – umiejętność działająca automatycznie – zadaje bardzo małe obrażenia, które zależą od poziomu „choroby”, Paląca Krew – umiejętność ofensywna – zadaje małe obrażenia, które zależą od poziomu „choroby”, oraz Kąpiel w Krwii – umiejętność defensywna, która ma regenerować małą ilość many.

Wilkołaki zaś mają do dyspozycji Karmienie – umiejętność działająca automatycznie – zadaje bardzo małe obrażenia, które zależą od poziomu „choroby”, Gniewne Uderzenie – umiejętność ofensywna – zadaje małe obrażenia, które zależą od poziomu „choroby” i Wściekłe Odepchnięcie – umiejętność defensywna, która leczy małą ilość ran. Wilkołaki otrzymują obrażenia, jeśli w pobliżu znajduje się srebro.

Każda z tych podklas, ma zmieniony wygląd (kolor skóry/zmiana kształtu ciała). Siła bonusów i kar zależy od stadium choroby. Poziom/siła choroby pokazuje gump na obrazku.

Poziom choroby i stowrzenia, które zarażają

Dodatkowo, na świecie, od gracza możemy złapać inne choroby – grypa, przeziębienia, itd. Każda choroba objawia się kichaniem/kasłaniem/emotami i odpowiednimi informacjami, a to wszystko, aby zwiększyć poczucie immersji.

Co nowego przynosi ServUO

Ultima Store

Nowsza wersja klienta udostępnia nam wspaniałą funkcjonalność jaką jest Ultima Store. Jest to wbudowany w grę sklep z przeróżnymi przedmiotami, dekoracjami oraz usługami dla graczy za specjalną walutę.

Największą widoczną zmianą dla was będzie to, że już nie trzeba będzie ingerencji Mistrza Gry, abyście mogli wymienić swoje ciężko zarobione punkty fabularne czy inną specjalną walutę na nowe dekoracje do domu, specjalne farby do ubrań czy zmianę płci, rasy albo imienia postaci.

System jest gotowy w kliencie oraz w serwerze, a my tylko musimy ustalić, co i za ile będzie można kupić. Jest również wbudowana możliwość generowania kodów promocyjnych z doładowaniem punktów, które możemy rozdawać graczom na przeróżnych eventach 🙂

Ceny i dostępne rzeczy oraz usługi w sklepie na pewno ulegną zmianie

Podsumowanie

Ostatnie dwa tygodnie spędziliśmy raczej na planowaniu i pracach koncepcyjnych aniżeli na programowaniu, czy właściwej pracy i potrzebujemy trochę więcej czasu aby efekty były dostrzegalne gołym okiem. Niektóre blogi, podobnie jak ten, będą troche mniej nafaszerowane nowościami z ServUO, a skupią się na tym co dopiero planujemy wprowadzić. Jeżeli macie jakieś sugestie albo pomysły odnośnie przyszłości na ServUO to gorąco zachęcamy do dyskusji na naszym serwerze Discord 🙂

Do zobaczenia za czternaście dni!

Read More

Nelderim DevBlog #2

Minęły dwa tygodnie od ostatniego wpisu, i zgodnie z obietnicą przynosimy kolejną garść informacji z frontu.

Postępy

Od ostatniego bloga nie próżnowaliśmy i udało nam się popchnąć parę rzeczy do przodu.

Jednym z większych sukcesów jest to, że udało nam się dostosować silnik spawnów XmlSpawner, żeby poprawnie działał z ServUO. Było to dla nas bardzo ważne, ponieważ zdecydowana większość aktualnego świata działa na XmlSpawnerze i Nelderim bez tego by zwyczajnie nie istniał. Przy okazji zaktualizowaliśmy XmlSpawner do najnowszej wersji, z wieloma usprawnieniami i poprawkami.

Kolejną większą zmianą jest to, że udało nam się zainstalować bibliotekę VitaNex Core i dostosować do ServUO oraz Linuxa. Biblioteka ta rozszerza serwer o wiele nowych funkcjonalności, ułatwia pisanie nowych skryptów, oraz otwiera nam drzwi na wykorzystywanie gotowych modułów bazujących na tej bibliotece.

Przykładowe efekty z uzyciem VitaNex Core

Udało się również dopiąć zmiany w regionach związanych populacją NPC na świecie i pierwsze testy wykazały, że NPC spawnują się tak jak powinni i tam gdzie powinni. Rozwiązało to problemy z poprzednich testów, z brakiem imion i niepoprawnymi rasami NPC.

Namierzyliśmy też i naprawiliśmy błąd w systemie Loot, który generował zdecydowanie zbyt dużo przedmiotów, na przykład kamieni jubilerskich. Oryginalny system Loot, który powinien być wyłączony, potrafił mimo to generować przedmioty razem z naszym systemem. Aktualnie podjęliśmy decyzję, aby oba systemy Loot działały w symbiozie, gdzie nasz system generuje podstawowy Loot (kosztowności, ekwipunek, magiczne zwoje i składniki, mikstury oraz niektóre zasoby), a oryginalny system Loot zajmuje się uzupełnianiem Lootu o przedmioty specyficzne dla danych potworów.

Nelderim Team podczas testów

Podczas restartów serwera testowego nękał nas problem „niedostępnych” przedmiotów. Przedmioty takie sprzątane były przy każdym restarcie, a porządki potrafiły zawiesić serwer nawet na kilkanaście minut. Problem został początkowo zniwelowany optymalizacją procedury sprzątającej, a aktualnie pracujemy z zespołem ServUO, żeby przygotować odpowiednią poprawkę.

Niedostępne przedmioty są już przeszłością, a pozostałe porządki mamy na celowniku

Do tego wszystkiego na bieżąco tłumaczymy co uda nam się wyłapać oraz dostosowujemy istniejące systemy do naszego świata, na przykład oryginalne Stuck Menu da wam możliwość uwolnienia się z sytuacji bez wyjścia do jednego z nelderimowych miast.

I na zakończenie przykładowy problem z którym jeszcze się nie uporaliśmy, ale do czasu przyszłego wpisu na pewno będzie o czym opowiadać 🙂

Mapa płata nam figle

Co nowego przynosi ServUO

Z każdym wpisem postaramy się utrzymać waszą ciekawość ujawniając po kawałeczku nowości jakie będą na was czekać gdy już zakończymy proces migracji.

UltimaLive

UltimaLive jest modyfikacją klienta, która pozwala nam streamować mapę z serwera bezpośrednio do graczy w czasie rozgrywki.

Co to oznacza?

  • Nie będzie wymagany ani restart serwera, ani pobieranie patchy, aby dokonać zmiany w mapie.
  • Wszystkie zmiany w mapie możemy dokonywać w grze, a zmiany będą widoczne dla graczy od razu
  • Możemy udostępnić klienta bez mapy, a gracze będą mogli odkrywać świat
  • Możemy kształtować teren, budować budowle, naprawiać bugi
  • Możemy dać graczom możliwość budowania bezpośrednio na mapie 🙂
  • Zdecydowanie większe możliwości podczas eventów
  • NelderimPatcher wciąż będzie potrzebny do zmian w pozostałych plikach, ale te pojawiają się dużo rzadziej niż zmiany w mapie

Nowa funkcji anatomii

Jedną z rzeczy która dodaliśmy jest rozbudowany system anatomii, podobny do aktualnego systemu wiedzy o zwierzętach. Będzie on pozwalał na dokładne zbadanie podstawowych statystyk wszelkich istot i graczy.

Co się działo oprócz ServUO

Kolejne zgłoszenia odnośnie nie działających systemów, zwróciły naszą uwagę w kierunku regionów.
Udało nam się dokonać kilku ważnych zmian:

  • dokonaliśmy generalnego przeglądu wszystkich danych odnośnie regionów,
  • usunęliśmy duplikaty i błędne regiony,
  • dokonaliśmy bardziej szczegółowej kategoryzacji,
  • poprawiliśmy granice,
  • podzieliliśmy niektóre regiony na mniejsze podregiony,
  • przygotowaliśmy narzędzia przydatne w pracy z regionami
  • Wszystkie te zmiany zostały przeniesione na ServUO bez dodatkowej pracy.

Podsumowanie

W ciągu tych dwóch tygodni udało nam się stawić czoła kilku naprawdę ważnym kwestiom i zdecydowanie był to duży krok ku nowej, odświeżonej odsłonie Nelderim. Przed nami wciąż bardzo dużo pracy, ale z każdą poprawką rozgrywka staje się płynniejsza, a lista zadań się kurczy. Bardzo możliwe, że niedługo będziemy mieć dla was pewną niespodziankę, ale na razie musicie być cierpliwi 🙂

Do zobaczenia za dwa tygodnie!

Read More

Nelderim DevBlog #1

UWAGA, UWAGA, MIESZKAŃCY ZIEMI NELDERIM! Na rozkaz wielmożnego Namiestnika Tasandory – Soteriosa – oznajmia się co następuje…

O co chodzi?

Oficjalnie mamy przyjemność ogłosić, że rozpoczynamy serię codwutygodniowych raportów z tego co udało nam się dokonać. A zatem zaczynając od dzisiaj, w co drugi piątek, w godzinach wieczornych na naszej stronie będziemy udostępniać wpis, gdzie umieścimy postępy prac, nowości, ciekawostki i przeróżne inne informacje, które mogą was zainteresować. Postaramy się utrzymać nasz dziennik w formie przystępnej dla każdego, ale dodatkowo okraszonej bardziej technicznymi szczegółami dla bardziej dociekliwych.

Kolejne kroki w migracji na ServUO

Jak zapewne wiecie, od dłuższego czasu część naszych sił poświęcamy na odświeżenie serwera i przeniesienie naszego świata na silnik ServUO, gdyż wersja silnika na której obecnie działa Nelderim, ma już około 15 lat i nadeszła pora na powiew świeżości 🙂

Trochę ponad 2 tygodnie temu udało nam się zmobilizować w szeregach i rozpocząć kolejny etap migracji, a mianowicie wystartowaliśmy zamknięte testy wewnątrz ekipy! Dokładnie tak, migracja na ServUO to nie mit, a prace są zaawansowane na tyle, że jesteśmy w stanie „grać” bez większych problemów, ale po kolei.

ServUO daje nam ogromne możliwości:

  • Użycie najnowszego klienta ultimy, co oznacza sprawniejszą i bardziej rozbudowaną komunikację między klientem a serwerem oraz dostęp do nowych grafik i animacji
  • Silnik, który jest aktywnie rozwijany, czyli wprowadzanie nowości oraz poprawek na nasz serwer na bieżąco
  • Społeczność ServUO, która dostarcza ogrom gotowych skryptów, grafik oraz inspiracji, a także wsparcie jeżeli szukamy rozwiązania problemu lub opinii
  • Projekt jest technologicznie „na czasie” 🙂
Smoczy żółw

Co już mamy:

  • Cały nasz kod jest dostosowany do silnika i się kompiluje
  • 99,9% świata wczytuje się ( reszta to mało znaczące szczegóły)
  • Rasy są zaimplementowane
  • Korzystamy ze sztucznej inteligencji potworów dostarczanej razem z ServUO, ale przenieśliśmy nasze zmiany powodujące, że każdy potwór potrafi być wyzwaniem
  • System Loot został został przepisany, na bardzo podobny, ale dużo „czystszy” i łatwiejszy w dostosowywaniu
  • System „trudności” potworów, na którym bazuje system Loot otrzymał kilka poprawek i bierze pod uwagę niektóre nowości dostępne w ServUO
  • Znaczna część nazw, tekstów i komunikatów została przetłumaczona (niestety wszystkie tłumaczenia musimy przenosić ręcznie )
  • Spora część naszych skryptów już działa, albo wymaga tylko aktywacji
  • Okazało się, że część rzeczy które chcieliśmy zrobić na obecnym silniku, jest już dodane albo poprawione na ServUO

Pierwszy próby testów

Zaczęło się od uruchomienia skromnej maszyny, specjalnie na testy. Już w tej kwestii szykują się duże zmiany, szczególnie dla nas, ponieważ Nelderim będzie działać na systemie Linux. Głównymi powodami jest to, że ServUO posiada oficjalne wsparcie dla systemów Linux, koszty licencji na system Windows Server potrafią być wyższe niż koszty samego sprzętu oraz to że w odpowiednich rękach Linux daje nam większe możliwości.

Pierwsza próba okazała się totalna porażką i nie udało nam się nawet wystartować serwera. Okazało się, że po dłuższej przerwie w pracach, niektóre części kodu się nie kompilują, a gdy to zostało rozwiązane zostaliśmy przywitani wieloma błędami przy próbie załadowania świata na nowy silnik. Nie zatrzymało nas to, bo mamy już dość pokaźne doświadczenie z takimi przypadkami, ale trzeba było przesunąć sesję testów na inny dzień i uporać się z problemami w międzyczasie.

Nadszedł dzień kolejnych testów, entuzjazm w ekipie był na wysokim poziomie po ówczesnych doniesieniach, że „serwer wstaje” i „można się łączyć”. Niestety szybko zderzyliśmy się z rzeczywistością, gdy okazało się, że rzeczywiście można się łączyć, a nawet poruszać, ale nie widać ani innych graczy ani żadnych istot. Tym razem problemem okazały się niepoprawnie przygotowane pliki z mapą.

Istoty zapadnięte pod ziemię

Gdy już zaczęliśmy widzieć nasze postacie nawzajem oraz otaczające nas istoty, okazało się, że testowa maszyna jest zbyt słaba i rozgrywka jest praktycznie niemożliwa ze względu na ogromne opóźnienia. Winne temu okazały się karawany oraz miejskie patrole, które zostały wyłączone, dopóki nie zostaną przepisane na nowy sposób, dużo mniej obciążający serwer.

Do czterech razy sztuka, nadszedł kolejny dzień testów, udało nam się połączyć, widzimy siebie, widzimy świat dookoła nas, ping jest stale „zielony”, zapowiada się świetnie, idziemy na PvM!

Ciekawsze przypadki z testów

Jednym z problemów, który doskwierał nam podczas pierwszych testów, był fakt, iż przy każdej zmianie statystyk (obniżeniu przez czar, lub podwyższeniu przez mikstury) postać zrzucała z siebie wszystko do plecaka. Po długiej analizie okazało się, że problem jest w kodzie dostarczanym przez zespół ServUO, i został już rozwiązany.

Kolejną niedogodnością były moby, które czasami potrafiły być zupełnie niewidoczne dla niektórych graczy, ale cały czas poruszały się i atakowały każdego na swojej drodze, niezależnie czy je widział czy nie. W tym przypadku poprawka również została przygotowana przez zespół ServUO.

Początkowo z powodu niepoprawnego znaku w jednej z formuł, przedmioty w każdym potworze były porównywalne z tymi które aktualnie możecie znaleźć w zwłokach najpotężniejszych władców podziemi, i również zostało to błyskawicznie poprawione

W trakcie testów doskwierały nam też nieregularne crashe klienta ClassicUO. Problemem okazał się system pór roku i został dezaktywowany. Problem ten zostanie rozwiązany w przyszłości, jak uporamy się z ważniejszymi kwestiami

Po drodze spotkaliśmy też kilka mniejszych problemów takich jak nieprzetłumaczone nazwy, potwory bez imienia, nieruchome potwory( problem z AI ), agresywne ropuchy, teleporty prowadzące w nicość, tasandora w płomieniach i wyłożona czaszkami ( wymagana podmiana grafik ).

Tasandora w płomieniach

Pomimo wszystkich tych niedogodności udało nam się odbyć wyprawę do Garth i pokonać demona znajdującego się na końcu pierwszego poziomu podziemia, co uzmysłowiło nam, że czeka nasz jeszcze troche pracy nad balansem w systemie Loot.

Co dalej?

Przez ostatnie dwa tygodnie poświęciliśmy bardzo dużo czasu, ale udowodniło nam to, że nasza praca do tej pory nie poszła na marne i że Nelderim na nowym silniku jest coraz bliżej. Mamy działający serwer, który jeszcze nie jest gotowy na graczy, ale jest wystarczający, żeby testować czy wszystko z naszym światem jest w porządku. Przed nami wciąż długa droga do końca migracji, ale już teraz możemy wam zdradzić, że przygotowujemy się do udostępnienia wam możliwości śledzenia na bieżąco postępów w pracach nad ServUO, a także planujemy testy dla ograniczonej grupy graczy, jak większość pracy będzie zrobiona.

I to by było na tyle, za dwa tygodnie możecie spodziewać się kolejnej dawki opowieści z naszych walk z serwerem, świeżych informacji o postępach w migracji oraz garść informacji z tego co będzie dla was przygotowane jak tylko Nelderim na ServUO będzie gotowe.

Dajcie znać czy taki format wam się podoba i co możemy poprawić.

Read More