PDA

Prikaži potpunu verziju : Projekat | Umreziti igricu


Hakinen92
17.2.2011, 8:49
E ovako:
Imam zadatak da napravim projekat mini igricu u lanu.
Izabrao sam Iks Oks.
Napravio sam igricu u C#, sada je problem u tome kako je povezati sa drugim racunarom u LAN-u i igrati 1 vs 1.
Hvala !

Svaka pomoc bi dobro dosla!
Pozdrav!

Ivan452
17.2.2011, 15:19
Prvo ces morati da se upoznas malo sa klijent-server programiranjem tj komunikacijom preko mreze.
A drugo, zavisi od toga kako si isprogramirao iks-oks, moraces da ga dosta promenis.

Uglavnom, mislim da je ovo super objasnjenje da ti da ideju o cemu se tu radi:
http://www.codeproject.com/KB/IP/tcpclientserver.aspx
ili mozda ovo (malo je detaljnije objasnjeno)
http://www.dreamincode.net/forums/topic/33396-basic-clientserver-chat-application-in-c%23/

Geomaster
17.2.2011, 15:59
Da ti uopšteno pojasnim kako bi radilo, jedan igrač bi hostovao igru odnosno otvorio port i čekao na konekciju. Drugi igrač bi ukucao IP adresu drugog igrača na LAN-u (ili ime kompjutera u mreži) i konektovao bi se, a onda bi se ostvarivala komunikacija porukama koje znače nešto tipa 'ja sam postavio X ovde' i sl.
Detalje o konekciji i client-server programiranjem možeš pronaći na linkovima koje ti je Ivan452 ostavio.

EclipsE
17.2.2011, 16:37
Lidgren (http://code.google.com/p/lidgren-network-gen3/) je zakon, a imas i dosta primera kako da ga koristis.

Geomaster
17.2.2011, 16:39
Lidgren (http://code.google.com/p/lidgren-network-gen3/) je zakon, a imas i dosta primera kako da ga koristis.
Mislim da mu UDP neće baš štimati (izgubi se pokoji paket što u ovom slučaju nije prihvatljivo).

EclipsE
17.2.2011, 16:42
There are five delivery methods available: (http://code.google.com/p/lidgren-network-gen3/wiki/Basics)
...
ReliableOrdered - This delivery method guarantees that messages will always be received in the exact order they were sent.

Geomaster
17.2.2011, 16:44
ReliableOrdered - This delivery method guarantees that messages will always be received in the exact order they were sent.
Interesantno... Zanima me kako ovo radi, pošto je priroda UDP-a takva da neki paketi mogu da budu droppovani :)

Hakinen92
17.2.2011, 18:08
E momci hvala vam vidim da hocete da mi pomognete nadam se da cemo uspeti u narednom periodu.

Posto sa engleskim ne stojim bas najbolje, a volim da se backam oko ovoga, mozete li mi dati na srpskom nesto oko ovoga sto ste mi davali tutorijale?

Mislim skontam ja vecinu ovoga sa tutorijala, ali nisam siguran bas, pa s toga ako ima na srpskom?

Hvala swima! Carevi ste.

Geomaster
17.2.2011, 18:28
E momci hvala vam vidim da hocete da mi pomognete nadam se da cemo uspeti u narednom periodu.

Posto sa engleskim ne stojim bas najbolje, a volim da se backam oko ovoga, mozete li mi dati na srpskom nesto oko ovoga sto ste mi davali tutorijale?

Mislim skontam ja vecinu ovoga sa tutorijala, ali nisam siguran bas, pa s toga ako ima na srpskom?

Hvala swima! Carevi ste.
Teško da ćeš naći nešto normalno na srpskom, jedino da kupiš neku knjigu baš o tome... Možda neko drugi može da predloži nešto konkretno pošto ja nisam mnogo gledao ništa na srpskom oko programiranja.

irreal
17.2.2011, 20:47
Interesantno... Zanima me kako ovo radi, pošto je priroda UDP-a takva da neki paketi mogu da budu droppovani :)

vec sam negde pisao na temu ove biblioteke.

Da, priroda UDP protokola jeste takva da ne grantuje ni redosled a ni dolazak svih paketa.

ali TCP ne koristi magiju ili odvojene zice za slanej podataka, jedini nacin na koji se TCP razlikuje je sto po protokolu radi provere i ponovo salje / prima izgubljene pakete, itd.

dakle, sve je u softveru, tako i ova biblioteka i pored koriscenja udp porta radi softversku proveru paketa i salje po potrebi ponovo.

elem, da ne zbunjujemo coveka, potreban mu je vrlo vrlo osnovni subset .net-ovih tcp klasa, nema potrebe da implementira ovu biblioteku i slicno.

Ivan452
17.2.2011, 21:44
@Hakinen92
Sto pre pocnes da se navikavas na englesku literaturu i poboljsavas znanje tog jezika tim bolje po tebe.
Od toga neces moci da pobegnes ma cime god da odlucis da se bavis.

A ako bas ovo hoces na srpskom jedina ti je opcija da kupis neku C# knjigu, koja ce te kostati nekih 1500 dinara sigurno, tako da ne znam koliko ti je to isplatljivo ako ti treba samo za jednokratnu upotrebu.

Hakinen92
18.2.2011, 12:27
E iscitao sam ono imam bezbroj pitanja jbg, zato sto mi nije jasno.
Je li ja trebam ono da kopiram onaj kod negde ili da se kombinuje + da ja uredjjem kod.

Ja sam napravio u c# iks oks, sada je li treba odvojeno napraviti client server ili to ide u sklopu igre?


E de mi recite za ovo sta mislite nasao sam na netu uradjeno: http://i181.photobucket.com/albums/x269/hippogo149/Permanent/TTT_Interface.jpg

Download: http://www.mediafire.com/?bnm4g207hve

Ali nece da mi otvori pise Unable to find a version of the runtime to run this application.
.NET Framework Initialization Error.
De neka neko proba kod sebe pa neka javi.

Probacu drugu verziju Framework, probacu nesto samo da mi proradi taj program sto sam nasao, pa da probam da razjasnim to sto je uradjeno u tom programu.
Pa kada proradi, da mi malo poasnite princip kako je taj uradjen program, posto vidim da ce mi tesko biti da sam napravim Client Server pomocu tutorijala.

zokocx
19.2.2011, 22:22
Imas ovde malo vise posla ,tj. nije bas jednostavno da modifikujes postojecu aplikaciju, moras i da ubacis jednu pozadinsku nit koja ce raditi komunikaciju moze bez toga ,ali ispadne teze (ili cak komplikovanije za shvatiti).

I moras da pazi na neke stvari , recimo da sta ako prsne client ili host i jedan od njih ceka na potez ... ovde najbolje je ugraditi neki tajmer koji odbrojava i recimo ako za 60 sekundi se neodradi potez da ona strana koja je na potezu posalje randome potez a ova druga ako ga neprimi da prekine konekciju.

A moze slobodno da se koristi UDP protokolo ili gore pomenuta biblioteka da salju potezi, ipak ako je cilj samo LAN za primer je dovoljno siguran.

ODGOVOR na pitanje , moras da odradis komunikaciju ... tj. da vezes nije jednostavno kao copy/paste.