Autor Wątek: [Libgdx] TAnima - MMO Rogue-like  (Przeczytany 8834 razy)

Offline ByerN

  • Użytkownik

# Maj 28, 2018, 23:26:22


Update:
2 rodzaje serwerów:

- Action mode:
   (no tak jak wcześniej :) )
   
- Tactics mode:
   Gramy tak jak w starym, dobrym Rogue (albo moim ulubionym Nethack). Gdy gracz poruszy się postacią, porusza się cały świat. Jeśli chodzi o grę mmo, planuję dodać dość sprytny system dobrowolnego głosowania. Trochę wracam w ten sposób do korzeni TAnimy, bo z grubsza- taki właśnie był pierwotny zamysł :) Tymczasem, ten tryb jest na tyle prosty w utrzymaniu, że będzie razem z trybem akcji. Coś dla tych co lubią bardziej taktyczne podejście. I naprawdę gra się zupełnie inaczej. Aż sam się zdziwiłem :O
   
PS: Tactics mode może zostać użyty do grania ze społecznością przez stream, tak jak to przypadkiem wynalazłem wczoraj. Planuję dodać większą kustomizację bota (aktualnie tylko discord) i możliwość dodawania własnych botów (classloading w javie).

Co sądzicie? Developerskie demo już wkrótce. Dodaję efekty dźwiękowe, kilka poprawek serwera i możemy działać z wstępnymi testami :) Będę wdzięczny za opinie na temat pomysłu tactics mode:)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline ByerN

  • Użytkownik

  • +2
# Maj 31, 2018, 21:58:32


Dzisiaj serwery TAnimy zostały rozproszone.
Jak to działa?
Po co?
Co to jest?
O czym Ty w ogóle do mnie mówisz?

Najczęściej produkcje mmo tworzą osobne instancje serwera dla konkretnego świata. To dość proste i przyjemne podejście ze wzglęgu na to, że developer nie musi borykać się z multum problemów związanych z synchronizacją danych. Jednakże, traci na skalowalności. Gdy liczba użytkowników serwera wzrasta do punktu, w którym nie potrafi już tego uciągnąć pojedyncza fizyczna maszyna- wtedy zaczyna się problem. Co zrobić gdy już nie mogę wykupić maszyny z większymi zasobami?

Rozwój maszyn zatrzymał się w pewnym momencie. Co raz trudniej jest uzyskać większą moc na jednej fizycznej maszynie tanim kosztem (a czasem zwyczajnie się nie da). Z tego względu myśli się nad koncepcją w stylu "mikroserwisy" lub po prostu celuje się w architekture rozproszona. Ale ona nie jest taka prosta. Z samej natury takiej architektury wynika bardzo wiele problemów, krórych normalnie nie uświadczymy tworząc oprogramowanie na pojedynczą maszynę. Każdy kto próbował tworzyć wysoko-wydajnościową aplikację serwerową działającą pod dużym obciążeniem, ten wie :) Gry MMO wpadają w tę kategorię.

Z tego względu, serwer TAnimy został zaprojektowany w oparciu o technologię AKKA, a co bardziej istotne- o koncept modelu aktorów (akka jest jego implementacją w technologii Java- u mnie Scala). Model aktorów bardzo dobrze łączy się z konceptem DDD. Ja jako osoba zaczynająca programowanie z poziomu asemblera z doświadczeniem zawodowym opartym na technologii Java (framework Spring i wczesna wersja JavaEE), miałem duży problem z przyzwyczajeniem się to tego zamysłu projektowania oprogramowania. Na początku wydawało mi się to bardzo niespójne, a czasem wręcz niesprawne do użytku w środowisku produkcyjnym. Z czasem okazało się, że się myliłem. To dość przyszłościowy zamysł.

Jeśli ktoś chce stworzyć solidną grę mmo, chciałby się dowiedzieć więcej na temat mojego podejścia i chce z niego skorzystać, to mogę stworzyć osobny artykuł na ten temat. To nie jest takie proste. Wymaga ogrom pracy, samozaparcia, otwartości umysłu i wiedzy. I oczywiście- da się to zrobić inaczej :) To tylko jeden z konceptów. Z mojego doświadczenia- jeden z lepszych dla tego typu produkcji.

Zapraszam do komentowania :)

Offline Lerhes

  • Użytkownik

# Czerwiec 01, 2018, 01:04:03
Cześć,

Ja jestem bardzo na tak - chętnie poczytam / dowiem się co to za podejście.

Trochę czytałem o DDD i te tematy zdecydowanie mnie ciekawią :)

