Kennt jemand einen guten Artikel oder Tutorial für eine Client/Serverstruktur für ein Online/Netzwerk Multiplayer Spiel?
Schau Dir mal die Bücher "Game Engine Architecture" und "Game Programming Gems" an - einfach in der Bücherei Deines Vertrauens nachfragen, vielleicht kannst Du sie dort leihen.
Ich benötige dringend Informationen, welche Aufgaben vom Server übernommen werden und welche vom Client
Meine persönlichen Erfahrungen als Spieler/Spiel-Administrator und Hobby-Spieleprogrammierer:
Bei Shootern ist ein Multiplayersystem natürlich besonders schwierig, da eigentlich alle Lösungen ihre Nachteile haben - besonders bei höheren Latenzzeiten. Prinzipiell wird die Grafik auf den Clients ausgeführt, währenddem die Spiellogik auch auf beiden Instanzen laufen kann/muss. Wichtig ist auch, dass Du auch ein Entity-System hast, das eine einfache Netzwerkunterstützung zulässt! Wenn die Gesamtarchitektur das nicht zulässt wird das mit dem Netzwerk wohl nie was werden...
Besonders oft verwendet werden client- und serverseitige Interpolation der Objektpositionen, allerdings eher selten in Reinkultur sondern eher in Mischformen.
Findet eine Clientseitige Interpolation statt, so verwalten die Clients selbst ihre Positionen und der Server validiert diese ggf. Die Logik läuft nur auf dem Client bzw. optional auch auf dem Server.
Diese Architektur alleine ist jedoch eher weniger für schnelle Spiele wie Shooter geeignet.
Weiterhin ist hier das Cheaten (->Flyhack, Wallhack und sonstige Sauereien

) hier wesentlich einfacher, ausserdem "laggen" Spieler mit höheren Pings für alle anderen Spieler - je nach Ping ist es dann für andere Spieler beinahe unmöglich, den "Lagger" zu treffen, da dessen Position und Bewegung nie konsistent, sondern sprunghaft dargestellt werden.:noe:.
Bei einer serverseitigen Positionsinterpolation kontrolliert der Server sämtliche Objektpositionen und sendet diese an die Clients. Hier kann das Spiel jedoch für alle Spieler unspielbar machen, da bei hohen Pings ständig ihre Positionen korrigiert würden - ein Problem, das man auch in teureren und gut bekannten Spielen leider auch oft sieht.
Ideal wäre wohl eine Mischung der beiden Methoden, in der die Clients ihre Position selbst interpolieren und nur bei zu großen Abweichungen ihre Position korrigieren. Spielentscheidend ist dann die Position der Objekte auf dem Server.
Außerdem musst Du Dir Gedanken über die Art der Kommunikation ("Ich öffne die Kiste A an X|Y|Z" statt "Ich nehme eine Billiarde Dollar aus einer Kiste" - auch oft gesehen:noe

und eine Prüfung der Konsistenz der Dateien machen - sonst kann jeder Spieler z.B. die Grafikdateien verändern und so z.B. Spielerpositionen herausfinden (->Aimbots) Wände durchsichtig/passierbar machen oder Spielern eine andere Farbe geben, ohne dass dies je bemerkt würde... Letzten Endes wird es allerdings immer Cheater geben, deshalb solltest Du neben einer wirksamen Anticheatmethode auch ein Administrationssystem einführen, sodass sich Administratoren um die lästigen Cheater kümmern können.
Wie Du siehst: es ist ein sehr weites Feld, in dem man vermutlich einige Doktorarbeiten schreiben kann...