Wer steuert hier wen und wie?

0pa
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 20. Sep 2011 16:33

Wer steuert hier wen und wie?

Beitrag von 0pa »

Sehr veehrtes Kollegium des Arbeitkreises "Game Technology",

die Aufgabenstellung für Übung 12 ist uns zwar klar, allerdings ist uns unklar, wer Server und wer Client ist.
So wie wir das sehen, kann mit WASD und den Pfeiltasten die beiden Bälle bewegt werden. Wenn das Programm gestartet wird, wird ein Server geöffnet der an dem Port 9897 auf neue Verbindungen wartet. Wir sehen allerdings keinerlei Verbindungscode, bei dem ein Client zu dem Server verbindet. Für uns scheint es also so, als ob es nicht angedacht ist, dass das Programm auf zwei verschiedenen Computern läuft und dann gegeneinander gespielt werden kann, da eben keine Verbindung zum Server erstellt wird und auch die Server IP hardcodiert als "localhost" ist; oder anders gesagt, alles läuft auf nur einem PC. Ist diese Annahme korrekt?

Wenn diese Annahme korrekt ist, bräuchten wir ein wenig Klärung was die Steuerung der Bälle angeht, da in der Theorie man die zwei Bälle ja einfach über die existierende Tastenbelegung steuern kann. Sollen wir dann die Inputs der Bälle einfach entgegen nehmen aber das Update der Position an dieser Stelle auskommentieren und dann diese Inputs dem Server (localhost) senden und beim Empfangen updaten?

Hier herrscht gerade total Verwirrung wie das nun geregelt werden soll.

Herzlichste Grüße,
Opa

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Wer steuert hier wen und wie?

Beitrag von RobDangerous »

Im Beispielprogramm gibt es noch keinen Server oder Client - das ist erstmal nur ein lokales Multiplayerspiel plus ein kleiner Schnippsel Code, der die Netzwerkschnittstelle demonstriert, aber gar nix weiter tut.
Die direkte Steuerung für den zweiten Ball kommt also auf jedem Fall raus und wird stattdessen von einem anderen Computer empfangen (oder zumindest von einer zweiten Instanz des Spiels, die auch auf einem anderen Computer laufen könnte). Ob die Steuerung für den eigenen Spieler erst über das Netzwerk gehen soll bleibt Euch überlassen.

0pa
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 20. Sep 2011 16:33

Re: Wer steuert hier wen und wie?

Beitrag von 0pa »

Socket.open(port) ist für mich ein ServerSocket, oder liege ich da falsch... :|

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Wer steuert hier wen und wie?

Beitrag von RobDangerous »

Ein Netzwerksocket, quasi eine Telefonleitung. Server und Client sind ja Konzepte, die gedanklich/konzeptionell eine Stufe höher liegen als Sockets.

Dennis Wandschura
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 17. Okt 2014 14:18

Re: Wer steuert hier wen und wie?

Beitrag von Dennis Wandschura »

Wenn ich das Programm ein zweites mal starten will, bekomm ich nur einen schwarzen Bildschirm. :(
Sollen wir dann einfach die Tastenbefehle per UDP an uns selbst schicken und dann damit den zweiten Ball updaten ?

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Wer steuert hier wen und wie?

Beitrag von RobDangerous »

Ihr sollt das dann schon wirklich zweimal starten. Vermutlich funktioniert das jetzt nur deswegen nicht, weil es beide male den selben Port in Beschlag nehmen möchte.

manu311
Mausschubser
Mausschubser
Beiträge: 55
Registriert: 17. Okt 2010 23:39
Wohnort: Ursprünglich Offenburg (BW), momentan Darmstadt
Kontaktdaten:

Re: Wer steuert hier wen und wie?

Beitrag von manu311 »

Man kann auch ganz leicht die IP ändern.
Hab's mit 2 PCs getestet, und lief einwandfrei. Braucht man halt nur 2 Compilierte Dateien (mit jeweils der anderen IP).

Dennis Wandschura
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 17. Okt 2014 14:18

Re: Wer steuert hier wen und wie?

Beitrag von Dennis Wandschura »

hmm ok, gibt bestimmt auch ne bessere möglichkeit als zwei verschiedene versionen. naja überleg ich später ma bissl. :D

0pa
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 20. Sep 2011 16:33

Re: Wer steuert hier wen und wie?

Beitrag von 0pa »

Wir haben es jetzt auch it zwei verschiedenen Computern gemacht und es funktioniert wirklich super.
Man kann über eine Präprozessordirektive auswählen ob man Spieler 1 oder 2 ist und eine Konstante die die IP Adresse repräsentiert setzen um zu dem jeweils anderen PC zu verbinden.

Wir haben also quasi zwei Server (jeder Spieler ist Client und Server)

Passt das so?

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Wer steuert hier wen und wie?

Beitrag von RobDangerous »

Aber klar, das passt.
Und Ihr könnt das auch durchaus auf einem Computer mittels verschiedener Port-Nummern testen.

richard.m
Neuling
Neuling
Beiträge: 7
Registriert: 21. Jan 2015 20:28

Re: Wer steuert hier wen und wie?

Beitrag von richard.m »

Wie kann man denn das Kompilat öffnen?
Im ordner build\Release ist dann eine .exe aber die zeigt nur einen schwarzen Bildschirm und schließt sich, auch wenn keine Instanz durch Visual Studio gestartet wurde oder sogar socket.open(port); auskommentiert wurde.
Das Kompilat wird aber ohne Probleme aufgerufen wenn ich es durch Visual Studio starte. Auch Debug->Start new Instance funktioniert nur 1x im VS.

//EDIT: Hab die Lösung gefunden. in VS->Debug->Start Without Debugging

RobDangerous
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 14. Okt 2014 17:05

Re: Wer steuert hier wen und wie?

Beitrag von RobDangerous »

Oder alternativ die exe aus dem Deployment-Ordner heraus starten (wenn man es im Debug-Ordner startet, werden die Assets nicht gefunden). Oder einen zweiten build-Ordner anlegen und VS zweimal starten.

0pa
Mausschubser
Mausschubser
Beiträge: 44
Registriert: 20. Sep 2011 16:33

Re: Wer steuert hier wen und wie?

Beitrag von 0pa »

Wir haben dafür einfach Visual Studio zwei mal geöffnet und einmal das Spiel in Debug und einmal im Release-Modus gestartet.

Antworten

Zurück zu „Archiv“