[Libgdx] TAnima - MMO Rogue-like


#81

Musze powiedzieć, że przy 1GB ramu max 20 botów dość średnio wypada chyba :wink:

Ja również korzystam z tiktalika w ramach hostingu serwera swojej gry Heroes and Rats i tiktalik był wstanie uciągnąć około 90 botów, które tylko chodziły do losowych miejsc po mapie. Fakt, serwer radził sobie dość słabo już przy takiej ilości graczy. Ale to działało :wink:

Bardzo fajnie wygląda sprawa load balancingu :wink: U mnie nie ma czegoś takiego. Jest jeden świat, wszyscy gracze są w jednej instancji, swobodnie mogą wchodzić w interakcję ze sobą.

EDIT: Dodam jeszcze, że osiagnąłem 200 graczy jak serwer stał na lokalnej maszynie w domu. Wtedy zużywał nieco ponad 1GB pamięci ram. Ale serwer sobie już bardzo słabo radził :smiley: Ale wciąż było to grywalne, czas odpowiedzi serwera urósł do 150-200 ms :wink:


#82

Serwer potrzebuje na start “dość dużo” RAMu (1GB to mało w dzisiejszych czasach). Później każde nowe połączenie zżera już znacznie mniej :slight_smile: Stąd ten problem. Tzw rozgrzanie, gdy wszystkie cache’e się już załadują itp to jest ok.

U mnie problemem nie jest RAM, bo to dość tani zasób, tylko procesor. Load balancing i praca w trybie klastra dużo w tym pomagają, ale największym kosztem jest zdecydowanie utrzymanie połączeń sieciowych i pisanie do nich :slight_smile:

U mnie ping na poziomie 150-200ms, to już sprawia, że gra jest niegrywalna xD Ale to też inny charakter gry.


#83

TAnima gameplay 27.06.2018


#84

Witaj, na wstępie podziwiam prędkość prac i zapał jaki w to wkładasz. Dobra robota!
Jestem zaciekawiony na jakiej zasadzie działa ten podział na klastry i jak to się synchronizuje.
Druga kwestia load balancing jak byś mógł napisać o tym kilka zdań.
Sam aktualnie pisze/dopracowuje sobie bibliotekę obsługującą asynchronicznie sockety. Na jej podstawie robię każdy z (pod)serwerów do zaprojektowanej przez siebie architektury pod MMO (nie wiem jak to wyjdzie ale zobaczymy).

Jeśli dobrze wczytałem się w poprzednie posty to co tick wysyłasz informacje do wszystkich klientów? Co masz na myśli przez kosztowne nawiązywanie połączenia?


#85

Cześć. Dzięki za miłe słowa :slight_smile:

Zacznę od końca- chodziło mi o początkowe nawiązywanie połączenia. W opisie testu przedstawiałem, że jest ogromna różnica pomiędzy wieloma użytkownikami, którzy chcą się połączyć w jednym momencie, a wieloma użytkownikami łączącymi się np w przedziale godziny. 400 nawiązanych połączeń w odstępach kilkuset ms zamula trochę serwer, ale po chwili się uspokaja (gdy nie łączy się nowy gracz tylko grają Ci poprzedni).

Mały diagram wyjaśniający powierzchownie koncept aktorów i jak zostały użyte w serwerze gry:

Link do wiki dla zaciekawionych :slight_smile:


#86

Teraz już trochę rozumiem o co w tym chodzi, diagram dużo wyjaśnił. Nie wiem jak to jest realizowane głębiej ale wydaje mi się, że dławienie może powodować duży rozmiar przesyłanej paczki do klienta jednorazowo np. mapa.
Nie wiem czy w tym rozwiązaniu jest możliwość dzielenia paczek na mniejsze i ewentualne ich opóźnianie np. obsługa tylko X pakietów/klientów na sekundę z przerwaniami ileś ms pomiędzy dla tych którzy dołączają. W skrócie zrobienie kolejki.


#87

Implementacja modelu aktorów, którą wykorzystuję to Akka. Jak Cie ciekawi sama infrastruktura, to warto poczytać :slight_smile: ciekawy koncept.

Kiedyś się zajmę jeszcze takimi wydajnościowymi smaczkami :slight_smile: Będę robił jeszcze kilka podejść do transportu. Sprawdzę m.in. jak to się będzie zachowywać przy UDP zamiast TCP. Choć temu akurat za dobrze nie wróżę. Zbyt duży pakiet faktycznie może być problemem. Ale to już pobawię się tym w przyszłości. Teraz kilka rzeczy związanych z klientem i wchodzę w etap dodawania kontentu. Dzięki :slight_smile:


#88


Po długim czasie ruszył serwer TAnimy. Jeśli chcecie zobaczyć jak działa to zapraszam tutaj:

http://tanima-online.com/

Teraz przechodzę do pracy nad zasobami.
Jeśli widzicie jakieś błędy lub macie jakieś uwagi to zapraszam do komentowania :slight_smile: W ostatniej sekcji na stronie wypisuję błędy i rzeczy do poprawy. Dzięki :slight_smile:


#89

Klimat kolejnego świata- Mglistych Wież. Domu szalonych kapeluszników :slight_smile:


#90

Update: Esencje, modyfikatory, artefakty, ekstrakcja esencji


#91

TAnima OST: Crystal Heart


#92

Czym jest TAnima? O co w niej chodzi? Jak to działa?
Skrócony opis. Mam nadzieję, że się wam spodoba :slight_smile:


#93

Świetna , w dodatku jak zrozumiałem tworzyz to sam? :slight_smile: Nieźle, gratuluję :slight_smile:


#94

Tak, siedzę przy tym sam i tworzę wszystko po za efektami dźwiękowymi (kupione/darmowe z sieci) :slight_smile: dzięki :smiley:


#95

Kim jest TAnima? Co ona chce? Fabuła gry i nowe mechaniki:

  • rozmowa z TAnimą w korytarzach lochu
  • stand-upowe pokoje z historyjkami TAnimy
  • dłuższe scenariusze uruchamiane fragmentami pamięci innych postaci z gry (znalezionymi w lochu)

Dla bardziej dociekliwych dorzucam gameplay:

Ale jest długi. Zmian trochę jest, trudno je przedstawić w zwięzłej formie. Mam nadzieję, że skrócony opis nie był zbyt nudny :slight_smile:
W opisie tego dłuższego filmu są odnośniki czasowe co by nie tracić czasu na zbędne rzeczy (szanuję wasz czas. Czas jest drogi xD) :slight_smile:
Co sądzicie? :slight_smile:


Jaki język programowania dla poczatkujacego do prostych gier na androida?
#96

Kiedyś Cię poproszę o wytłumaczenie jak zrobić interakcje z NPC czyli np porozmawiać :smiley: CHyba, że masz jakieś odnośniki do tutoriali? :slight_smile:

Bo planuję kupić ten kurs ze strefakuraow.pl gdzie sa 4 gierki do zrobienia z czego jedna to 2d widok z gory chodzenie i strzelanie do zombie. Czyli bym już miał jakieś podstawy. Do tego dołożyć rozmowy z NPC i zbieranie przedmiotów, kolizję z otoczeniem i moge brać się za jakiegoś rpg :stuck_out_tongue:


#97

Update na warsztatowe compo
http://forum.warsztat.gd/index.php/topic,31396.45.html