Skocz do zawartości

Featured Replies

Opublikowano

Co sądzicie o takich metodach zapisu różnych informacji, przedstawię wam je poniżej:

Item proto & mob proto

image.png

image.png

Plik odpowiadający za obiekty na mapie, w folderze danej mapy zamiast pliku "areadata.txt"

image.png


Plik odpowiadający za settings w folderze mapy.

image.png

Plik odpowiadający za wczytywanie efektów ".mse"

image.png


Plik odpowiadający za niebo:

image.png

Plik odpowiadający za tekstureset:

image.png

Plik odpowiadający za wczytywanie animacji, np potwora:

image.png

I więcej nie chcę mi się robić screenów.

Ale jak widać, nie jest to zwyczajna zmiana "rozszerzenia" na inne, tylko zmiana całej struktury plików.

dodam że ten klient, ma ją zmienioną w kazdym mozliwym pliku tekstowym, orginalne pozostały jedynie gr2, dds, mdtr.

I czy bardziej jest to "zabezpieczeniem" przed wykorzystaniem potencjalnych map, czy bardziej kwestia optymalizacji klienta?

Bo jednak ktoś się natrudził, prawie wszystko zmieniając, zwłaszcza efekty.

Opublikowano
  • Programista

Wszystko zależy od bibliotek wykorzystanych do parsowania poszczególnych plików.

Tak naprawdę wszystko co tutaj pokazałeś (poza proto) oparte jest na JSONie.

JSON posiada różne implementacje (np. w C++), które są w stanie czytać ten format nawet na poziomie 3 GB/s.

Pozostaje pytanie - czy w przypadku Metinowych plików, które ważą po 2/3KB da to jakąś różnicę? Raczej nie.

Myślę, że może tu chodzić faktycznie o zabezpieczenie przed wyciąganiem map, albo po prostu o czytelność oraz kontrolę błędów.

Różne biblioteki rzucają różnymi wyjątkami, jeśli parser napotka błąd, czyli wystąpi sprzeczność z dokumentacją.

YMIR starał się zaimplementować swój własny parser dokumentów tekstowych, który może jakoś tam działa, ale zauważ, że czasami jeśli popełnimy głupi błąd (spacja zamiast tabulatora, brak jakiegoś nawiasu, średnika), to Metin nam tego błędu nie wyświetli. Zamiast komunikatu o problemie, zniknie nam np. broń czy zbroja.

Bo jednak ktoś się natrudził, prawie wszystko zmieniając, zwłaszcza efekty.

W obecnej dobie nie jest problemem napisać konwerter, który przetłumaczy nam konkretne pliki na nowy format.

Jeżeli ten jest dobrze napisany, to refaktoryzacja nawet i stu plików, to kwestia kilku sekund.

Opublikowano
1 godzinę temu, Thorek napisał(a):

Wszystko zależy od bibliotek wykorzystanych do parsowania poszczególnych plików.

Tak naprawdę wszystko co tutaj pokazałeś (poza proto) oparte jest na JSONie.

JSON posiada różne implementacje (np. w C++), które są w stanie czytać ten format nawet na poziomie 3 GB/s.

Pozostaje pytanie - czy w przypadku Metinowych plików, które ważą po 2/3KB da to jakąś różnicę? Raczej nie.

Myślę, że może tu chodzić faktycznie o zabezpieczenie przed wyciąganiem map, albo po prostu o czytelność oraz kontrolę błędów.

Różne biblioteki rzucają różnymi wyjątkami, jeśli parser napotka błąd, czyli wystąpi sprzeczność z dokumentacją.

YMIR starał się zaimplementować swój własny parser dokumentów tekstowych, który może jakoś tam działa, ale zauważ, że czasami jeśli popełnimy głupi błąd (spacja zamiast tabulatora, brak jakiegoś nawiasu, średnika), to Metin nam tego błędu nie wyświetli. Zamiast komunikatu o problemie, zniknie nam np. broń czy zbroja.

W obecnej dobie nie jest problemem napisać konwerter, który przetłumaczy nam konkretne pliki na nowy format.

Jeżeli ten jest dobrze napisany, to refaktoryzacja nawet i stu plików, to kwestia kilku sekund.

Thorin się wybudził wcześniej niż zwykle 😱

Tak patrząc to mało która rzecz wydaje mi się na tyle żmudna do opracowania, żeby ją w ten sposób edytować

Opublikowano

Oczywiście jest bardziej to czytelne ale to samo można osiągnąć w .txt nie trzeba żadnego json'a do tego ale kto jak woli, wątpię żeby to miało wpływ na jakąkolwiek wydajność lub będzie ona znikoma.

