multiplayer w grze

multiplayer w grze
HX
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Postów:46
0

Witam.
Zastanawiam się jak stworzyć grę multiplayer w c++.
Chodzi o taki przypadek że gra jest już gotowa i trzeba do niej dodać multiplayer.

A więc tak:

  1. Jakieś biblioteki oprócz SFMLa potrzebnego do stworzenia grafiki ? Jeżeli tak to jakie
  2. Czy to spowodowało by to że trzeba zmienić prawie cały kod czy część jego
  3. Czy byłaby potrzeba znajomości jakiegoś innego języka niż c++ ?

EDIT: Bardziej opłaca się najpierw zrobić grę a potem głowić się nad tym multiplayer czy Od razu głowić się nad tym i tym.

edytowany 2x, ostatnio: flowCRANE
Potat0x
  • Rejestracja:ponad 8 lat
  • Ostatnio:6 dni
  • Postów:370
0
Harrty_xx napisał(a):

EDIT: Bardziej opłaca się najpierw zrobić grę a potem głowić się nad tym multiplayer czy Od razu głowić się nad tym i tym.

Jeżeli planujesz multiplayer, to musisz o tym myśleć podczas pisania kodu, bo potem może okazać się, że zrobienie multiplayer jest niemożliwe. To jeszcze zależy co robisz, np gry typu warcaby o wiele łatwiej przenieść na multiplayer, niż dynamiczną strzelankę.
W SFML spokojnie ogarniesz zarówno obsługę grafiki, jak i sieci.

edytowany 1x, ostatnio: Potat0x
HX
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Postów:46
0

To jak z tym multiplayer w sfmlu ? Jak to zrobić ?

konserwa
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 4 lata
  • Postów:282
0

Na pewno musisz ogarnąć sockety asynchroniczne UDP(ewentualnie TCP).
Logika gry powinna być po stronie serwera, ale nie musi jeżeli dopuszczasz myśl że ktoś będzie grzebał w pamięci to ok.

Jeżeli robisz gre w którą mieli by grać przyjaciele to możesz spróbować najprostszych metod z obliczeniami w kliencie(jak ktoś będzie oszukiwał to koledzy mogą mu zrobić z mordy jajecznice)


Przejdę, przejdę, myślał Red. Nie pierwszy raz, przecież przez całe życie właśnie tak, po szyję w gównie, a nad głową pioruny, zawsze tak było...
edytowany 2x, ostatnio: konserwa
HX
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Postów:46
0

Dobrze. To teraz tak co to są sockety asynchroniczne UDP(ewentualnie TCP) ?

HX
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Postów:46
0

Jak rozumiesz pojęcie serwer. ? Czy musze jakiś wykupić ?

Zobacz pozostałe 2 komentarze
konserwa
Napisać. A język jaki chcesz. Myślę że jakbyś poszukał to może i nawet znalazł być gotowe rozwiązanie z zarządzaniem połączeniami. Kolejnym krokiem była by logika gry, a raczej zarządzanie tym co odbiera i wysyła serwer.
HX
Łatwiej w c++ czy w Pythonie(o ile w nim można) ?
konserwa
Jak jesteś w stanie to i w paskalu dałoby się. Nawet node.js gra wtedy musiała by przesyłać żądania http POST. A aplikacja serwer tylko analizowała by ich zawartość(to mogło by zadziałać do gry sRPG).
konserwa
Serwer może być pisany w dowolnym języku. Ale musisz pamiętać że to klient łączy się z serwerem. Jeżeli klient jest w c++ to musisz używać socketów w c++, a serwer może być i w pythonie(jeżeli ma coś takiego jak sockety);
HX
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Postów:46
0

http://cpp0x.pl/artykuly/?id=66

Tylko że to poradnik pod linuxa chyba jest :(

HX
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 3 lata
  • Postów:46
0

Mógłbyś mi pokazać jak by ten kod wyglądał ?

konserwa
Jaki kod jak piszesz komentarz to widzę go w adnotacjach.
HX
No kod takiego serwera w c++
konserwa
W c++ niczego nie mam. Ale w c# mogę dać ci przykład https://github.com/v1d4r1992/ChatSerwer to taka aplikacja którą pisałem ale nie skończyłem.
konserwa
Zobacz nie przeczytałeś dokumentacji sfml https://www.sfml-dev.org/tutorials/2.3/#network-module na samym końcu
konserwa
To nadal nie serwer ale daje jakby podwaliny żeby go stworzyć. Musisz zrobić jakiś system sesji(sesjami zarządza serwer) itd.
HX
Ile by taki serwer zajmował około lini kodu ?
konserwa
To zależy co robi. Zresztą to pytanie jest nie na miejscu. Zwykły chat można by zmieścić w 2tys linii kodu albo w 10tys jak ktoś słabo pisze.
HX
To jak coś zmajstruję to się pochwale. Zresztą i tak na razie mam problem do rozwiązania
konserwa
Zacznij od serwera który połączy 5 osób i obsłuży zdarzenia takie jak rozłączenie itd. Na tym etapie nie musisz tworzyć klienta połączysz się po prostu z Telnetu. Potem zrób wysyłanie wiadomości do klientów(Telnet to łyknie). I to będzie dobry start.
konserwa
Także nie chodzi o to jaki język a jaką metodę wykorzystasz żeby stworzyć ten serwer.
TR
  • Rejestracja:około 16 lat
  • Ostatnio:5 miesięcy
0

https://gafferongames.com/post/udp_vs_tcp/
i pozniej sobie przejrzyj kolejne artykuły (Next article na końcu strony). Z ich pomocą nauczysz się, jak powinien działać multiplayer w grach i dlaczego oraz stworzysz sobie bazę, którą będziesz mógł rozwinąć.

HX
Dziękuje, na pewno skorzystam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.