Witaj, może chciałbyś się zarejestrować? Zarejestruj się  


Nowy pomysł na optymalizację serwera Survival

#41

Komendę od sklepu MineShop oraz aukcji można załatwić jeszcze w inny sposób i myślę, że to już jest bardzo dużo. Ogranicza to aktywność gracza do wpisania jednej komendy. Powinno każdemu lub dużej większości wystarczyć.


1. Gracz wpisuje komendę  /ak lub /mineshop open na świecie bez pełnej obsługi tych komend.
2. Serwer przenosi gracza na serwer centralny (spawn).
3. Otwiera się okno sklepu lub aukcji.
4. Gracz wykonuje to co planował wykonać.
5. Gracz zamyka okno sklepu lub aukcji.
6. Serwer przenosi gracza z powrotem w miejsce w którym wpisał komendę od aukcji lub sklepu.
[Obrazek: spawn4edy1.gif]
Odpowiedz

#42

Początkowo unikałem udzielania się w tym wątku. Z tego względu, że początkowe założenia propozycji nie raziły mnie jakoś mocno a inicjatywa poprawy optymalizacji zawsze na plus. Jednakże to co teraz się tu dzieje powoduje, że się łapie za głowę.
Kończąc wstęp i przechodząc do sedna mam trzy główne zastrzeżenia co do ostatnio poruszonej wątku kwestii, którą jest aspekt ekonomiczny i związane z nim obostrzenia co do używania komend itp.
  1. Umożliwienie korzystania z elementów ekonomii (tj. /ak, /pay, /mineshop open, chestShops itp.) jedynie na jednym z „podserwerów” wydaje mi się całkowicie absurdalnym pomysłem. Zwiększy to znacząco zainteresowanie jedynie jednym kawałkiem świata co odbije się na jego wydajności. Każdy przecież będzie chciał mieszkać na tej części świata na której możliwe jest tworzenie sklepów i korzystanie z komend ww.

  2. Poruszona przez Redeq kwestia intuicyjności tego rozwiązania oraz moim zdaniem bardzo pokręcona logika stojąca za argumentacją MiroTcz w odpowiedzi na ten temat:

    (12-04-2020, 17:25 PM)MiroTcz napisał(a):
    (12-04-2020, 17:19 PM)Redeq napisał(a): Mnie również zabolałoby usunięcie podanej wyżej komendy. Ponadto taka zmiana wiązałaby się z serią pytań o rozwiązania zastosowane na serwerze od nowych graczy, co znacznie utrudniłoby Administracji na odpowiadanie na mniej skomplikowane pytania oraz zgłoszenia graczy o nieprzestrzeganiu regulaminu.

    Nowi gracze nie pytaliby o nowy sposób działania wspomnianych rzeczy, bo to dla nich nie byłyby nowe rzeczy w tym rozumieniu - w końcu są nowymi graczami i nie mają starych przyzwyczajeń, a do graczy starszych już powoli docierają informacje o nadchodzących zmianach m.in. przez ten wątek.
    Żadna z komend nie przestanie działać, więc nawet jeśli ktoś z przyzwyczajenia wpisze komendę od aukcji na świecie bez aukcji to komenda zadziała - dostanie informację potrzebną do tego, aby mógł otworzyć aukcje. Nie ma możliwości żeby się w czymś pogubić.

    Po pierwsze chciałbym zwrócić uwagę, iż pomimo że MineWorld.pl jest naprawdę dobrym oraz fajnie prowadzonym serwerem to nie jest to jedyny taki serwer minecraft. Zarówno jako serwer oferujący tryb survival jak i wprowadzający ekonomie do rozgrywki. Dlatego intuicyjność tego rozwiązania a raczej jego brak wprowadzi naprawdę spore zamieszanie co odbije się sporą czkawką na administracji. Zarówno wśród nowych graczy jak i starszych pojawiać się będą pytania: „Jak przelać pieniądze?”, „Czemu nie mogę utworzyć sklepu?”, „Czemu komenda x nie działa?”. Nie oszukujmy się, ale przecież:
    • Nie każdy czyta forum.
    • Nowi gracze mogli grać wcześniej na innych serwerach z ekonomią, gdzie nie było takich ograniczeń.
    • Co jak co, ale informacje zarówno w grze jak i na forum nie są najlepiej uporządkowanie i sam mam nie kiedy problem z odnalezieniem niektórych informacji, pomimo że dość często odwiedzam forum.

    Ponadto jako przykład mogę podać samego siebie, ponieważ pomimo dość aktywnego przeglądania aktualności na serwerze i naprawdę dogłębnej znajomości komend dostępnych na serwerze (z punktu patrzenia przeciętnego gracza) nie wiem jak teraz zrobić np. węglowy kilof, bo zarówno stary przepis nie działa jak i na warp bossy nie ma żywej duszy nie mówiąc już o kowalu.

  3. Kwestie związane z duplikowaniem się pieniędzy/przedmiotów wydają mi się być problemem, który można sprowadzić do zapytań o wypłatę/wpłatę z konta kasy i wymyślne sposoby przedstawione w wątku wydają mi się być nieco przekombinowane. Nie wiem co prawda jak to jest rozwiązanie aktualnie, ale czy nie prościej było by gdyby wszystkie serwery komendami odwoływały się do jednej bazy danych (w informatycznym tego słowa znaczeniu). Przecież wystarczyło by potworzyć proste transakcje, które to dla bd są tak podstawowym i dobrze przeanalizowanym rozwiązaniem jak wynalezienie koła dla ludzkości. Przecież gdyby bazy nie mogły by przetwarzać zapytań w transakcjach to bankowość by nie istniała w takiej formie jaką teraz mamy.
