AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Überarbeitung Netzwerkspiel
Thema durchsuchen
Ansicht
Themen-Optionen

Überarbeitung Netzwerkspiel

Ein Thema von Antigo · begonnen am 9. Mär 2007 · letzter Beitrag vom 10. Mär 2007
 
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#1

Überarbeitung Netzwerkspiel

  Alt 9. Mär 2007, 14:26
Hi,
Ich habe zusammen mit ein paar Freunden ein Netzwerk Spiel geschrieben, was jetzt aber so verbuggt ist, dass wir es gerne noch einmal komplett neu entwickeln wollen. Knackpunkt ist hier jetzt erstmal die Kommunikation von Server und Clients. Bisher läuft das ganze so ab, das es einen Spielcounter gibt, anhand dessen Client und Server abgleichen können, ob es veränderungen gab.
Anfangs ist dieser Spielcounter 0 und bei jedem Zug, den ein Spieler ausführt wird er um eins erhöht.

Jeder Client fragt nun kontinuirlich nach ob es etwas neues gibt. Dazu schickt er seinen Spielcounter an den Server, dieser gleicht ihn mit dem aktuellen ab und schickt entweder zurück, dass es nichts neues gibt, oder aber die Veränderungen und den neuen Spielcounter.

Soweit das grundlegende Konzept, was auch funktioniert. Da wir das ganze bei der Neu entwicklung natürlich besser machen wollen, stellt sich hier die Frage, wie kann man den Overhead möglichst gering halten kann. 90% der Zeit wird nur sinnlos der Spielcounter geschickt und es kommt die Antwort das sich nichts getan hat. Es gibt bei dem Spiel halt sehr viel Freilauf, indem einfach nichts passiert (Vergleichbar mit Schach), trotzdem soll aber jeder Client so schnell wie möglich über Veränderungen informiert werden.
Es fehlt halt irgendwie die Möglichkeit vom Server aus Nachrichten an die Clients zu schicken.

Überlegt hatten wir jetzt schon, ob jeder Client auch einen ServerSocket aufmachen soll, damit der Server dann aktiv die Kommunikation anstoßen kann. Allerdings muss dann auf Client Seite auch eine Portfreigabe gegeben sein, was nicht so schön ist. Ausserdem muss der Server dann jede Menge Sockets und dementsprechend viele Ports verwalten. Auch sehr unschön.

Bisher hatten wir das ganze mit TClientsocket und TServerSocket gelöst. Hier haben wir dann per SendText die Informationen übermittelt.


Habt ihr vielleicht Tipps wie sich soetwas am effizientesten Lösen lässt? Ich bin mir sicher das diese Problemstellung öfters schon aufgetreten ist, ich konnte aber leider nichts passend finden. Sry dafür.


vielen dank aber auf jeden Fall schonmal

mfg
Antigo
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz