Tag Archives: gameStateManagement

Multiplayer simulacija dirkanja z avtomobili: Dodajanje multiplayerja in ScreenManagerja v igro

Spet malo o razvoju lastne igre (dirkalna igra) na XNA platformi. Prejšnje prispevke si lahko preberete

  1. tukaj(prvi del – ladjica v prostoru in izris proge),
  2. tukaj(drugi del – proga, avtomobil in vožnja po progi in nagibanje – Ray Trace) in
  3. tukaj(tretji del – nova proga, manjši popravki) :).

Po malo več kot tednu se je zopet premaknilo pri seminarski nalogi. Tokrat je bil uspešno dodan najprej Screen manager, pobran iz slednjega exampla(gameStateManagement), katerega osnovni koncept in flashy shiny thingies sem seveda ohranil notri.

Naslednji velik korak je bil Multiplayer(Večigralstvo po “FRIjevsko”), ki deluje na principu neodvisnega strežnika in dveh(ali večih, trenutno je omejitev 2 zavoljo testiranja ostalih parametrov) računalnikov. Vsak client izračuna naslednjo pozicijo, to sporoči strežniku, strežnik pa sporoči clientu, če je njegov premik dovoljen(collision detection z ostalimi vozili) ali ne, ter tudi vse podatke o ostalih vozilih(pozicije, nagibe, rotacije itd…).

Trenutno na LANu deluje pri 45FPS, kar je relativno dobro, glede na standardnih 65FPS na trenutnem laptopu(ko je ta na elektriki, na bateriji pade na 20FPS). Stvar NE deluje na eduroamu v pritličju(v 2. nadstropju deluje normalno =) ) in slednjemu podobnim omrežjem, kjer izgleda ping približno takole: 2ms, 3256ms, TimedOut, 2ms … V tem primeru ustrezno tudi pade Frame Rate, saj pred izračunom nove pozicije počaka na odgovor strežnika, ali je premik veljaven.

Sledijo sličice(opozorilo: FPS na sličicah ni realen, ker je bil multiplayer pognan na mojem laptopu (2 igri naenkrat + multiplayer), kar je precej obremenjujoče =) .

P.S.: Glede na delujoč multiplayer je potrebno spisati le še kratko dokumentacijo, in špil si boste lahko kmalu potegnili dol(na blogu bo objavljen link). Za tiste najbolj neučakane, kontaktirajte me na mail ali MSN ali gtalk(ali preko golobov pismonoš), pa dobite nekaj za se igrat :)

P.P.S.: Če bi radi karkol posebnega v igri, napište v komentarje in potrudil se bom dodat v igro :)

QED. :)