Wie programmiert man einen Multiplayer?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Das vorgehen im Hintergrund zu verstehen ist (meine Ansicht nach) schwieriger als "nur eine" Programmiersprache zu lernen.

Das Prinzip is die Beiderseitige Kommunikation von (einem) Server und Meheren Clients.

Clients müssen sich mittels einer Proxy (pattern, objektorientiertes design) bei einem Server anmelden, der Server erfährt bestimmte Informationen die ihm der Client sendet, verarbeitet das entsprechend, und muss dem Client wiederrum antworten (deswegen wird die Proxy eingesetzt - rückwärts kommunizieren ist nicht so trivial) - ggf auch in Abhängigkeit von anderen Clients (das ist das ein echter "multiplayer"), die dieselben Ressourcen beanspruchen.

So etwas lernt man in den meisten Informatikstudiengängen in dem Modul "Verteilte Systeme" is ganz nett.

Sprachen auf denen zurückgegriffen werden kann (mit denen ich erfahrung habe) sind RPC (C; alt, aber leistungsstark) Corba (für c++) und java RMI.

Zum herumspielen haben wir Texteditor implementiert mit dem man mit mehreren Clients (im lan) an der selben (pseude) textdatei herumschreiben kann (in java RMI).

Hallo,

das ist ganz verschieden und es können auch die Server in einer anderen Sprache geschrieben sein wie die Clients da einfach nur Bytes hin und hergeschickt werden und einfach gesagt das andere Ende nur wissen muss wie diese zu "entschlüsseln" sind. Wenn das Spiel selbst in C++ ist könntest den Server z.B. in Python schreiben oder Java etc.


Drogenreferat  05.05.2014, 18:04

Meine Meinung.. Wobei ich nicht damit starten würde Mods für Spiele zu programmieren. Die Programmiersprache an sich zu lernen ist einfach. Das schwierige ist Ordentlich zu programmieren ;)

1

Das müsste mit nahezu jeder Programmiersprache zu realisieren sein. Du müsstest beispielsweise wissen, wie du die RAM-Speicher-Inhalte und ggf. die gespeicherten Inhalte auf der Festplatte des jeweiligen Spiels manipulieren musst, damit dies und jenes passiert. Dazu müsstest du eventuell auch erst die Speicheradresse(n) der Variable(n) (z.B. Koordinaten eines Autos, eines Spielers etc.) herausfinden, damit die gewünschte Aktion bei externer Manipulation im Spiel erfolgen kann.

Aus diesen Kenntnissen bastelst du dir dann einen Game-Wrapper, der Daten von einem Server holt bzw. empfängt und diese an das Spiel weiterreichen kann.

Mit der Cheat-Engine kannst du ebenfalls Spiel-Inhalte live manipulieren: http://www.cheatengine.org/


Jakky  06.05.2014, 14:15

Ergänzung: natürlich muss der Game-Wrapper auch bestimmte Daten wieder zurück an den Server senden (z.B. die Position des eigenen Charakters), damit der Server diese dann an alle anderen Spieler weiterleiten kann. Die Server-Software ist dann für die Weiterleitung der Daten von und an verbundene Clients, auf denen die Game-Wrapper laufen, zuständig. Dann kann in die Server-Software auch beispielsweise noch eine Cheat-Erkennung eingebaut werden, die cheatende Spieler vom Server kickt.

0