Szerző Téma: Többjátékosmód az alapjaitól?  (Megtekintve 1139 alkalommal)

Többjátékosmód az alapjaitól?
« Dátum: 2017. Március 23. - 23:45:13 »
0
Sziasztok!
Amire én most kíváncsi vagyok, mennyire bonyolult/nehéz egy saját többjátékosmód kiépítése?
Alapjairól indulva tudom, nem napok munkája.
Van itt valaki aki ért esetleg ezekhez?
Nem most kezdtem a programozást, félreértés ne essen, böngésgettem különböző fórumokat már, de erről nem találtam infót.
Feltételezzük, ha fel szeretném használni mondjuk az IVMP forrás fájljait, mik azok a dolgok amiket módosítanom kell?
 

  •    Natives


  •    Memória írás


  •    Struktúrák


Jelen esetben arra gondolok, hogy megnyitom feltételezzük az átírt IVMP klienst és odáig el tudjak jutni, hogy megvan az IVMP csapata által megírt
 
CEGUI menü, vagy akár csatlakozni is tudjak ( itt nem arra gondolok, hogy azonnal működjenek a szkript funkciók )
 
 
 
Negatív kommenteket nem kérek köszöm, csak komoly válaszokat.
« Utoljára szerkesztve: 2017. Március 23. - 23:52:20 írta anorennia »

Nem elérhető Enigma

  • 391
    • Profil megtekintése
Többjátékosmód az alapjaitól?
« Válasz #1 Dátum: 2017. Március 24. - 11:02:43 »
0
Nagy valószínűséggel kód injection történik. Az alapjáték elindul, a kliens pedig belenyom egy C vagy Assembly kódrészletet, ami legalább arra elég, hogy a kliens és az alapjáték tudjon kommunikálni. Gondolok itt eventrendszerre, Lua, Squirrel, Python, vagy akármelyik másik scriptnyelv interpreterére. Aztán a szerverre kapcsolódás megtörténik, az adatokat leküldi a socket, feldolgozza. Valószínűleg az adat hasonlóképpen érkezik:
 
Szerver -> Kliens -> Játék
 
Ebben nem vagyok biztos, de viszonylag ésszerű, hogy a játék és a kliens egy IPC socketen kommunikálnak, tehát ebből következendő hogy az alapjátékba belekerül egy olyan kódrészlet ami kapcsolódik az IPC sockethez és vár arra hogy kapjon valamit. Ezek a kliens eventjei. Kapcsolódás szerverre, beállítások változtatása, szerverről jövő adatok, stb.
 
 
 
Nagyjából ennyi. Nem vagyok játékprogramozás szakértő, mivel egyáltalán nem érdekelnek a játékok, de nagyon sok low level programozási tudás kell hozzá, kezdve Cnél és az Assemblynél. Illetve nem árt ha van fogalma az embernek a networkingről. Packetek, TCP, UDP, socketek, stb stb.

Többjátékosmód az alapjaitól?
« Válasz #2 Dátum: 2017. Március 25. - 08:12:46 »
0
Koszonom a valaszod!
 
maga a szerver kliens kommunikacio lenyeget ugy ahogy ismerem, azutan mar bongeszgettem, csinaltam kisebb wfa \"jatekokat\", meg bongeszem nap mint nap az ivmp forrasat, amit tudtam kijavitgattam benne, a napokban kezdtem el tanulni, hogyan mukodik a memoria iras, kezdek/probalok rajonni a mukodesere.
 
csak gondolok itt arra, hogy a d3d device az mit is takarhat, hogyan tudnek fuggvenyeket meghivni a jatekbol, pl mint amikor mta meg ivmp, fivemp megnyilik, nem indul meg a jatek bar a fiveml eloszor betolti a jatekot a live menu miatt, mig az mta meg ivmp, ivn az nem csak a kesobbiek folyaman. De lehet jobb ha nem pazarlom az idomet erre, erdekelnek ezek a dolgok, de hogy a vilagot megvaltaam arra egy szemelykent keves vagyok ?

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
Többjátékosmód az alapjaitól?
« Válasz #3 Dátum: 2017. Március 26. - 17:11:44 »
0
Idézetet írta: Enigma date=1490349763


   
      Nagy valószínűséggel kód injection történik. Az alapjáték elindul, a kliens pedig belenyom egy C vagy Assembly kódrészletet, ami legalább arra elég, hogy a kliens és az alapjáték tudjon kommunikálni. Gondolok itt eventrendszerre, Lua, Squirrel, Python, vagy akármelyik másik scriptnyelv interpreterére. Aztán a szerverre kapcsolódás megtörténik, az adatokat leküldi a socket, feldolgozza. Valószínűleg az adat hasonlóképpen érkezik:
   
   
      Szerver -> Kliens -> Játék
   
   
      Ebben nem vagyok biztos, de viszonylag ésszerű, hogy a játék és a kliens egy IPC socketen kommunikálnak, tehát ebből következendő hogy az alapjátékba belekerül egy olyan kódrészlet ami kapcsolódik az IPC sockethez és vár arra hogy kapjon valamit. Ezek a kliens eventjei. Kapcsolódás szerverre, beállítások változtatása, szerverről jövő adatok, stb.
   
   
       
   
   
      Nagyjából ennyi. Nem vagyok játékprogramozás szakértő, mivel egyáltalán nem érdekelnek a játékok, de nagyon sok low level programozási tudás kell hozzá, kezdve Cnél és az Assemblynél. Illetve nem árt ha van fogalma az embernek a networkingről. Packetek, TCP, UDP, socketek, stb stb.
   


Közel jársz a megoldáshoz, de mégsem. Maga a kliens már a játékba ágyazza magát majd onnan irányítja a szerverről érkező kommunikációt.
Szóval lényegében így néz ki:
 
Szerver <-> Kliens + Játék
 
Illetve infót nem nagyon fogsz ezekről találni. A legjobb megoldás az ha forráskódokat nézegetsz és próbáld értelmezni mit hogyan oldottak meg.
« Utoljára szerkesztve: 2017. Március 26. - 17:17:01 írta DrAkE »

Nem elérhető Enigma

  • 391
    • Profil megtekintése
Többjátékosmód az alapjaitól?
« Válasz #4 Dátum: 2017. Március 26. - 17:16:33 »
0
Hát igen. Nem foglalkoztam sose ilyen dolgokkal, nem az én világom semmi olyan ami játékokkal kapcsolatos.

Többjátékosmód az alapjaitól?
« Válasz #5 Dátum: 2017. Március 27. - 13:31:27 »
0
hmm, köszönöm azért, hogy próbáltok rajtam segíteni :D :)
 

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal