Category DevBlog

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