Seite 1 von 1
Client-Server
Verfasst: 20.07.2015, 13:37
von joggel
Guten Tag allerseits,
Ich möchte hier nur mal ein paar Denkanstöße, Ideen oder Erfahrungen sammeln.
Mich interessiert mal wie man ein Multiplayer-Spiel programmiert....nur erstmal so, rein interessehalber.
Habt ihr dazu vlt irgend welche Infos/Erfahrungen/Tipps/Tutorials/Pdfs/etc...?
Gruß
Re: Client-Server
Verfasst: 20.07.2015, 14:13
von dot
Ich würde mal sagen das hängt extrem von der Art des Spiels ab...
Re: Client-Server
Verfasst: 20.07.2015, 14:36
von joggel
Dann sagen wir mal es ist so eine art Shoter wo man durch höhlen fliegt und mit oder gegen andere spielen kann.
Re: Client-Server
Verfasst: 20.07.2015, 14:42
von dot
Und gegen wie viele andere? ;)
Re: Client-Server
Verfasst: 20.07.2015, 14:46
von xq
Also Actionspiel.
Auf jeden Fall mit einer UDP-Library arbeiten (ENet, Lidgren3, ...) damit du realiable und unrealiable Pakete hast (wichtig für schnelle Übertragung, wenig Delay)
Grundregel: Übertrage so wenig wie möglich. Tricksen ist aber auch nicht immer gut.
Der Server sollte ab einer gewissen Menge bewegter Einheiten(hängt vom Spiel ab, bei 1-20 is es imho Wurst) eine Art Culling betreiben und nur an die Clients schicken, für welche die Information auch relevant sein soll.
Du solltest für jeden Spieler eine eineutige ID definieren (obviously), welche dann events verschickt
Was auch noch ganz nützlich ist: Solange der naive Ansatz geht, mach ihn auch :D
Re: Client-Server
Verfasst: 20.07.2015, 14:57
von joggel
dot hat geschrieben:Und gegen wie viele andere? ;)
Weiß nicht genau. Vlt so maximal 8...? Dachte das kann man Variabel halten.
Auf jeden fall nicht unbegrenzt.
Und wie läuft das alles so ab?
Der server schickt immer ein update der scene/welt an die Server und diese übernehmen dann nur das zeichnen und reagieren auf userInput und die clients schicken dann nur relevante änderung des spielers an den server?
Wer übernimmt zb die kollisionserkennung und ähnliches?
Re: Client-Server
Verfasst: 20.07.2015, 15:15
von xq
Die Clients schicken generell mal "Dinge" an den Server (bei Actionspielen würde ich Positionen verschicken, der Server prüft dann für Plausibilität und schickt dann das Update an die anderen Teilnehmer weiter, welche dann die Positionen sinnvoll interpolieren)
Mit Kollisionen, Treffern, usw würde ich genauso verfahren, da du beim Client ein ordentliches Spielgefühl haben willst und nicht dass erst der Treffer nach 2*$ping Zeit auftaucht.
Also Spiel sowohl auf Server als auch auf spielendem Client simulieren und dann den Server bestimmen lassen, ob das jetzt auch alles in Ordnung ist.
Re: Client-Server
Verfasst: 20.07.2015, 17:37
von Chromanoid
Re: Client-Server
Verfasst: 20.07.2015, 19:24
von joggel
Uff!! Sehr viel Text^^
Da hab ich einiges zu lesen.
Danke erstmal.
Re: Client-Server
Verfasst: 20.07.2015, 20:18
von kristof
Ich fand die Artikelserien von Glenn Fiedler immer sehr hilfreich:
http://gafferongames.com/networking-for ... ogrammers/
Der hat auch jede Menge zu Physik und wie man Echtzeitphysik in Netzwerkspielen handhabt.