» »

[C#] Človek ne jezi se

[C#] Človek ne jezi se

avtek ::

Pozdravljeni!

Premišljeval sem o izdelavi igre "Človek ne jezi se".
Igra bi bila (verjetno) namizna aplikacija, se pravi v poštev pride Windows Forms ali WPF. Premišljeval sem tudi od ASP.NET, ampak mi nekako ne potegne. WPF ima veliko več podpore kot Windows Forms, zato se mi zdi še najbolj primeren.

Sedaj pa k bistvu. Igra bi bila preprosta - 2D, za podlago bi uporabil nekaj takega KLIK. To, da se figure na klik premikajo mi ne predstavlja tako velike ovire, prav tako menim, da ne bo ovira vrstni red igralcev ter metanje kocke, ki bo narejena na naključno (1-6).
Največji problem je sledeč, rad bi, da so za igro potrebni štirje igralci, se pravi vsak igralec bi zagnal igro na svojem računalniku in bi se preko IP naslovov povezali med seboj. Za to pa mi je znana (samo) ta opcija:
    Eden izmed igralcev (naprimer jaz) bi bil server, drugi pa bi se kot klienti povezali na mene in ko bi bili vsi povezani, bi igro pognal.

Problem je, ker mi ni najbolj jasno kako bi nas vse skupaj povezal (v kodi) in kako bi bilo to videti v kodi, da ko eden naredi neko potezo, se vsem prikaže in gre potem na naslednjega igralca?
Seveda najbolj idealno bi bilo, da bi imeli vsi enake aplikacije in bi se nekako povezovali "point to point", ker bom sicer moral izdelovati eno aplikacijo za server in eno za kliente, ampak spet problem kako to spraviti v kodo, da bo povezava med vsemi stabilna in da se bo prikazoval "napredek igre".

Moje znanje C# je solidno, in mislim, da to ne bo težava, vendar se še nisem nikoli srečal s tako stvarjo.
Prosil bi vas za vse predloge, ki vam padajo na pamet, mnenja, kritike, karkoli, tudi glede izbire okolja (ASP.NET, WPF, WF).

Najlepša hvala vsem za pomoč!

lp

BlackLight ::

Za Multiplayer rabiš nekaj znanja o Socketih če razmišljaš o P2P načinu(UDP). V takem primeru kot ga govoriš pa bi na tvojem mestu raje izbral ASP.NET (MVC) torej kot spletno aplikacijo.

Yacked2 ::

Kaj pa če bi nekje hostal server ? Recimo, da na nekem free hosting namestiš server, kjer bi bila za vsako ločeno igra ena .txt datoteka, kamor bi zapisoval podatke o igri, računalnik bi na vsake toliko časa (5s naprimer pogledal če ima najnovejšo verzijo datoteke, če ne bi jo posodobil in odreagiral glede na situacijo).
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

avtek ::

Hvala za odgovora!

Ja glede P2P sem čisto brez znanja, tako, da bi bilo potrebno malo raziskati če bi šel v to smer. Se pravi, da bi bilo boljše ASP.NET, bom jutri malo raziskal v tej smeri pa se javim.

@Yacked2
Hmm, zanimivo razmišljanje ja, dejansko bi lahko tudi na svojem računalniku poganjal server in klienta na enkrat, na preostalih treh pa samo klienta.


Ima kdo mogoče kakšen praktičen primer kako bi izpeljal to komunikacijo med štirimi različnimi računalniki?
Zanima me še kako je s testiranjem? Kakšna ideja? Bom dejansko moral imeti štiri različne računalnike, da bom to stvar stestiral? :D


Najlepša hvala za vso pomoč!

Yacked2 ::

VirtualBox, VMware recimo ?

Povezati boš mogel vsakega z vsakim, torej server-client ali pa vsak z vsakim. Je pa zanimiva ideja, se bom lotil če bom našel čas.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

Vesoljc ::

ce ti c# ni tuj, si poglej unity. z lahkoto bos naredil vse opisano. imas na voljo tudi matchmaking service, s katerim poisces ostale igralce. pa se multiplatform je. kar se pa tice server client arhitekture, je pa bolje da nardis peer to peer connection, ter se dinamicno ampak predvidljivo odlocis kdo je logicni server. ce trenutni server pade, se vsi deterministicno odlocijo kdo bo nov server.
Abnormal behavior of abnormal brain makes me normal...

Spura ::

BlackLight je izjavil:

Za Multiplayer rabiš nekaj znanja o Socketih če razmišljaš o P2P načinu(UDP). V takem primeru kot ga govoriš pa bi na tvojem mestu raje izbral ASP.NET (MVC) torej kot spletno aplikacijo.

TCP, ne UDP. Naredis da en od 4 igralcev postavi igro (server) in se ostali povezejo k njemu.

avtek ::

Pozdravljeni!

Zahvaljujem se vsem za odgovore. Po dolgem in tehtnem premisleku ter raziskovanju sem se odločil, da bom to temo izbral za diplomsko nalogo.
Naslov teme je: "Tehnologije razvoja več-igralskih iger na primeru "Človek ne jezi se"". Ker pa smo se do sedaj pogovarjali samo o praktičnem delu naloge, za katerega menim, da mi ne bo delal preveč težav, je tu še teoretičen del.
V diplomsko delo bom zajel tudi tehnike delovanja več-igralskih iger (s primeri), prav tako načine povezav teh iger oz. samih igralcev med seboj. V kolikor ima kdo kakšno znanje glede teh "teoretičnih" stvari, ki sem jih navedel bi prosil za dejstva, oporne točke, kje naj iščem, tudi kakšno knjigo, link...


Najlepša hvala za vso vašo pomoč!

lp


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

JS frameworks: knockoutJS, angularJS, react, ...

Oddelek: Programiranje
417328 (4173) kuall
»

MVC vs. Angular

Oddelek: Izdelava spletišč
122713 (2303) kod
»

Izdelava Spletišča - Osnova

Oddelek: Izdelava spletišč
91658 (1335) HardFu
»

ASP.NET učenje - kaj priporočate?

Oddelek: Izdelava spletišč
172404 (2136) MAT1C
»

PHP ali ASP

Oddelek: Programiranje
253193 (2562) DavidJ

Več podobnih tem