Wątek przeniesiony 2020-03-08 22:18 z Newbie przez furious programming.

Gra MMORPG – kilka pytań

0

cerrato dziękuję, Dołożę drugi SSD, ewentualnie mam 250GB HDD na "tymczasem". Zostawiłem sobie furtkę wyjścia żeby móc coś dołożyć bo na pewno z czasem dojdzie karta graficzna, RAM i dysk SDD.

0

Moim zdaniem zostaw ssd na system, a drugi dysk daj talerzowy (zakładając oczywiście, że dysponujesz ograniczonym budżetem). W cenie 256 ssd kupisz sobie 2TB HDD, a ponieważ będzie to dysk - magazyn, to raczej większej różnicy w komforcie pracy nie odczujesz

0

Kolega chce się zająć zagadnieniami sieciowymi w tym projekcie tzn. Cała oprawa serwerowa i reszta tej roboty online. Więc prosił mnie żebym spytał Was jakie książki mu polecicie do tego? Coś o bazach danych też pewnie się przyda :)

0
wojtek1492 napisał(a):

Więc prosił mnie żebym spytał Was jakie książki mu polecicie do tego?

Sam boi się zapytać? I tak konto tutaj mu się przyda, bo zapewne będzie miał wiele pytań. ;)

Nie musi od razu kupować książek – w sieci może znaleźć mnóstwo sensownych i rzeczowych materiałów na ten temat. Tutoriali dla początkujących tez jest od groma – jest w czym wybierać.

0

Pewnie z czasem kont założy. Furious więc od czego lepiej zacząć ? Bazy danych?

1

od czego lepiej zacząć ? Bazy danych

Pytanie (analogicznie do tego, co Tobie pisaliśmy parę dni wcześniej) - czy koleś w ogóle umie programować?
Bo tak samo, jak Ty chciałeś walczyć z grafiką, ale nie czaiłeś za bardzo o co chodzi z programowaniem, On także powinien najpierw nauczyć się "ogólnie" programować.

Dopiero jak zaznajomi się z narzędziami (głownie chodzi o język oraz środowisko/IDE, które będzie wykorzysywał) będziemy mogli mówić o jakiejś formie specjalizacji.
To trochę jak z lekarzem - najpierw idzie na studia, potem uczy się "ogólnych" podstaw, a dopiero wiele lat od rozpoczęcia nauki w dziedzinie medycyny, staje się samodzielnym lekarzem o określonej specjalizacji. Raczej nikt na pierwszym roku nie zajmuje się chirurgią ;)

0

Rozumiem. Programować nie umie. Chodzi o to żeby umiał postawić serwer, baze danych. On zaczyna tak samo jak ja czyli od podstaw. Tylko ja ogarne jedno a On zagadnienia sieciowe i to wszystko co potrzebne żeby ta gra była multiplayer czyli wszystko co związane z tym publicznym serwerem na którym gra będzie stała i na którym będą grali gracze :)

1

Więc powtórzę - najpierw nauka programowania, te "nudne" programiki ćwiczeniowe itp.
A po drugie - napisałeś coś o bazie danych. Tutaj już zahaczamy o trochę inne aspekty, bo wprawdzie programowanie przyda się, ale też mamy wątek administratora serwera.

0

A jeśli mój kolega ma w przyszłości być administratorem serwera i rozumiec tą całą sieć to w jakim języku ma się uczyć programowania? :)

1

On zaczyna tak samo jak ja czyli od podstaw. Tylko ja ogarne jedno a On zagadnienia sieciowe i to wszystko co potrzebne żeby ta gra była multiplayer czyli wszystko co związane z tym publicznym serwerem na którym gra będzie stała i na którym będą grali gracze :)

To dobrze, ale pamiętaj, a w zasadzie kolega, o jednej rzeczy: zagadnienia serwerowe wymagają większej bezbłędności niż programowanie gier. Mam na myśli, że jeśli Ty popełnisz błąd, to najwyżej gra się nie uruchomi, dopóki błędnego fragmentu nie zmienisz (miejmy nadzieję, że tylko tyle; C# jest w miarę mądry), ale jeśli kolega popełni błąd w jakimś skrypcie (bodaj bashowym) – to mogą być gorsze konsekwencje (może udostępnić pliki osobom niepowołanym lub skasować nieopatrznie jakieś pliki, nawet systemowe). Oczywiście mówię tu o linuksie, na Windowsie być może są większe zabezpieczenia.

2

W sumie to administrator w ogóle nie musi programować, ale jeśli koniecznie chcesz coś mu "wcisnąć" (bo faktem jest, że taka umiejętność może się przydać) to

  1. BASH i skrypty powłoki (bo zakładam, że na Linuksie będzie to postawione)
  2. Python
  3. SQL
  4. jakiś język do pisania procedur w SQL (aczkolwiek nie jest to konieczne, a na pewno nie na początku, po dobrym ogarnięciu pkt. 3) .

Ale ogólnie to bycie adminem a bycie programistą to dwie rózne rzeczy. Trochę, jak mieszanie mechanika, lakiernika i kolesia od opon. Niby każdy grzebie przy aucie, ale ich zadania się nie pokrywają,

1
wojtek1492 napisał(a):

Pewnie z czasem kont założy. Furious więc od czego lepiej zacząć ? Bazy danych?

Najlepiej zacząć od absolutnych podstaw, czyli teorii. Czym jest serwer, jak się z niego korzysta, czym są bazy danych, na co pozwalają, jak wygląda ich konfiguracja, obsługa, utrzymywanie. Bez takiej wiedzy nie da się niczego zrobić, a tym bardziej rzeczy bardziej złożonych.

0

Dobrze Panowie. Czyli mam ustalone z kolegą to że On zajmuje się stroną serwerowa i bazodanową. Więc jakiej tematyki szukać wśród książek i internetu? Jak juz ustaliliśmy wspólnie ja z kolegą jesteśmy pocZątkujący więc od czego kolega ma zaczac? Bazy danych czy szukać innych zagadnień? Druga sprawa...mysliscie ze postawienie gry na serwerze opartym na linuxie to dobry pomysł?

0

Dodałem to w formie komentarza, ale zgodnie z sugestią @furious programming napiszę jeszcze raz w postaci posta :)


W sumie to możemy jeszcze zaznaczyć pewną rzecz - dla niektórych oczywistą, ale niekoniecznie dla Wojtka.

"Zajmowanie się bazą" można rozumieć przynajmniej na dwa sposoby:

  1. bycie administratorem takowej, pilnowanie żeby wszystko działało OK, przeglądanie logów, wgrywanie łatek, zabezpieczanie przed włamaniami itp.
    oraz
  2. bycie programistą z takiej bazy korzystającym, projektującym struktury danych, indeksy, tabele, tworzącym zapytania itp.

Czasami pkt. 1 i 2 się pokrywają, ale nie jest to reguła ani konieczność.

0

No dobrze ale i tak nie dużo z tego wiem ja i kolega...może sformułujecie jakieś pytania, my Wam odpowiemy czym chcielibyśmy żeby kolega się zajmował i wtedy Wy nam napiszecie w jakim kierunku mój kolega ma się kształcić od podstaw :)

1

Raczej powinno być odwrotnie - Wy się zastanówcie, co chcecie osiągnąć (ale trochę bardziej konkretnie i szczegółowo, niż "chcemy zrobić serwer"), to wtedy będziemy (być może) w stanie jakoś odpowiednio nakierować.

0

Chcemy zrobić cały "mechanizm" dotyczący administrowania serwera (prawdopodobnie serwer będzie stał na linuxie). na pewno musimy znać się na bazach danych, na komunikacji SERWER-KLIENT. Na komendach w konsoli...ale od czegoś trzeba zacząć od jakiś podstaw :)

1

Ok, no to po kolei tematy do przemyślenia:

  1. kwestia maszyny, na której ma to działać. Czy chcesz fizycznie postawić to u siebie, czy wykupić jakiegoś VPS albo miejsce w serwerowni?
    Opcja z "posiadaniem" serwera u siebie może być OK na czas testów, ale potem raczej (chociażby z racji posiadania porządnego łącza) odpada.

  2. Niezależnie od tego, czy to będzie skrzyneczka stojąca u Ciebie w garażu, kolokacja czy VPS - ktoś musi być adminem i zarządzać oraz utrzymywać taki serwer. Póki będziecie się "bawić" i ćwiczyć, temat można potraktować po macoszemu, ale w chwili wyjścia z grą w świat MUSI to być porządnie zrobione - w szczególności w zakresie zabezpieczeń. Z tego co piszesz to nie macie o tym zielonego pojęcia i obawiam się, że w jakimś sensowny czasie ciężko będzie to opanować na poziomie ludzi/zespołów fachowców, którzy siedzą w tym latami.
    Wniosek: lepiej do nauki mieć swój serwer, ale później powinniście to zlecić

  3. Wcześniej się pojawiał wątek SQL. To na pewno musicie ogarnąć. Przy czym SQL to język komunikacji z bazą, ale trzeba to jeszcze opakować w jakiś język programowania. Czyli wracamy do tego, co pisaliśmy wiele razy wcześniej - zarówno Ty, jak i kumpel musicie najpierw na dość porządnym poziomie opanować programowanie

  4. sam serwer jest jedynie urządzeniem, na którym będzie zainstalowany system operacyjny oraz uruchomione stosowne usługi. Tak, jak pisałem - moim zdaniem nie zrobicie tego na tyle dobrze, żeby Wam za chwilę serwer nie padł (czy to z powodu błędów w konfiguracji, czy w wyniku działań innych osób/botów/wirusów). Może kojarzysz jak (nie pamiętam dokładnie) z 10 lat temu Nasza Klasa przeżywała najlepsze chwile. Budżet mieli nieporównywalny z Twoim, a mimo tego co chwila pojawiała się słynna gąbka i informacja o przeciążeniach.
    screenshot-20180511153118.png
    U was może być podobnie, więc lepiej będzie to zlecić. Poza tym musisz mieć świadomość, że o ile napisanie jakiejś gry można (gdy człowiek się uprze) z lepszym lub gorszym efektem zrobić we własnym zakresie, to porządny serwer który to wytrzyma już kosztuje. Czy go sobie kupisz, czy wydzierżawisz - musisz się liczyć z kosztami. Na pewno nie da się tego uruchomić na łączu z kablówki i serwerze z dwoma Xenonami (albo starym laptopie na C2D).
    W kazdym razie - do ćwiczeń serwer możesz mieć u siebie, ale i tak trzeba zaznajomić się z linuksami. I odradzam "desktopowe" dystrybucje typu ubuntu czy Mint - są one łatwe w obsłudze i proste w konfiguracji, ale na produkcję bym ich nie dawał. Ja od zawsze korzytałem ze Slackware, ewentualnie możesz pomyśleć o Debianie

  5. Na razie ostatni punkt. Jak pisałem wcześniej, "serwer" składa się z maszyny, systemu oraz aplikacji/usług na nim uruchomionych. W związku z tym znowu pojawia się kwestia programowania (i teraz na poziomie znacznie wyższym, niż "jako tako"). Musicie napisać samą aplikację - serwer gry. Czyli coś, co będzie się komunikować z graczami, łaczyć się z bazą danych, koordynować przebieg gry itp. Do tego musicie dość dobrze zająć się m.in. komunikacją przez sieć i to w mojej ocenie w wypadku gry z wieloma (albo bardzo wieloma) użytkownikami będzie największym wyzwaniem. Ponadto - skupiłeś się w wielu wcześniejszych postach nad kwestiami grafiki. Pamiętaj też, że cała mapa/świat musi być odwzorowana na poziomie serwera, który musi mieć pojęcie gdzie dane osoby się znajdują, jakie między nimi zachodzą interakcje itp.