[Obrazek: syknatura-1.png]

1
Odpowiedz

#43

Czas abym i ja się wypowiedziała, jeśli chodzi o sklepu tabliczkowe i przeniesienie ich na serwer gdzie znajduje się spawn uważam za duże ograniczenie swobody gry graczy. Dużo graczy ma swoje sklepy rozsiane po całej mapie survival, połączone z domami, gildiami i różnymi innymi "wynalazkami" w moim odczuciu świadczy to o tym, że chcą w ten sposób grać i ograniczenie ich do terenu spawnu mogłoby spowodować spadek zainteresowania grą na naszym serwerze (nikt nie lubi być za bardzo ograniczany, taka już nasza natura ludzka) Oczko


Cytat:Edit: Jest nawet inne mniej uciążliwe rozwiązanie dla komendy /pay. Gracz mógłby pozostawać w miejscu, a serwer, z którego wpisał komendę wysyłałby odpowiednie polecenie na serwer ze spawnem, a gracz otrzymywałby na czacie odpowiedź po zakończeniu wykonywania komendy.


Natomiast jeśli opcja którą tu Miro podał w kwestii komendy /pay byłaby do zrobienia to bardzo bym była za jej zrealizowaniem w taki oto sposób niż tepanie  gracza przez serwer na spawn i z powrotem. Natomiast czy nie dałoby rady zrobić tego również z /ak ?
Odpowiedz

#44

