Historia serwera Nexunity

W dzisiejszym artykule chcielibyśmy przedstawić Wam historię znanego serwera Nexunity.org w trybie bomby, oczami jednego z programistów - Horrifieda.

Moje początki

Zacząłem grać w 2009 roku, trzymałem się wówczas głównie sceny amerykańskiej (Amerykanie wydawali się być fajniejsi niż Europejczycy, do dzisiaj tak zresztą uważam), ale wygrały względy techniczne, czyli pingi poniżej 100 ms. Dlatego też grałem sporo na serwerach TinyBomb i *SEXY'S* CTF, gdy miałem wolne od nauki podczas studiów w 2011 r.

Nexunity

Wróciłem na krótko w 2014, wtedy właśnie powstało Nexunity. Zagrałem raz na serwerze i konto zostało zarejestrowane. W ten sposób mam najniższy B3ID spośród większości członków nxu, z wyłączeniem Trustable, naszego imperatora :)

W 2016 powróciłem do gry, po tym jak zacząłem pracować, ponieważ uznałem, że jest to dobry sposób na odstresowanie się i fajną zabawę na wieczór. Grałem nieregularnie do 2016 r., a potem po dwóch 60-godzinnych tygodniach pracy postanowiłem dołączyć do czatu głosowego (Mumble). Były tam 2 osoby - juju i WuzzUp. Właśnie tam głównie spędzaliśmy czas, nie było wtedy jeszcze serwera Matrix (chodzi o serwer z wiadomościami tekstowymi - IRC).

Muszę powiedzieć, że nie podobało mi się to, jak skrupulatnie działali moderatorzy. Tylko jedna wzmianka o bardzo znanej postaci historycznej z inicjałami A. H. spowoduje ostrzeżenie przed regułą nr 2, która brzmi: „Nie wolno dyskutować na tematy o charakterze rasistowskim, seksualnym lub o innych nielegalnych treściach”. Może to zabrzmieć lamersko, ale wychowałem się na 4chan, wiem czym jest wolność słowa i potrafię stwierdzić, kiedy zwykła dyskusja przeradza się w coś więcej, co może mieć nieprzyjemnie konsekwencje.

Społeczność serwera

Lato 2016 r. spędziłem na poznawaniu wszystkich członków społeczności, którzy w tamtym czasie bardzo aktywnie rozwijali B3 (BigBrotherBot). Było wiele problemów z botem i ulepszaniem trybu bomby.

Jestem Linuksiarzem, a Python to dla mnie drugi język. Byłem ciekaw tego, czym się zajmują, rozmawialiśmy o technicznych aspektach programowania w Pythonie. Nie miałem jednak dostępu do kodu, ponieważ nadal byłem poza tym środowiskiem. Z kolei oni nie posiadali głębokiej wiedzy na temat Linuksa i Pythona, więc prawie za każdym razem stosowali Shotgun-debugging.

We wrześniu 2016 r. Trustable, Achsenknopf, juju i Drain zaczęli hostować domowy serwer Matrix. Sprawdziłem jego ekosystem i wyglądało to na jak projekt programistyczny w liceum. Miałem bardzo negatywną opinię i odmówiłem przejścia z Muble na rzecz Matrix. Na szczęście zachowaliśmy odpowiedni balans Mumble<->Matrix, aby nadal móc ze sobą rozmawiać poza grą :-)

Potem wystąpiliśmy w Urban Zone Autumn Cup 2016. W pewnym momencie na naszej drodze stanęła ekipa z Ameryki Południowej, a pamiętając swoje doświadczenia z lat 2009-2011, musiałem odpowiednio zareagować. Dlatego też wynająłem VPS w Nowym Jorku i to miał być nasz serwer meczowy w grze. Nie było innego sposobu, aby nawiązać z nimi równorzędną rywalizację. Myślę, że członkowie mojej drużyny bardzo to docenili i niejako zmusili mnie do dołączenia do nxu jako moderator (co obligowało do korzystania z Matrixa).

Praca nad B3