Przepraszam, że się rozpisałem :(

1
  1. Póki co do testów wystarczy nam jakiś tani VPS tak jak piszesz, jesli testy przejdą pomyślimy nad czymś bardziej profesjonalnym. Pytanie tylko czy na serwerze "na odległość" da się zainstalować Ubuntu/Debian?

  2. Właśnie o zabezpieczenia najbardziej się boję. Póki co sami będziemy się bawić we dwójkę w tej grze i testować ją...ale jeśli gra zdobędzie kiedyś zainteresowanie trzeba ją porządnie zabezpieczyć.

  3. Czyli szukamy SQL i baz danych do nauki. Ale tutaj nasuwa mi się pytanie czy dołożyć do tego php, pythona? Czy w bazach danych można używać C#? A co z jednolinijkowcem ""perl" bo o nim też ktoś wspominał.

  4. Tutaj kłania się ilość osób. W bardzo optymistycznej wersji zakładam że gra w szczytowym momencie zdobędzie 150-graczy online non stop. Większego obciążenia nie przewiduję ponieważ są dużo lepsze tytuły MMO. Jeśli chodzi o system to myślałem nad Debianem lub Ubuntu ponieważ pracowałem kiedyś na obu i są w miarę łatwe ale Wy się bardziej znacie więc może polecice coś innego.

  5. Właśnie macie rację. Grafikę i fabułę można zrobić gorszą albo lepszą ale oprawa sieciowa/ zabezpieczenia i cały serwer to jest wyzwanie :)

Tak czy tak bardzo Wam dziękuję za te obszerne posty i pomoc w nich zawartą. Naprawdę dziękuję!! :-)

1

Gdybyście mieli już coś sensownego do pokazania (kod, demówkę, zrzuty, nagrania itd.) to polecam założyć osobny wątek w kategorii Oceny i recenzje i w nim przedstawiać postęp prac.

0
wojtek1492 napisał(a):
  1. Póki co do testów wystarczy nam jakiś tani VPS tak jak piszesz, jesli testy przejdą pomyślimy nad czymś bardziej profesjonalnym. Pytanie tylko czy na serwerze "na odległość" da się zainstalować Ubuntu/Debian?

Kupując VPS'a masz dostęp do panelu administracyjnego przez którego możesz instalować różne wersje systemów - ewentualnie możesz to robić "ręcznie" łącząc się z serwerem np. przez putty.

  1. Czyli szukamy SQL i baz danych do nauki. Ale tutaj nasuwa mi się pytanie czy dołożyć do tego php, pythona? Czy w bazach danych można używać C#? A co z jednolinijkowcem ""perl" bo o nim też ktoś wspominał.

Nie mieszaj w tych bazach, naucz się SQL to na początku wystarczy, później możesz się zainteresować jakimiś ORM'ami.

  1. Tutaj kłania się ilość osób. W bardzo optymistycznej wersji zakładam że gra w szczytowym momencie zdobędzie 150-graczy online non stop. Większego obciążenia nie przewiduję ponieważ są dużo lepsze tytuły MMO. Jeśli chodzi o system to myślałem nad Debianem lub Ubuntu ponieważ pracowałem kiedyś na obu i są w miarę łatwe ale Wy się bardziej znacie więc może polecice coś innego.

Przypuszczam, że "pracowałeś" na wersjach desktopowych, graficznych, te serwerowe to trochę inna bajka. Wybór dystrybucji to sprawa drugorzędna, wszystkie są dosyć zbliżone do siebie, kwestia gustu.

0
wojtek1492 napisał(a):
  1. Póki co do testów wystarczy nam jakiś tani VPS tak jak piszesz, jesli testy przejdą pomyślimy nad czymś bardziej profesjonalnym. Pytanie tylko czy na serwerze "na odległość" da się zainstalować Ubuntu/Debian?

