hallo,
bin endlich mal wieder dazu gekommen ein bisschen zu programmieren... (schule, k12...)
Ich bin grad dabei, ein Kartenspiel zu programmieren.
Jetzt stellt sich mir die Frage, wie ich die Kommunikation zwischen verschiedenen Spielern (an versch. PCs) regeln soll!
Bis jetzt hab ich zu Test-Zwecken im LAN das ganze über Named-Pipes gemacht. Dabei hat ein Rechner den Server geöffnet. Dazu hat der Spieler am selben PC einen Client (-> Mitspieler) und der Spieler am anderen PC auch einen geöffnet. Die Clients kommunizieren dann bei Ereignissen immer mit dem Server, der die Aktionen weiter verteilt.
Das ganze hab ich aber nur teilweise entwickelt, weil ich mir nicht sicher bin wie ich weiter machen soll.
Außerdem wollte ich das ganze auch fürs Internet ermöglichen, d.h. ein Spieler eröffnet auf seinem Rechner einen Server. Andere Spieler wählen sich nun bei diesem als Clients ein (die Anforderungen an den Server werden eigentlich minimal sein, da es ja normalerweise nur um die 4 Spieler gibt und keiner so schnell spielt, das der Server mit der Aktionsverteilung nicht mehr mitkommt
).
Ich kenn mich aber leider in Internetsachen nicht besonders aus. So stellt sich mir die grundlegende Frage, mit welcher Technik ich arbeiten soll.
Muss diese bei LAN und Internet unterschiedlich sein? Eigentlich schon oder?
Machen NamedPipes für LAN Sinn?
Sind sie einigermaßen angriffssicher gegen Hacker, etc?
Wie gestalte ich das fürs Internet, das ich mit Hackern kein Problem krieg?
Kann man das realisieren, dass einer einen Server öffnet und die anderen sich via Internet da anmelden? (Wie finden sie sich, woher weis man, wo es welchen server gibt, muss ich dafür eine Website zur verfügung stellen, wo sich die server-anbieter anmelden? soll ich selbst einen Server anbieten - will ich eigentlich nicht und lohnt sich für mich auch nicht, da ich dass nur zu lernzwecken und Spass machen will)
Die Sicherheitsfragen sind natürlich absolut sekundär, aber ich möchte kein unsicheres Spiel im Internet anbieten - genauso erwarte ich es von anderen schließlich auch...
Ich hab an die Technik eigentlich keine hohen Anforderungen, da ich pro Aktion nur das nötige Kommando mit Parametern versenden will, was nur einige Bytes sein sollten / werden. Außerdem hält sich die Kommunikation auch in Grenzen...
mfg,
heiopei