Kezdőoldal » Számítástechnika » Programozás » Hobbi multiplayer játékot...

Hobbi multiplayer játékot csinálnék. Hogy gyorsabb az adatátvitel, LAN kábelen vagy valamilyen online adatbázissal, mint firebase?

Figyelt kérdés
Game Maker 8-ban írnék egy multi játékot, amiben számít az adatátviteli sebesség, mert mondjuk lövöldözünk/kergetjük egymást. A közös adatokat LAN-os módszerrel könnyű megvalósítani, online nehezebb. Utóbbi esetben, amiket átvinnék .ini fájlban tárolnám, és az online alkalmazás csak ezt az init töltené le/fel. Melyik gyorsabb? Van valakinek ilyesmiben tapasztalata?

2020. júl. 7. 21:26
 1/9 anonim ***** válasza:
70%

Ha lényeges az átvitel sebessége, akkor adatbázisban semmiképp. Hogyan valósítanád meg? Tizedmásodpercenként lekérdezi, hogy volt-e új adat? Ez alapból óriási késleltetést eredményezne. Egyszerűen TCP-vel (vagy UDP-vel) küldesz a címzettnek egy csomagot, benne a szükséges adattal. Az, hogy a címzett 192.168.0.5, vagy 195.199.255.4, a megvalósítás szempontjából lényegtelen. (Kíváncsi lennék, hány IP-huszár kezdett vad kutatásba, hogy ez vajon kinek az IP-je? :D)

Hátrány, hogy a megfelelő portokat át kell engedni a routeren. Ha ez nem kivitelezhető, na, akkor kell egy szervert közbeiktatni, bár az is inkább csak összekötő szerepet tölt be, felesleges az adatbázisokat belekeverni.

2020. júl. 7. 21:44
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:
57%
Egy játékot sem tudok, amelynek a kommunikációja Adatbázis útján történne (Kívétel a böngészős játékot, mint pl Gladiatus..stb). De, ha tárolni szeretnél adatokat akkor kell adatbázis is. A LAN kábel alatt gondolom UTP-re gondolsz. A LAN az "Lokális hálózat", tehát Te olyan játékot szeretnél létrehozni, amelyek játékosok csak "lokális hálózaton" tudnak játszani vagy szeretnéd kivinni a netre is? Ha szeretnéd kivinni a netre akkor szükség van szerver-kliens modellre is.
2020. júl. 7. 22:11
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:
78%
Már csak azért is kell szerver-kliens, mert gondolj bele: Ha csak ketten vagytok akkor az rendben van. Tételezzük fel, hogy mászkálos játék van 2D-ben akkor a Te poziciódat a másik játékosnak (x,y koordinátákat) el kell küldened, ahogy a másik játékos is a saját (x,y koordinátáit) elküldi neked. Ha már 10-en vagytok, akkor 10 embernek kell elküldened és 10 embertől fogadnod, ha 100-an vagytok akkor 100 embernek kell elküldened és 100 embertől fogadnod és mind ezt késletetés nélkül. Tehát meg kell oldanod a szinkronizációt is. És pont ezért kell a szerver-kliens modell. Te a szerver fele küldöd a koordinátáid és a szerver küldi feléd a mások koordinátáit, illetve nem is fog érkezni olyan koordináta amelyre neked nincs szükséged, mert például olyan pályarészen tartózkodik az illető, hogy nem kell róla tudnod. Remélem érted. Ez a dolog egy kicsit bonyolultabb, mint ahogy gondolod elsőre.
2020. júl. 7. 22:15
Hasznos számodra ez a válasz?
 4/9 A kérdező kommentje:
Egyszer már csináltam ilyet pár éve, de csak átalakítottam egy tutorialt, pontosan nem tudtam mit is csinálok. Most elkezdtem lefordítani, és kiderült, hogy TCP/IP alatt helyi hálózaton játszottunk. Csak ketten játszanánk. De ezek szerint lehetne neten is, de az biztos lassabb. Gondolom az IPX jelenti a LAN kábeles történetet.
2020. júl. 7. 22:52
 5/9 A kérdező kommentje:
Anno. az volt gyakori probléma, hogy nem mindig ugyanakkor dobta el a karakter a dinamitot, és ennek következtében nem ugyanazok a téglák robbantak fel, és nálam meghalt a második játékos, ő nála még ment a játék, voltak zűrök. De már lennének ötleteim hogy lehetne ezt kiküszöbölni. Csak nem akartam mind a 200 tégla létét/nemlétét küldözgetni.
2020. júl. 7. 22:56
 6/9 anonim ***** válasza:

Jó a Firabese, de nem erre való.

Unityben a Photon-t 1000 gameobjectet kezel és két játékoshoz nem kell dedikált szerver. Bár sokszáz objectet szinkronizálni nem szerencsés, gyakran észszerűbb sok dolgot lokálisan számolni akkor is, ha nem lesz minden pontosan ugyanott, ugyanúgy.

2020. júl. 8. 02:46
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:

Két-három, netán négy játékoshoz nem feltétlenül kell szerver, ha csak kettő van, akkor még nettó hülyeség is. Ilyenkor még a TCP/IP is hülyeség lehet, max. azért van értelme, mert már létezik és nem kell új protkót írni.


Ha a játék négy játékosnál többet is kiszolgál, akkor a szerver elengedhetetlen, kikerülhetetlen. Nem akarom ismételni, a 3-as válaszadó szépen le is írta az okokat.

A protokoll UDP legyen, mert ez nem igényel nyugtázást, így kisebb a forgalom, kevesebb a collision és a packet loss.

A játék command set-je legyen minél egyszerűbb.

2020. júl. 8. 03:13
Hasznos számodra ez a válasz?
 8/9 anonim ***** válasza:

"Utóbbi esetben, amiket átvinnék .ini fájlban tárolnám, és az online alkalmazás csak ezt az init töltené le/fel."


Ilyet még viccből sem.

2020. júl. 8. 03:20
Hasznos számodra ez a válasz?
 9/9 anonim ***** válasza:

3-mas vagyok:


A "hálózatos" dolgokhoz, ismerni kell a hálózatokat elég jól. De, ahogy írták pl Unitybe ott a Photon amit előszeretettel használnak. De nem árt, ha tudod mi és miért történik, esetleg Te magad, hogyan tudod csinálni. Ajánlom Tanenbaum-tól a Hálózatok című könyvét - (Nem nehéz olvasmány! Megérteni sem nehéz) - nagyon jól elmagyaráz mindent [Ha nem akarod megvenni bizonyos magyar oldalakon meglelhető pdf formátumban is].

2020. júl. 8. 04:04
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!