Jakiś system być musi więc coś na 100% jest. Jednak większość VPS daje możliwość wyboru obrazu z którego będzie odpalona twoja maszyna, a część pozwala nawet budować własne obrazy, więc to nie jest problem.

  1. Czyli szukamy SQL i baz danych do nauki. Ale tutaj nasuwa mi się pytanie czy dołożyć do tego php, pythona? Czy w bazach danych można używać C#? A co z jednolinijkowcem ""perl" bo o nim też ktoś wspominał.

"You don't need DB". Bardzo wiele rzeczy da się zrobić nie posiadając DB w cale, i w grze MMO do bardzo wielu rzeczy DB nie potrzebujesz, wcale.

  1. Tutaj kłania się ilość osób. W bardzo optymistycznej wersji zakładam że gra w szczytowym momencie zdobędzie 150-graczy online non stop. Większego obciążenia nie przewiduję ponieważ są dużo lepsze tytuły MMO. Jeśli chodzi o system to myślałem nad Debianem lub Ubuntu ponieważ pracowałem kiedyś na obu i są w miarę łatwe ale Wy się bardziej znacie więc może polecice coś innego.

To kwestia gustu, przy tak małym ruchu to nie ma najmniejszego znaczenia co weźmiesz.

  1. Właśnie macie rację. Grafikę i fabułę można zrobić gorszą albo lepszą ale oprawa sieciowa/ zabezpieczenia i cały serwer to jest wyzwanie :)

Tak, do jest dość trudny temat

0

Dobrze, przemyśle to wszystko i jutro napiszę do jakich wniosków doszedłem. Chodzi o to jak rozdzielić pracę między mnie a kumpla. Przypuszczam że ja wezmę się od podstaw za C#, Blendera i Unity a kolega weźmie SQL, i bazy danych. Masa pracy...ale coś w głowie zostanie a może nam się z czasem spodoba i zajmiemy się programowaniem na większą skalę...

2

@wojtek1492: przydałaby się jeszcze jedna osoba. Ty byś się zajął modelami, mapami, animacjami itd., bo ta działka najwyraźniej najbardziej Ci pasuje, Twój bieżący kumpel zająłby się serwerem, a dodatkowa osoba programowaniem.

Im mniej obowiązków na każdą głowę tym lepiej.

0

Wiem furious że 3 osoba by się przydała ale nie mam skąd jej wziąć już myślałem nad każdym możliwym wariantem i jedyna osoba na której mogę polegać to mój kumpel więc zostajemy we dwóch przy tym projekcie. C# Unity i blender zostaje u mnie, SQL i serwer to zadania dla kolegi. Póki co nic innego nie wymyślimy. Miłego weekendu i dzięki!

Edit: Nie wiem czy to ma jakieś znaczenie i czy ten serwer może się przydać ale posiadam również dysk sieciowy synology DS215j, przyda się on na coś typu testy serwera czy magazyn danych ? Wiem że na nim serwera gry nie uciągne :)

1

@wojtek1492: w sprawie poszukiwania osób do współpracy - może spróbuj w ten sposób: Projekty Forumowe

0

Cerrato wiem że może by się ktoś znalazł ale na tym etapie kiedy ja i kumpel dopiero zaczynamy swoja przygodę z programowaniem to bez sensu kogoś 3 angażować. Zawsze będą jakieś nieporozumienia. Poczytałem trochę o serwerach VPS i rzeczywiście system to nie problem, jest kilka darmowych linuxow do wyboru :)

0

Ja bym jednak proponował skupić się na grze zamiast dumania nad serwerami, bazami i całą sieciową otoczką.
Niedługo stuknie 10 strona tematu a nie wiemy nawet czy wspólnie z kolegą potraficie już wczytać i wyświetlić dowolny plik tekstowy, chociażby w konsoli.

0

Tajny agent, póki co ja pracuję w oparciu o książkę Unity i C#. Do tego mam mwin.pl, masa poradników dla początkujących, na początek wystarczy :)

0

Witam, robię wszystko po kolei tak jak jest napisane w książce ale tego nie potrafię przeskoczyć. Dlaczego wyświetlają się takie błędy w Visual Studio? Używam złej funkcji?

screen.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1