Otrzymałem również dostęp do kodu źródłowego B3. Achsenkopf argumentował to tym, że byłem bardzo zaangażowany w życie serwera i zawsze narzekałem. On też rozumował w ten sposób i z roli moderatora, stał się zaufanym członkiem. Spojrzałem na kod i od razu zrozumiałem, że to był horror. Oni po prostu nic w Pythona nie umieli! Zająłem się tymi obszarami w Python i C, które tego najbardziej wymagały. Tak, silnik serwera również wymagał poprawek. Chodziło o to, aby działało to z B3 dla takich komend jak statystyki medyczne, czas eksplozji bomby i parę innych rzeczy, implementowanych po stronie serwera:

  • znikanie gracza po pierwszych 3 sekundach każdej rundy;
  • odliczanie do wybuchu bomby;
  • „uniwersalny spawn fix” dla map, które mają mniej niż zakładaną liczbę punktów odrodzenia w trybie bomby.

Wiele z tych ulepszeń to inicjatywa Achensknopfa. Coś kodował i wzywał wszystkich, aby to przetestowali na drugim serwerze.

Juju pracował nad naszymi pluginami B3. Jego najlepsze komendy to: !dice i !bet. Ja i Drain stanowiliśmy emocjonalne wsparcie. Trudno określić, kto wykonał największą pracę, darzyliśmy się wszyscy szacunkiem i po prostu dobrze bawiliśmy.

Zarządzanie serwerem

Moderatorzy przychodzili i odchodzili. Niektórzy po cichu opuszczali grę, inni wręcz przeciwnie, nie zgadzając się z Achsenknopfem, mną, juju i Drainem.

Kość niezgody stanowiło to, jak zachowywać się na serwerze, co jest dozwolone, a co nie. To było jak rozwód: „JUŻ CIĘ NIE KOCHAM!”, „NXU Z TAKIM DYKTAKTOREM NIE PRZEŻYJE MIESIĄCA!” (oczywiście żartuję).

W pewnym momencie na serwerze pojawił się gracz, który bardzo dobrze radził sobie z obchodzeniem banów. To przyspieszyło nasz „wyścig zbrojeń” przeciwko oszustom i bardzo szybko opracowaliśmy właściwy system. Mogliśmy się dowiedzieć kim naprawdę są nasi gracze i jak z nimi postępować. System został ukończony i zaczął działać zimą/wiosną 2017 roku. To był dobry rok, bawiliśmy się w kryptowaluty itd.

Mniej więcej w tym samym czasie zaczęliśmy wprowadzać „niespodzianki”. Od strony technicznej są one bardzo skomplikowane pod względem trudności, od zmiany kilku CVAR na starcie danej rundy do implementacji całego B3, ryzykując, że to nie zadziała i zepsuje kolejną rundę.

Niektóre niespodzianki są dość podobne: ograniczenie dotyczące broni dla każdego gracza, wyrzuć całą broń, daj wszystkim tę samą broń i prawie nieograniczoną amunicję (lub odblokuj szybkostrzelność).

Gracze znaleźli jednak sposób na ominięcie ograniczenia broni, zmieniając swoje wyposażenie na samym początku rundy z niespodzianką. To było szaleństwo, pamiętam jednak, że chyba udało nam się to naprawić w kodzie serwera.

Mapy

Podczas przerwy świątecznej pomiędzy 2017, a 2018 rokiem, juju i Drain zaczęli tworzyć mapy i powstały fatman_b04 oraz ut_laboratory_beta. Lubię mapy takie jak Intercity, Intermodal, Forest, Druglord. Dzięki pomocy MrYeah!, który jest z nami od 2016 r. i również pełni funkcję moderatora, Drain naprawił część istniejących map, dodając do nich bomb spoty (np. ut_dam zmienione na ut_dam_bomb) i aby zwiększyć ilość punktów odrodzenia dla każdej drużyny w trybie bomby.

Nexunity dziś

Serwer jest wciąż aktywny, a szczegółowe statystyki można znaleźć tutaj.

O artykule:

Polub tę stronę

Czy wiesz, że...?

Respawn protection przestaje działać, kiedy oddasz pierwszy strzał.