[C++]Programowanie sieciowe w Windowsie i Linuksie


(kijek) #1

Chciałbym napisać grę internetową, jednak na programowaniu sieciowym w ogóle się nie znam. Chciałbym także, by taki napisany kod kompilował się pod Linuksem, a także Windowsem. Wiem, że trzeba by wykupić jakiś serwer, na którym znajdowałyby się pliki ze wszystkimi informacjami o graczach. Liczę na jakieś linki na ten temat, a także wyjaśnienia, jak to wszystko miałoby działać.


([alex]) #2

Dla napisania gry internetowej wcale nie potrzebujesz programowania sieciowego. Potrzebujesz jedynie komunikacji pomiędzy graczami i mechanizmu zapamiętywania danych oraz dostępu do nich, nie zależnego od tych graczy.

Komunikacja (przekazywanie danych) odbywa się w takich grach przeważnie przez TCP/IP czyli może być zrealizowana na socketach, lub np przez bazę danych lub przez stronę PHP (baza czy strona to i tak przez TCP/IP idzie). Zapamiętywanie danych to już różnie, przeważnie baza danych lub pliki.


(kijek) #3

A tak trochę dokładniej, jak by to miało wyglądać? Jak odbywałby się dostęp do serwera? Przecież trzeba by podać dane, a także hasło, więc wbudowanie tych danych w aplikację odpada, więc chyba zostaje tylko zrealizować to przez php. Jeżeli coś, co tutaj napisałem jest głupie, to przepraszam, ale w tym temacie jestem zielony.

PS. Czy istnieje jakaś biblioteka, którą można by się do tego użyć, która działa na Linuksie i Windowsie? No i oczywiście mile widziane linki do tutoriali, kursów itd.


(Fiołek) #4

Za bardzo ogólnie pytasz. Każda gra ma inne wymagania, inaczej jest zbudowana, posiada inny tryb multiplayer. Od wielu rzeczy to zależy. Często dane o graczch przechowuje się w bazach danych(większość gier MMO), ale wcale tak być nie musi. Np. BEU NET przechowuje listę serwerów która jest zapisywana w pliku tekstowym i aktualizowana przez skrypt PHP jako coś "globalnego" a każdy serwer przechowuje dane o graczach, mapie itp. z osobna.

SDL_Net, WinSock API.

WinSock jest zgodne z Uniksowymi socketami, różni się tylko sposobem inicjalizacji więc z powodzeniem można je stosować dla obu systemów(kilka kompilacji warunkowych i problem z głowy).