(13-04-2020, 00:44 AM)Rodriqez napisał(a): Początkowo unikałem udzielania się w tym wątku. Z tego względu, że początkowe założenia propozycji nie raziły mnie jakoś mocno a inicjatywa poprawy optymalizacji zawsze na plus. Jednakże to co teraz się tu dzieje powoduje, że się łapie za głowę.
Kończąc wstęp i przechodząc do sedna mam trzy główne zastrzeżenia co do ostatnio poruszonej wątku kwestii, którą jest aspekt ekonomiczny i związane z nim obostrzenia co do używania komend itp.
  1. Umożliwienie korzystania z elementów ekonomii (tj. /ak, /pay, /mineshop open, chestShops itp.) jedynie na jednym z „podserwerów” wydaje mi się całkowicie absurdalnym pomysłem. Zwiększy to znacząco zainteresowanie jedynie jednym kawałkiem świata co odbije się na jego wydajności. Każdy przecież będzie chciał mieszkać na tej części świata na której możliwe jest tworzenie sklepów i korzystanie z komend ww.

  2. Poruszona przez Redeq kwestia intuicyjności tego rozwiązania oraz moim zdaniem bardzo pokręcona logika stojąca za argumentacją MiroTcz w odpowiedzi na ten temat:

    MiroTczRedeqMnie również zabolałoby usunięcie podanej wyżej komendy. Ponadto taka zmiana wiązałaby się z serią pytań o rozwiązania zastosowane na serwerze od nowych graczy, co znacznie utrudniłoby Administracji na odpowiadanie na mniej skomplikowane pytania oraz zgłoszenia graczy o nieprzestrzeganiu regulaminu.Nowi gracze nie pytaliby o nowy sposób działania wspomnianych rzeczy, bo to dla nich nie byłyby nowe rzeczy w tym rozumieniu - w końcu są nowymi graczami i nie mają starych przyzwyczajeń, a do graczy starszych już powoli docierają informacje o nadchodzących zmianach m.in. przez ten wątek.Żadna z komend nie przestanie działać, więc nawet jeśli ktoś z przyzwyczajenia wpisze komendę od aukcji na świecie bez aukcji to komenda zadziała - dostanie informację potrzebną do tego, aby mógł otworzyć aukcje. Nie ma możliwości żeby się w czymś pogubić.
  3. Po pierwsze chciałbym zwrócić uwagę, iż pomimo że MineWorld.pl jest naprawdę dobrym oraz fajnie prowadzonym serwerem to nie jest to jedyny taki serwer minecraft. Zarówno jako serwer oferujący tryb survival jak i wprowadzający ekonomie do rozgrywki. Dlatego intuicyjność tego rozwiązania a raczej jego brak wprowadzi naprawdę spore zamieszanie co odbije się sporą czkawką na administracji. Zarówno wśród nowych graczy jak i starszych pojawiać się będą pytania: „Jak przelać pieniądze?”, „Czemu nie mogę utworzyć sklepu?”, „Czemu komenda x nie działa?”. Nie oszukujmy się, ale przecież:
    • Nie każdy czyta forum.
    • Nowi gracze mogli grać wcześniej na innych serwerach z ekonomią, gdzie nie było takich ograniczeń.
    • Co jak co, ale informacje zarówno w grze jak i na forum nie są najlepiej uporządkowanie i sam mam nie kiedy problem z odnalezieniem niektórych informacji, pomimo że dość często odwiedzam forum.
  4. Ponadto jako przykład mogę podać samego siebie, ponieważ pomimo dość aktywnego przeglądania aktualności na serwerze i naprawdę dogłębnej znajomości komend dostępnych na serwerze (z punktu patrzenia przeciętnego gracza) nie wiem jak teraz zrobić np. węglowy kilof, bo zarówno stary przepis nie działa jak i na warp bossy nie ma żywej duszy nie mówiąc już o kowalu.

  5. Kwestie związane z duplikowaniem się pieniędzy/przedmiotów wydają mi się być problemem, który można sprowadzić do zapytań o wypłatę/wpłatę z konta kasy i wymyślne sposoby przedstawione w wątku wydają mi się być nieco przekombinowane. Nie wiem co prawda jak to jest rozwiązanie aktualnie, ale czy nie prościej było by gdyby wszystkie serwery komendami odwoływały się do jednej bazy danych (w informatycznym tego słowa znaczeniu). Przecież wystarczyło by potworzyć proste transakcje, które to dla bd są tak podstawowym i dobrze przeanalizowanym rozwiązaniem jak wynalezienie koła dla ludzkości. Przecież gdyby bazy nie mogły by przetwarzać zapytań w transakcjach to bankowość by nie istniała w takiej formie jaką teraz mamy.


Mam wrażenie, że nie przeczytałeś ze zrozumieniem moich ostatnich propozycji co do komend /pay oraz /ak i /mineshop open (albo ich w ogóle nie przeczytałeś i odpowiedziałeś głównie tylko na mój pierwszy post z wczoraj).
Komendy te nie przestałyby działać, więc po co ktoś miałby pisać, że nie działają albo są nieintuicyjne? Ktoś kto wpisze jedną z tych komend otrzyma zamierzony rezultat, gdzie tu jest problem? (Tylko przy chestshopach sprawa jest jeszcze nieuregulowana, ale i tam da się załatwić wszystko, aby gracz wiedział, dlatego postawienie sklepu nie daje efektu.)

Serwery będą odwoływały się do jednej bazy danych, ale to nie znaczy, że wykonywanie transakcji będzie bezpieczne.
Wystarczy, że w krótkim odstępie czasu z dwóch serwerów wyjdzie polecenie zabrania określonej kwoty graczowi. Oba serwery będą widziały, że gracz posiada odpowiednią kwotę, ale w rzeczywistości już w rezultacie pierwszego polecenia okaże się, że to nieprawda. Drugi serwer się o tym nie dowie i uzna, że proces przebiegł prawidłowo. 

To tylko jedna z przykładowych sytuacji, a takich może być wiele.

Dlaczego?