Trzymam kciuki za projekt i za powstanie artykułu ! :)

Pozdrawiam,
Lerhes

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Czerwiec 01, 2018, 09:28:38
też bym poczytał

Offline ByerN

  • Użytkownik

# Czerwiec 02, 2018, 11:08:49
Dzięki :) Jakoś w wolnej chwili nagram o tym filmik albo napiszę artykuł :)

Offline Szaruga

  • Użytkownik

# Czerwiec 03, 2018, 20:49:59
Też chętnie się czegoś dowiem, bo komunikacja serwer-klient to nie jest moja mocna strona a właśnie teraz jak wróci z urlopu mój nauczyciel powoli biorę to na warsztat...

Offline ByerN

  • Użytkownik

# Czerwiec 04, 2018, 01:53:10
Chcę to jakoś sprytnie zaprezentować na filmie na yt. Póki co szukam narzędzi do wizualizacji aktorów w technologii Akka. Kontaktuję się teraz bezpośrednio z jednym z dostawców oprogramowania. Jak to nie wyjdzie, to zrobię prostszą prezentację :)

A póki co:



Dodałem:
-HUB światów. Zaraz po pierwszym zalogowaniu do gry, stajemy przed wyborem świata z poziomu gry. Na gifie widoczne światy Virgo(Active Mode) i Libra(TActics Mode). Nazwy serwerów póki co biorą nazwę od znaków zodiaku zaczynając od mojego (Panna). Możemy do niego wrócić z poziomu miasta by przejść do innego świata.
-Wybór klasy- póki co są tylko 3 (Rogue, Warrior, Wizard). Wybiera się je przechodząc do wspomnianego wcześniej HUBa światów i aktywując odpowiedni monument.
-Utrwalanie postaci- postać zachowuje swój stan pomiędzy światami. Tu jeszcze muszę pomyśleć jak to ma wyglądać. Nie chcę by gracze bezstratnie poruszali się pomiędzy światami

Hub światów w założeniach będzie się dynamicznie zmieniał wraz z przyrostem liczby serwerów i dostępnych postaci. To dość proste, ale jeszcze szukam pomysłu na nowe klasy i ich warunki zdobycia. Będę tam też chciał umieścić np wybór skórek dla postaci (skiny zwykłe lub DLC).

Co sądzicie? :)

Offline ByerN

  • Użytkownik

  • +2
# Czerwiec 08, 2018, 20:10:48
Zwiastun Alphy:
https://www.youtube.com/watch?v=KWOpZaqRz0U

Już niedługo będzie można potestować grywalną wersję :)

Offline ByerN

  • Użytkownik

# Czerwiec 12, 2018, 22:35:47
https://www.youtube.com/watch?v=J8x9SMjVnM0

Update:
-Pierwsza wersja efektów dźwiękowych
-Odblokowywanie nowych postaci ("tajemnicze questy")
-czarna skrzynka- pozwala zachować 3 przedmioty dla kolejnego wcielenia (nie można ich wtedy używać)

Jeszcze kilka pomniejszych rzeczy jak logowanie do gry czy efekty "kinowe"
Co sądzicie? :)

Offline ByerN

  • Użytkownik

# Czerwiec 15, 2018, 01:05:25
TAnima OST: Always here for you
https://www.youtube.com/watch?v=kkERb09RAvE

Offline ByerN

  • Użytkownik

# Czerwiec 15, 2018, 18:52:40
TAnima OST: Like it was yesterday
https://www.youtube.com/watch?v=AEWospKSbeQ

Offline ByerN

  • Użytkownik

# Czerwiec 24, 2018, 18:48:56
TAnima OST: Going back in time
https://www.youtube.com/watch?v=Tb_I57JRFtI

Offline ByerN

  • Użytkownik

# Czerwiec 27, 2018, 03:04:38

Offline ByerN

  • Użytkownik

# Lipiec 03, 2018, 21:24:07
https://www.youtube.com/watch?v=sPT_rTDEBfA
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 :) W ostatniej sekcji na stronie wypisuję błędy i rzeczy do poprawy. Dzięki :)

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# Lipiec 04, 2018, 12:51:06
5. CONSENT OF USE OF DATA

You agree that tanima-online.com may collect and use information gathered in any manner as part of the product support services provided to you

brzmi jak zgoda na trojano keyloggera :P

proponuję żeby pierwszy przeciwnik był na jeden strzał bo nie wiadomo jak się walczy a za każdym razem trzeba przeskakiwać przez początkowe dialogi..
« Ostatnia zmiana: Lipiec 04, 2018, 13:03:32 wysłana przez laggyluk »