AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Syncrone "Spieloberfläche" über Netzwerk
Thema durchsuchen
Ansicht
Themen-Optionen

Syncrone "Spieloberfläche" über Netzwerk

Ein Thema von Angel4585 · begonnen am 6. Okt 2006 · letzter Beitrag vom 12. Okt 2006
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

Syncrone "Spieloberfläche" über Netzwerk

  Alt 6. Okt 2006, 07:49
Hallo,

ich möchte ein Programm schreiben, wo jeder wenn er das Programm öffnet das gleiche sieht.

Es soll quasi ein "Spiel" gestartet werden. Auf dem Spielfeld dieses Spiels sollen sich Punkte bewegen.

Wenn jetzt jemand das Programm startet und das gestartete Spiel auswählt, soll er jeweils das gleiche sehen, also die gleichen Positionen der Punkte usw. wie alle anderen die dieses Spiel anschauen.

Das ganze habe ich mir so gedacht:

1. Wenn man das Programm startet, wird eine Liste aller Spiele geladen.
2. Wenn man ein Spiel auswählt, wird man selbst in eine Liste der Teilnehmer auf einem Webspace eingetragen und diese Liste aller Teilnehmer geladen, die alle 10 Sekunden oder so aktualisiert wird.
3. Ein Teilnehmer ist immer Server und soll die Bewegungen der Punkte berechnen und den Status an andere Teilnehmer schicken.
4. Wird der Server aus irgendeinem Grund disconnected, wird der Serverstatus auf einen der anderen Teilnehmer übertragen.

Aber wie schaffe ich es jetzt, das die Daten von einem Server an einem Client über das Internet geschickt werden, sodass alle Teilnehmer die absolut identische Positionen der Punkte vorfinden?

Also was brauch ich dafür?(TIdTCPServer und TIdTCPClient?) Und wie muss das Ganze dann aussehen?
Wie erreiche ich Clients die hinter Proxyservern sitzen, bzw. wie kann ich die Teilnehmer(Clients) auf meinem Webspace registrieren, also welche Informationen brauche ich um diese dann auch zu erreichen? (IP des Proxys?)

Danke schonmal für Tipps

Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#2

Re: Syncrone "Spieloberfläche" über Internet

  Alt 6. Okt 2006, 08:35
Also für das gleiche Spielfeld nutzt man idR. die Tatsache, dass Zufallszalen aus dem Rechner keine Zufallszahlen sind. Es wird nur der RandomSeed verteilt und dann können alle Clients sich die Karte selbst berechnen.
Bei der Liste der Spiele wirst Du nicht um einen zentralen Server herumkommen (am billigsten wäre einer der bei Dir zuhause läuft und per dyndns bekannt wird).
Allgemein Netzwerkkommunikation geht über sockets, da soltest Du hier genug Themen zu finden.
Clients hinter Proxyservern erreichst Du nach dem gleichen Prinzip, wie die VoIP Programme vorgehen (stand in einer der letzten c'ts was dazu drin). Dazu brauchst Du aber auche einen frei erreichbaren festen Server.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Syncrone "Spieloberfläche" über Netzwerk

  Alt 6. Okt 2006, 10:21
Ich denke ich werde es vllt doch erstmal über das lokale Netzwerk realisieren.

Das ganze sollte dann dezentral funktionieren. Also sollte jeder Client die Daten für jedes Spiel besitzen, sodass jeder das Spiel selbst berechnet, aber trotzdem bei jedem das Selbe zu sehen ist.

Also muss ich:

-Das Netzwerk nach Clients scannen(Wie?)
-Ein neu erstelltes Spiel an alle Clients senden damit alle die gleichen Daten haben

Fragen:

Wie scanne ich nach allen Clients?
Welche Komponenten soll ich verwenden? TIdTCPServer/-Client?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
RobertP

Registriert seit: 19. Aug 2006
181 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Syncrone "Spieloberfläche" über Netzwerk

  Alt 9. Okt 2006, 21:44
Netzwerk nach Clients scannen: Geht mit einem Multicast
Robert
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#5

Re: Syncrone "Spieloberfläche" über Netzwerk

  Alt 9. Okt 2006, 22:44
Wenn die Server aus den Clients ausgewählt werden, bedenke, dass es langsame Inet-Verbindungen und so gibt die dann alles verzögern (-> doofe Ping).. vllt vorher bissl gewichten?
Florian Heft
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Syncrone "Spieloberfläche" über Internet

  Alt 12. Okt 2006, 11:34
Zitat von Sidorion:
Also für das gleiche Spielfeld nutzt man idR. die Tatsache, dass Zufallszalen aus dem Rechner keine Zufallszahlen sind. Es wird nur der RandomSeed verteilt und dann können alle Clients sich die Karte selbst berechnen.
Wie verteile ich einen solchen "RandomSeed"?

Edit: Hab schon: Einfach "RandSeed" auf eine Zahl setzen
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#7

Re: Syncrone "Spieloberfläche" über Netzwerk

  Alt 12. Okt 2006, 12:06
Grünau. Und wenn alle den gleichen RandSeed haben und alle die einzelnen Komponenten der Map in der gleichen Reihenfolge berechnen (was ja per se passiert, da alle den selben Code zur Berechnung nutzen), kommt bei allen das selbe raus.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz