Entwickler-Ecke
Internet / Netzwerk - Mutiplayer => wie verbinden?
Basti - Di 10.01.06 16:58
Titel: Mutiplayer => wie verbinden?
Hallo,
ich habe jetzt ein kleines 3D TicTacToe (auch als XXO bekannt) fertig
und kam auf die Idee das ganze jetzt auch über Internet spielbar zu machen.
Ich habe hier schon ein paar gute Tutorials und Beiträge zum Thema Datenübertragung
gelesen und denke nicht, dass ich damit Probleme bekomme - ist ja auch nicht viel zu übertragen.
Meine Frage ist bloß, wie ich am besten die Verbindung zum 2. PC herstelle.
Dazu brauche ich ja die IP Adresse. Die kann ich ja schlecht vom Spieler eingeben lassen,
denn selbst wenn er mit einem bekannten Spieler spielen möchte, kann das problematisch werden,
wenn er nicht weiss wie man die IP herausfindet etc ...
Also wäre es doch besser, wenn ein Fenster aufgeht und eine Liste erscheint, von denjenigen,
die eine Verbindung suchen. Die spannende Frage ist bloß, wie ich an die Liste komme.
Mit nur 2 PC's geht das sicher nicht - da muss ich vermutlich eine Basis zwischenschalten,
die die IPs sammelt.
Meine Überleegung war eine PHP Seite auf meiner Website einzurichten, die mit den entsprechenden
Parametern aufgerufen wird und dann die IPs in eine Datenbank einträgt bzw. die vorhandenen ausgibt.
Ich vermute aber, dass es da bessere Möglichkeiten gibt - habt ihr da Ideen?
Das 2. ist, dass ich ja dann einen Client und einen Server brauche.
Wie kann ich das entscheiden? Jeder User hat ja das gleiche Programm.
Die Frage ist wahrscheinlich leicht zu beantworten, aber das zerbricht mir gerade den Kopf.
Wäre nett, wenn ihr mir ein paar Hinweise geben könntet.
Danke
Sebastian
Tastaro - Di 10.01.06 17:23
Eine ganz simple Lösung wäre, wenn du in dem Programm immer die _eigene_ IP anzeigst. Dann kann der Gegenspieler nachfragen und diese bei sich von Hand eintragen.
Ansonsten gab es kürzlich schonla suwas. Guck doch mal in der Suchfunktion unter portscanner.
Beste Grüße
Tastaro
Arno Nym - Di 10.01.06 17:59
Hi,
ich hab meine kleinen Spiele immer so Multiplayer-fähig gemacht:
I. jedes Programm hat eine TCPIPClient und eine TCPIPServer Komponente
II. Es existiert auf deiner Homepage/Webspace eine Textdatei in denen aktive Server gespeichert sind
II. ein Spieler startet den Server, ließt seine eigene globale IP aus dem Internet aus, und trägt diese dann in die Textdatei ein (evtl noch Port und Infos, Spieler etc. dazu eintragen)
III. Der andere Spiele startet die Clientversion und lädt sich die Textdatei oder schaut sie sich nur an (die Addresse deiner Webseite ändert sich ja nicht, und muss natürlich bekannt sein)
IV. Der Client wählt einen Server aus und verbindet sich dann mit diesem, Kommunikation sollte dann am besten über ein Protokoll laufen.
allgemein empfiehlt es sich manchmal den Umweg zu machen und auch den Spieler der die Serverversion gestartet hat, ebenfall eine Clientversion mitlaufen zu lassen der sich dann ebenfalls zum (eigenen) Server verbindet. So das die Daten-Auswertung bei jedem Client gleich abläuft, und der Server nur als Mirror (also als Spiegel der nur Daten empfängt und weiter verteilt) funktioniert. Das hat unteranderem den Vorteil das beide Clients dann immer den selben Informationstatus haben.
Wenn du noch fragen hast bzw. nicht weiterkommst, kann ich auch gerne mit Code aushelfen...
Ciau erstmal, Arno Nym
Narses - Mi 11.01.06 11:14
Moin!
Basti hat folgendes geschrieben: |
| Ich habe hier schon ein paar gute Tutorials und Beiträge zum Thema Datenübertragung gelesen |
Dazu kann ich dir auch mein brandneues
Protokoll-Chat-Tutorial [
http://www.delphi-library.de/topic_ProtokollChatTutorial+TServerClientSocket_54269.html] ans Herz legen. 8) :wink:
Basti hat folgendes geschrieben: |
Meine Frage ist bloß, wie ich am besten die Verbindung zum 2. PC herstelle.
Dazu brauche ich ja die IP Adresse. Die kann ich ja schlecht vom Spieler eingeben lassen, |
Ja wieso denn nicht? Letztendlich läuft es dabei doch immer auf sowas hinaus, du mußt den anderen PC doch irgendwie erreichen.
Basti hat folgendes geschrieben: |
| wenn er nicht weiss wie man die IP herausfindet etc ... |
Dann sollte derjenige besser keine Netzwerk-Spiele spielen... :wink: Andersrum: Bau eine Funktion ein, die die eigene IP (lokal/WAN) angzeigt, fertig. :D
Basti hat folgendes geschrieben: |
Also wäre es doch besser, wenn ein Fenster aufgeht und eine Liste erscheint, von denjenigen, die eine Verbindung suchen.
[...]
Meine Überleegung war eine PHP Seite auf meiner Website... |
Ähm, sprengen wir da nicht ein bischen die Verhältnismäßigkeiten? :wink: Das ist kein MMORPG, sondern ein Spiel für 2, in Worten ZWEI, Leute; was glaubst du, wielange einer darauf warten will, bis ein anderer mit ihm spielt? :mrgreen:
Weiterhin: wenn ich einfach nur in meinem LAN, oder per CrossOverKabel mit zwei PCs, spielen will, dann brauche ich eine Internetverbindung, weil dein Prog nach seiner Webseite mault? :wink: (kleiner Scherz, nicht so ernst nehmen) Also IMHO gehst du da mit Atombomben auf Spatzen los.
Basti hat folgendes geschrieben: |
Das 2. ist, dass ich ja dann einen Client und einen Server brauche.
Wie kann ich das entscheiden? Jeder User hat ja das gleiche Programm. |
Mach einen Button "Einladen" und einen Button "Beitreten", der Einladende ist der Server, der Beitretende der Client. Server- und Client-Funktionalität muss natürlich beides in deiner Anwendung vorhanden sein.
cu
Narses
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!