można zrobić prosto odczytywanie za pomocą c++ (tak jak to YMIR zrobił).
gdzie sobie samemu deklarujesz TAB czy też nawiasy itp. co będzie gwarantowało szybszą wydajność niż poleganie na dodatkowej bibliotece, bo biblioteki mają to samo tylko cię wyręczają bo wtedy nie musisz sobie pisać samemu takowej funkcji, dla mnie to zbędny balast dodając kolejny jeżyk tylko po odczyt.

myślę ze ogólnie to inaczej powinno być zrobione, niż dawać dostęp każdemu kowalskiemu do tego, i tworzenie dla każdej animacji itp. dodatkowego pliku .txt czy tam .json
im więcej plików tym gorsza wydajność, bo wtedy musi odczytywać ci każdy plik osobno.

to tak jakbyś do każdego itema robił osobny plik .txt 🤣

jeżeli chcesz zoptymalizować sobie klienta to jedynie pozostaję ci, poprawienie memory oraz rendering
wczytywanie tutaj mało co zmieni.

najlepiej przepisać pod Vulkan wtedy zoptymalizujesz sobie klienta i zrobisz cross-platform nawet na androida

Opublikowano
W dniu 25.05.2025 o 07:54, Eclipse Shade napisał(a):

Oczywiście jest bardziej to czytelne ale to samo można osiągnąć w .txt nie trzeba żadnego json'a do tego ale kto jak woli, wątpię żeby to miało wpływ na jakąkolwiek wydajność lub będzie ona znikoma.

można zrobić prosto odczytywanie za pomocą c++ (tak jak to YMIR zrobił).
gdzie sobie samemu deklarujesz TAB czy też nawiasy itp. co będzie gwarantowało szybszą wydajność niż poleganie na dodatkowej bibliotece, bo biblioteki mają to samo tylko cię wyręczają bo wtedy nie musisz sobie pisać samemu takowej funkcji, dla mnie to zbędny balast dodając kolejny jeżyk tylko po odczyt.

myślę ze ogólnie to inaczej powinno być zrobione, niż dawać dostęp każdemu kowalskiemu do tego, i tworzenie dla każdej animacji itp dodatkowego pliku .txt czy tam .json
im więcej plików tym gorsza wydajność, bo wtedy musi odczytywać ci każdy plik osobno.

to tak jakbyś do każdego itema robił osobny plik .txt 🤣

jeżeli chcesz zoptymalizować sobie klienta to jedynie pozostaję ci, poprawienie memory oraz rendering
wczytywanie tutaj mało co zmieni.

najlepiej przepisać pod Vulkan wtedy zoptymalizujesz sobie klienta i zrobisz cross-platform nawet na androida

Szkoda czasu na takie rzeczy, gracze mają to w nosie.

  • 2 tygodnie później...
Opublikowano
W dniu 26.05.2025 o 09:56, unpackboss napisał(a):

Szkoda czasu na takie rzeczy, gracze mają to w nosie.

jesteś w błędzie bo servery metka które są na androida mają więcej graczy niż te na pc zresztą ty jesteś zacofany bo dalej robisz patchery jako osobną binkę zamiast to zrobić w bince "metin2" w nowoczesny sposób 😂

zapomniałem się ze tu nikt nigdy nic własnego nie zrobił tylko robicie to na co już jest sposób opublikowany, bo jakbyś miał chociaż trochę rozumu to byś to tak zrobił ale dla ciebie to już zbyt trudna rzecz dopóki ktoś nie zrobi i nie wrzuci na forum to już nie ogarniesz xD

Edytowane przez Eclipse Shade

Opublikowano
2 godziny temu, Eclipse Shade napisał(a):

jesteś w błędzie bo servery metka które są na androida mają więcej graczy niż te na pc zresztą ty jesteś zacofany bo dalej robisz patchery jako osobną binkę zamiast to zrobić w bince "metin2" w nowoczesny sposób 😂

zapomniałem się ze tu nikt nigdy nic własnego nie zrobił tylko robicie to na co już jest sposób opublikowany, bo jakbyś miał chociaż trochę rozumu to byś to tak zrobił ale dla ciebie to już zbyt trudna rzecz dopóki ktoś nie zrobi i nie wrzuci na forum to już nie ogarniesz xD

zacznijmy od tego że to nie serwery metka tylko zapewne gra zrobiona na wzór metina na unity albo innym syfie

to jak już to umiesz odróżnić to wtedy pisz co ja bym zrobił a czego nie..

a tak wgl to nie robie żadnych patcherów xd

Edytowane przez unpackboss

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...