Einzelnen Beitrag anzeigen

nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: [Indy 10] TCP Server-Client: Sichere Kommunikation für ein Spiel

  Alt 28. Sep 2012, 07:58
Danke für die Tipps.

Ich bin zugegebenermaßen auch nicht so der Theoretiker. Ich kann minutenlang vor einer Mindmap oder einem Ablaufplan sitzen, ohne dass da viel in meinem Kopf passiert, aber wenn ich 'ne IDE vor mir hab und "drauflos programmieren" oder mich mit Leuten darüber austauschen kann, kommen die Ideen, Zusammenhänge und Abläufe automatisch.
Aber das verläuft nicht so chaotisch, wie's vielleicht klingen mag. Ich achte da schon immer auf ordentliches objekt-orientiertes Design, dass ich generische Klassen erstelle und diese sinnvoll vererbe und erweitere. Und viel mehr als ein paar Sachen umstrukturieren oder neu verschachteln muss ich da inzwischen auch nicht mehr.

Das Protokoll ist mir im Kopf soweit eigentlich schon klar:

Jede aktive oder passive Zustandsänderung seitens des Clients wird an den Server gemeldet, der wiederum an alle relevanten (in der Nähe befindlichen) Clients ein Statusupdate des jeweiligen Characters sendet und sich mit diesen synchronisiert. Also wenn ein Charakter anfängt zu laufen, wird ein STARTWALKING an den Server geschickt, der schickt an die anderen Clients nun das Update STARTWALKING CharacterID, ebenso mit STOPWALKING oder wenn der Character sich dreht, anfängt zu zaubern, den Bogen spannt, Schaden von einer anderen Quelle bekommt, sich heilt, usw. Danach folgt ein SYNCPOSITION, SYNCSTATUS, SYNCirgendwas, um Lags / Desyncs zu korrigieren.

Es scheitert eben "nur" an der technischen Hürde und meiner Unerfahrenheit mit Indy bzw. generell des für mich neuen Sektors der Netzwerkkommunikation. Und ich denke auf technische Hürden trifft man auch, wenn das Protokoll vorher theoretisch klar ist, man aber noch nie mit der entsprechenden Schnittstelle gerarbeitet hat. Oder?

Aber der Tipp mit verschiedenen Kanälen hat mir geholfen. Hab mich diesbezüglich mal belesen und ein paar gut verständliche Beispiele gefunden, zB http://www.tek-tips.com/faqs.cfm?fid=7566
  Mit Zitat antworten Zitat