- Serwery nie korzystają z jednego połączenia do bazy danych, a każdy ma swoje.
- Każdy serwer przechowuje w pamięci pluginu swoją kopię informacji o graczu.
- Zmiany w danych gracza (w tym o pieniądzach) nie trafiają natychmiast do bazy danych. Gdyby było inaczej serwer by padał albo działał pod jeszcze większym obciążeniem niż obecnie, wystarczyłoby zaspamić kliknięciami tabliczkę od jednego ze sklepów graczy. I co teraz, po każdym kliknięciu serwer miałby wysyłać zapytanie do bazy danych (która też jest osobnym serwerem i ma wystarczająco długi czas odpowiedzi, by zlagować serwer w głównym wątku nawet przy normalnym użytkowaniu)?. Dlatego właśnie zmiany w danych graczy są zapisywane co 30 sekund. Nie wiem czy wiesz, ale wiele pluginów właśnie tak działa. Plugin od uprawnień też korzysta z pamięci podręcznej, nie wykonuje zapytań do bazy danych przy każdej potrzebie sprawdzenia, czy gracz jest do czegoś uprawniony.
- Serwer sprawdzając dane gracza (w tym m.in. pieniądze) nie wysyła zapytania do bazy, a sprawdza wartości przechowywane w pamięci pluginu (które trafiają do bazy co 30 sekund jeśli coś uległo zmianie o czym już wspomniałem). Tak jest optymalnie. Pobieranie danych z bazy następuje tylko podczas włączania serwera.

Umożliwienie pełnego działania aukcji, sklepu i chestshopów na każdym z serwerów wymagałoby ogromnego skomplikowania operacji sprawdzania i modyfikacji danych graczy. Blokowanie dostępu do danych -> wykonywanie zmian -> odblokowywanie dostępu do danych. To wiązałoby się z dużymi opóźnieniami w działaniu serwerów składających się na Survival.

Moje propozycje są szybsze w realizacji, a te ostatnie robią już naprawdę dużo, by gracze w jak najmniejszym stopniu odczuli zmiany. Tak właściwie to tylko teraz wydaje się, że nadal powstanie większa niedogodność, a w rzeczywistości gracze szybko przyzwyczailiby się do zmian i przestaliby zwracać na nie uwagę.
[Obrazek: spawn4edy1.gif]
Odpowiedz

#45

Po przeczytaniu o problemach i dylematach odnośnie sklepów tabliczkowych i chwili intensywnego zastanowienia, wpadło mi do głowy pewnie rozwiązanie:

Jak wiadomo, ciągłe synchronizacje pieniędzy wszystkich graczy (nawet tych offline, bo przecież taka jest idea sklepów tabliczkowych, aby zarabiać nawet będąc offline) na wszystkich podserwerach było by zdecydowanie zbyt obciążające. W takim razie, może by synchronizować z serwerem spawnu pieniądze tylko graczy online i tylko na podserwerze, na którym się aktualnie znajdują, tylko podczas samemu inicjowania czynności powodujących transakcje? W tej chwili pewnie chcesz się zapytać „ato gdzie w takim razie lądowały by pieniądze, gdy kupuję od gracza, który jest offline, skoro jego stan konta nie był by synchronizowany? Jak niby miało by to działać?” Już tłumaczę: Sklepy tabliczkowe mogły by działać podobne, jak działają np. automaty z napojami w prawdziwym życiu:
- sklepy sprzedające:
   1) właściciel uzupełnia towar
   2) właściciela nie ma, klienci kupują
   3) właściciel wraca, i dopiero teraz zgarnia wszystkie pieniądze, które nagromadzone zostały w automatach (i uzupełnia towar)
- skupy:
   1) właściciel przelewa pieniądze na „konto” automatycznego skupu
   2) właściciela nie ma, klienci sprzedają, a pieniądze dla nich oczywiście są brane z wspomnianego wyżej „konta” na podobnej zasadzie, co przedmioty ze skrzynki w przypadku sklepu
   3) właściciel wraca, uzupełnia pieniądze (i bierze skupiony towar)
Aby zmniejszyć ilość takich pojedyńczych transakcji między sklepami a właścicielami, wszystkie sklepik w obrębie jednego podserwera, zarówno skupu, jak i sprzedaży mogły by mieć wspólne „konto”, a właściele wtedy jedynie raz na jakiś czas brali by zyski z obrotu, albo uzupełniali braki.

Nawet jeśli mój pomysł okaże się jednak nieopłacalny bądź awykonalny, to liczę, że może zainspiruje kogoś do lepszego rozwiązania tego problemu. Uśmiech
Odpowiedz

#46

