![]() |
Re: Spiel im Netzwerk/Daten übertragen
Ich verwende DelphiX für die Grafik, aber den Netzwerkteil will ich mit den Indykomponenten machen.
|
Re: Spiel im Netzwerk/Daten übertragen
Also ich probiers mit streams, aber ich muss erstmal streams ein bisschen verstehen.
Wie kann ich in dem Code den Stream empfangen und in einem Label darstellen?
Delphi-Quellcode:
var
Form1: TForm1; Stream: TMemorystream; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Server.Active := true; Client.Connect; end; procedure TForm1.Button1Click(Sender: TObject); begin Stream := TMemorystream.Create; Stream.Write('Test1', Sizeof('Test1')); // bin mir nicht sicher ob der stream Client.WriteStream(Stream, true, true, 0); // so richtig versendet wird end; procedure TForm1.ServerConnect(AThread: TIdPeerThread); begin athread.Connection.WriteLn('Connected'); end; procedure TForm1.ServerExecute(AThread: TIdPeerThread); begin //Hier ------------------- end; end. |
Re: Spiel im Netzwerk/Daten übertragen
hm, vor dem Problem stehe ich ansich auch.
Wie übertrage ich Daten am besten über die TidTCP-Komponenten... Also einerseits die schnellste Möglichkeit (von den daten is klar, halt nur das wichtigste) und dann überhaupt das wie... so gan versteh ich es nämlich noch nich :? |
Re: Spiel im Netzwerk/Daten übertragen
Hallo!
Schau doch mal im DF unter [df]SimpleNetwork[/df] nach, da gibt es Komponenten, die dir die Kommunikation vereinfachen. Ein Chat als Beispielprogramm ist auch dabei. Cu, Udontknow |
Re: Spiel im Netzwerk/Daten übertragen
Hallo
Wenn es um das Grundsätzliche Übertragen von Daten geht, findest du ![]() Gruss |
Re: Spiel im Netzwerk/Daten übertragen
ich würde vorschlagen die übertragung überwiegend
auf vektoren zu beschränken, d.h. du überträgst lediglich die richtung in die sich ein spieler bewegt und mit welcher geschwindigkeit in relativ langen zeitabständen, ich denke nicht das es zwingend notwendig ist jede sekunde die genaue position jedes spielers an jeden der anderen spieler zu übermitteln sobald sich allerdings 2 vektoren/spieler einander annähern muss die frequenz der übermittelten daten beider parteien ansteigen um die stattfindenen handlungen genauer zu dokumentieren das nur mal als denkanstoss |
Re: Spiel im Netzwerk/Daten übertragen
Hallo,
ich will hier nur mal etwas einwerfen, weil hier alle so freudig auf das TCP/IP Protokoll eingehen. Ich halte das für Spiele wo es um Zeit geht für ziemlich ungeeignet. Es hat viel-zu-viel Protokoll overhead, und vorallem im LAN für ein einfaches Spiele dürfte das overkill sein. Wenn mal ein Packet verlohren geht sollte das doch verkraftbar sein (da macht das Sprite halt mal einen kleinen Sprung wenn zwischendurch ein Packet fehlt). Wenn man sich mal so die Internetspiele anschaut (CS, Battlefield, <your fav. game here>), dann nehmen die eigentlich alle UDP. Zusätzlich gilt das was hier schon geschrieben wurde, Delta's übertragen etc. |
Re: Spiel im Netzwerk/Daten übertragen
mich würde mal interessieren was du mit deltas meinst,
höre ich das erste mal. udp ist natürlich eine interessante sache, gerade wenn es darum geht lags für alle anderen mitspieler zu vermeiden |
Re: Spiel im Netzwerk/Daten übertragen
mit Delta's ist gemeint, daß du nur schickst sprite 1 dreht sich 5° nach rechts und beschleunigt um 2 pixel/sekunde. Dafür sollte ein byte pro wert reichen. In größeren Abständen müssen dann natürlich fehlende Delta's ausgeglichen werden indem alle komplett übermittelt wird (also korrekt richtung/geschwindigkeit etc.).
|
Re: Spiel im Netzwerk/Daten übertragen
Fiasko hat schon recht, für Echtzeitspiele sollte TCP nicht verwendet werden. Die [df]SimpleNetwork[/df]-Komponenten können sowohl über TCP als auch über UDP Daten versenden... Argh, was ist denn wieder mit dem DF los? :?
Cu, Udontknow |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 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