(13-04-2020, 09:53 AM)N_Thinker napisał(a): Po przeczytaniu o problemach i dylematach odnośnie sklepów tabliczkowych i chwili intensywnego zastanowienia, wpadło mi do głowy pewnie rozwiązanie:

Jak wiadomo, ciągłe synchronizacje pieniędzy wszystkich graczy (nawet tych offline, bo przecież taka jest idea sklepów tabliczkowych, aby zarabiać nawet będąc offline) na wszystkich podserwerach było by zdecydowanie zbyt obciążające. W takim razie, może by synchronizować z serwerem spawnu pieniądze tylko graczy online i tylko na podserwerze, na którym się aktualnie znajdują, tylko podczas samemu inicjowania czynności powodujących transakcje? W tej chwili pewnie chcesz się zapytać „ato gdzie w takim razie lądowały by pieniądze, gdy kupuję od gracza, który jest offline, skoro jego stan konta nie był by synchronizowany? Jak niby miało by to działać?” Już tłumaczę: Sklepy tabliczkowe mogły by działać podobne, jak działają np. automaty z napojami w prawdziwym życiu:
- sklepy sprzedające:
   1) właściciel uzupełnia towar
   2) właściciela nie ma, klienci kupują
   3) właściciel wraca, i dopiero teraz zgarnia wszystkie pieniądze, które nagromadzone zostały w automatach (i uzupełnia towar)
- skupy:
   1) właściciel przelewa pieniądze na „konto” automatycznego skupu
   2) właściciela nie ma, klienci sprzedają, a pieniądze dla nich oczywiście są brane z wspomnianego wyżej „konta” na podobnej zasadzie, co przedmioty ze skrzynki w przypadku sklepu
   3) właściciel wraca, uzupełnia pieniądze (i bierze skupiony towar)
Aby zmniejszyć ilość takich pojedyńczych transakcji między sklepami a właścicielami, wszystkie sklepik w obrębie jednego podserwera, zarówno skupu, jak i sprzedaży mogły by mieć wspólne „konto”, a właściele wtedy jedynie raz na jakiś czas brali by zyski z obrotu, albo uzupełniali braki.

Nawet jeśli mój pomysł okaże się jednak nieopłacalny bądź awykonalny, to liczę, że może zainspiruje kogoś do lepszego rozwiązania tego problemu. Uśmiech

O, i to już jest coś bardzo ciekawego. Inne podejście do problemu. Byłbym nawet skłonny pójść tą drogą, warto się nad tym dłużej zastanowić.
[Obrazek: spawn4edy1.gif]
Odpowiedz

#47

Aktualizacja wątku

Ukończyłem pracę nad modyfikacją komendy /pay. Możliwe jest bezpieczne korzystanie z niej na każdym z serwerów składowych (przetestowane na dwóch kontach). Zmieniłem sposób w jaki serwer główny odpowiada na wiadomości z pozostałych serwerów zmniejszając liczbę potrzebnych zapytań do bazy danych o połowę - jest więc teraz lepiej niż informowałem na początku wczoraj. Komendy MWCore, do których należy m.in. /pay mają teraz odstęp czasowy (indywidualny dla każdego gracza) wynoszący sekundę (na serwerze testowym), co jeszcze bardziej wzmacnia i tak już solidne działanie komendy. 

Sklepy tabliczkowe

Sposób, w jaki teraz są dokonywane zmiany w pieniądzach komendą /pay mógłby bez problemu zostać wykorzystany w sklepach graczy (podczas pobierania pieniędzy od kupującego i w chwili pobierania zebranej sumy przez sprzedającego).
Sklepy mogłyby działać tak jak zostało to opisane przez Thinkera. Nie widzę przeszkód.

Umożliwienie takiego działania sklepów graczy wymagać będzie jednak albo dużych zmian w pluginie ChestShop albo napisania nowego pluginu. Bardziej prawdopodobne jest to, że skończy się to napisaniem nowego pluginu (który przy okazji nie będzie zawierał rzeczy niepotrzebnych z których serwer nie korzysta i przez to powstanie dość szybko). Wydaje mi się, że grzebanie w cudzym pluginie i próba dostosowania go pod nowe wymagania będą bardziej czasochłonne, a przez to irytujące dla osoby, która będzie to robiła (czyli dla mnie).
Jeśli graczom odpowiadać będzie taki sposób działania sklepów to będzie kolejny element do odhaczenia.
[Obrazek: spawn4edy1.gif]
1
Odpowiedz




Użytkownicy przeglądający ten wątek:
7 gości